Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20130929172608.GJ20515@brightrain.aerifal.cx>
Date: Sun, 29 Sep 2013 13:26:08 -0400
From: Rich Felker <dalias@...ifal.cx>
To: musl@...ts.openwall.com
Subject: Re: ELLCC updated to musl 0.9.14

On Sun, Sep 29, 2013 at 08:24:27AM -0500, Richard Pennington wrote:
> Hi,
> 
> I've updated the musl version of the clang/LLVM based ELLCC compiler
> suite to use musl release 0.9.14.
> As usual the musl guys have been doing a great job. The new release
> looks great!
> 
> http://ellcc.org

Nice to hear!

> I dis have to make a few small changes to the configure script. The
> main one was that the warning the clang gives if a warning option is
> not supported is a warning, not an error. I added -Werror to
> tryflag. Other than that I just loosened up the target names a bit.
> 
> -- /home/rich/configure        2013-09-28 09:40:01.387766267 -0500
> +++ configure   2013-09-28 09:52:55.758633462 -0500
> @@ -79,7 +79,7 @@
>  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 -Werror "$2" -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then

My concern here is that gratuitous warnings for unrelated reasons
(e.g. a weird but valid flag added into $CC) could prevent detection
of supported flags. Here, false negatives (failing to detect support
for a flag that's actually needed) are worse than false positives
(detecting support for a flag that will spam warnings during build).

I'd rather find some other method of solving this problem with clang
and other compilers that are treating unsupported gcc options as
warnings rather than errors...

> -mips-*|mipsel-*) ARCH=mips ;;
> -microblaze-*) ARCH=microblaze ;;
> +mips*|mipsel*) ARCH=mips ;;
> +microblaze*) ARCH=microblaze ;;

For microblaze this is probably correct (to also get microblazeel or
whatever), but for mips, it will wrongly pick up mips64 as being mips.
When mips64 support is added, it will be a separate arch and thus need
a separate case here.

>  powerpc-*) ARCH=powerpc ;;
> +ppc*) ARCH=powerpc ;;

This could be simplified as:

  powerpc-*|ppc-*) ARCH=powerpc ;;

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.