• Juergen Lock's avatar
    multiboot.S patch for old as(1) (was: Re: [Qemu-devel] Some OpenBSD/amd64 build fixes) · ff56954b
    Juergen Lock authored
    On Wed, Sep 23, 2009 at 10:55:02PM +0200, Juergen Lock wrote:
    > On Wed, Sep 23, 2009 at 09:31:16PM +0100, Laurence Tratt wrote:
    >[...]
    > >  then the above error doesn't occur, but
    > > pc-bios/optionrom/multiboot.S dies as follows:
    > >
    > >   $
    > >     AS    optionrom/multiboot.o
    > >   multiboot.S: Assembler messages:
    > >   multiboot.S:116: Error: `%es:-4(%edi)' is not a valid 16 bit base/index
    > > expression
    > >   $
    > >
    > > What little Intel assembler I ever knew has long since departed from my
    > > brain, so I don't know why that error occurs, nor what a fix might be.
    > >
    >  It occurs because of too old binutils (as(1) in this case), on FreeBSD
    > we now have a port for newer ones,
    > 	http://www.freshports.org/devel/binutils
    > so I depend on that and have the optionrom Makefile use the new as
    > like this: (the first change wrt CFLAGS is unrelated and has probably
    > been fixed in the meantime; it caused gmake to complain about
    > recursive use of CFLAGS.)
    >
    > Index: qemu/pc-bios/optionrom/Makefile
    > @@ -9,10 +9,13 @@
    >
    >  CFLAGS = -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer -fno-builtin
    >  CFLAGS += -I$(SRC_PATH)
    > -CFLAGS += $(call cc-option, $(CFLAGS), -fno-stack-protector,"")
    > +CFLAGS := $(CFLAGS) $(call cc-option, $(CFLAGS), -fno-stack-protector,"")
    >
    >  build-all: multiboot.bin
    >
    > +%.o: %.S
    > +	$(CC) -E $(CFLAGS) -o - -c $< |${LOCALBASE}/bin/as -V -Qy -o $@
    > +
    >  %.img: %.o
    >  	$(call quiet-command,$(LD) -Ttext 0 -e _start -s -o $@ $<,"  Building $(TARGET_DIR)$@")
    >
    
    That patch didn't seem to help on OpenBSD so I now finally got around
    making another one that just emits the bytes of the offending insn
    instead so people can keep using old assemblers:
    Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    ff56954b
Name
Last commit
Last update
..
keymaps Loading commit data...
optionrom Loading commit data...
Makefile Loading commit data...
README Loading commit data...
bamboo.dtb Loading commit data...
bamboo.dts Loading commit data...
bios.bin Loading commit data...
mpc8544ds.dtb Loading commit data...
mpc8544ds.dts Loading commit data...
multiboot.bin Loading commit data...
ohw.diff Loading commit data...
openbios-ppc Loading commit data...
openbios-sparc32 Loading commit data...
openbios-sparc64 Loading commit data...
petalogix-s3adsp1800.dtb Loading commit data...
ppc_rom.bin Loading commit data...
pxe-e1000.bin Loading commit data...
pxe-ne2k_pci.bin Loading commit data...
pxe-pcnet.bin Loading commit data...
pxe-rtl8139.bin Loading commit data...
vgabios-cirrus.bin Loading commit data...
vgabios.bin Loading commit data...
video.x Loading commit data...