mailing list of musl libc
 help / color / mirror / code / Atom feed
* [PATCH] add unused flag check arguments to toolchain flag detection
@ 2015-05-28  2:50 Shiz
  2015-05-28  3:32 ` Rich Felker
  0 siblings, 1 reply; 3+ messages in thread
From: Shiz @ 2015-05-28  2:50 UTC (permalink / raw)
  To: musl; +Cc: Shiz

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


this checks whether -Werror=unknown-warning-option and
-Werror=unused-command-line-argument are supported by the toolchain. if so,
it adds those flags to the tryflag and tryldflag checks in ./configure.

so far only clang supports these flags, but clang is also the only toolchain
I've encountered that ignores unrecognized arguments instead of erroring out.
---
 configure | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-add-unused-flag-check-arguments-to-toolchain-flag-de.patch --]
[-- Type: text/x-patch; name="0001-add-unused-flag-check-arguments-to-toolchain-flag-de.patch", Size: 1432 bytes --]

diff --git a/configure b/configure
index 143dc92..08acef0 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 -Wl,-Werror=unknown-warning-option
+tryldflag LDFLAGS_TRY -Wl,-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.
 #

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

* Re: [PATCH] add unused flag check arguments to toolchain flag detection
  2015-05-28  2:50 [PATCH] add unused flag check arguments to toolchain flag detection Shiz
@ 2015-05-28  3:32 ` Rich Felker
  2015-05-28  3:51   ` Mark Cilissen
  0 siblings, 1 reply; 3+ messages in thread
From: Rich Felker @ 2015-05-28  3:32 UTC (permalink / raw)
  To: musl

On Thu, May 28, 2015 at 04:50:10AM +0200, Shiz wrote:
> 
> this checks whether -Werror=unknown-warning-option and
> -Werror=unused-command-line-argument are supported by the toolchain. if so,
> it adds those flags to the tryflag and tryldflag checks in ./configure.
> 
> so far only clang supports these flags, but clang is also the only toolchain
> I've encountered that ignores unrecognized arguments instead of erroring out.
> ---
>  configure | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)

Thanks! The patch looks mostly good (except the -Wl, part that's
wrong). I have some proposed changes to the message. The shortlog
message should be clear on the what and where of the change:

configure: work around compilers that only warn for unknown options

Then, if not already clear, the body should express more about why and
how, such as:

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.

FYI cparser/firm also supports -Werror=unknown-warning-option so it's
not just clang.

Rich


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

* Re: [PATCH] add unused flag check arguments to toolchain flag detection
  2015-05-28  3:32 ` Rich Felker
@ 2015-05-28  3:51   ` Mark Cilissen
  0 siblings, 0 replies; 3+ messages in thread
From: Mark Cilissen @ 2015-05-28  3:51 UTC (permalink / raw)
  To: musl

> On 28 May 2015, at 05:32, Rich Felker <dalias@libc.org> wrote:
> 
> Thanks! The patch looks mostly good (except the -Wl, part that's
> wrong). I have some proposed changes to the message. The shortlog
> message should be clear on the what and where of the change:

Ah yes, the -Wl, part was a local experiment I forgot to revert locally.
Thanks for the commit message feedback, a v2 is on its way.

-S


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

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

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-28  2:50 [PATCH] add unused flag check arguments to toolchain flag detection Shiz
2015-05-28  3:32 ` Rich Felker
2015-05-28  3:51   ` Mark Cilissen

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