From: David McCullough <davidm@snapgear.com>
Date: Tue, 15 Feb 2011 23:22:26 +0000 (+0000)
Subject: the attached patch is needed for the recent elf2flt
X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=17a6d6b5a2caa701815417275724c95851e4bcda;p=elf2flt.git

the attached patch is needed for the recent elf2flt
on MinGW builds. The stat() cannot cope with directories
ending with the directory separator.

Regards
Stanislav Meduna <stano@meduna.org>
---

diff --git a/ld-elf2flt.c b/ld-elf2flt.c
index e4cb073..6b8853e 100644
--- a/ld-elf2flt.c
+++ b/ld-elf2flt.c
@@ -506,13 +506,15 @@ int main(int argc, char *argv[])
 	   Make bindir point to the bin dir for bin/<TARGET_ALIAS>-foo.
 	   Make tooldir point to the bin dir for <TARGET_ALIAS>/bin/foo.  */
 	if (streqn(elf2flt_progname, TARGET_ALIAS)) {
-		tmp = concat(argv0_dir, "../" TARGET_ALIAS "/bin/", NULL);
-		if (stat(tmp, &buf) == 0 && S_ISDIR(buf.st_mode))
-			tooldir = tmp;
+		tmp = concat(argv0_dir, "../" TARGET_ALIAS "/bin", NULL);
+		if (stat(tmp, &buf) == 0 && S_ISDIR(buf.st_mode)) {
+			tooldir = concat(tmp, "/", NULL);
+		}
 	} else {
-		tmp = concat(argv0_dir, "../../bin/", NULL);
-		if (stat(tmp, &buf) == 0 && S_ISDIR(buf.st_mode))
-			bindir = tmp;
+		tmp = concat(argv0_dir, "../../bin", NULL);
+		if (stat(tmp, &buf) == 0 && S_ISDIR(buf.st_mode)) {
+			bindir = concat(tmp, "/", NULL);
+		}
 	}
 
 	/* Typically ld-elf2flt is invoked as `ld` which means error