diff --git a/configure b/configure index a55dbc5eff..cba0c08a1d 100755 --- a/configure +++ b/configure @@ -34,6 +34,8 @@ ar="ar" make="make" install="install" strip="strip" +objcopy="objcopy" +ld="ld" # parse CC options first for opt do @@ -53,6 +55,8 @@ done cc="${cross_prefix}${cc}" ar="${cross_prefix}${ar}" strip="${cross_prefix}${strip}" +objcopy="${cross_prefix}${objcopy}" +ld="${cross_prefix}${ld}" # check that the C compiler works. cat > $TMPC <> $config_mak echo "CC=$cc" >> $config_mak echo "HOST_CC=$host_cc" >> $config_mak echo "AR=$ar" >> $config_mak +echo "OBJCOPY=$objcopy" >> $config_mak +echo "LD=$ld" >> $config_mak # XXX: only use CFLAGS and LDFLAGS ? # XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross # compilation of dyngen tool (useful for win32 build on Linux host) diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile index 7f987d898f..69e6c22acc 100644 --- a/pc-bios/optionrom/Makefile +++ b/pc-bios/optionrom/Makefile @@ -3,7 +3,6 @@ all: build-all include ../../config-host.mak VPATH=$(SRC_PATH)/pc-bios/optionrom -OBJCOPY=objcopy # from kernel sources - scripts/Kbuild.include # try-run @@ -35,9 +34,12 @@ build-all: multiboot.bin $(CC) $(CFLAGS) -o $@ -c $< %.img: %.o - $(LD) --oformat binary -Ttext 0 -o $@ $< + $(LD) -Ttext 0 -e _start -s -o $@ $< -%.bin: %.img +%.raw: %.img + $(OBJCOPY) -O binary -j .text $< $@ + +%.bin: %.raw $(SRC_PATH)/pc-bios/optionrom/signrom.sh $< $@ cp $@ $(SRC_PATH)/pc-bios/