On 01/30/2016 10:33 AM, Arkadiusz Drabczyk wrote:
* doc/invoke.texi: update documentation WRT .so libraries in -l --- gcc/ChangeLog | 4 ++++ gcc/doc/invoke.texi | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-)diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1d60690..0a6acdb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2016-01-30 Arkadiusz Drabczyk <[email protected]> + + * doc/invoke.texi: update documentation WRT .so libraries in -l + 2016-01-29 Martin Jambor <[email protected]> * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ba0b4b2..8b1b329 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -10440,9 +10440,11 @@ whose members are object files. The linker handles an archive file by scanning through it for members which define symbols that have so far been referenced but not defined. But if the file that is found is an ordinary object file, it is linked in the usual fashion. The only -difference between using an @option{-l} option and specifying a file name -is that @option{-l} surrounds @var{library} with @samp{lib} and @samp{.a} -and searches several directories. +difference between using an @option{-l} option and specifying a file +name is that @option{-l} surrounds @var{library} with @samp{lib} and +@samp{.so} on systems with shared libraries support or with @samp{.a} if +@var{library} with @samp{.so} is not found and on all other systems and +searches several directories. @item -lobjc @opindex lobjc
I see that the documentation of -l does need to be updated to mention .so files, but I think your patch doesn't go far enough. It's already confusing because that sentence says "The only difference is...", and then mentions *two* things it does differently, and you're adding even more things.
Instead, I suggest dropping this confusing sentence entirely and putting the new information a couple paragraphs higher up:
The linker searches a standard list of directories for the library,
which is actually a file named @file{lib@var{library}.a}. The linker
then uses this file as if it had been specified precisely by name.
How about just changing that to read...a file named @file{lib@var{library}.so}; or, if shared libraries are not supported, are disabled via @option{-static}, or no @samp{.so} file is found, @file{lib@var{library}.a}.
?? -Sandra
