eliminating CFLAGS

Will Coleda will at coleda.com
Fri Mar 5 18:50:22 UTC 2010


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

Tene++ merged this back to trunk earlier today; particle++ has id'd or
fixed the few windows issues, ttbot shows we're green.

Thanks to everyone who tested.

-- 
Will "Coke" Coleda


More information about the parrot-dev mailing list