aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/gcc.c14
-rw-r--r--gcc/invoke.texi7
3 files changed, 26 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 08224fc..44244dc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2001-04-28 Jens Schweikhardt <schweikh@schweikhardt.net>
+
+ * gcc.c (process_command): Allow -l lib in addition to -llib
+ for POSIX compliance. This fixes PR c/2347.
+
+ * invoke.texi: Update section on Link Options accordingly.
+
2001-04-27 Zack Weinberg <zackw@stanford.edu>
* function.c (purge_addressof_1): Remove the duplicate
diff --git a/gcc/gcc.c b/gcc/gcc.c
index b265526..9c137fa 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -3287,6 +3287,14 @@ process_command (argc, argv)
n_infiles++;
i++;
}
+ else if (strcmp (argv[i], "-l") == 0)
+ {
+ if (i + 1 == argc)
+ fatal ("argument to `-l' is missing");
+
+ n_infiles++;
+ i++;
+ }
else if (strncmp (argv[i], "-l", 2) == 0)
n_infiles++;
else if (strcmp (argv[i], "-save-temps") == 0)
@@ -3728,6 +3736,12 @@ process_command (argc, argv)
infiles[n_infiles].language = "*";
infiles[n_infiles++].name = argv[++i];
}
+ else if (strcmp (argv[i], "-l") == 0)
+ { /* POSIX allows separation of -l and the lib arg;
+ canonicalize by concatenating -l with its arg */
+ infiles[n_infiles].language = "*";
+ infiles[n_infiles++].name = concat ("-l", argv[++i], NULL_PTR);
+ }
else if (strncmp (argv[i], "-l", 2) == 0)
{
infiles[n_infiles].language = "*";
diff --git a/gcc/invoke.texi b/gcc/invoke.texi
index c096b79..9ccbea1 100644
--- a/gcc/invoke.texi
+++ b/gcc/invoke.texi
@@ -3721,10 +3721,13 @@ Options}.
@cindex Libraries
@item -l@var{library}
-Search the library named @var{library} when linking.
+@itemx -l @var{library}
+Search the library named @var{library} when linking. (The second
+alternative with the library as a separate argument is only for
+POSIX compliance and is not recommended.)
It makes a difference where in the command you write this option; the
-linker searches processes libraries and object files in the order they
+linker searches and processes libraries and object files in the order they
are specified. Thus, @samp{foo.o -lz bar.o} searches library @samp{z}
after file @file{foo.o} but before @file{bar.o}. If @file{bar.o} refers
to functions in @samp{z}, those functions may not be loaded.