[SeaBIOS] [PATCH 1/3] vgabios: Add config option for assembler fixups
Paul Menzel
paulepanter at users.sourceforge.net
Sat Apr 11 08:58:20 CEST 2015
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 <kevin at koconnor.net>
> ---
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://www.seabios.org/pipermail/seabios/attachments/20150411/77d1e5ee/attachment-0001.asc>
More information about the SeaBIOS
mailing list