Subject: bug#10143: [GNU libtool 2.4.2.135-aa59c] Various tests failed on Solaris 10 with the Sun Studio compilers

From: Stefano Lattarini <[email-masked]>
Date: Sat, 26 Nov 2011 12:19:25 +0100

I've run the testsuite of libtool in a VPATH build on Solaris 10, using
the C, C++ and Fortran compilers from Sun Studio 5.9 (2010/10/14), with
the patch series posted here applied:

  <http://lists.gnu.org/archive/html/libtool-patches/2011-11/msg00160.html>

Here is the commands I've used to run the testsuite:

  $ mkdir BUILD-sunstudio
  $ cd BUILD-sunstudio
  $ nohup sh -c '
  >   export COMPILER=sun;
  >   export CONFIG_SITE=/usr/local/share/config.site;
  >   ../configure && make && make -k check
  > ' &

Attached are the generated output (`nohup.out'), and the files
`config.log', and `tests/testsuite.log' (compressed).

Regards,
  Stefano
configure: loading site script /usr/local/share/config.site
Applying settings for 32-bit build ...
Using Sun Studio compiler ...
CC       = "/opt/SUNWspro/bin/cc"
CXX      = "/opt/SUNWspro/bin/CC"
F77      = "/opt/SUNWspro/bin/f77"
FC       = "/opt/SUNWspro/bin/f95"
CFLAGS   = "-v -xO3 -xtarget=native -errtags=yes -erroff=E_END_OF_LOOP_CODE_NOT_REACHED,E_STATEMENT_NOT_REACHED"
CXXFLAGS = "-xO3"
CPPFLAGS = "-I/usr/local/include"
LDFLAGS  = "-L/usr/local/lib"
## ----------------------------------- ##
## Configuring libtool 2.4.2.135-aa59c ##
## ----------------------------------- ##

checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /opt/sfw/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... i386-pc-solaris2.10
checking host system type... i386-pc-solaris2.10
configure: autobuild project... GNU Libtool
configure: autobuild revision... 2.4.2.135-aa59c
configure: autobuild hostname... freddy
configure: autobuild mode... default
configure: autobuild timestamp... 20111126T103413Z
checking for gcc... /opt/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/SUNWspro/bin/cc accepts -g... yes
checking for /opt/SUNWspro/bin/cc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of /opt/SUNWspro/bin/cc... none
checking how to run the C preprocessor... /opt/SUNWspro/bin/cc -E
checking for grep that handles long lines and -e... /usr/xpg4/bin/grep
checking for egrep... /usr/xpg4/bin/grep -E
checking for Minix Amsterdam compiler... no
checking for ar... ar
checking for ranlib... ranlib
checking whether /opt/SUNWspro/bin/cc and cc understand -c and -o together... yes
checking how to run the C preprocessor... /opt/SUNWspro/bin/cc -E
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/local/bin/sed
checking for fgrep... /usr/xpg4/bin/grep -F
checking for non-GNU ld... /usr/ccs/bin/ld
checking if the linker (/usr/ccs/bin/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 how to convert i386-pc-solaris2.10 file names to i386-pc-solaris2.10 format... func_convert_file_noop
checking how to convert i386-pc-solaris2.10 file names to toolchain format... func_convert_file_noop
checking for /usr/ccs/bin/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... (cached) ranlib
checking command to parse /usr/ccs/bin/nm -p output from /opt/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... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking for /opt/SUNWspro/bin/cc option to produce PIC... -KPIC -DPIC
checking if /opt/SUNWspro/bin/cc PIC flag -KPIC -DPIC works... yes
checking if /opt/SUNWspro/bin/cc static flag -Bstatic works... no
checking if /opt/SUNWspro/bin/cc supports -c -o file.o... yes
checking if /opt/SUNWspro/bin/cc supports -c -o file.o... (cached) yes
checking whether the /opt/SUNWspro/bin/cc linker (/usr/ccs/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 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... 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... none required
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/SUNWspro/bin/CC accepts -g... yes
checking dependency style of /opt/SUNWspro/bin/CC... none
checking how to run the C++ preprocessor... /opt/SUNWspro/bin/CC -E
checking whether the /opt/SUNWspro/bin/CC linker (/usr/ccs/bin/ld) supports shared libraries... yes
checking for /opt/SUNWspro/bin/CC option to produce PIC... -KPIC -DPIC
checking if /opt/SUNWspro/bin/CC PIC flag -KPIC -DPIC works... yes
checking if /opt/SUNWspro/bin/CC static flag -Bstatic works... no
checking if /opt/SUNWspro/bin/CC supports -c -o file.o... yes
checking if /opt/SUNWspro/bin/CC supports -c -o file.o... (cached) yes
checking whether the /opt/SUNWspro/bin/CC linker (/usr/ccs/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 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/SUNWspro/bin/f77 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/SUNWspro/bin/f77 option to produce PIC... -KPIC
checking if /opt/SUNWspro/bin/f77 PIC flag -KPIC works... yes
checking if /opt/SUNWspro/bin/f77 static flag -Bstatic works... yes
checking if /opt/SUNWspro/bin/f77 supports -c -o file.o... yes
checking if /opt/SUNWspro/bin/f77 supports -c -o file.o... (cached) yes
checking whether the /opt/SUNWspro/bin/f77 linker (/usr/ccs/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking whether we are using the GNU Fortran compiler... no
checking whether /opt/SUNWspro/bin/f95 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/SUNWspro/bin/f95 option to produce PIC... -KPIC
checking if /opt/SUNWspro/bin/f95 PIC flag -KPIC works... yes
checking if /opt/SUNWspro/bin/f95 static flag -Bstatic works... yes
checking if /opt/SUNWspro/bin/f95 supports -c -o file.o... yes
checking if /opt/SUNWspro/bin/f95 supports -c -o file.o... (cached) yes
checking whether the /opt/SUNWspro/bin/f95 linker (/usr/ccs/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 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 make supports order-only prerequisites... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: linking ../GNUmakefile to GNUmakefile
config.status: executing tests/atconfig commands
config.status: executing depfiles commands
config.status: executing libtool commands
  GEN    libtoolize
  GEN    libltdl/argz.h
make  all-recursive
make[1]: Entering directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
Making all in .
make[2]: Entering directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
  CC     libltdl/loaders/libltdl_libltdl_la-preopen.lo
  CC     libltdl/libltdl_libltdl_la-lt__alloc.lo
  CC     libltdl/libltdl_libltdl_la-lt_dlloader.lo
  CC     libltdl/libltdl_libltdl_la-lt_error.lo
  CC     libltdl/libltdl_libltdl_la-ltdl.lo
  CC     libltdl/libltdl_libltdl_la-slist.lo
  CC     libltdl/loaders/dlopen.lo
  CCLD   libltdl/dlopen.la
  CC     libltdl/argz.lo
  CCLD   libltdl/libltdl.la
make[2]: Leaving directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
make[1]: Leaving directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
  GEN    public-submodule-commit
make  check-recursive
make[1]: Entering directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
  GEN    tests/defs
Making check in .
make[2]: Entering directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
make  check-TESTS check-local
make[3]: Entering directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
make[4]: Entering directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
PASS: tests/link.test
PASS: tests/link-2.test
PASS: tests/nomode.test
PASS: tests/objectlist.test
PASS: tests/quote.test
PASS: tests/suffix.test
PASS: tests/tagtrace.test
==================
All 7 tests passed
==================
make[4]: Leaving directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
  CC     libltdl/loaders/libltdl_libltdlc_la-preopen.lo
  CC     libltdl/libltdl_libltdlc_la-lt__alloc.lo
  CC     libltdl/libltdl_libltdlc_la-lt_dlloader.lo
  CC     libltdl/libltdl_libltdlc_la-lt_error.lo
  CC     libltdl/libltdl_libltdlc_la-ltdl.lo
  CC     libltdl/libltdl_libltdlc_la-slist.lo
  CCLD   libltdl/libltdlc.la
## --------------------------------------- ##
## GNU Libtool 2.4.2.135-aa59c test suite. ##
## --------------------------------------- ##

Shell option parser generator.

  1: fallback short option splitting                 ok
  2: enhanced short option splitting                 ok
  3: fallback long option splitting                  ok
  4: enhanced long option splitting                  ok
  5: fallback option appending                       ok
  6: enhanced option appending                       ok
  7: fallback arithmetic                             ok
  8: enhanced arithmetic                             ok
  9: fallback path slicing                           ok
 10: enhanced path slicing                           ok

Libtoolize operation.

 11: libtoolize macro installation                   ok
 12: libtoolize macro directory mismatch error       ok
 13: libtoolize macro serial update                  ok
 14: libtoolize config files serial update           ok
 15: diagnose missing LT_CONFIG_LTDL_DIR             ok
 16: copy ltdl.m4 with shared macro directory        ok
 17: correctly parse LTDL_INIT from configure.ac     ok
 18: diagnose missing LTDL_INIT invocation           ok
 19: upgrading verbatim style aclocal.m4             ok
 20: verbatim aclocal.m4 w/o AC_CONFIG_MACRO_DIR     ok
 21: nonrecursive ltdl with AC_CONFIG_MACRO_DIR      ok
 22: subproject ltdl with unconventional layout      ok
 23: Subproject ltdl without GNU M4                  ok
 24: LIBTOOLIZE_OPTIONS                              ok
 25: cleanup old installation                        ok

Linking and loading.

 26: link against a preloaded static library         ok
 27: build and dynamically load a module             ok
 28: preload static and dynamic module               ok
 29: deplibs_check_method                            ok
 30: disable fast install                            ok
 31: force PIC objects                               ok
 32: force non-PIC objects                           skipped (demo.at:521)
 33: hardcoding library path                         ok
 34: binary relinking at install time                ok
 35: uninstalled libraries have priority             ok
 36: linking with long file names                    ok

Convenience libraries.

 37: build and link against a static library         ok
 38: build and link against a dynamic library        ok
 39: build both static and dynamic                   ok
 40: allow_undefined_flag                            ok
 41: C convenience archives                          ok
 42: C++ convenience archives                        ok
 43: F77 convenience archives                        ok
 44: FC convenience archives                         ok
 45: Java convenience archives                       skipped (convenience.at:231)

Library interdependencies.

 46: static library interdependencies                ok
 47: shared library interdependencies                ok
 48: shared and static interdependencies             ok
 49: disable fast install                            ok
 50: binary relinking at install time                ok

Testing libtool functions.

 51: standard command line options                   ok
 52: mode short-hands                                ok
 53: debug tracing                                   ok
 54: duplicate members in archive tests              ok
 55: duplicate convenience archive names             ok
 56: preserve duplicate convenience deps             expected failure (duplicate_deps.at:72)
 57: passing CC flags through libtool                ok
 58: passing CXX flags through libtool               ok
 59: passing F77 flags through libtool               ok
 60: passing FC flags through libtool                ok
 61: passing GCJ flags through libtool               skipped (flags.at:24)
 62: inherited_linker_flags                          ok
 63: Link order test                                 ok
 64: Link order of deplibs                           ok
 65: Failure tests                                   ok
 66: shlibpath_overrides_runpath                     ok
 67: Runpath in libtool library files                ok
 68: static linking flags for programs               ok
 69: ccache -all-static                              ok
 70: Export test                                     ok
 71: sys_lib_search_path                             ok
 72: sys_lib_search_path on w32                      skipped (search-path.at:83)
 73: indirect convenience                            ok
 74: indirect uninstalled                            ok
 75: static library contains static library          expected failure (archive-in-archive.at:56)
 76: both of -o prog and -o prog$EXEEXT work         skipped (exeext.at:29)
 77: execute mode                                    ok
 78: bindir basic lib test                           ok
 79: bindir install tests                            ok
 80: cwrapper for uninstalled executables            ok
 81: cwrapper string length                          skipped (cwrapper.at:190)
 82: cwrapper and installed shared libraries         ok
 83: deplib in subdir                                ok
 84: inferred tag                                    ok
 85: CXX inferred tag                                ok
 86: F77 inferred tag                                ok
 87: FC inferred tag                                 ok
 88: GCJ inferred tag                                skipped (infer-tag.at:84)
 89: localized compiler messages                     ok
 90: nocase library search                           skipped (nocase.at:31)
 91: Install tests                                   ok
 92: versioning                                      ok

DESTDIR tests

 93: Simple DESTDIR install                          ok
 94: DESTDIR with in-package deplibs                 ok

Support for older m4 interface.

 95: AM_PROG_LIBTOOL                                 ok
 96: AC_WITH_LTDL                                    ok

Support for older libltdl interfaces.

 97: Makefile.inc                                    FAILED (old-ltdl-iface.at:130)

Libtool subdir-objects support.

 98: C subdir-objects                                ok
 99: C++ subdir-objects                              ok

Libltdl functionality.

100: lt_dlexit unloading libs                        ok
101: lt_dlopenadvise library loading                 ok
102: lt_dlopen error messages                        expected failure (lt_dlopen.at:101)
103: lt_dlopen archive                               ok
104: lt_dlopenext error messages                     ok
105: libdir of installed modules                     ok
106: ltdl API                                        ok
107: dlloader API                                    ok
108: loadlibrary error messages                      skipped (loadlibrary.at:250)
109: syntax of .la files                             expected failure (lalib-syntax.at:133)
110: resident modules                                ok
111: SList functionality                             ok
112: enforced lib prefix                             ok

Dynamic ltdl runtime loading.

113: dynamically ltdl preload static modules         FAILED (mdemo.at:642)
114: dynamically ltdl load a shared module           FAILED (mdemo.at:659)
115: ltdl load shared and static modules             FAILED (mdemo.at:676)
116: ltdl dryrun                                     FAILED (mdemo.at:692)
117: link with library that loads ltdl modules       FAILED (mdemo.at:858)

Standalone Libltdl.

118: compiling softlinked libltdl                    ok
119: compiling copied libltdl                        ok
120: installable libltdl                             ok
121: linking libltdl without autotools               ok

Subproject Libltdl.

122: compiling softlinked libltdl                    ok
123: compiling copied libltdl                        ok
124: installable libltdl                             ok
125: linking libltdl without autotools               ok

Nonrecursive Automake Libltdl.

126: compiling softlinked libltdl                    ok
127: compiling copied libltdl                        ok
128: installable libltdl                             ok

Recursive Automake Libltdl.

129: compiling softlinked libltdl                    ok
130: compiling copied libltdl                        ok
131: installable libltdl                             ok

C++ language support.

132: static library                                  ok
133: shared library                                  ok
134: shared and static together                      ok
135: allow_undefined_flag                            ok

C++ template tests.

136: simple template test                            ok
137: template test with subdirs                      ok

Constructors.

138: C++ static constructors                         ok
139: C++ exception handling                          ok

libtool script generation.

140: config.status                                   ok
141: config.lt                                       ok
142: test --with-pic                                 skipped (with-pic.at:27)

Libtool usage in GCC

143: AC_NO_EXECUTABLES                               ok

Detecting identical deplibs.

144: build tree relpaths                             expected failure (deplibs-ident.at:68)

configure interface to libltdl.

145: installable libltdl                             ok
146: --with-ltdl-include/lib                         ok
147: --with-included-ltdl                            ok
148: convenience libltdl                             ok

Libtool stress test.

149: Link option thorough search test                ok
150: Run tests with low max_cmd_len                  FAILED (cmdline_wrap.at:43)
151: override pic_flag at configure time             FAILED (pic_flag.at:53)

F77 language support.

152: static library                                  FAILED (f77demo.at:300)
153: shared library                                  FAILED (f77demo.at:315)
154: shared and static together                      FAILED (f77demo.at:330)

Fortran language support.

155: static library                                  FAILED (fcdemo.at:314)
156: shared library                                  FAILED (fcdemo.at:329)
157: shared and static together                      FAILED (fcdemo.at:344)

Mac OS X tests

158: darwin fat compile                              skipped (darwin.at:42)
159: darwin concurrent library extraction            ok
160: darwin gdb debug information                    ok
161: darwin ld warnings changing configure results   ok
162: darwin can lt_dlopen .dylib and .so files       skipped (darwin.at:249)

Windows tests.

163: dumpbin -symbols section hiding                 skipped (dumpbin-symbols.at:42)
164: deplibs without file command                    ok

sysroot tests

165: -L=.../lib -l                                   skipped (sysroot.at:203)
166: -L SYSROOT/.../lib -l                           skipped (sysroot.at:204)
167: SYSROOT/.../*.la                                skipped (sysroot.at:205)

## ------------- ##
## Test results. ##
## ------------- ##

ERROR: 151 tests were run,
19 failed (5 expected failures).
16 tests were skipped.
## -------------------------- ##
## testsuite.log was created. ##
## -------------------------- ##

Please send `tests/testsuite.log' and all information you think might help:

   To: <[email-masked]>
   Subject: [GNU Libtool 2.4.2.135-aa59c] testsuite: 97 113 114 115 116 117 150 151 152 153 154 155 156 157 failed

You may investigate any problem if you feel able to do so, in which
case the test suite provides a good starting point.  Its output may
be found below `tests/testsuite.dir'.

make[3]: *** [check-local] Error 1
make[3]: Leaving directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/scratch/latta/tmp/lt/libtool-2.4.2.135-aa59c/BUILD-sunstudio'
make: *** [check] Error 2