eliminating CFLAGS

Will Coleda will at coleda.com
Thu Mar 4 13:54:51 UTC 2010


On Thu, Mar 4, 2010 at 2:58 AM, François Perrad
<francois.perrad at gadz.org> wrote:
> 2010/3/4 Will Coleda <will at coleda.com>:
>>
>> This branch:
>> - is warnings clean on GCC. (but probably nothing else)
>> - removes tools/build/cc_flags.pl - all compilation is now done via
>> straight makefile rules (and now the actual compiler command is
>> visible, where it was hidden in trunk.)
>> - eliminates a bunch of unused static functions, variables and other
>> warnings (instead of skipping them as we used to.)
>> - creates a @foo::bar@ syntax for makefile substitution - if foo::bar
>> is present, it's used, otherwise we fall back to foo.
>> - eliminates "replace_slashes" in the makefile. (and uses @slash@ in
>> the few cases where it is necessary, i.e. command paths.)
>> - kills the legacy INVERSE_CONDITIONED_LINE syntax.
>> - makes compilers/imcc/Rules.mak a generated file so we can use the
>> makefile.in  syntax.
>> - eliminates most of config's auto:cgoto - these are now just part of
>> the makefile.
>> - updates config's init::optimize to put the optimize flags in
>> @optimize@, with file-specific overrides, and update all invocations
>> of CC to use this config var.
>> - update config's auto::warnings to keep track of per-file warnings
>> overrides in a hopefully easy to use data structure that should allow
>> for additions other than the current gcc/g++ variants; don't expose as
>> much of our decision making process here in config vars as we used to.
>> break out warnings into @ccwarn@ instead of adding them to CFLAGS.
>> generate file specific overrides (and use them in the makefiles).
>> - move g++ vs. gcc check out of auto::warnings into auto::gcc
>> - fix test file used to see if warnings are valid to be warnings clean
>> - some valid warnings were not being picked up because of this.
>>
>>
>> Needs testing on sun's CC and amd64, and windows.
>>
>
> FAIL with mingw (gcc 3.4.5)
>
> gcc -I./include -I./include/pmc -DWIN32  -DHASATTRIBUTE_CONST
> -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC
> -DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE
> -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT
> -DDISABLE_GC_DEBUG=1 -DNDEBUG -DHAS_GETTEXT -I
> C:\icu-4.2.1\icu\include   -DHAVE_COMPUTED_GOTO     -s -O2
> -falign-functions=16 -fvisibility=hidden -Isrc/string -o
> src/string/api.o -c src/string/api.c
> cc1.exe: error: unrecognized command line option "-fvisibility=hidden"
> make: *** [src/string/api.o] Error 1
>
> C:\fperrad\Parrot\rm_cflags>gcc -v
> Reading specs from C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/specs
> Configured with: ../gcc-3.4.5-20060117-3/configure --with-gcc
> --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32
> --prefix=/mingw --enable-threads --disable-nls
> --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry
> --disable-shared --enable-sjlj-exceptions --enable-libgcj
> --disable-java-awt --without-x --enable-java-gc=boehm
> --disable-libgcj-debug --enable-interpreter
> --enable-hash-synchronization --enable-libstdcxx-debug
> Thread model: win32
> gcc version 3.4.5 (mingw-vista special r3)
>
> François
>
>
>> --
>> Will "Coke" Coleda
>> _______________________________________________
>> http://lists.parrot.org/mailman/listinfo/parrot-dev
>>
>>
>

That parameter is probed for in config/auto/warnings.pm - that module
didn't recognize your compiler's complaint that it wasn't a supported
option, so it included it. I just made that check marginally smarter,
so the probe should now realize it's not a supported option and let
you get further.

Thanks for the report.


-- 
Will "Coke" Coleda


More information about the parrot-dev mailing list