summaryrefslogtreecommitdiff
path: root/gcc/collect2.c
diff options
context:
space:
mode:
authoroldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-27 19:59:53 +0000
committeroldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-27 19:59:53 +0000
commit8ae48c7c11d761464a83964d0e9bb8d0ebd7d39e (patch)
tree9549761c28ea76715ba53bb9ad4c9c4c578cd20e /gcc/collect2.c
parent32031c0077e74f18be95daf838b176e916e8e688 (diff)
downloadgcc-8ae48c7c11d761464a83964d0e9bb8d0ebd7d39e.tar.gz
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41645 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/collect2.c')
-rw-r--r--gcc/collect2.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/collect2.c b/gcc/collect2.c
index 4757b9fb688..83ed200da4f 100644
--- a/gcc/collect2.c
+++ b/gcc/collect2.c
@@ -292,6 +292,9 @@ static void scan_prog_file PARAMS ((const char *, enum pass));
#ifdef SCAN_LIBRARIES
static void scan_libraries PARAMS ((const char *));
#endif
+#if LINK_ELIMINATE_DUPLICATE_LDIRECTORIES
+static int is_in_args PARAMS ((const char *, const char **, const char **));
+#endif
#ifdef COLLECT_EXPORT_LIST
static int is_in_list PARAMS ((const char *, struct id *));
static void write_aix_file PARAMS ((FILE *, struct id *));
@@ -1177,6 +1180,13 @@ main (argc, argv)
case 'L':
add_prefix (&cmdline_lib_dirs, arg+2);
break;
+#else
+#if LINK_ELIMINATE_DUPLICATE_LDIRECTORIES
+ case 'L':
+ if (is_in_args (arg, (const char **) ld1_argv, ld1-1))
+ --ld1;
+ break;
+#endif /* LINK_ELIMINATE_DUPLICATE_LDIRECTORIES */
#endif
case 'o':
@@ -1756,6 +1766,24 @@ write_list (stream, prefix, list)
}
}
+#if LINK_ELIMINATE_DUPLICATE_LDIRECTORIES
+/* Given a STRING, return nonzero if it occurs in the list in range
+ [ARGS_BEGIN,ARGS_END). */
+
+static int
+is_in_args (string, args_begin, args_end)
+ const char *string;
+ const char **args_begin;
+ const char **args_end;
+{
+ const char **args_pointer;
+ for (args_pointer = args_begin; args_pointer != args_end; ++args_pointer)
+ if (strcmp (string, *args_pointer) == 0)
+ return 1;
+ return 0;
+}
+#endif /* LINK_ELIMINATE_DUPLICATE_LDIRECTORIES */
+
#ifdef COLLECT_EXPORT_LIST
/* This function is really used only on AIX, but may be useful. */
static int