bug-libtool
[Top][All Lists]
Advanced

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

libtool 1.4 leaves .o.lock file lying around


From: Bruno Haible
Subject: libtool 1.4 leaves .o.lock file lying around
Date: Fri, 29 Jun 2001 20:37:51 +0200 (CEST)

Hi,

On IRIX 6.5, libtool 1.4 leaves a .o.lock file on the disk. I have to
remove it later during "make clean".

To reproduce,
- take libiconv-1.7 from ftp://ftp.gnu.org/pub/gnu/libiconv/
- configure and compile:
   $ CC="cc -O" ./configure
   $ make
   $ ls -li libtool libcharset/libtool libcharset/lib/localcharset.o.lock
272318 -rwxr-xr-x    2 haible   talk      146616 Jun 29 20:18 
libcharset/lib/localcharset.o.lock
272318 -rwxr-xr-x    2 haible   talk      146616 Jun 29 20:18 libcharset/libtool
 99512 -rwxr-xr-x    1 haible   talk      146628 Jun 29 20:17 libtool

I think libtool ought to remove its lock files once the compilation is
done, because it's only a means to make parallel builds work.

Bruno


Appendix:
- Start of libcharset/libtool.
- Differences between ./libtool and libcharset/libtool. There seem to
  be some backslashification problems when reading/writing sed expressions
  from the autoconf cache.
- Complete execution log.

=================== diff libtool libcharset/libtool ===================
4c4
< # Generated automatically by  (GNU libiconv )
---
> # Generated automatically by  (GNU libcharset 1.0)
50c50
< build_old_libs=no
---
> build_old_libs=yes
212c212
< global_symbol_pipe="sed -n -e 's/^.*[         ]\\([BCDEGRST][BCDEGRST]*\\)[   
][      ]*\\(\\)\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2\\3 \\3/p'"
---
> global_symbol_pipe="sed -n -e 's/^\\^.*[      ]([BCDEGRST][BCDEGRST]*)[       
> ][      ]*()([_A-Za-z][_A-Za-z0-9]*)\$/1 23 3/p\\"
215c215
< global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern char \\1;/p'"
---
> global_symbol_to_cdecl="sed -n -e 's/^\\^. .* (.*)\$/extern char 1;/p\\"

================ Start of libcharset/libtool: =====================
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed="sed -e s/^X//"

# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi

# ### BEGIN LIBTOOL CONFIG

# Libtool was configured on host lecourbe:

# Shell to use when invoking shell scripts.
SHELL="/bin/sh"

# Whether or not to build shared libraries.
build_libtool_libs=yes

# Whether or not to add -lc for building shared libraries.
build_libtool_need_lc=yes

# Whether or not to build static libraries.
build_old_libs=yes

# Whether or not to optimize for fast installation.
fast_install=yes

# The host system.
host_alias=mips-sgi-irix6.5
host=mips-sgi-irix6.5

# An echo program that does not interpret backslashes.
echo="print -r"

# The archiver.
AR="ar"
AR_FLAGS="cru"

# The default C compiler.
CC="cc -O"

# Is the compiler the GNU C compiler?
with_gcc=

# The linker used to build libraries.
LD="/bin/ld -n32"

# Whether we need hard or soft links.
LN_S="ln -s"

# A BSD-compatible nm program.
NM="/bin/nm -B"

# A symbol stripping program
STRIP=strip

# Used to examine libraries when file_magic_cmd begins "file"
MAGIC_CMD=file

# Used on cygwin: DLL creation program.
DLLTOOL="dlltool"

# Used on cygwin: object dumper.
OBJDUMP="objdump"

# Used on cygwin: assembler.
AS="as"

# The name of the directory that contains temporary libtool files.
objdir=.libs

# How to create reloadable object files.
reload_flag=" -r"
reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"

# How to pass a linker flag through the compiler.
wl="-Wl,"

# Object file suffix (normally "o").
objext="o"

# Old archive suffix (normally "a").
libext="a"

# Executable file suffix (normally "").
exeext=""

# Additional compiler flags for building library objects.
pic_flag=""
pic_mode=default

# Does compiler simultaneously support -c and -o options?
compiler_c_o="no"

# Can we write directly to a .lo ?
compiler_o_lo="no"

# Must we lock files when doing compilation ?
need_locks="yes"

# Do we need the lib prefix for modules?
need_lib_prefix=no

# Do we need a version for libraries?
need_version=no

# Whether dlopen is supported.
dlopen_support=unknown

# Whether dlopen of programs is supported.
dlopen_self=unknown

# Whether dlopen of statically linked programs is supported.
dlopen_self_static=unknown

# Compiler flag to prevent dynamic linking.
link_static_flag=""

# Compiler flag to turn off builtin functions.
no_builtin_flag=""

# Compiler flag to allow reflexive dlopens.
export_dynamic_flag_spec=""

# Compiler flag to generate shared objects directly from archives.
whole_archive_flag_spec=""

# Compiler flag to generate thread-safe objects.
thread_safe_flag_spec=""

# Library versioning type.
version_type=irix

# Format of library name prefix.
libname_spec="lib\$name"

# List of archive names.  First name is the real one, the rest are links.
# The last name is the one that the linker finds with -lNAME.
library_names_spec="\${libname}\${release}.so\$versuffix 
\${libname}\${release}.so\$major \${libname}\${release}.so \$libname.so"

# The coded name of the library, if different from the real name.
soname_spec="\${libname}\${release}.so\$major"

# Commands used to build and install an old-style archive.
RANLIB="ranlib"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs\$old_deplibs~\$RANLIB 
\$oldlib"
old_postinstall_cmds="\$RANLIB \$oldlib~chmod 644 \$oldlib"
old_postuninstall_cmds=""

# Create an old-style archive from a shared archive.
old_archive_from_new_cmds=""

# Create a temporary old-style archive to link instead of a shared archive.
old_archive_from_expsyms_cmds=""

# Commands used to build and install a shared archive.
archive_cmds="\$LD -shared \$libobjs \$deplibs \$linker_flags -soname \$soname 
\\\`test -n \\\"\$verstring\\\" && echo -set_version \$verstring\\\` 
-update_registry \${output_objdir}/so_locations -o \$lib"
archive_expsym_cmds=""
postinstall_cmds=""
postuninstall_cmds=""

# Commands to strip libraries.
old_striplib=""
striplib=""

# Method to check whether dependent libraries are shared objects.
deplibs_check_method="pass_all"

# Command to use when deplibs_check_method == file_magic.
file_magic_cmd="\$MAGIC_CMD"

# Flag that allows shared libraries with undefined symbols to be built.
allow_undefined_flag=""

# Flag that forces no undefined symbols.
no_undefined_flag=""

# Commands used to finish a libtool library installation in a directory.
finish_cmds=""

# Same as above, but a single script fragment to be evaled but not shown.
finish_eval=""

# Take the output of nm and produce a listing of raw symbols and C names.
global_symbol_pipe="sed -n -e 's/^\\^.*[        ]([BCDEGRST][BCDEGRST]*)[       
][      ]*()([_A-Za-z][_A-Za-z0-9]*)\$/1 23 3/p\\"

# Transform the output of nm in a proper C declaration
global_symbol_to_cdecl="sed -n -e 's/^\\^. .* (.*)\$/extern char 1;/p\\"

# This is the shared library runtime path variable.
runpath_var=

# This is the shared library path variable.
shlibpath_var=LD_LIBRARYN32_PATH

# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=no

# How to hardcode a shared library path into an executable.
hardcode_action=immediate

# Whether we should hardcode library paths into libraries.
hardcode_into_libs=no

# Flag to hardcode $libdir into a binary during linking.
# This must work even if $libdir does not exist.
hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"

# Whether we need a single -rpath flag with a separated argument.
hardcode_libdir_separator=":"

# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
# resulting binary.
hardcode_direct=no

# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
# resulting binary.
hardcode_minus_L=no

# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
# the resulting binary.
hardcode_shlibpath_var=unsupported

# Variables whose values should be saved in libtool wrapper scripts and
# restored at relink time.
variables_saved_for_relink="PATH LD_LIBRARYN32_PATH "

# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=yes

# Compile-time system search path for libraries
sys_lib_search_path_spec="/usr/lib32 /lib32 /usr/local/lib32"

# Run-time system search path for libraries
sys_lib_dlsearch_path_spec="/usr/lib32 /lib32"

# Fix the shell variable $srcfile for the compiler.
fix_srcfile_path=""

# Set to yes if exported symbols are required.
always_export_symbols=no

# The commands to list exported symbols.
export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | sed 
's/.* //' | sort | uniq > \$export_symbols"

# The commands to extract the exported symbol list from a shared archive.
extract_expsyms_cmds=""

# Symbols that should not be listed in the preloaded symbols.
exclude_expsyms="_GLOBAL_OFFSET_TABLE_"

# Symbols that must always be exported.
include_expsyms=""

# ### END LIBTOOL CONFIG

========================================================================
haible:/home/haible/libiconv-1.7 $ CC="cc -O" ./configure
creating cache ./config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... cc -O
checking whether the C compiler (cc -O  ) works... yes
checking whether the C compiler (cc -O  ) is a cross-compiler... no
checking whether we are using GNU C... no
checking how to run the C preprocessor... /lib/cpp
checking for ranlib... ranlib
checking for a BSD compatible install... cp
checking how to copy files... cp -p
checking how to make hard links... ln
checking whether ln -s works... yes
checking host system type... mips-sgi-irix6.5
checking for AIX... no
checking for minix/config.h... no
checking for POSIXized ISC... no
checking for object suffix... o
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for executable suffix... no
checking build system type... mips-sgi-irix6.5
checking for non-GNU ld... /bin/ld
checking if the linker (/bin/ld) is GNU ld... no
checking for /bin/ld option to reload object files... -r
checking for BSD-compatible nm... /bin/nm -B
checking how to recognise dependant libraries... pass_all
checking command to parse /bin/nm -B output... ok
checking for dlfcn.h... yes
checking for ranlib... (cached) ranlib
checking for strip... strip
checking for objdir... .libs
checking for cc option to produce PIC... none
checking if cc static flag -non_shared works... no
checking if cc supports -c -o file.o... no
checking if we can lock with hard links... yes
checking whether the linker (/bin/ld -n32) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking dynamic linker characteristics... irix6.5 ld.so
checking if libtool supports shared libraries... yes
creating libtool
checking for locale.h... yes
checking for stdlib.h... yes
checking for mbstate_t... yes
checking for iconv... yes
checking for iconv declaration... 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, 
char * *outbuf, size_t* outbytesleft);
checking for mbrtowc... no
checking for wcrtomb... no
checking for setlocale... yes
checking byte ordering... big endian
updating cache ./config.cache
creating ./config.status
creating Makefile
creating lib/Makefile
creating src/Makefile
creating man/Makefile
creating tests/Makefile
creating include/iconv.h
creating lib/config.h
configuring in libcharset
running /bin/sh ./configure  --cache-file=../config.cache --srcdir=.
loading cache ../config.cache
checking whether make sets ${MAKE}... (cached) yes
checking for gcc... (cached) cc -O
checking whether the C compiler (cc -O  ) works... yes
checking whether the C compiler (cc -O  ) is a cross-compiler... no
checking whether we are using GNU C... (cached) no
checking whether cc -O accepts -g... no
checking how to run the C preprocessor... (cached) /lib/cpp
checking for a BSD compatible install... autoconf/install-sh -c
checking host system type... mips-sgi-irix6.5
checking for AIX... no
checking for minix/config.h... (cached) no
checking for POSIXized ISC... no
checking for object suffix... (cached) o
checking for Cygwin environment... (cached) no
checking for mingw32 environment... (cached) no
checking for executable suffix... (cached) no
checking build system type... mips-sgi-irix6.5
checking for non-GNU ld... (cached) /bin/ld
checking if the linker (/bin/ld) is GNU ld... (cached) no
checking for /bin/ld option to reload object files... (cached) -r
checking for BSD-compatible nm... (cached) /bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependant libraries... (cached) pass_all
checking command to parse /bin/nm -B output... (cached) ok
checking for dlfcn.h... (cached) yes
checking for ranlib... (cached) ranlib
checking for strip... (cached) strip
checking for objdir... .libs
checking for cc option to produce PIC... (cached) none
checking if cc static flag  works... (cached) no
checking if cc supports -c -o file.o... (cached) no
checking if we can lock with hard links... yes
checking whether the linker (/bin/ld -n32) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking dynamic linker characteristics... irix6.5 ld.so
checking if libtool supports shared libraries... yes
creating libtool
checking for langinfo.h... yes
checking for nl_langinfo... yes
checking for nl_langinfo and CODESET... yes
checking whether we are using the GNU C Library 2.1 or newer... no
checking for stddef.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... yes
checking for setlocale... (cached) yes
updating cache ../config.cache
creating ./config.status
creating Makefile
creating lib/Makefile
creating config.h
haible:/home/haible/libiconv-1.7 $ make
builddir="`pwd`"; cd libcharset && make all && make install-lib 
libdir="$builddir/lib" includedir="$builddir/lib"
make[1]: Entering directory `/home/haible/libiconv-1.7/libcharset'
if [ ! -d include ] ; then mkdir include ; fi
cp ./include/libcharset.h.in include/libcharset.h
cd lib && make all
make[2]: Entering directory `/home/haible/libiconv-1.7/libcharset/lib'
/bin/sh ../libtool --mode=compile cc -O -I. -I. -I.. -I./..   -DHAVE_CONFIG_H 
-DLIBDIR=\"/usr/local/lib\" -c ./localcharset.c
mkdir .libs
cc -O -I. -I. -I.. -I./.. -DHAVE_CONFIG_H "-DLIBDIR=\"/usr/local/lib\"" -c 
./localcharset.c  -DPIC
mv -f localcharset.o .libs/localcharset.lo
mv -f .libs/localcharset.lo localcharset.o
(cd . && ln -s localcharset.o localcharset.lo)
/bin/sh ../libtool --mode=link cc -O  -o libcharset.la -rpath /usr/local/lib 
-version-info 1:0:0 -no-undefined localcharset.lo
rm -fr .libs/libcharset.la .libs/libcharset.* .libs/libcharset.*
/bin/ld -n32 -shared  localcharset.o   -lc  -soname libcharset.so.2 `test -n 
"sgi2.0" && echo -set_version sgi2.0` -update_registry .libs/so_locations -o 
.libs/libcharset.so.2.0
(cd .libs && rm -f libcharset.so.2 && ln -s libcharset.so.2.0 libcharset.so.2)
(cd .libs && rm -f libcharset.so && ln -s libcharset.so.2.0 libcharset.so)
(cd .libs && rm -f libcharset.so && ln -s libcharset.so.2.0 libcharset.so)
ar cru .libs/libcharset.a  localcharset.o 
ranlib .libs/libcharset.a
creating libcharset.la
(cd .libs && rm -f libcharset.la && ln -s ../libcharset.la libcharset.la)
/bin/sh ./config.charset 'mips-sgi-irix6.5' > t-charset.alias
mv t-charset.alias charset.alias
sed -e '/^#/d' -e 's/@''PACKAGE''@/libcharset/g' ./ref-add.sin > t-ref-add.sed
mv t-ref-add.sed ref-add.sed
sed -e '/^#/d' -e 's/@''PACKAGE''@/libcharset/g' ./ref-del.sin > t-ref-del.sed
mv t-ref-del.sed ref-del.sed
make[2]: Leaving directory `/home/haible/libiconv-1.7/libcharset/lib'
make[1]: Leaving directory `/home/haible/libiconv-1.7/libcharset'
make[1]: Entering directory `/home/haible/libiconv-1.7/libcharset'
cd lib && make all
make[2]: Entering directory `/home/haible/libiconv-1.7/libcharset/lib'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/haible/libiconv-1.7/libcharset/lib'
cd lib && make install-lib libdir='/home/haible/libiconv-1.7/lib' 
includedir='/home/haible/libiconv-1.7/lib'
make[2]: Entering directory `/home/haible/libiconv-1.7/libcharset/lib'
/bin/sh ./../autoconf/mkinstalldirs /home/haible/libiconv-1.7/lib
/bin/sh ../libtool --mode=install ../autoconf/install-sh -c -m 644 
libcharset.la /home/haible/libiconv-1.7/lib/libcharset.la
../autoconf/install-sh -c -m 644 .libs/libcharset.so.2.0 
/home/haible/libiconv-1.7/lib/libcharset.so.2.0
(cd /home/haible/libiconv-1.7/lib && rm -f libcharset.so.2 && ln -s 
libcharset.so.2.0 libcharset.so.2)
(cd /home/haible/libiconv-1.7/lib && rm -f libcharset.so && ln -s 
libcharset.so.2.0 libcharset.so)
(cd /home/haible/libiconv-1.7/lib && rm -f libcharset.so && ln -s 
libcharset.so.2.0 libcharset.so)
../autoconf/install-sh -c -m 644 .libs/libcharset.lai 
/home/haible/libiconv-1.7/lib/libcharset.la
../autoconf/install-sh -c -m 644 .libs/libcharset.a 
/home/haible/libiconv-1.7/lib/libcharset.a
ranlib /home/haible/libiconv-1.7/lib/libcharset.a
chmod 644 /home/haible/libiconv-1.7/lib/libcharset.a
libtool: install: warning: remember to run `libtool --finish /usr/local/lib'
test -f /home/haible/libiconv-1.7/lib/charset.alias && 
orig=/home/haible/libiconv-1.7/lib/charset.alias \
                                || orig=charset.alias; \
sed -f ref-add.sed $orig > /home/haible/libiconv-1.7/lib/t-charset.alias; \
../autoconf/install-sh -c -m 644 /home/haible/libiconv-1.7/lib/t-charset.alias 
/home/haible/libiconv-1.7/lib/charset.alias; \
rm -f /home/haible/libiconv-1.7/lib/t-charset.alias
make[2]: Leaving directory `/home/haible/libiconv-1.7/libcharset/lib'
/bin/sh ./autoconf/mkinstalldirs /home/haible/libiconv-1.7/lib
autoconf/install-sh -c -m 644 include/libcharset.h 
/home/haible/libiconv-1.7/lib/libcharset.h
make[1]: Leaving directory `/home/haible/libiconv-1.7/libcharset'
cd lib && make all
make[1]: Entering directory `/home/haible/libiconv-1.7/lib'
/bin/sh ../libtool --mode=compile cc -O -I. -I. -I../include -I./../include   
-c ./iconv.c
cc -O -I. -I. -I../include -I./../include -c ./iconv.c  -DPIC
mv -f iconv.o iconv.lo
/bin/sh ../libtool --mode=link cc -O  -o libiconv.la -rpath /usr/local/lib 
-version-info 2:4:0 -no-undefined iconv.lo ../libcharset/lib/localcharset.lo
mkdir .libs
rm -fr .libs/libiconv.la .libs/libiconv.* .libs/libiconv.*
(cd . && ln -s iconv.lo iconv.o)
/bin/ld -n32 -shared  iconv.o ../libcharset/lib/localcharset.o   -lc  -soname 
libiconv.so.3 `test -n "sgi3.3:sgi3.2:sgi3.1:sgi3.0:sgi3.4" && echo 
-set_version sgi3.3:sgi3.2:sgi3.1:sgi3.0:sgi3.4` -update_registry 
.libs/so_locations -o .libs/libiconv.so.3.4
(cd .libs && rm -f libiconv.so.3 && ln -s libiconv.so.3.4 libiconv.so.3)
(cd .libs && rm -f libiconv.so && ln -s libiconv.so.3.4 libiconv.so)
(cd .libs && rm -f libiconv.so && ln -s libiconv.so.3.4 libiconv.so)
creating libiconv.la
(cd .libs && rm -f libiconv.la && ln -s ../libiconv.la libiconv.la)
make[1]: Leaving directory `/home/haible/libiconv-1.7/lib'
cd src && make all
make[1]: Entering directory `/home/haible/libiconv-1.7/src'
/bin/sh ../libtool --mode=link cc -O  -I. -I. -I../include -I./../include 
-I../lib   ./iconv.c ../lib/libiconv.la -o iconv
mkdir .libs
cc -O -I. -I. -I../include -I./../include -I../lib ./iconv.c -o .libs/iconv  
../lib/.libs/libiconv.so -Wl,-rpath -Wl,/usr/local/lib
creating iconv
make[1]: Leaving directory `/home/haible/libiconv-1.7/src'
cd man && make all
make[1]: Entering directory `/home/haible/libiconv-1.7/man'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/haible/libiconv-1.7/man'
if test -d tests; then cd tests && make all; fi
make[1]: Entering directory `/home/haible/libiconv-1.7/tests'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/haible/libiconv-1.7/tests'
haible:/home/haible/libiconv-1.7 $ find . -name libtool
./libcharset/libtool
./libtool
haible:/home/haible/libiconv-1.7 $ find . -name '*.lock'
./libcharset/lib/localcharset.o.lock
haible:/home/haible/libiconv-1.7 $ ls -li libtool libcharset/libtool 
libcharset/lib/localcharset.o.lock
272318 -rwxr-xr-x    2 haible   user      146616 Jun 29 20:18 
libcharset/lib/localcharset.o.lock
272318 -rwxr-xr-x    2 haible   user      146616 Jun 29 20:18 libcharset/libtool
 99512 -rwxr-xr-x    1 haible   user      146628 Jun 29 20:17 libtool



reply via email to

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