Dear Kevin,
Am Freitag, den 10.04.2015, 11:07 -0400 schrieb Kevin O'Connor: > Add a kconfig build option (CONFIG_VGA_FIXUP_ASM) to allow users to > build the vgabios without the complex assembler fixups that work > around emulator bugs. > > Signed-off-by: Kevin O'Connor <[email protected]> > --- > Makefile | 21 +++++++++++---------- > vgasrc/Kconfig | 10 ++++++++++ > vgasrc/vgaentry.S | 4 ++++ > 3 files changed, 25 insertions(+), 10 deletions(-) > > diff --git a/Makefile b/Makefile > index a84a5f7..a4d945c 100644 > --- a/Makefile > +++ b/Makefile > @@ -56,7 +56,7 @@ COMMONCFLAGS := -I$(OUT) -Isrc -Os -MD -g \ > -Wall -Wno-strict-aliasing -Wold-style-definition \ > $(call cc-option,$(CC),-Wtype-limits,) \ > -m32 -march=i386 -mregparm=3 -mpreferred-stack-boundary=2 \ > - -minline-all-stringops \ > + -minline-all-stringops -fomit-frame-pointer \ could you elaborate why `-fomit-frame-pointer` causes issues and needs to be moved around? > -freg-struct-return -ffreestanding -fno-delete-null-pointer-checks \ > -ffunction-sections -fdata-sections -fno-common -fno-merge-constants > COMMONCFLAGS += $(call cc-option,$(CC),-nopie,) > @@ -64,15 +64,14 @@ COMMONCFLAGS += $(call > cc-option,$(CC),-fno-stack-protector,) > COMMONCFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) > COMMA := , > > -CFLAGS32FLAT := $(COMMONCFLAGS) -DMODE16=0 -DMODESEGMENT=0 > -fomit-frame-pointer > +CFLAGS32FLAT := $(COMMONCFLAGS) -DMODE16=0 -DMODESEGMENT=0 > CFLAGSSEG := $(COMMONCFLAGS) -DMODESEGMENT=1 -fno-defer-pop \ > $(call cc-option,$(CC),-fno-jump-tables,-DMANUAL_NO_JUMP_TABLE) \ > $(call cc-option,$(CC),-fno-tree-switch-conversion,) > -CFLAGS32SEG := $(CFLAGSSEG) -DMODE16=0 -fomit-frame-pointer > -CFLAGS16INC := $(CFLAGSSEG) -DMODE16=1 \ > +CFLAGS32SEG := $(CFLAGSSEG) -DMODE16=0 > +CFLAGS16 := $(CFLAGSSEG) -DMODE16=1 \ > $(call cc-option,$(CC),-m16,-Wa$(COMMA)src/code16gcc.s) \ > $(call cc-option,$(CC),--param large-stack-frame=4,-fno-inline) > -CFLAGS16 := $(CFLAGS16INC) -fomit-frame-pointer […] > + config VGA_FIXUP_ASM > + bool "Fixup assembler to work with broken emulators" > + default y > + help > + This option will cause the build to attempt to avoid > + certain x86 machine instructions that are known to confuse > + some emulators. In particular, it works around > + deficiencies in the Windows vgabios emulator and the Use Microsoft Windows? > + x86emu vgabios emulator (frequently used in Xorg). > + > config VGA_ALLOCATE_EXTRA_STACK > depends on BUILD_VGABIOS > bool "Allocate an internal stack for 16bit interrupt entry point" […] Thanks, Paul
signature.asc
Description: This is a digitally signed message part
_______________________________________________ SeaBIOS mailing list [email protected] http://www.seabios.org/mailman/listinfo/seabios
