eliminating CFLAGS

François Perrad francois.perrad at gadz.org
Thu Mar 4 07:58:41 UTC 2010

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)


> --
> Will "Coke" Coleda
> _______________________________________________
> http://lists.parrot.org/mailman/listinfo/parrot-dev

More information about the parrot-dev mailing list