[Top][All Lists]
[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