Index: Makefile
===================================================================
--- Makefile	(revision 4cfe69aa0cc00430379e3934cf85c7a661bf1769)
+++ Makefile	(revision 62340efb9125128b570c10bf637b74b0fcb9a48a)
@@ -166,8 +166,14 @@
 				$(CROSS_GCC) $(FLAGS_ASM) -c -o $@ $<
 
-bios.abs:		$(ROM_OBJ) \
+bios.abs:		bios.img
+				cp bios.img bios.abs
+
+bios.img:		bios.elf
+				$(CROSS_OBJC) --output-target binary bios.elf bios.img
+
+bios.elf:		$(ROM_OBJ) \
 				prolog.a libcio.a vlib.a iolib.a libsm.a lib700.a
 				$(CROSS_GCC) $(FLAGS_LNK) -Wl,--script,misc/rom.ld,--entry,0x100000 \
-				-o bios.abs $(ROM_OBJ) \
+				-o bios.elf $(ROM_OBJ) \
 				prolog.a libcio.a vlib.a iolib.a libsm.a lib700.a -lgcc
 
@@ -205,8 +211,14 @@
 				$(CROSS_GCC) $(FLAGS_ASM) -c -o $@ $<
 
-midas.abs:		$(LOWRAM_OBJ) prolog.a $(RAM_OBJ) \
+midas.abs:		midas.img
+				cp midas.img midas.abs
+
+midas.img:		midas.elf
+				$(CROSS_OBJC) --output-target binary midas.elf midas.img
+
+midas.elf:		$(LOWRAM_OBJ) prolog.a $(RAM_OBJ) \
 				libcio.a vlib.a iolib.a libsm.a lib700.a
 				$(CROSS_GCC) $(FLAGS_LNK) -Wl,--script,misc/ram.ld,--entry,0x10000 \
-				-o midas.abs $(LOWRAM_OBJ) prolog.a $(RAM_OBJ) \
+				-o midas.elf $(LOWRAM_OBJ) prolog.a $(RAM_OBJ) \
 				libcio.a vlib.a iolib.a libsm.a lib700.a -lgcc
 
@@ -238,5 +250,6 @@
 				rm -rf build
 				rm -f prolog.a iolib.a libcio.a libsm.a lib700.a vlib.a
-				rm -f bios.abs midas.abs
+				rm -f bios.elf bios.img bios.abs
+				rm -f midas.elf midas.img midas.abs
 				rm -f hatari/c.img
 				rm -f hatari/d/out/*
Index: misc/ram.ld
===================================================================
--- misc/ram.ld	(revision 4cfe69aa0cc00430379e3934cf85c7a661bf1769)
+++ misc/ram.ld	(revision 62340efb9125128b570c10bf637b74b0fcb9a48a)
@@ -1,3 +1,3 @@
-OUTPUT_FORMAT("binary")
+OUTPUT_FORMAT("elf32-m68k")
 ENTRY(start)
 SECTIONS
@@ -5,6 +5,6 @@
     .text (0x10000) :
     {
-        *(.text)
-        *(.rodata)
+        *(.text .text.*)
+        *(.rodata .rodata.*)
         _etext = .;
     }
@@ -12,5 +12,5 @@
     .data : ALIGN(0x10)
     {
-        *(.data)
+        *(.data .data.*)
         _edata = .;
     }
@@ -18,5 +18,5 @@
     .bss : ALIGN(0x10)
     {
-        *(.bss)
+        *(.bss .bss.*)
     }
 
Index: misc/rom.ld
===================================================================
--- misc/rom.ld	(revision 4cfe69aa0cc00430379e3934cf85c7a661bf1769)
+++ misc/rom.ld	(revision 62340efb9125128b570c10bf637b74b0fcb9a48a)
@@ -1,3 +1,3 @@
-OUTPUT_FORMAT("binary")
+OUTPUT_FORMAT("elf32-m68k")
 ENTRY(start)
 SECTIONS
@@ -5,6 +5,6 @@
     .text (0x100000) :
     {
-        *(.text)
-        *(.rodata)
+        *(.text .text.*)
+        *(.rodata .rodata.*)
         _etext = .;
     }
@@ -12,5 +12,5 @@
     .data : ALIGN(0x10)
     {
-        *(.data)
+        *(.data .data.*)
         _edata = .;
     }
@@ -18,5 +18,5 @@
     .bss (0x400) :
     {
-        *(.bss)
+        *(.bss .bss.*)
     }
 
