Dear developers, I have reported the following bug on <bug-libt...@gnu.org> (see http://lists.gnu.org/archive/html/bug-libtool/2011-07/msg00002.html and http://lists.gnu.org/archive/html/bug-libtool/2011-08/msg00001.html).
On the documentation of libtool, the word "linux" is sometimes used to refer to the entire free software system that uses the kernel Linux. According to the GNU project's "Information for Maintainers of GNU Software", maintainers of GNU programs have to name the entire system "GNU/Linux" (http://www.gnu.org/prep/maintain/maintain.html#Preface and http://www.gnu.org/prep/maintain/maintain.html#GNU-and-Linux). So here is a patch to fix this bug in various parts of GNU libtool: - documentation, - files HACKING, libltdl/README and TODO, - core files libltdl/config/ltmain.m4sh and libltdl/m4/libtool.m4. I have not changed the files that won't be modified in the future as those files are used for an historical purpose. This includes files Changelog* and files under the "mail" directory. If it is a problem, please tell me. I may have replaced "Linux" by "GNU/Linux" even if "Linux" was used to refer to the "kernel Linux". If that is the case somewhere in the patch, please tell me and explain me. I will modify my patch accordingly. Thanks, Christophe
diff -Naur libtool.orig/doc/libtool.texi libtool/doc/libtool.texi --- libtool.orig/doc/libtool.texi 2011-08-31 21:50:53.000000000 +0200 +++ libtool/doc/libtool.texi 2011-08-31 22:10:53.000000000 +0200 @@ -3784,7 +3784,7 @@ @itemize @bullet @item -@code{dlopen} (Solaris, Linux and various BSD flavors) +@code{dlopen} (Solaris, GNU/Linux and various BSD flavors) @item @code{shl_load} (HP-UX) @item @@ -3823,7 +3823,7 @@ @section How to use libltdl in your programs @noindent -The libltdl API is similar to the dlopen interface of Solaris and Linux, +The libltdl API is similar to the dlopen interface of Solaris and GNU/Linux, which is very simple but powerful. @noindent @@ -3945,7 +3945,7 @@ @item system library search path: The system dependent library search path -(e.g.@: on Linux it is @env{LD_LIBRARY_PATH}). +(e.g.@: on GNU/Linux it is @env{LD_LIBRARY_PATH}). @end enumerate Each search path must be a list of absolute directories separated by @@ -5372,7 +5372,7 @@ The @file{tests/mdemo} subdirectory contains a demonstration of a package that uses libtool and the system independent dlopen wrapper @file{libltdl} to load modules. The library @file{libltdl} provides a -dlopen wrapper for various platforms (Linux, Solaris, HP/UX etc.) +dlopen wrapper for various platforms (GNU/Linux, Solaris, HP/UX etc.) including support for dlpreopened modules (@pxref{Dlpreopening}). The tests matching @file{mdemo-*make.test}, @file{mdemo-*exec.test}, @@ -7120,7 +7120,7 @@ @defvar version_type The library version numbering type. One of @samp{libtool}, -@samp{freebsd-aout}, @samp{freebsd-elf}, @samp{irix}, @samp{linux}, +@samp{freebsd-aout}, @samp{freebsd-elf}, @samp{irix}, @samp{gnu-linux}, @samp{osf}, @samp{sunos}, @samp{windows}, or @samp{none}. @end defvar diff -Naur libtool.orig/doc/notes.texi libtool/doc/notes.texi --- libtool.orig/doc/notes.texi 2011-08-31 21:50:53.000000000 +0200 +++ libtool/doc/notes.texi 2011-08-31 21:54:10.000000000 +0200 @@ -68,7 +68,7 @@ and all recent releases of XEmacs. @item -When building on some linux systems for multilib targets +When building on some GNU/Linux systems for multilib targets @command{libtool} sometimes guesses the wrong paths that the linker and dynamic linker search by default. If this occurs, you may override libtool's guesses at @command{configure} time by setting the diff -Naur libtool.orig/HACKING libtool/HACKING --- libtool.orig/HACKING 2011-08-31 21:50:53.000000000 +0200 +++ libtool/HACKING 2011-09-03 20:07:19.000000000 +0200 @@ -154,14 +154,14 @@ * If the changes are particular to certain architectures, they should be listed after the functions in square brackets: - * file, another/file (func_foo) [linux, solaris]: Description of + * file, another/file (func_foo) [gnu-linux, solaris]: Description of changes. * Subsequent changes in other files that are related to the same overall enhancement or bugfix should be listed concurrently, without blank lines. Always start a fresh line for a new file: - * file, another/file (func_foo) [linux, solaris]: Description of + * file, another/file (func_foo) [gnu-linux, solaris]: Description of changes. * doc/foo.texi (Invoking Foo): Document. * NEWS: Updated. diff -Naur libtool.orig/libltdl/config/ltmain.m4sh libtool/libltdl/config/ltmain.m4sh --- libtool.orig/libltdl/config/ltmain.m4sh 2011-08-31 21:50:53.000000000 +0200 +++ libtool/libltdl/config/ltmain.m4sh 2011-09-03 20:09:08.000000000 +0200 @@ -6540,7 +6540,7 @@ # which has an extra 1 added just for fun # case $version_type in - darwin|linux|osf|windows|none) + darwin|gnu-linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" @@ -6605,7 +6605,7 @@ none) ;; darwin) - # Like Linux, but with the current version available in + # Like GNU/Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result @@ -6656,7 +6656,7 @@ versuffix="$major.$revision" ;; - linux) + gnu-linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" diff -Naur libtool.orig/libltdl/m4/libtool.m4 libtool/libltdl/m4/libtool.m4 --- libtool.orig/libltdl/m4/libtool.m4 2011-08-31 21:50:53.000000000 +0200 +++ libtool/libltdl/m4/libtool.m4 2011-09-03 20:11:36.000000000 +0200 @@ -2247,7 +2247,7 @@ case $host_os in aix3*) - version_type=linux + version_type=gnu-linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -2256,7 +2256,7 @@ ;; aix[[4-9]]*) - version_type=linux + version_type=gnu-linux need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -2321,7 +2321,7 @@ ;; bsdi[[45]]*) - version_type=linux + version_type=gnu-linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -2460,7 +2460,7 @@ ;; dgux*) - version_type=linux + version_type=gnu-linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -2513,7 +2513,7 @@ ;; gnu*) - version_type=linux + version_type=gnu-linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' @@ -2524,7 +2524,7 @@ ;; haiku*) - version_type=linux + version_type=gnu-linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" @@ -2585,7 +2585,7 @@ ;; interix[[3-9]]*) - version_type=linux + version_type=gnu-linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -2601,7 +2601,7 @@ nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=gnu-linux else version_type=irix fi ;; @@ -2633,14 +2633,14 @@ hardcode_into_libs=yes ;; -# No shared lib support for Linux oldld, aout, or coff. +# No shared lib support for GNU/Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be GNU/Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=gnu-linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2703,7 +2703,7 @@ ;; newsos6) - version_type=linux + version_type=gnu-linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -2772,7 +2772,7 @@ ;; solaris*) - version_type=linux + version_type=gnu-linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2797,7 +2797,7 @@ ;; sysv4 | sysv4.3*) - version_type=linux + version_type=gnu-linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2821,7 +2821,7 @@ sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=gnu-linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -2852,7 +2852,7 @@ tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=gnu-linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2862,7 +2862,7 @@ ;; uts4*) - version_type=linux + version_type=gnu-linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -3284,7 +3284,7 @@ lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be GNU/Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -4066,7 +4066,7 @@ cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. + # GNU/Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; @@ -4121,7 +4121,7 @@ # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha - # Linux and Compaq Tru64 Unix objects are PIC. + # GNU/Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; diff -Naur libtool.orig/libltdl/README libtool/libltdl/README --- libtool.orig/libltdl/README 2011-08-31 21:50:53.000000000 +0200 +++ libtool/libltdl/README 2011-09-03 20:07:44.000000000 +0200 @@ -1,7 +1,7 @@ This is GNU libltdl, a system independent dlopen wrapper for GNU libtool. It supports the following dlopen interfaces: -* dlopen (Solaris, Linux and various BSD flavors) +* dlopen (Solaris, GNU/Linux and various BSD flavors) * shl_load (HP-UX) * LoadLibrary (Win16 and Win32) * load_add_on (BeOS) diff -Naur libtool.orig/TODO libtool/TODO --- libtool.orig/TODO 2011-08-31 21:50:53.000000000 +0200 +++ libtool/TODO 2011-09-03 20:14:27.000000000 +0200 @@ -58,7 +58,7 @@ * Audit file listing in libtool.m4. -* Fix deplibs_check_method=pass_all (which is wrong!) on linux. +* Fix deplibs_check_method=pass_all (which is wrong!) on GNU/Linux. * Fix -dlopen "self" on AIX. Reported by Gary Kumfert <kumf...@llnl.gov>. @@ -290,15 +290,15 @@ and central_unixish_to_mingw would still do all the work (with its guts customized based on $build). - For more reasonable cross environments (e.g. linux->some_embedded) I think - you could probably work out a general M+N scheme, since most embedded $hosts - aren't as strange as the win32 variants -- even VxWorks and INTEGRITY have - basic, unix-like file systems (although INTEGRITY does have multiple roots). - Aggressive use of the m4 function_replace machinery WOULD be appropriate for - /these/ conversion functions. OTOH...(a) you can't run the $host apps on - $build anyway, in these embedded situations. At best you'd use $TARGETSHELL - and "run" them via a remote connection, and (b) they don't use the C - wrapper! + For more reasonable cross environments (e.g. GNU/Linux->some_embedded) I + think you could probably work out a general M+N scheme, since most embedded + $hosts aren't as strange as the win32 variants -- even VxWorks and INTEGRITY + have basic, unix-like file systems (although INTEGRITY does have multiple + roots). Aggressive use of the m4 function_replace machinery WOULD be + appropriate for /these/ conversion functions. OTOH...(a) you can't run the + $host apps on $build anyway, in these embedded situations. At best you'd use + $TARGETSHELL and "run" them via a remote connection, and (b) they don't use + the C wrapper! So...I don't think it makes much difference *right now* in the amount of code required, or the number of functions implemented. At some point in the