libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FYI: ksh bug on Tru64 UNIX causes current libtool failure


From: Nicolas Joly
Subject: Re: FYI: ksh bug on Tru64 UNIX causes current libtool failure
Date: Thu, 6 Oct 2005 15:00:51 +0200
User-agent: Mutt/1.5.8i

On Thu, Oct 06, 2005 at 02:27:26PM +0200, Ralf Wildenhues wrote:
> Hi Nicolas,
> 
> To the Fortran part of your answer:
> 
> * Nicolas Joly wrote on Wed, Oct 05, 2005 at 03:22:10PM CEST:
> > On Wed, Oct 05, 2005 at 10:43:40AM +0200, Ralf Wildenhues wrote:
> >
> > > Could you also try the new test suite?
> > >   make check TESTS=
> > > and send tests/testsuite.log for errors.
> > 
> > Got 3 failures; log attached.
> 
> The first one I can't explain yet (Gary?)

Don;t worry to much about it. I updated CVS libtool in the mean time,
and this one is gone.

> the other two are easy:
> libtool doesn't support Fortran on Tru64 yet.  I'm actually surprised
> there aren't more failures, both Fortran-related in the old testsuite,
> and non-Fortran related in the new one.  :)
> 
> For the rest of this mail, I assume this link has suitable(?)
> documentation for these Fortran compilers:
> http://h21007.www2.hp.com/dspp/files/unprotected/Fortran/docs/unix-um/dfumtoc.htm
> 
> data points:
> - the doc mentions that undefined symbols are not allowed -- but ld(1)
>   says otherwise.  Maybe it works with
>     allow_undefined_flag="\${wl}-expect_unresolved \${wl}\*"
>   or, if it doesn't, we need to set
>     allow_undefined_flag=unsupported
> - all of `-soname ..', `-msym', `-set_version ..', `-update_registry ..'
>   seem unsupported by f77/f95, but I believe they should be supplied to
>   ld by prefixing ${wl} everywhere -- not really sure, though.

It seems correct.

Tru64 fortran compilers do not support `-expect_unresolved \*' option
directly. Passing it prefixed with `-Wl,' solves the problem.

All others seems to work directly :

address@hidden [testsuite.dir/9]> f77 -v -shared -Wl,-expect_unresolved -Wl,\* 
.libs/c.o .libs/libcee.lax/liba.a/a.o .libs/libcee.lax/libb.a/b.o -msym -soname 
libcee.so.0 `test -n "0.0.0:0.0" && print -r "X-set_version 0.0.0:0.0" | 
/usr/bin/sed -e 1s/^X//` -update_registry .libs/so_locations -o 
.libs/libcee.so.0.0.0 
/usr/bin/cc -v -shared -Wl,-expect_unresolved -Wl,* .libs/c.o 
.libs/libcee.lax/liba.a/a.o .libs/libcee.lax/libb.a/b.o -msym -soname 
libcee.so.0 -set_version 0.0.0:0.0 -update_registry .libs/so_locations -o 
.libs/libcee.so.0.0.0 -O4 -qlshpf -lUfor -lfor -lFutil -lm -lots -lm_c32 -lmld 
-lexc 

/usr/lib/cmplrs/cc.dtk/ld -o .libs/libcee.so.0.0.0 -expect_unresolved * -msym 
-soname libcee.so.0 -set_version 0.0.0:0.0 -update_registry .libs/so_locations 
-g0 -O4 -shared .libs/c.o .libs/libcee.lax/liba.a/a.o 
.libs/libcee.lax/libb.a/b.o -qlshpf -lUfor -lfor -lFutil -lm -lots -lm_c32 
-lmld -lexc -lc 
/usr/lib/cmplrs/cc.dtk/ld: 
0.03u 0.03s 0:00 35% 0+10k 11+21io 0pf+0w 10stk+1800mem

> This suggests that it should be possible to write archive_cmds (and
> possibly archive_expsyms_cmds) in libltdl/m4/libtool.m4:_LT_LINKER_SHLIBS
> like a mixture of the $GCC and the non-$GCC case, using $cc_basename and
> $GCC as decision criteria.  Would you be willing to work on this?

I'll try, even if i'm not a fortran programmer myself.

> Should I create a preliminary patch you could test?

Yes, please.

> Is there also a `f90' available on this platform?

  f90 - invokes the Compaq Fortran 90 (formerly DIGITAL Fortran 90) compiler
  f95 - invokes the Compaq Fortran 95 (formerly DIGITAL Fortran 95) compiler
  f77 - invokes the Compaq Fortran 90 (formerly DIGITAL Fortran 90) compiler
  f77 -old_f77 - invokes the Compaq Fortran 77 (formerly DIGITAL Fortran 77)
  compiler

> > uname -m = alpha
> > uname -r = V5.1
> > uname -s = OSF1
> > uname -v = 2650
> 
> > Failed tests:
> > libtool 2.1a test suite test groups:
> > 
> >  NUM: FILE-NAME:LINE     TEST-GROUP-NAME
> >       KEYWORDS
> > 
> >    4: libtoolize.at:287  copy ltdl.m4 with shared macro directory
> >    9: convenience.at:74  F77 convenience archives
> >       F77
> >   10: convenience.at:116 FC convenience archives
> >       FC
> 
> 
> > #                             -*- compilation -*-
> > 9. convenience.at:74: testing ...
> > ./convenience.at:75: test -n "$F77" || (exit 77)
> 
> > libtool: link: creating libb.la
> > libtool: link: ( cd ".libs" && rm -f "libb.la" && ln -s "../libb.la" 
> > "libb.la" )
> > libtool: link: (cd .libs/libcee.lax/liba.a && ar x 
> > /home/njoly/temp/libtool/tests/testsuite.dir/9/./.libs/liba.a)
> > libtool: link: (cd .libs/libcee.lax/libb.a && ar x 
> > /home/njoly/temp/libtool/tests/testsuite.dir/9/./.libs/libb.a)
> > libtool: link: f77 -shared -expect_unresolved \*  .libs/c.o    
> > .libs/libcee.lax/liba.a/a.o  .libs/libcee.lax/libb.a/b.o        -msym 
> > -soname libcee.so.0 `test -n "0.0.0:0.0" && print -r "X-set_version 
> > 0.0.0:0.0" | /usr/bin/sed -e 1s/^X//` -update_registry .libs/so_locations 
> > -o .libs/libcee.so.0.0.0
> > f77: Severe: Invalid file name - must be of the form name.suffix : *
> > ./convenience.at:108: $LIBTOOL --tag=F77 --mode=link $F77 $FFLAGS $LDFLAGS 
> > -static -o main_static main.lo libcee.la
> > stderr:
> > libtool: link: cannot find the library `libcee.la' or unhandled argument 
> > `libcee.la'
> > stdout:
> > ./convenience.at:108: exit code was 1, expected 0
> > 9. convenience.at:74: 9. F77 convenience archives (convenience.at:74): 
> > FAILED (convenience.at:108)
> > 
> > #                             -*- compilation -*-
> > 10. convenience.at:116: testing ...
> > ./convenience.at:117: test -n "$FC" || (exit 77)
> > libtool: compile:  f95 -c -g a.f  -o .libs/a.o
> > libtool: compile:  f95 -c -g a.f -o a.o >/dev/null 2>&1
> > libtool: compile:  f95 -c -g b.f  -o .libs/b.o
> > libtool: compile:  f95 -c -g b.f -o b.o >/dev/null 2>&1
> > libtool: compile:  f95 -c -g c.f  -o .libs/c.o
> > libtool: compile:  f95 -c -g c.f -o c.o >/dev/null 2>&1
> > libtool: compile:  f95 -c -g main.f  -o .libs/main.o
> > libtool: compile:  f95 -c -g main.f -o main.o >/dev/null 2>&1
> > libtool: link: ar cru .libs/liba.a .libs/a.o 
> > libtool: link: ranlib .libs/liba.a
> > libtool: link: creating liba.la
> > libtool: link: ( cd ".libs" && rm -f "liba.la" && ln -s "../liba.la" 
> > "liba.la" )
> > libtool: link: ar cru .libs/libb.a .libs/b.o 
> > libtool: link: ranlib .libs/libb.a
> > libtool: link: creating libb.la
> > libtool: link: ( cd ".libs" && rm -f "libb.la" && ln -s "../libb.la" 
> > "libb.la" )
> > libtool: link: (cd .libs/libcee.lax/liba.a && ar x 
> > /home/njoly/temp/libtool/tests/testsuite.dir/10/./.libs/liba.a)
> > libtool: link: (cd .libs/libcee.lax/libb.a && ar x 
> > /home/njoly/temp/libtool/tests/testsuite.dir/10/./.libs/libb.a)
> > libtool: link: f95 -shared -expect_unresolved \*  .libs/c.o    
> > .libs/libcee.lax/liba.a/a.o  .libs/libcee.lax/libb.a/b.o        -msym 
> > -soname libcee.so.0 `test -n "0.0.0:0.0" && print -r "X-set_version 
> > 0.0.0:0.0" | /usr/bin/sed -e 1s/^X//` -update_registry .libs/so_locations 
> > -o .libs/libcee.so.0.0.0
> > f95: Severe: Invalid file name - must be of the form name.suffix : *
> > ./convenience.at:150: $LIBTOOL --tag=FC --mode=link $FC $FCFLAGS $LDFLAGS 
> > -static -o main_static main.lo libcee.la
> > stderr:
> > libtool: link: cannot find the library `libcee.la' or unhandled argument 
> > `libcee.la'
> > stdout:
> > ./convenience.at:150: exit code was 1, expected 0
> > 10. convenience.at:116: 10. FC convenience archives (convenience.at:116): 
> > FAILED (convenience.at:150)
> > 
> > 
> > ## ------------- ##
> > ## ../config.log ##
> > ## ------------- ##
> 
> 
> > | configure:16498: checking if libtool supports shared libraries
> > | configure:16500: result: yes
> > | configure:16503: checking whether to build shared libraries
> > | configure:16523: result: yes
> > | configure:16526: checking whether to build static libraries
> > | configure:16530: result: yes
> > | configure:16546: checking for f77 option to produce PIC
> > | configure:16773: result: 
> > | configure:16837: checking if f77 static flag -non_shared works
> > | configure:16865: result: yes
> > | configure:16877: checking if f77 supports -c -o file.o
> > | configure:16898: f77 -c -g -o out/conftest2.o conftest.f >&5
> > | configure:16902: $? = 0
> > | configure:16924: result: yes
> > | configure:16929: checking if f77 supports -c -o file.o
> > | configure:16976: result: yes
> > | configure:17006: checking whether the f77 linker (/usr/bin/ld) supports 
> > shared libraries
> > | configure:17971: result: yes
> > | configure:18110: checking dynamic linker characteristics
> > | configure:18684: result: osf5.1b ld.so
> > | configure:18720: checking how to hardcode library paths into programs
> > | configure:18745: result: immediate
> > | configure:18763: checking whether stripping libraries is possible
> > | configure:18785: result: no
> 
> 
> > | configure:19037: result: yes
> > | configure:19159: checking if libtool supports shared libraries
> > | configure:19161: result: yes
> > | configure:19164: checking whether to build shared libraries
> > | configure:19184: result: yes
> > | configure:19187: checking whether to build static libraries
> > | configure:19191: result: yes
> > | configure:19219: f95 -c -g  conftest.f >&5
> > | configure:19222: $? = 0
> > | configure:19331: checking for f95 option to produce PIC
> > | configure:19558: result: 
> > | configure:19622: checking if f95 static flag -non_shared works
> > | configure:19650: result: yes
> > | configure:19662: checking if f95 supports -c -o file.o
> > | configure:19683: f95 -c -g -o out/conftest2.o  conftest.f >&5
> > | configure:19687: $? = 0
> > | configure:19709: result: yes
> > | configure:19714: checking if f95 supports -c -o file.o
> > | configure:19761: result: yes
> > | configure:19791: checking whether the f95 linker (/usr/bin/ld) supports 
> > shared libraries
> > | configure:20756: result: yes
> > | configure:20895: checking dynamic linker characteristics
> > | configure:21469: result: osf5.1b ld.so
> > | configure:21505: checking how to hardcode library paths into programs
> > | configure:21530: result: immediate
> > | configure:21548: checking whether stripping libraries is possible
> > | configure:21570: result: no

-- 
Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]