summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-devel/binutils-config/binutils-config-5.1-r12.ebuild (renamed from sys-devel/binutils-config/binutils-config-5.1-r11.ebuild)0
-rw-r--r--sys-devel/binutils-config/files/ldwrapper.c22
2 files changed, 15 insertions, 7 deletions
diff --git a/sys-devel/binutils-config/binutils-config-5.1-r11.ebuild b/sys-devel/binutils-config/binutils-config-5.1-r12.ebuild
index 38f82d40b5..38f82d40b5 100644
--- a/sys-devel/binutils-config/binutils-config-5.1-r11.ebuild
+++ b/sys-devel/binutils-config/binutils-config-5.1-r12.ebuild
diff --git a/sys-devel/binutils-config/files/ldwrapper.c b/sys-devel/binutils-config/files/ldwrapper.c
index 22fbf9aba8..1aa96537d0 100644
--- a/sys-devel/binutils-config/files/ldwrapper.c
+++ b/sys-devel/binutils-config/files/ldwrapper.c
@@ -530,7 +530,7 @@ main(int argc, char *argv[])
char *path;
int pth;
char duplicate;
- int before = j - 1;
+ int nexti = i;
/* arguments can be in many ways here:
* -L<path>
@@ -541,10 +541,11 @@ main(int argc, char *argv[])
while (*path != '\0' && isspace(*path))
path++;
if (*path == '\0') {
+ nexti++;
/* no more arguments?!? skip */
- if (i + 1 >= argc)
+ if (nexti >= argc)
continue;
- path = argv[i + 1];
+ path = argv[nexti];
while (*path != '\0' && isspace(*path))
path++;
}
@@ -570,7 +571,8 @@ main(int argc, char *argv[])
}
}
if (duplicate) {
- j = before;
+ i = nexti;
+ j--;
continue;
}
/* record path */
@@ -584,7 +586,8 @@ main(int argc, char *argv[])
}
}
if (duplicate) {
- j = before;
+ i = nexti;
+ j--;
continue;
}
/* record path */
@@ -597,8 +600,12 @@ main(int argc, char *argv[])
char *path;
int pth;
char duplicate;
+ int nexti = i + 1;
- path = argv[i + 1];
+ /* no more arguments?!? skip */
+ if (nexti >= argc)
+ continue;
+ path = argv[nexti];
while (*path != '\0' && isspace(*path))
path++;
/* not absolute (or empty)?!? skip */
@@ -617,7 +624,8 @@ main(int argc, char *argv[])
}
}
if (duplicate) {
- j -= 2;
+ j--;
+ i = nexti;
continue;
}
/* record path */