[th] acl & multilib

Tomasz Mateja tommat w pimpek.one.pl
Sob, 27 Sty 2007, 12:10:38 CET


Jakub Bogusz wrote:
> On Fri, Jan 26, 2007 at 06:27:39PM +0100, Tomasz Mateja wrote:
> [...]
>> ../libme-archive  /usr/lib64/libattr.so  -m32 -mtune=ultrasparc 
>                    ^^^^^^^^^^^^^^^^^^^^^^
>> -Wl,--version-script -Wl,../exports -Wl,-soname -Wl,libacl.so.1 -o 
>> ./usr/lib64/libattr.so: could not read symbols: File in wrong format
>> collect2: ld returned 1 exit status
>>
>> Nie mam pojecia juz gdzie szukac.
> 
> Zobacz makro AC_MULTILIB (m4/multilib.m4).
> Bierze ścieżki z $CC wywołanego bez opcji.
> 

No właśnie -lattr przekazane do libtoola zmienia się na 
/usr/lib64/libattr.so w wywołaniu gcc

AC_MULTILIB to chyba zły strzał.
w configure.in:

AC_ARG_ENABLE(lib64,
[ --enable-lib64=[yes/no] Enable lib64 support [default=no]],,
         enable_lib64=no)
AC_SUBST(enable_lib64)

i dalej:
AC_MULTILIB($enable_lib64)

a w samym makro jest warunek:
if test "$enable_lib64" = "yes" -a -n "$searchpath"

Więc nie zachodzi by default niezależnie od parametrów gcc, jakkolwiek 
te parametry nie są potrzebne, makro sprawdza czy istnieją ścieźki 
kończące sie na lib64 - w obu przypadkach (-m32 i -m64) istnieją - ale 
to tylko jeden z warunków if-a.

configure tworzy plik include/builddefs w którym jak pisałem ścieżki 
wyglądają poprawnie. Plik ten includowany jest w Makefile'ach i zawiera 
takie wpisy jak:
OPTIMIZER = -O2 -m32 -mtune=ultrasparc  -DENABLE_GETTEXT
LIBATTR = /usr/lib/libattr.la
PKG_LIB_DIR     = /lib
PKG_DEVLIB_DIR  = /usr/lib

wiec wyglada na ok zwlaszcza ze w builddefs.in jest:
LIBATTR = @libattr@
PKG_LIB_DIR     = @libdir@@libdirsuffix@
PKG_DEVLIB_DIR  = @libexecdir@@libdirsuffix@

a w package_attrdev.m4 jest:
     test -f ${libexecdir}${libdirsuffix}/libattr.la && \
         libattr="${libexecdir}${libdirsuffix}/libattr.la"
     AC_SUBST(libattr)

Na moj obecny stan wiedzy wyglada good ale nie działa - nie wiem czemu a 
o magii nie wiem za wiele ;)

-- 
T.





Więcej informacji o liście dyskusyjnej pld-devel-pl