From 31093223cbd7dcf5b5e092861fe0c66dee083861 Mon Sep 17 00:00:00 2001 From: "Gary V. Vaughan" Date: Sun, 5 Aug 2001 11:29:09 +0000 Subject: [PATCH] From Guido Draheim : * ltmain.in: Display better and different error messages when library linkage fails in various ways. --- ChangeLog | 6 ++++++ NEWS | 2 ++ ltmain.in | 48 +++++++++++++++++++++++++++++++++++------------- 3 files changed, 43 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index c2392e444..1f13d5618 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-08-05 Gary V. Vuaghan + + From Guido Draheim : + * ltmain.in: Display better and different error messages when + library linkage fails in various ways. + 2001-08-05 Albert Chin-A-Young * libtool.m4 (_LT_AC_SYS_LIBPATH_AIX): Add newline after diff --git a/NEWS b/NEWS index a71b4cd69..01c0f46b1 100644 --- a/NEWS +++ b/NEWS @@ -2,11 +2,13 @@ NEWS - list of user-visible changes between releases of GNU Libtool New in 1.4d: 2001-??-??; CVS version 1.4c, Libtool team: * Help strings display correctly again. +* Better error messages when library linking fails. * Support /lib/w32api in recent cygwin releases. * Support cross compilation to mingw. * Improved support for linking with gcc on aix4* and aix5*. * Improved support for GCC 3.0. * Initial support for QNX RTOS, UnixWare 7 and OpenUNIX 8. +* Bug fixes to the OpenBSD port. * Bug fixes. New in 1.4b: 2001-07-09; CVS version 1.4a, Libtool team: diff --git a/ltmain.in b/ltmain.in index 1bb891c69..d824487fe 100644 --- a/ltmain.in +++ b/ltmain.in @@ -1789,10 +1789,12 @@ EOF lib) if test "$deplibs_check_method" != pass_all; then echo - echo "*** Warning: This library needs some functionality provided by $deplib." + echo "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not used here." else echo echo "*** Warning: Linking the shared library $output against the" @@ -2274,13 +2276,14 @@ EOF # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo - echo "*** Warning: This library needs some functionality provided by $lib." + echo "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then - echo "*** Therefore, libtool will create a static module, that should work " - echo "*** as long as the dlopening application is linked with the -dlopen flag." + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" @@ -2876,10 +2879,12 @@ EOF else droppeddeps=yes echo - echo "*** Warning: This library needs some functionality provided by $i." + echo "*** Warning: dynamic linker does not accept needed library $i." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + echo "*** shared version of the library, which I believe you do not have" + echo "*** because a test_compile did reveal that the linker did not use it for" + echo "*** its dynamic dependency list that programs get resolved with at runtime." fi else newdeplibs="$newdeplibs $i" @@ -2906,10 +2911,12 @@ EOF else droppeddeps=yes echo - echo "*** Warning: This library needs some functionality provided by $i." + echo "*** Warning: dynamic linker does not accept needed library $i." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + echo "*** shared version of the library, which you do not appear to have" + echo "*** because a test_compile did reveal that the linker did not use this one" + echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi else droppeddeps=yes @@ -2966,10 +2973,17 @@ EOF if test -n "$a_deplib" ; then droppeddeps=yes echo - echo "*** Warning: This library needs some functionality provided by $a_deplib." + echo "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + echo "*** with $libname but no candidates were found. (...for file magic test)" + else + echo "*** with $libname and none of the candidates passed a file format test" + echo "*** using a file magic. Last file checked: $potlib" + fi fi else # Add a -L argument. @@ -2988,6 +3002,7 @@ EOF for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test if eval echo \"$potent_lib\" 2>/dev/null \ | sed 10q \ | egrep "$match_pattern_regex" > /dev/null; then @@ -3000,10 +3015,17 @@ EOF if test -n "$a_deplib" ; then droppeddeps=yes echo - echo "*** Warning: This library needs some functionality provided by $a_deplib." + echo "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + echo "*** with $libname but no candidates were found. (...for regex pattern test)" + else + echo "*** with $libname and none of the candidates passed a file format test" + echo "*** using a regex pattern. Last file checked: $potlib" + fi fi else # Add a -L argument. -- 2.47.3