"Nadav Har'El" <[EMAIL PROTECTED]> writes: > But if you're going to compile some of the code with -O1 and -O3, your > Makefile or configure script are going to look realy hairy :( It will > look like black magic. A better (but more time consuming) thing to do is > to try to find the offending piece of code (which compiles wrong) and send > a bug report to gcc and/or try to circumvent the bug.
I agree completely, but just for the hell of it, I don't think there will be much black magic in the Makefile. Here is one possible make hackery to skin this particular cat (UNTESTED, GNU make): OBJ_O1 := foo.o1 bar.o1 CFLAGS_O1 := $(CFLAGS) -O1 OBJ_O3 := xyzzy.o3 CFLAGS_O3 := $(CFLAGS) -O3 target: $(OBJ_O1) $(OBJ_O3) $(CC) -o $@ $^ $(REST_OF_LINK_CMD) %.o1: %.c $(CC) -c $(CFLAGS_O1) $(CPPFLAGS) $< -o $@ %.o3: %.c $(CC) -c $(CFLAGS_O3) $(CPPFLAGS) $< -o $@ As mentioned before, it should be perfectly fine to compile various files with different optimizations (or without optimization at all) and then link them together. -O3 is especially (mostly) harmless, since the only thing it does compared to -O2 is inlining. Can that be affecting some of your code, btw? -- Oleg Goldshmidt | [EMAIL PROTECTED] ================================================= "We work by wit, and not by witchcraft, And wit depends on dilatory time." ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]