Forwarded for discussion purposes ...
Thanks!
I can see Sam's point, but I can also see the reason for suppressing one of two near-identical compilations.
How about a -no-suppress option? (see attachment)
Cheers,
Gary.-----Forwarded Message----- From: Sam Hocevar <[EMAIL PROTECTED]> To: Debian Bug Tracking System <[EMAIL PROTECTED]> Subject: Bug#207475: libtool: wrongly hides important compiler output Date: Wed, 27 Aug 2003 12:40:32 +0200
Package: libtool Version: 1.5-1 (not installed) Severity: normal
My generated libtool scripts contain the following lines (coming from /usr/share/libtool/ltmain.sh, line 725):
# Allow error messages only from the first compilation. suppress_output=' >/dev/null 2>&1'
Which means that if the -fPIC compilation succeeded, it sends the output of the non-PIC compilation to /dev/null, wrongly assuming that if a file builds in PIC mode it will build in non-PIC mode (which is obviously wrong since one can put broken code between #ifndef PIC). It is then highly irritating to get a build error from the buildd that simply says "Error 1".
I suggest that this suppress_output line either be simply removed, because it is simply wrong to hide meaningful output from the user, or at least be made configurable.
-- System Information: Debian Release: testing/unstable Architecture: i386 Kernel: Linux c18 2.4.21-rc5 #2 Wed May 28 22:10:14 CEST 2003 i686 Locale: LANG=C, LC_CTYPE=fr_FR
-- ())_. Gary V. Vaughan gary@(lilith.warpmail.net|gnu.org) ( '/ Research Scientist http://www.oranda.demon.co.uk ,_())____ / )= GNU Hacker http://www.gnu.org/software/libtool \' `& `(_~)_ Tech' Author http://sources.redhat.com/autobook =`---d__/
Index: ChangeLog
from Gary V. Vaughan <[EMAIL PROTECTED]>
* ltmain.in: Don't suppress output of PIC mode compile if
-no-suppress option is given.
* doc/libtool.texi (Invoking libtool): Document it.
* NEWS: Updated.
Index: NEWS
===================================================================
RCS file: /cvsroot/libtool/libtool/NEWS,v
retrieving revision 1.114
diff -u -p -u -r1.114 NEWS
--- NEWS 7 Oct 2003 11:12:16 -0000 1.114
+++ NEWS 7 Oct 2003 15:07:56 -0000
@@ -4,6 +4,8 @@ New in 1.5b: 2003-??-??; CVS version 1.5
* libtoolize installs libtool.m4 (and ltdl.m4 if used) to AC_CONFIG_M4_DIR.
* Mode inferrence removed, shorthand for choosing modes added.
* Specifying -allow-undefined is now an error.
+* -no-suppress in compile mode shows compiler output for both PIC and non-PIC
+ object compilation.
* Bug fixes.
New in 1.5.1: 2003-??-??; CVS version 1.5.0a, Libtool team:
Index: ltmain.in
===================================================================
RCS file: /cvsroot/libtool/libtool/ltmain.in,v
retrieving revision 1.347
diff -u -p -u -r1.347 ltmain.in
--- ltmain.in 7 Oct 2003 14:51:05 -0000 1.347
+++ ltmain.in 7 Oct 2003 15:07:57 -0000
@@ -357,6 +357,7 @@ exec_cmd=
# Get the compilation command and the source file.
base_compile=
srcfile="$nonopt" # always keep a non-empty value in "srcfile"
+ suppress_opt=yes
suppress_output=
arg_mode=normal
libobj=
@@ -403,6 +404,11 @@ exec_cmd=
continue
;;
+ -no-suppress)
+ suppress_opt=no
+ continue
+ ;;
+
-Xcompiler)
arg_mode=arg # the next one goes into the "base_compile" arg list
continue # The current "srcfile" will either be retained or
@@ -710,7 +716,9 @@ pic_object='$objdir/$objname'
EOF
# Allow error messages only from the first compilation.
- suppress_output=' >/dev/null 2>&1'
+ if test "$suppress_opt" = yes; then
+ suppress_output=' >/dev/null 2>&1'
+ fi
else
# No PIC object so indicate it doesn't exist in the libtool
# object file.
Index: doc/libtool.texi
===================================================================
RCS file: /cvsroot/libtool/libtool/doc/libtool.texi,v
retrieving revision 1.137
diff -u -p -u -r1.137 libtool.texi
--- doc/libtool.texi 7 Oct 2003 14:51:06 -0000 1.137
+++ doc/libtool.texi 7 Oct 2003 15:07:59 -0000
@@ -1152,6 +1152,12 @@ linker flags with @samp{-Wl,@var{flag}}
You can also pass compile specific flags using @samp{-Wc,@var{flag}}
and @samp{-Xcompiler @var{flag}}.
+If both PIC and non-PIC objects are being built, libtool will normally
+supress the compiler output for the PIC object compilation to save
+showing very similar, if not identical duplicate output for each
+object. If the @samp{-no-suppress} option is given in compile mode,
+libtool will show the compiler output for both objects.
+
If the @samp{-static} option is given, then a @samp{.o} file is built,
even if libtool was configured with @samp{--disable-static}.
_______________________________________________ Libtool mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/libtool
