Original problem:

> Take example in libtool doc:
> 
> "burger$ libtool gcc -module -o libhello.la foo.lo \
>                 hello.lo -rpath /usr/local/lib -lm"
> "If symbols from your executable are needed to satisfy unresolved 
> references in a library you want to dlopen you will have to use 
 > The flag -export-dynamic. You should use -export-dynamic while
>linking the executable that calls dlopen:
> burger$ libtool gcc -export-dynamic -o hell-dlopener main.o"
> 
> What I want do is:
> burger$ libtool gcc -export-dynamic -o hell-dlopener main.o --whole-archive 
 > myneededlib.a --no-whole-archive
> 
> Because symbols needed for libhello.la are in mynneededlib.a, not in main.o, and gcc 
>will not export these symbols without --whole-archive ... and libtool give me:
> gcc -export-dynamic -o hell-dlopener main.o -Wl,--export-dynamic --whole-archive 
>--no-whole-archive myneededlib.a
> 
> Not what I want ... 

 From Robert Boehne:
> Ok, I was confused about what exectly you were asking.
> I think the best way to do this is to pass it as a single
> flag, like this:
> 
> -Wl,'-whole-archive -lfoo -no-whole-archive'
> 
> This way those options won't be rearranged on the ld command
> line.

Yes thank you for this workaround but ld didn't like it:
/usr/bin/ld: unrecognized option 
'-L/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/../../..'
/usr/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
Without quote, expression links good so ...

1/ I think there isn't any options in automake / libtool for do what I want.
2/ -whole-archive flag is os dependant, and already defined in libtool, 
I must use it
3/ I must do an automake / libtool patch that:

   a/ In automake, define something in automake template, something like
   mybinaries_WHOLE_LIB = myfirstlib.la mysecondlib.la
   This variable isn't in use without --disable-shared flag

   b/ If --disable-shared option of configure is in use, automake must
   remove libs that is two times on link command and keep only this with
   whole-archive flag.

   c/ Add a -whole-archive options in libtool that use os specific option
   for link a library into a binarie

What you think of this ?
--
Alain BARBET


Reply via email to