libtool
[Top][All Lists]
Advanced

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

Re: how to break out of the libtool rathole


From: Dennis Clarke
Subject: Re: how to break out of the libtool rathole
Date: Wed, 17 Jul 2013 22:20:25 -0400

> Hi David.  Sorry that I couldn't reply inline, I just subscribed to this
> list today.  I saw that you had an issue where it appears that you need
> libtool in order to build and install libtool.

I was mostly frustrated by the experience and thus the subject line is less
than cordial.  Really, I should have said "libtool needs libtool to build 
libtool?" 

So first a bit of context here.  I have a bunch of servers and at least one 
that 
is old and very very stable. I can't recall ever needing to reboot it or for 
that
matter, the last time I logged into it.  A long time.  It is at least nine 
years 
old and, well, it just runs. 

For various reasons related to other peoples budgets it will run for a long 
while
yet however I did need a few "newer" things on it.  Like a decent sed and bash
and perl and such things.  No rocket science here. 

So here is what I have in /usr/local/bin : 

mimas$ ls /usr/local/bin
a2p               cpanp-run-perl    msgconv           pod2latex
aclocal           enc2xs            msgen             pod2man
aclocal-1.14      envsubst          msgexec           pod2text
autoconf          find2perl         msgfilter         pod2usage
autoheader        gettext           msgfmt            podchecker
autom4te          gettextize        msggrep           podselect
automake          gettext.sh        msginit           prove
automake-1.14     gm4               msgmerge          psed
autopoint         gmake             msgunfmt          pstruct
autopoint_backup  gsed              msguniq           ptar
autoreconf        h2ph              ngettext          ptardiff
autoscan          h2xs              patch             ptargrep
autoupdate        iconv             perl              recode-sr-latin
bash              ifnames           perl5.18.0        s2p
bashbug           instmodsh         perlbug           sed
c2ph              json_pp           perldoc           shasum
config_data       libnetcfg         perlivp           splain
corelist          msgattrib         perlthanks        xgettext
cpan              msgcat            piconv            xsubpp
cpan2dist         msgcmp            pl2pm             zipdetails
cpanp             msgcomm           pod2html


Most things build from source with a simple configure line and then the usual
dance of gmake, gmake check followed by gmake install.  A few things need
a little help, but not much really.  See automake and perl there ?  Both build 
well and are up to date releases direct from http://ftp.gnu.org/pub/gnu .

Until I hit flex which needs me to run "autoreconf --force --install" and that 
works
fine.  Until I try to do a build and need texinfo.  Then texinfo needs libtool. 
So 
then I download the source to libtool and extract it and fall into this trap. 

> Have you tried using the `--disable-maintainer-mode' option at
> configure?  This tells automake that it does not need to remake any
> autoconf/automake/libtool files that it might think it needs to due to
> timestamp oddities.  Hope this helps.

Never knew about that one. 

I will try right now :

mimas$ pwd
/usr/local/build
mimas$ mdigest -a sha1 ../src/libtool-2.4.2.tar.gz 
22b71a8b5ce3ad86e1094e7285981cae10e6ff88  ../src/libtool-2.4.2.tar.gz
mimas$ gzip -dc ../src/libtool-2.4.2.tar.gz | tar -xf - 
mimas$ mv libtool-2.4.2 libtool-2.4.2_SunOS5.8_sparcv9.002
mimas$ cd libtool-2.4.2_SunOS5.8_sparcv9.002

Here is where that option looks to be non-functional right away : 

mimas$ ./configure --enable-dependency-tracking --enable-shared \
> --enable-static --disable-maintainer-mode
configure: WARNING: unrecognized options: --disable-maintainer-mode
## ------------------------- ##
## Configuring libtool 2.4.2 ##
## ------------------------- ##

checking for a BSD-compatible install... libltdl/config/install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... libltdl/config/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
.
.
.
etc 

   bad stuff 


so that option looks to be non-existant.


let's try ye good ol'fashioned simplistic configure : 


mimas$ ./configure --enable-dependency-tracking --enable-shared --enable-static
## ------------------------- ##
## Configuring libtool 2.4.2 ##
## ------------------------- ##

checking for a BSD-compatible install... libltdl/config/install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... libltdl/config/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether /usr/local/bin/gmake sets $(MAKE)... yes
checking build system type... sparc-sun-solaris2.8
checking host system type... sparc-sun-solaris2.8
configure: autobuild project... GNU Libtool
configure: autobuild revision... 2.4.2 ()
configure: autobuild hostname... mimas
configure: autobuild mode... default
configure: autobuild timestamp... 20130718T021321Z
checking for gcc... /opt/studio/SOS11/SUNWspro/bin/cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether /opt/studio/SOS11/SUNWspro/bin/cc accepts -g... yes
checking for /opt/studio/SOS11/SUNWspro/bin/cc option to accept ISO C89... none 
needed
checking for style of include used by /usr/local/bin/gmake... GNU
checking dependency style of /opt/studio/SOS11/SUNWspro/bin/cc... dashXmstdout
checking whether /opt/studio/SOS11/SUNWspro/bin/cc and cc understand -c and -o 
together... yes
checking how to run the C preprocessor... /opt/studio/SOS11/SUNWspro/bin/cc -E
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/local/bin/gsed
checking for grep that handles long lines and -e... /usr/xpg4/bin/grep
checking for egrep... /usr/xpg4/bin/grep -E
checking for fgrep... /usr/xpg4/bin/grep -F
checking for non-GNU ld... /usr/ccs/bin/sparcv9/ld
checking if the linker (/usr/ccs/bin/sparcv9/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/ccs/bin/nm -p
checking the name lister (/usr/ccs/bin/nm -p) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786240
checking whether the shell understands some XSI constructs... no
checking whether the shell understands "+="... no
checking how to convert sparc-sun-solaris2.8 file names to sparc-sun-solaris2.8 
format... func_convert_file_noop
checking how to convert sparc-sun-solaris2.8 file names to toolchain format... 
func_convert_file_noop
checking for /usr/ccs/bin/sparcv9/ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/ccs/bin/nm -p output from 
/opt/studio/SOS11/SUNWspro/bin/cc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... no
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking for /opt/studio/SOS11/SUNWspro/bin/cc option to produce PIC... -KPIC 
-DPIC
checking if /opt/studio/SOS11/SUNWspro/bin/cc PIC flag -KPIC -DPIC works... yes
checking if /opt/studio/SOS11/SUNWspro/bin/cc static flag -Bstatic works... no
checking if /opt/studio/SOS11/SUNWspro/bin/cc supports -c -o file.o... yes
checking if /opt/studio/SOS11/SUNWspro/bin/cc supports -c -o file.o... (cached) 
yes
checking whether the /opt/studio/SOS11/SUNWspro/bin/cc linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.8 ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... yes
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking which extension is used for runtime loadable modules... .so
checking which variable specifies run-time module search path... LD_LIBRARY_PATH
checking for the default library search path... /lib /usr/lib
checking for library containing dlopen... -ldl
checking for dlerror... yes
checking for shl_load... (cached) no
checking for shl_load in -ldld... (cached) no
checking for dld_link in -ldld... no
checking for _ prefix in compiled symbols... no
checking whether deplibs are loaded by dlopen... yes
checking for argz.h... no
checking for error_t... no
checking for argz_add... no
checking for argz_append... no
checking for argz_count... no
checking for argz_create_sep... no
checking for argz_insert... no
checking for argz_next... no
checking for argz_stringify... no
checking whether libtool supports -dlopen/-dlpreopen... yes
checking for unistd.h... (cached) yes
checking for dl.h... no
checking for sys/dl.h... yes
checking for dld.h... no
checking for mach-o/dyld.h... no
checking for dirent.h... yes
checking for closedir... yes
checking for opendir... yes
checking for readdir... yes
checking for strlcat... yes
checking for strlcpy... yes
checking whether we are using the GNU C++ compiler... no
checking whether /opt/studio/SOS11/SUNWspro/bin/CC accepts -g... yes
checking dependency style of /opt/studio/SOS11/SUNWspro/bin/CC... dashXmstdout
checking how to run the C++ preprocessor... /opt/studio/SOS11/SUNWspro/bin/CC -E
checking whether the /opt/studio/SOS11/SUNWspro/bin/CC linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking for /opt/studio/SOS11/SUNWspro/bin/CC option to produce PIC... -KPIC 
-DPIC
checking if /opt/studio/SOS11/SUNWspro/bin/CC PIC flag -KPIC -DPIC works... yes
checking if /opt/studio/SOS11/SUNWspro/bin/CC static flag -Bstatic works... no
checking if /opt/studio/SOS11/SUNWspro/bin/CC supports -c -o file.o... yes
checking if /opt/studio/SOS11/SUNWspro/bin/CC supports -c -o file.o... (cached) 
yes
checking whether the /opt/studio/SOS11/SUNWspro/bin/CC linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.8 ld.so
checking how to hardcode library paths into programs... immediate
checking whether we are using the GNU Fortran 77 compiler... no
checking whether /opt/studio/SOS11/SUNWspro/bin/f90 accepts -g... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for /opt/studio/SOS11/SUNWspro/bin/f90 option to produce PIC... -KPIC
checking if /opt/studio/SOS11/SUNWspro/bin/f90 PIC flag -KPIC works... yes
checking if /opt/studio/SOS11/SUNWspro/bin/f90 static flag -Bstatic works... no
checking if /opt/studio/SOS11/SUNWspro/bin/f90 supports -c -o file.o... yes
checking if /opt/studio/SOS11/SUNWspro/bin/f90 supports -c -o file.o... 
(cached) yes
checking whether the /opt/studio/SOS11/SUNWspro/bin/f90 linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.8 ld.so
checking how to hardcode library paths into programs... immediate
checking whether we are using the GNU Fortran compiler... no
checking whether /opt/studio/SOS11/SUNWspro/bin/f90 accepts -g... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for /opt/studio/SOS11/SUNWspro/bin/f90 option to produce PIC... -KPIC
checking if /opt/studio/SOS11/SUNWspro/bin/f90 PIC flag -KPIC works... yes
checking if /opt/studio/SOS11/SUNWspro/bin/f90 static flag -Bstatic works... no
checking if /opt/studio/SOS11/SUNWspro/bin/f90 supports -c -o file.o... yes
checking if /opt/studio/SOS11/SUNWspro/bin/f90 supports -c -o file.o... 
(cached) yes
checking whether the /opt/studio/SOS11/SUNWspro/bin/f90 linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.8 ld.so
checking how to hardcode library paths into programs... immediate
checking for gccgo... no
checking for gcj... no
checking for windres... no
checking whether /usr/local/bin/gmake supports order-only prerequisites... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing tests/atconfig commands
config.status: executing depfiles commands
config.status: executing libtool commands
mimas$ 

Nothing too scary there at all.

Let's fire off a gmake : 

Well eventually that fails as before with some dependency and weird version 
requirements :


.
.
.
checking for gccgo... no
checking for gcj... no
checking for windres... no
checking whether /usr/local/bin/gmake supports order-only prerequisites... yes
configure: creating ./config.status
 /usr/local/bin/bash ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing tests/atconfig commands
config.status: executing depfiles commands
config.status: executing libtool commands
rm -f libtoolize.tmp libtoolize
sed -e 's,@aclocal_DATA\@,m4/argz.m4 m4/libtool.m4 m4/ltdl.m4 m4/ltoptions.m4 
m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4,g' -e 
's,@aclocaldir\@,/usr/local/share/aclocal,g' -e 
's,@datadir\@,/usr/local/share,g' -e 's,@EGREP\@,/usr/xpg4/bin/grep -E,g' -e 
's,@FGREP\@,/usr/xpg4/bin/grep -F,g' -e 's,@GREP\@,/usr/xpg4/bin/grep,g' -e 
's,@host_triplet\@,sparc-sun-solaris2.8,g' -e 's,@LN_S\@,ln -s,g' -e 
"s,@pkgconfig_files\@,config/compile config/config.guess config/config.sub 
config/depcomp config/install-sh config/missing config/ltmain.sh,g" -e 
's,@pkgdatadir\@,/usr/local/share/libtool,g' -e 
"s,@pkgltdl_files\@,libltdl/COPYING.LIB libltdl/README libltdl/Makefile.inc 
libltdl/Makefile.am libltdl/configure.ac libltdl/aclocal.m4 libltdl/Makefile.in 
libltdl/config-h.in libltdl/configure libltdl/argz_.h libltdl/argz.c 
libltdl/loaders/dld_link.c libltdl/loaders/dlopen.c libltdl/loaders/dyld.c 
libltdl/loaders/load_add_on.c libltdl/loaders/loadlibrary.c 
libltdl/loaders/shl_load.c libltd
l/lt__dirent.c libltdl/lt__strl.c libltdl/libltdl/lt__alloc.h 
libltdl/libltdl/lt__dirent.h libltdl/libltdl/lt__glibc.h 
libltdl/libltdl/lt__private.h libltdl/libltdl/lt__strl.h 
libltdl/libltdl/lt_dlloader.h libltdl/libltdl/lt_error.h 
libltdl/libltdl/lt_system.h libltdl/libltdl/slist.h libltdl/loaders/preopen.c 
libltdl/lt__alloc.c libltdl/lt_dlloader.c libltdl/lt_error.c libltdl/ltdl.c 
libltdl/ltdl.h libltdl/slist.c,g" -e 's,@prefix\@,/usr/local,g' -e 
's,@SED\@,/usr/local/bin/gsed,g' \
        ./libtoolize.in > libtoolize.tmp
chmod a+x libtoolize.tmp
chmod a-w libtoolize.tmp
mv -f libtoolize.tmp libtoolize
/usr/local/bin/bash 
/usr/local/build/libtool-2.4.2_SunOS5.8_sparcv9.002/libltdl/config/install-sh 
-d . libltdl/
cp ./libltdl/argz_.h libltdl/argz.h-t
mv libltdl/argz.h-t libltdl/argz.h
(CDPATH="${ZSH_VERSION+.}:" && cd . && /usr/local/bin/bash 
/usr/local/build/libtool-2.4.2_SunOS5.8_sparcv9.002/libltdl/config/missing 
--run autoheader)
rm -f stamp-h1
touch config-h.in
cd . && /usr/local/bin/bash ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
/usr/local/bin/gmake  all-recursive
gmake[1]: Entering directory 
`/usr/local/build/libtool-2.4.2_SunOS5.8_sparcv9.002'
gmake[2]: Entering directory 
`/usr/local/build/libtool-2.4.2_SunOS5.8_sparcv9.002'
test -f doc/.dirstamp || /usr/local/bin/gmake  doc/.dirstamp
gmake[3]: Entering directory 
`/usr/local/build/libtool-2.4.2_SunOS5.8_sparcv9.002'
gmake[3]: Leaving directory 
`/usr/local/build/libtool-2.4.2_SunOS5.8_sparcv9.002'
source='libltdl/loaders/preopen.c' 
object='libltdl/loaders/libltdl_libltdl_la-preopen.lo' libtool=yes \
DEPDIR=.deps depmode=dashXmstdout /usr/local/bin/bash ./libltdl/config/depcomp \
/usr/local/bin/bash ./libtool  --tag=CC   --mode=compile 
/opt/studio/SOS11/SUNWspro/bin/cc -DHAVE_CONFIG_H -I.  -DLTDLOPEN=libltdl 
-DLT_CONFIG_H='<config.h>' -DLTDL -I. -I. -Ilibltdl -I./libltdl 
-I./libltdl/libltdl   -dy -xmemalign=8s -errfmt=error -erroff=%none 
-errshort=full -errwarn=%none -fns=no -ftrap=%none -xarch=v9 -xcode=pic32 -g -i 
-mc -Qy -v -Wl,-R/usr/local/lib -Xa -xbuiltin=%none -xcache=generic 
-xchip=ultra -xdebugformat=dwarf -xdepend=no -xjobs=1 -xlinkopt=0 -xnolibmil 
-xnolibmopt -xprefetch=auto,explicit -xregs=no%appl,float -xrestrict=%none -xs 
-xstrconst -xtemp=/var/tmp -xunroll=1 -xvis=no -Dsun=1 -Dunix=1 -Dsparc=1 
-D__sparcv9 -D__sun -D__unix -D__SUNPRO_C=0x580 -D__SunOS_5_8 -D__sparc 
-D__SVR4 -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO -c -o 
libltdl/loaders/libltdl_libltdl_la-preopen.lo `test -f 
'libltdl/loaders/preopen.c' || echo './'`libltdl/loaders/preopen.c
libtool: Version mismatch error.  This is libtool 2.4.2, revision 1.3337,
libtool: but the definition of this LT_INIT comes from revision 1.3201.
libtool: You should recreate aclocal.m4 with macros from revision 1.3337
libtool: of libtool 2.4.2 and run autoconf again.
gmake[2]: *** [libltdl/loaders/libltdl_libltdl_la-preopen.lo] Error 63
gmake[2]: Leaving directory 
`/usr/local/build/libtool-2.4.2_SunOS5.8_sparcv9.002'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory 
`/usr/local/build/libtool-2.4.2_SunOS5.8_sparcv9.002'
gmake: *** [all] Error 2
mimas$ 

So there we see some strange noises made. 

I guess I am to run autoconf or autoreconf or ?  What magic is required to 
build libtool 
from the sources ?   Any insights would be helpful.

Dennis 






reply via email to

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