Re: libtool 1.4 not passing linker directives

2001-10-09 Thread Ian Peters

Well,

I do realize that it's non-portable, but the number of platforms I'm
building on is very restricted (the application is only of any real use
on Linux systems running RPM, dpkg, and a few other special cases).  I'm
not really intentionally trying to use libtool; I'm just using automake,
which told me to pass linker directives in the prog_LDADD variable,
which I did, until it broke, and it seems that libtool 1.4 is what
changes this behaviour.

I'm not sure why it's using libtool to link my program -- is this
necessary, avoidable?

Ian

On Sat, 2001-10-06 at 17:15, Peter Eisentraut wrote:
 Ian Peters writes:
 
  Yes, the end goal is to have all of the libraries between the -Bstatic
  and -Bdynamic linked statically, while keeping a dynamic binary against
  libc and ld-linux.
 
 You do realize that this goal cannot be portably accomplished, so you
 perhaps shouldn't use libtool?
 
 -- 
 Peter Eisentraut   [EMAIL PROTECTED]   http://funkturm.homeip.net/~peter
 


___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



Re: libtool 1.4 not passing linker directives

2001-10-09 Thread Robert Boehne

Ian:

Automake uses Libtool to create libraries because it is portable,
it's practially the only thing that is.  One thing you should check,
do you really have to specify what is static?  I belive that under
Linux, the linker will choose shared libs over archives, if that
helps at all.  Perhaps you could train your app to find only
the archive libs at link time rather than add -Wl,Bstatic in
your link line.
Another alternative is to stop using Automake, just use the
Makefile.in that you already generated, and tailor it to
link with exactly the options you're hoping for.
  Did I miss anything?

HTH,

Rob

Ian Peters wrote:
 
 Well,
 
 I do realize that it's non-portable, but the number of platforms I'm
 building on is very restricted (the application is only of any real use
 on Linux systems running RPM, dpkg, and a few other special cases).  I'm
 not really intentionally trying to use libtool; I'm just using automake,
 which told me to pass linker directives in the prog_LDADD variable,
 which I did, until it broke, and it seems that libtool 1.4 is what
 changes this behaviour.
 
 I'm not sure why it's using libtool to link my program -- is this
 necessary, avoidable?
 
 Ian
 
 On Sat, 2001-10-06 at 17:15, Peter Eisentraut wrote:
  Ian Peters writes:
 
   Yes, the end goal is to have all of the libraries between the -Bstatic
   and -Bdynamic linked statically, while keeping a dynamic binary against
   libc and ld-linux.
 
  You do realize that this goal cannot be portably accomplished, so you
  perhaps shouldn't use libtool?
 
  --
  Peter Eisentraut   [EMAIL PROTECTED]   http://funkturm.homeip.net/~peter
 
 
 ___
 Libtool mailing list
 [EMAIL PROTECTED]
 http://mail.gnu.org/mailman/listinfo/libtool

-- 
Robert Boehne Software Engineer
Ricardo Software   Chicago Technical Center
TEL: (630)789-0003 x. 238
FAX: (630)789-0127
email:  [EMAIL PROTECTED]

___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



Re: libtool 1.4 not passing linker directives

2001-10-06 Thread Peter Eisentraut

Ian Peters writes:

 Yes, the end goal is to have all of the libraries between the -Bstatic
 and -Bdynamic linked statically, while keeping a dynamic binary against
 libc and ld-linux.

You do realize that this goal cannot be portably accomplished, so you
perhaps shouldn't use libtool?

-- 
Peter Eisentraut   [EMAIL PROTECTED]   http://funkturm.homeip.net/~peter


___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



Re: libtool 1.4 not passing linker directives

2001-10-05 Thread Ian Peters

On Fri, 2001-10-05 at 02:19, [EMAIL PROTECTED] wrote:
 On Fri, Oct 05, 2001 at 01:14:52AM -0400, Ian Peters wrote:
  Conspicuously missing are the linker directives to be passed to gcc,
  namely -Wl,-Bstatic and -Wl,-Bdynamic.  I do this to produce a binary
  that is linked statically except for libc and the dynamic linker.
 
 Did you send the write output? I see -Wl,-Bstatic and -Wl,-Bdynamic in
 the output above.
 
 What's bad is their position has been reordered. What version of
 libtool are you using? I take it you want all libraries between
 -Bstatic and -Bdynamic statically linked?

Whoops, you're right -- I only looked at the end of the output, I didn't
look closely enough to notice they'd just been reordered, not stripped.

Yes, the end goal is to have all of the libraries between the -Bstatic
and -Bdynamic linked statically, while keeping a dynamic binary against
libc and ld-linux.

-- 
Ian Peters
[EMAIL PROTECTED]


___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



Re: libtool 1.4 not passing linker directives

2001-10-05 Thread Ian Peters

On Fri, 2001-10-05 at 02:19, [EMAIL PROTECTED] wrote:
 What's bad is their position has been reordered. What version of
 libtool are you using? I take it you want all libraries between
 -Bstatic and -Bdynamic statically linked?

Forgot to say, this has been tested with libtool 1.4 and 1.4.2.

-- 
Ian Peters
[EMAIL PROTECTED]


___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



Re: libtool 1.4 not passing linker directives

2001-10-05 Thread Ian Peters

On Fri, 2001-10-05 at 02:21, Tim Van Holder wrote:
 On Fri, 2001-10-05 at 07:14, Ian Peters wrote:
  Unfortunately, with libtool 1.4.x, I get this instead (after a much,
  much longer time):
  
  gcc -g -O2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -o
  [snip]
  installer-ui.o -Wl,-Bstatic -rdynamic -rdynamic -rdynamic -rdynamic
  -Wl,-Bdynamic  ../libredcarpet/src/libredcarpet.a
  [snip]
  
  Conspicuously missing are the linker directives to be passed to gcc,
  namely -Wl,-Bstatic and -Wl,-Bdynamic.  I do this to produce a binary
  that is linked statically except for libc and the dynamic linker.
 
 Clearly, they're not missing, but they do seem to have been
 overzealously grouped together at the start, with the change in results.

Whoops, you're right.  I didn't look at all of the command line close
enough, I just assumed they'd been stripped.

  Is this a bug in libtool 1.4.x, or an undocumented change in behaviour? 
  If so, is there some other way to accomplish the same goal?
 
 I'd say a bug, since options libtool doesn't handle itself are moved
 around when they shouldn't be.

Suck, that was what I was afraid of.  Any workarounds?

-- 
Ian Peters
[EMAIL PROTECTED]


___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



Re: libtool 1.4 not passing linker directives

2001-10-04 Thread libtool

On Fri, Oct 05, 2001 at 01:14:52AM -0400, Ian Peters wrote:
 An application I work on has been calling libtool (through automake)
 with linker directives on the libtool line, around many of the libraries
 specified, like so (apologies if this wraps strangely, it's all one
 line):
 
 /bin/sh ../libtool --mode=link gcc  -g -O2 -Wall -Wunused
 -Wmissing-prototypes -Wmissing-declarations   -o installer
 installer-distro.o installer-page.o installer-page-install.o
 installer-page-deps.o installer-page-finish.o installer-page-gdm.o
 installer-page-method.o installer-page-mirror.o
 installer-page-more-deps.o installer-page-proxy.o
 installer-page-select.o installer-page-start.o installer-state-machine.o
 installer-ui.o ../libredcarpet/src/libredcarpet.a
 ../libgnometransfer/src/libgnometransfer.a -Wl,-Bstatic  -rdynamic
 -L/usr/lib -L/usr/X11R6/lib -L/usr/lib/lib -lgtkhtml -lgal -lgnomeprint
 -lglade-gnome -lglade -lxml -lz -lgnomeui -lart_lgpl  -lSM -lICE -lgtk
 -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd
 -laudiofile -lm -ldb1 -lglib -ldl -lgnet -rdynamic -lgmodule -lglib -ldl
 /home/itp/gdk-pixbuf-0.11.0//gdk-pixbuf/.libs/libgdk_pixbuf.a -lgtk
 -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
 /home/itp/gdk-pixbuf-0.11.0//gdk-pixbuf/.libs/libgnomecanvaspixbuf.a
 /home/itp/imlib-1.9.10//gdk_imlib/.libs/libgdk_imlib.a -ljpeg -ltiff
 -lungif -lpng -lz -lm -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi
 -lXext -lX11 -lm -luuid -lcrypt -lz -lutil -Wl,-Bdynamic

I see -Wl,-Bstatic -rdynamic -Wl,-Bdynamic 

 With libtool 1.3.x, this resulted in the following call to gcc:
 
 gcc -g -O2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -o
 installer installer-distro.o installer-page.o installer-page-install.o
 installer-page-deps.o installer-page-finish.o installer-page-gdm.o
 installer-page-method.o installer-page-mirror.o
 installer-page-more-deps.o installer-page-proxy.o
 installer-page-select.o installer-page-start.o installer-state-machine.o
 installer-ui.o ../libredcarpet/src/libredcarpet.a
 ../libgnometransfer/src/libgnometransfer.a -Wl,-Bstatic -rdynamic
 -L/usr/lib -L/usr/X11R6/lib -L/usr/lib/lib -lgtkhtml -lgal -lgnomeprint
 -lglade-gnome -lglade -lxml -lz -lgnomeui -lart_lgpl -lSM -lICE -lgtk
 -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd
 -laudiofile -lm -ldb1 -lglib -ldl -lgnet -rdynamic -lgmodule -lglib -ldl
 /home/itp/gdk-pixbuf-0.11.0/gdk-pixbuf/.libs/libgdk_pixbuf.a -lgtk -lgdk
 -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
 /home/itp/gdk-pixbuf-0.11.0/gdk-pixbuf/.libs/libgnomecanvaspixbuf.a
 /home/itp/imlib-1.9.10/gdk_imlib/.libs/libgdk_imlib.a -ljpeg -ltiff
 -lungif -lpng -lz -lm -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi
 -lXext -lX11 -lm -luuid -lcrypt -lz -lutil -Wl,-Bdynamic

Ditto.

 Unfortunately, with libtool 1.4.x, I get this instead (after a much,
 much longer time):
 
 gcc -g -O2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -o
 installer installer-distro.o installer-page.o installer-page-install.o
 installer-page-deps.o installer-page-finish.o installer-page-gdm.o
 installer-page-method.o installer-page-mirror.o
 installer-page-more-deps.o installer-page-proxy.o
 installer-page-select.o installer-page-start.o installer-state-machine.o
 installer-ui.o -Wl,-Bstatic -rdynamic -rdynamic -rdynamic -rdynamic
 
 -Wl,-Bdynamic  ../libredcarpet/src/libredcarpet.a
  ^
 ../libgnometransfer/src/libgnometransfer.a -L/usr/lib -L/usr/X11R6/lib
 -L/usr/lib/lib /usr/lib/libgtkhtml.so /usr/lib/libgnomecanvaspixbuf.so
 /usr/lib/libbonobo.so /usr/lib/liboaf.so /usr/lib/libORBitCosNaming.so
 /usr/lib/libORBit.so /usr/lib/libIIOP.so /usr/lib/libORBitutil.so
 /usr/lib/libbonobox.so -lz -lXi -lXext -lX11 -lm -ldl /usr/lib/libgal.so
 /usr/lib/libgnomeprint.so /usr/lib/libgdk_pixbuf.so -ldl -lXi -lXext
 -lX11 -lm -lz /usr/lib/libglade-gnome.so -lXi -lXext -lX11 -lm -ldl -lz
 /usr/lib/libglade.so -ldl -lXi -lXext -lX11 -lm -lz /usr/lib/libxml.so
 -lz -lz -lz /usr/lib/libgnomeui.so -lm -lm -ldl /usr/lib/libgdk_imlib.so
 -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -lz -lm
 /usr/lib/libart_lgpl.so -lSM -lICE -ldl -lXi -lXext -lX11 -lm -ldl -lXi
 -lXext -lX11 -lm -ldl -lXi -lXext -lX11 /usr/lib/libgnome.so -lm -ldl
 -lz -lm /usr/lib/libgnomesupport.so -lz -lm /usr/lib/libesd.so -lm -lm
 /usr/lib/libaudiofile.so -lm -lm -lm -ldb1 -ldl /usr/lib/libgnet.so
 -lresolv -lnsl -ldl -ldl
 /home/itp/gdk-pixbuf-0.11.0//gdk-pixbuf/.libs/libgdk_pixbuf.a -ldl -lXi
 -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -ldl -ldl -lXi -lXext -lX11
 -lm /home/itp/gdk-pixbuf-0.11.0//gdk-pixbuf/.libs/libgnomecanvaspixbuf.a
 /home/itp/imlib-1.9.10//gdk_imlib/.libs/libgdk_imlib.a
 /usr/lib/libjpeg.so -ltiff /usr/lib/libungif.so -lX11 -lpng -lz -lm
 /usr/lib/libgtk.so -ldl -lXi -lXext -lX11 -lm /usr/lib/libgdk.so -ldl
 -lXi -lXext -lX11 -lm /usr/lib/libgmodule.so -ldl /usr/lib/libglib.so
 -ldl -lXi -lXext -lX11 -lm