eliminating CFLAGS

Andy Dougherty doughera at lafayette.edu
Fri Feb 12 22:13:18 UTC 2010


On Fri, 12 Feb 2010, Will Coleda wrote:

> I'm pretty sure that the rm_cflags branch will now break the build for
> any non-gcc compiler; can someone give it a shot? All my development
> environments are GCC at this point. (Strawberry perl on windows,
> generic linux box.)

You are correct.  On OpenSolaris with Sun's cc, first try I got

    cc: -W option with unknown program no-unused-parameter

As you undoubtedly suspected, non-gcc compilers don't necessarily know 
what to do with those options.

Removing those invalid options from the Makefile (and from 
compilers/imcc/Rules.mak), I got as far as

    ld.so.1: iropt: fatal: relocation error: file 
    /opt/SunStudioExpress/prod/bin/iropt: symbol _printstack: referenced 
    symbol not found
    cc: Fatal error in /opt/SunStudioExpress/prod/bin/iropt : Killed
    *** Error code 9
    make: Fatal error: Command failed for target `src/ops/core_ops_switch.o'

which turns out to be due to optimization level I use in my build script.
In the old CCFLAGS, optimization was turned off for the core_ops*.c files.
Now it's not.  That file overwhelms the compiler with optimization
turned on, and the compiler hits a resource limit and ungracefully
crashes.

Turning off optimization, it builds.  The only tests it fail are 
t/run/exit.t, tests 2, 4, 6, and 8.  All of them fail with the unhelpful 
and unenlightening error message:

    t/run/exit....NOK 2#     Failed test (t/run/exit.t at line 45) 
    #     '0'
    #         ne
    #     '0'

However, I suspect that's unrelated to CCFLAGS, and haven't pursued
it further.

-- 
    Andy Dougherty		doughera at lafayette.edu


More information about the parrot-dev mailing list