* [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).