[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC: new flag] was Re: Multiple inclusion of -lnsl -lsocket
From: |
Douglas E. Engert |
Subject: |
Re: [RFC: new flag] was Re: Multiple inclusion of -lnsl -lsocket |
Date: |
Thu, 18 Oct 2001 15:47:28 -0500 |
Robert Boehne wrote:
>
> 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 for the response. I have gone back to libtool-1.3.5 which does not
have the problem for now.
A flag sounds good.
> 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
--
Douglas E. Engert <address@hidden>
Argonne National Laboratory
9700 South Cass Avenue
Argonne, Illinois 60439
(630) 252-5444