tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

changing optimization for crunchgen components



OK, so now I've run into a problem that I don't seen an
obvious way around...

I'm stuck trying to build the 'fsdb' pieces that will get
crunch'd and then linked together in /rescue.

(Built environment is Solaris x86, target is netbsd-5-rc3-ish,
but I don't think it matters.)

Anyway -- my gcc 4.3.3 targeted coldfire compiler is giving
up the ghost when it tries to compile fsdb.c with "-Os". [1]

If I specify "-O1", the compiler will work.

How do I set the optimization flags for just one source file of
the stuff that gets put into in the /rescue binary?

Doing what I've done in other places in sbin, and usr.bin (e.g.):

.if ${MACHINE_ARCH} == "m68k" && ${MACHINE} == "coldfire"
COPTS.fsdb.c+= -O1
.endif

This doesn't work.  The crunch compile still comes out with -Os, and
doesn't pick up my COPTS setting.  In the other places where I've
needed to override the optimization, I get "...-gcc -O2 -pipe .... -O1
" in the generated compile invocation, and gcc honors the last -O flag
on the command line, so adding the extra COPTS ends up working out
alright for me.

-Kurt

[1] /nbsd/coldfire-5/tools/bin/m68k--netbsdelf-gcc -Os -pipe 
-fno-optimize-sibling-calls -msoft-float -Wall -Wstrict-prototypes 
-Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wno-traditional 
-Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Wcast-qual 
-Wwrite-strings -Wextra -Wno-unused-parameter -Werror -march=isac -mcpu=54455 
-msoft-float -I/nbsd/nbsd-5/sbin/fsck -I/nbsd/nbsd-5/sbin/fsck_ffs 
-DWAPBL_DEBUG_PRINT=0 -nostdinc -isystem /nbsd/coldfire-5/nbuild/usr/include 
-DRESCUEDIR=\"/rescue\" -c -Wno-pointer-sign /nbsd/nbsd-5/sbin/fsdb/fsdb.c
/nbsd/nbsd-5/sbin/fsdb/fsdb.c: In function 'find_indirblks64':
/nbsd/nbsd-5/sbin/fsdb/fsdb.c:744: error: unable to generate reloads for:
(insn:QI 68 67 69 7 /nbsd/nbsd-5/sbin/fsdb/fsdb.c:635 (parallel [
            (set (cc0)
                (compare (reg:DI 0 %d0 [orig:37 D.6312 ] [37])
                    (reg:DI 2 %d2 [orig:44 D.4945 ] [44])))
            (clobber (reg:DI 65))
        ]) 12 {*m68k.md:521} (expr_list:REG_DEAD (reg:DI 0 %d0 [orig:37 D.6312 
] [37])
        (expr_list:REG_UNUSED (reg:DI 65)
            (nil))))
/nbsd/nbsd-5/sbin/fsdb/fsdb.c:744: internal compiler error: in find_reloads, at 
reload.c:3767
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.



Home | Main Index | Thread Index | Old Index