Re: [x86 setup 13/33] Header file to produce 16-bit code with gcc

From: Segher Boessenkool
Date: Tue Jul 10 2007 - 17:10:36 EST


It seems to me GCC should grow an option to insert .code16gcc
by itself (-m16 perhaps?)

-m16 is the right thing,

Probably not actually, -m16 might have 16-bit "int" etc.
-mabi=16 is closer to what other architectures do here.

and it also provides a proper hook for
eventually having a real 16-bit backend (there are at least two projects
for doing that.)

Those would use -m16, yes.

For now, I have:

CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \
$(cflags-$(ARCH)) \
-Wall -Wstrict-prototypes \
-march=i386 -mregparm=3 \
-include $(srctree)/$(src)/code16gcc.h \
-fno-strict-aliasing -fomit-frame-pointer \
$(call cc-option, -ffreestanding) \
$(call cc-option, -fno-unit-at-a-time) \
$(call cc-option, -fno-toplevel-reorder) \
$(call cc-option, -fno-stack-protector) \
$(call cc-option, -mpreferred-stack-boundary=2)

... since that will require less violence to eventually hack in the
proper -m16 option if/when it becomes available.

Looks good, except you don't want -fno-unit-at-a-time if
-fno-toplevel-reorder works. And of course it would be
good to get rid of -fno-strict-aliasing, but let's not
go there today ;-P


Segher

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/