[tex-k] libtool bug on Solaris 2.7 with non-GNU linker

Heiko Stamer stamer at flower.theory.informatik.uni-kassel.de
Wed Jul 27 10:03:21 CEST 2005


I want to report a bug (basically a libtool problem) which has been occured on
our sparc-sun-solaris (Solaris 2.7) platform. It seems to me that the libtool
script is outdated (version 1.4.3) because it passes the GNU option --rpath
(via gcc) to the non-GNU linker /usr/ccs/bin/ld.

For fixing this bug it may be sufficient to update the libtool scripts to
a recent version (>= 1.5.10). Please let me know, if you need further
information about the platform details.

Best regards,

cd ./kpathsea && make  CC='gcc' CFLAGS='-O3 -msupersparc -DSYSV -DSVR4 -I/usr/openwin/include -I/usr/dt/include -I/usr/local/include ' LDFLAGS='-s -R/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib ' prefix=/usr/local exec_prefix=/usr/local bindir=/usr/local/bin/sparc-sun-solaris2.7 scriptdir=/usr/local/bin/sparc-sun-solaris2.7 libdir=/usr/local/lib datadir=/usr/local/share infodir=/usr/local/info includedir=/usr/local/include mandir=/usr/local/man manext=1 man1dir=/usr/local/man/man1 texmf=/usr/local/share/texmf web2cdir=/usr/local/share/texmf/web2c vartexfonts=/var/tmp/texfonts texinputdir=/usr/local/share/texmf/tex mfinputdir=/usr/local/share/texmf/metafont mpinputdir=/usr/local/share/texmf/metapost fontdir=/usr/local/share/texmf/fonts fmtdir=/usr/local/share/texmf/web2c/tex basedir=/usr/local/share/texmf/web2c/metafont memdir=/usr/local/share/texmf/web2c/metapost texpooldir=/usr/local/share/texmf/web2c mfpooldir=/usr/local/share/texmf/web2c mppooldir=/usr/local/share/texmf/web2c dvips_plain_macrodir=/usr/local/share/texmf/tex/plain/dvips dvilj_latex2e_macrodir=/usr/local/share/texmf/tex/latex/dvilj dvipsdir=/usr/local/share/texmf/dvips psheaderdir=/usr/local/share/texmf/dvips default_texsizes='300:600' 
make[1]: Entering directory `/usr/local/src/tetex-src-3.0/texk/kpathsea'
/bin/sh ../libtool --mode=link gcc -o kpsewhich -s -R/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib   kpsewhich.o  ../kpathsea/libkpathsea.la -lm  
gcc -o kpsewhich -s kpsewhich.o  ../kpathsea/.libs/libkpathsea.a -lm -Wl,--rpath -Wl,/usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib
/usr/ccs/bin/ld: illegal option -- -
usage: ld [-6:abc:d:e:f:h:il:mo:p:rstu:z:B:CD:F:GI:L:M:N:P:Q:R:S:VY:?] file(s)
        [-64]           enforce a 64-bit link-edit
        [-a]            create an absolute file
        [-b]            do not do special PIC relocations in a.out
        [-B direct]     specify `direct' bindings for executable when run
        [-B dynamic | static]
                        search for shared libraries|archives
        [-B eliminate]  eliminate unqualified global symbols from the
                        symbol table
        [-B group]      relocate object from within group
        [-B local]      reduce unqualified global symbols to local
        [-B reduce]     process symbol reductions
        [-B symbolic]   bind external references to definitions when creating
                        shared objects
        [-c name]       record configuration file `name'
        [-C]            demangle C++ symbol name diagnostics
        [-d y | n]      operate in dynamic|static mode
        [-D token,...]  print diagnostic messages
        [-e epsym]      use `epsym' as entry point address
        [-f name]       specify library for which this file is an auxiliary
        [-F name]       specify library for which this file is a filter
        [-G]            create a shared object
        [-h name]       use `name' as internal shared object identifier
        [-i]            ignore LD_LIBRARY_PATH setting
        [-I name]       use `name' as path of interpreter
        [-l x]          search for libx.so or libx.a
        [-L path]       search for libraries in directory `path'
        [-m]            print memory map
        [-M mapfile]    use processing directives contained in `mapfile'
        [-N string]     create a dynamic dependency for `string'
        [-o outfile]    name the output file `outfile'
        [-p auditlib]   identify audit library to accompany this object
        [-P auditlib]   identify audit library for processing the dependencies
                        of this object
        [-Q y | n]      do|do not place version information in output file
        [-r]            create a relocatable object
        [-R path]       specify a library search path to be used at run time
        [-s]            strip any symbol and debugging information
        [-S supportlib]
                        specify a link-edit support library
        [-t]            do not warn of multiply-defined symbols that have
                        different sizes or alignments
        [-u symname]    create an undefined symbol `symname'
        [-V]            print version information
        [-Y P,dirlist]  use `dirlist' as a default path when searching for
        [-z absexec]    when building an executable absolute symbols
                        referenced in dynamic objects are promoted to
                        the executable
        [-z allextract | defaultextract | weakextract]
                        extract all member files, only members that resolve
                        undefined tor tentative symbols, or allow extraction of
                        archive members to resolvetweak references from 
                        archive files
        [-z combreloc]  combine multiple relocation sections
        [-z nocompstrtab]       disable compression of string tables
        [-z defs]       disallow undefined symbol references
        [-z endfiltee]  marks a filtee such that it will terminate a filters
        [-z finiarray=function]
                        name of function to be appended to the .finiarray
        [-z groupperm | nogroupperm]
                        enable|disable setting of group permissions
                        on dynamic dependencies
        [-z ignore | record]
                        ignore|record unused dynamic dependencies
        [-z initarray=function]
                        name of function to be appended to the .initarray
        [-z initfirst]  mark object to indicate that its .init section should
                        be executed before the .init section of any other
        [-z interpose]  dynamic object is to be an `interposer' on direct
        [-z lazyload | nolazyload]
                        enable|disable delayed loading of shared objects
        [-z ld32=arg1,arg2,...]
                        define arguments applicable to the 32-bit class of ld(1)
        [-z ld64=arg1,arg2,...]
                        define arguments applicable to the 64-bit class of ld(1)
        [-z loadfltr]   mark filter as requiring immediate loading of its
                        filtees at runtime
        [-z muldefs]    allow multiply-defined symbols
        [-z nodefs]     allow undefined symbol references
        [-z nodefaultlib]
                        mark object to ignore any default library search path
        [-z nodelete]   mark object as non-deletable
        [-z nodlopen]   mark object as non-dlopen()'able
        [-z nodump]     mark object as non-dldump()'able
        [-z nopartial]  expand any partially initialized symbols
        [-z noversion]  don't record any version sections
        [-z now]        mark object as requiring non-lazy binding
        [-z origin]     mark object as requiring $ORIGIN processing
        [-z preinitarray=function]
                        name of function to be appended to the .preinitarray
        [-z redlocsym]  reduce local syms in .symtab to a minimum
        [-z rescan]     rescan archive list until no further member
                        extraction occurs
        [-z text]       disallow output relocations against text
        [-z textoff]    allow output relocations against text
        [-z textwarn]   warn if there are relocations against text
        [-z verbose]    generate warnings for suspicious processings
collect2: ld returned 1 exit status
make[1]: *** [kpsewhich] Error 1
make[1]: Leaving directory `/usr/local/src/tetex-src-3.0/texk/kpathsea'
make: *** [do-kpathsea] Error 2

Heiko Stamer <stamer at theory.informatik.uni-kassel.de>

More information about the tex-k mailing list