mailing list of musl libc
 help / color / mirror / code / Atom feed
* [PATCH v2] configure: work around compilers that merely warn for unknown options
@ 2015-05-28  3:52 Shiz
  2015-05-28  4:53 ` Rob Landley
  0 siblings, 1 reply; 4+ messages in thread
From: Shiz @ 2015-05-28  3:52 UTC (permalink / raw)
  To: musl

some compilers (such as clang) accept unknown options without error,
but then print warnings on each invocation, cluttering the build
output and burying meaningful warnings. this patch makes configure's
tryflag and tryldflag functions use additional options to turn the
unknown-option warnings into errors, if available, but only at check
time. these options are not output in config.mak to avoid the risk of
spurious build breakage; if they work, they will have already done
their job at configure time.
---
 configure | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 143dc92..7b29ae4 100755
--- a/configure
+++ b/configure
@@ -80,7 +80,7 @@ fi
 tryflag () {
 printf "checking whether compiler accepts %s... " "$2"
 echo "typedef int x;" > "$tmpc"
-if $CC $2 -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then
+if $CC $CFLAGS_TRY $2 -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then
 printf "yes\n"
 eval "$1=\"\${$1} \$2\""
 eval "$1=\${$1# }"
@@ -94,7 +94,7 @@ fi
 tryldflag () {
 printf "checking whether linker accepts %s... " "$2"
 echo "typedef int x;" > "$tmpc"
-if $CC -nostdlib -shared "$2" -o /dev/null "$tmpc" >/dev/null 2>&1 ; then
+if $CC $LDFLAGS_TRY -nostdlib -shared "$2" -o /dev/null "$tmpc" >/dev/null 2>&1 ; then
 printf "yes\n"
 eval "$1=\"\${$1} \$2\""
 eval "$1=\${$1# }"
@@ -113,7 +113,9 @@ CFLAGS_C99FSE=
 CFLAGS_AUTO=
 CFLAGS_MEMOPS=
 CFLAGS_NOSSP=
+CFLAGS_TRY=
 LDFLAGS_AUTO=
+LDFLAGS_TRY=
 OPTIMIZE_GLOBS=
 prefix=/usr/local/musl
 exec_prefix='$(prefix)'
@@ -205,6 +207,14 @@ exit 1
 fi
 
 #
+# Figure out options to force errors on unknown flags.
+#
+tryflag   CFLAGS_TRY  -Werror=unknown-warning-option
+tryflag   CFLAGS_TRY  -Werror=unused-command-line-argument
+tryldflag LDFLAGS_TRY -Werror=unknown-warning-option
+tryldflag LDFLAGS_TRY -Werror=unused-command-line-argument
+
+#
 # Need to know if the compiler is gcc to decide whether to build the
 # musl-gcc wrapper, and for critical bug detection in some gcc versions.
 #
-- 
2.3.6



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] configure: work around compilers that merely warn for unknown options
  2015-05-28  3:52 [PATCH v2] configure: work around compilers that merely warn for unknown options Shiz
@ 2015-05-28  4:53 ` Rob Landley
  2015-05-28  5:11   ` Rich Felker
  2015-05-28  9:24   ` Shiz
  0 siblings, 2 replies; 4+ messages in thread
From: Rob Landley @ 2015-05-28  4:53 UTC (permalink / raw)
  To: musl

On Thu, May 28, 2015 at 12:52 PM, Shiz <hi@shiz.me> wrote:
> some compilers (such as clang) accept unknown options without error,
> but then print warnings on each invocation, cluttering the build
> output and burying meaningful warnings.

You saw this already, right?

https://github.com/landley/toybox/commit/a913d92bad65

Specifically the bit about gcc 4.6 warning about the unknown
-Wno-be-stupid _only_ if it was already producing another warning...

Rob


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] configure: work around compilers that merely warn for unknown options
  2015-05-28  4:53 ` Rob Landley
@ 2015-05-28  5:11   ` Rich Felker
  2015-05-28  9:24   ` Shiz
  1 sibling, 0 replies; 4+ messages in thread
From: Rich Felker @ 2015-05-28  5:11 UTC (permalink / raw)
  To: musl

On Thu, May 28, 2015 at 01:53:44PM +0900, Rob Landley wrote:
> On Thu, May 28, 2015 at 12:52 PM, Shiz <hi@shiz.me> wrote:
> > some compilers (such as clang) accept unknown options without error,
> > but then print warnings on each invocation, cluttering the build
> > output and burying meaningful warnings.
> 
> You saw this already, right?
> 
> https://github.com/landley/toybox/commit/a913d92bad65

I hadn't seen it yet.

> Specifically the bit about gcc 4.6 warning about the unknown
> -Wno-be-stupid _only_ if it was already producing another warning...

musl makes a lot less assumptions about compiler command-line though;
since we have a configure script, we just test every option we want to
use that's not completely standard. The problem this patch addressed
(BTW, it's now committed) is that some compilers broke these tests by
failing to report an error for unsupported options.

Rich


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] configure: work around compilers that merely warn for unknown options
  2015-05-28  4:53 ` Rob Landley
  2015-05-28  5:11   ` Rich Felker
@ 2015-05-28  9:24   ` Shiz
  1 sibling, 0 replies; 4+ messages in thread
From: Shiz @ 2015-05-28  9:24 UTC (permalink / raw)
  To: musl

[-- Attachment #1: Type: text/plain, Size: 946 bytes --]

> On 28 May 2015, at 06:53, Rob Landley <rob@landley.net> wrote:
> 
> https://github.com/landley/toybox/commit/a913d92bad65
> 
> Specifically the bit about gcc 4.6 warning about the unknown
> -Wno-be-stupid _only_ if it was already producing another warning...
> 
> Rob

I hadn’t, thanks. I’m unsure if there’s a clean way to integrate this
checking quirk in the configure script, since I’m not at all a huge fan of
searching command line output like that: for all you know it might say
something like "-Wno-string-plus-int is going to be the default sometime
in the future" (like Apple LLVM has been known to say for
-Wunused-command-line-argument, coincidentally), and grepping for specific
error messages seems more finicky and/or prone to breakage than anything.

I suppose this is best handled if we happen to come across such a problematic
flag first: no need to optimise for cases that aren’t there yet.

-S

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-05-28  9:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-28  3:52 [PATCH v2] configure: work around compilers that merely warn for unknown options Shiz
2015-05-28  4:53 ` Rob Landley
2015-05-28  5:11   ` Rich Felker
2015-05-28  9:24   ` Shiz

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).