diff options
author | oldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-04-27 19:59:53 +0000 |
---|---|---|
committer | oldham <oldham@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-04-27 19:59:53 +0000 |
commit | 8ae48c7c11d761464a83964d0e9bb8d0ebd7d39e (patch) | |
tree | 9549761c28ea76715ba53bb9ad4c9c4c578cd20e /gcc/collect2.c | |
parent | 32031c0077e74f18be95daf838b176e916e8e688 (diff) | |
download | gcc-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.c | 28 |
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 |