bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC: new flag] was Re: Multiple inclusion of -lnsl -lsocket


From: Robert Boehne
Subject: [RFC: new flag] was Re: Multiple inclusion of -lnsl -lsocket
Date: Thu, 18 Oct 2001 15:20:32 -0500

Douglas:

This is the result of strict dependency tracking.  Later version of
Libtool
refrain from removing duplicates in dependencies because this can break
certain software (KDE is an example I believe).  I also have problems
with this, and have been wondering if a flag to turn this explicitly
ON, off by default, would be a better way around this.
You are getting a truncated command line as you will on almost every
OS (Solaris actually has a much greater command line argument limit
than most other systems).  Libtool used to remove all duplicates,
and I would prefer this to be the default behavior, as it seems
that requiring order-dependencies to be retained is a seldom
used feature that causes problems like yours (and mine).

What would the the rest of you thin about adding a flag
--strict-dependencies
(or some such) that would enable the strict dependency retention, which
is off by default?  I could probably whip this up in a week or so.

Thanks,

Robert Boehne


"Douglas E. Engert" wrote:
> 
> I am using libtool-1.4.2 on Solaris 5.7 with gcc 2.9.3
> 
> I am trying to link in a large number of shared libraries, each of which was 
> built
> with libtool. Each library had -lnsl -lsocket as a dependency.
> 
> It appears libtool adds the -lnsl -lsocket to the deplibs for each library,
> as it is built, and each of it dependency libs which also have -lnsl -lsocket.
> Thus when it gets to the program, it has -lnsl -lsocket over and over, and the
> line becomes to long for the shell, or the compiler.
> 
> This command is given to libtool. (Its all one line.)
> 
> /bin/sh
> /afs/anl.gov/usr/ctd/b17783/work/Globus/gp/build/sun4x_57/sbin/libtool-gcc32dbg
> --mode=link /usr/afsws/local/bin/gcc  -g
> -L/afs/anl.gov/usr/ctd/b17783/work/Globus/gp/build/sun4x_57/lib -o globusrun
> -L/afs/anl.gov/usr/ctd/b17783/work/Globus/gp/build/sun4x_57/lib globusrun.o
> -lnsl -lsocket -lnsl    -lsocket -lnsl -lglobus_gass_server_ez_gcc32dbg
> -lglobus_rsl_assist_gcc32dbg -lglobus_duroc_control_gcc32dbg
> -lglobus_gass_transfer_gcc32dbg  -lglobus_duct_control_gcc32dbg
> -lglobus_duroc_common_gcc32dbg  -lglobus_duct_common_gcc32dbg
> -lglobus_gram_client_gcc32dbg -lglobus_rsl_gcc32dbg  -lglobus_nexus_gcc32dbg
> -lglobus_gram_protocol_gcc32dbg -lglobus_mp_gcc32dbg  -lglobus_dc_gcc32dbg
> -lglobus_io_gcc32dbg -lglobus_gss_assist_gcc32dbg -lglobus_common_gcc32dbg
> -lglobus_gssapi_gsi_gcc32dbg -lglobus_ssl_utils_gcc32dbg -lssl_gcc32dbg
> -lcrypto_gcc32dbg
> 
> Then it appears that libtool tries to run this command which I folded to get 
> into
> this mail:
> 
> /usr/afsws/local/bin/gcc -g -o globusrun globusrun.o  
> -L/afs/anl.gov/usr/ctd/b17
> 783/work/Globus/gp/build/sun4x_57/lib -lnsl -lsocket -lnsl -lsocket -lnsl 
> /afs/a
> nl.gov/usr/ctd/b17783/work/Globus/gp/build/sun4x_57/lib/libglobus_gass_server_ez
> _gcc32dbg.so -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl 
> -lsocket -
> lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl 
> -ln
> sl -lsocket -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket 
> -l
> nsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket 
> -lsocket -
> lnsl -lnsl -lsocket -lnsl -lsocket -lnsl 
> /afs/anl.gov/usr/ctd/b17783/work/Globus
> /gp/build/sun4x_57/lib/libglobus_rsl_assist_gcc32dbg.so -lnsl 
> /afs/anl.gov/usr/c
> td/b17783/work/Globus/gp/build/sun4x_57/lib/libglobus_duroc_control_gcc32dbg.so
> -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl 
> -l
> socket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl 
> -lsocket -
> lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket 
> -lsocket
> -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl 
> -l
> nsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl 
> -lsocket -
> lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl 
> -ls
> ocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl 
> -l
> nsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl 
> -lso
> cket -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl -lsocket -lnsl 
> -ls
> ocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket 
> -l
> nsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl 
> -lns
> l -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl -lsocket 
> -ln
> sl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl 
> -lsoc
> ket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl 
> -lns
> l -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl 
> -lsock
> et -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl -lsocket -lnsl 
> -lsoc
> ket -lnsl -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl 
> -lsocke
> t -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl 
> -lnsl
> -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl 
> -lsocket
>  -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl -lsocket -lnsl 
> -lsocke
> t -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket 
> -lnsl
> -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl 
> -l
> socket -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket 
> -lnsl -
> lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket 
> -lnsl
> -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl 
> -l
> socket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl 
> -lsocket -
> lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl -lsocket -lnsl 
> -lsocket
> -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl 
> -l
> nsl -lsocket -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lnsl 
> -lso
> cket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket 
> -ln
> sl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket 
> -l
> nsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl 
> -lns
> l -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl -lsocket 
> -ln
> sl -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl 
> -lsoc
> ket -lnsl -lnsl -lsocket -lsocket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl
> /afs/anl.gov/usr/ctd/b17783/work/Globus/gp/build/sun4x_57/lib/libglobus_gass_tra
> nsfer_gcc32dbg.so -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lnsl 
> -lsoc
> ket -lnsl -lnsl -lsocket -lnsl -lsocket -lnsl -lnsl -lsocket -lsocket -lnsl 
> -lns
> l -lsocket -lnsl -lsocket -lnsl 
> /afs/anl.gov/usr/ctd/b17783/work/Globus/gp/build
> /sun4x_57/lib/libglobus_duct_control_gcc32dbg.so -lnsl -lsocket -lnsl 
> -lsocket -
> lns -R/afs/anl.gov/usr/ctd/b17783/work/Globus/gp/build/sun4x_57/lib 
> -R/afs/anl.g
> ov/usr/ctd/b17783/work/Globus/gp/build/sun4x_57/lib
> 
> Note, two lines above, it has -lns which looks like it truncated some
> internal string. The error message is "ld: fatal: library -lns: not found"
> 
> The extreme numbers of -lnsl -lsocket looks like a bug somewhere.
> 
> 
> 
> --
> 
>  Douglas E. Engert  <address@hidden>
>  Argonne National Laboratory
>  9700 South Cass Avenue
>  Argonne, Illinois  60439
>  (630) 252-5444
> 
> _______________________________________________
> Bug-libtool mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/bug-libtool

-- 
Robert Boehne             Software Engineer
Ricardo Software   Chicago Technical Center
TEL: (630)789-0003 x. 238
FAX: (630)789-0127
email:  address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]