[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