I just hit this in a fascinating place.

When working on xz, I set `-Werror=suggest-attribute=returns_nonnull`, and
the build failed (as I expected it to), but with no visible error from
the compiler.

There's a mysterious '>/dev/null 2>&1' on the second line where
liblzma_la-common.o is built without PIC.

With -fPIC, IPA doesn't end up doing attribute discovery. Without it,
it does. This behaviour is insane and we should patch it out.

Bug: https://bugs.gentoo.org/135865
Cc: glaub...@physik.fu-berlin.de
Signed-off-by: Sam James <s...@gentoo.org>
---
Please consider this kind of a PoC for discussion. This came up on the
GCC bug tracker the other day which prompted me to post it and get people's
opinions. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212#c158.

libtool assumes that the warning output with vs without -fPIC is going
to be identical, hence the non-PIC build output should be completely suppressed.

I think this is a premature optimization at best, and it's caused real
confusion to people. Can we drop it?

If this looks OK, I can check more closely if I need to remove more
bits.

 build-aux/ltmain.in | 2 --
 1 file changed, 2 deletions(-)

diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
index 63377541..48e89042 100644
--- a/build-aux/ltmain.in
+++ b/build-aux/ltmain.in
@@ -1665,8 +1665,6 @@ compiler."
        func_append command " -o $obj"
       fi
 
-      # Suppress compiler output if we already did a PIC compilation.
-      func_append command "$suppress_output"
       func_show_eval_locale "$command" \
         '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 

base-commit: 22a7e547e9857fc94fe5bc7c921d9a4b49c09f8e
-- 
2.45.2


Reply via email to