eliminating CFLAGS

Will Coleda will at coleda.com
Thu Mar 4 21:16:48 UTC 2010

On Thu, Mar 4, 2010 at 8:54 AM, Will Coleda <will at coleda.com> wrote:
> 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
>> 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.

There was a pretty big bug in the probing logic. Fixed now. (Worked
for andy because he's on the "not-gcc" path, but since you are using a
gcc variant, you caught it. Thanks. =-)

Can you confirm it's ok for you now?

Will "Coke" Coleda

More information about the parrot-dev mailing list