sh: Tidy up the ldscript output format specifier.
Paul Mundt [Sat, 9 May 2009 15:25:08 +0000 (00:25 +0900)]
Tie this in to the Makefile directly, where we already know what we are
running on. This tidies up the linker script a bit, and is prep work for
unifying the arch/sh/boot/compressed linker scripts.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

arch/sh/Makefile
arch/sh/boot/compressed/Makefile_32
arch/sh/boot/compressed/Makefile_64
arch/sh/kernel/vmlinux.lds.S

index 68348e7..b941dc9 100644 (file)
@@ -100,13 +100,17 @@ LDFLAGS_vmlinux   += --defsym phys_stext=_stext-$(CONFIG_PAGE_OFFSET) \
 endif
 
 ifdef CONFIG_CPU_LITTLE_ENDIAN
-LDFLAGS_vmlinux                += --defsym 'jiffies=jiffies_64'
+ld-bfd                 := elf32-$(UTS_MACHINE)-linux
+LDFLAGS_vmlinux                += --defsym 'jiffies=jiffies_64' --oformat $(ld-bfd)
 LDFLAGS                        += -EL
 else
-LDFLAGS_vmlinux                += --defsym 'jiffies=jiffies_64+4'
+ld-bfd                 := elf32-$(UTS_MACHINE)big-linux
+LDFLAGS_vmlinux                += --defsym 'jiffies=jiffies_64+4' --oformat $(ld-bfd)
 LDFLAGS                        += -EB
 endif
 
+export ld-bfd
+
 head-y                 := arch/sh/kernel/init_task.o
 head-$(CONFIG_SUPERH32)        += arch/sh/kernel/head_32.o
 head-$(CONFIG_SUPERH64)        += arch/sh/kernel/head_64.o
index b96a055..2492557 100644 (file)
@@ -28,7 +28,8 @@ ORIG_CFLAGS := $(KBUILD_CFLAGS)
 KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
 endif
 
-LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup -T $(obj)/../../kernel/vmlinux.lds
+LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
+                  -T $(obj)/../../kernel/vmlinux.lds
 
 $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(LIBGCC) FORCE
        $(call if_changed,ld)
index 658d4f9..541a529 100644 (file)
@@ -24,8 +24,8 @@ OBJECTS               := $(obj)/vmlinux_64.lds $(obj)/head_64.o $(obj)/misc_64.o \
 ZIMAGE_OFFSET  := $(shell /bin/bash -c 'printf "0x%08x" \
                     $$[$(CONFIG_PAGE_OFFSET)+0x400000+0x10000]')
 
-LDFLAGS_vmlinux := -Ttext $(ZIMAGE_OFFSET) -e startup \
-                   -T $(obj)/../../kernel/vmlinux.lds
+LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(ZIMAGE_OFFSET) -e startup \
+                  -T $(obj)/../../kernel/vmlinux.lds
 
 $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE
        $(call if_changed,ld)
index 8d97f52..1a2c8db 100644 (file)
@@ -6,12 +6,8 @@
 #define LOAD_OFFSET    CONFIG_PAGE_OFFSET
 OUTPUT_ARCH(sh:sh5)
 #else
+#define LOAD_OFFSET    0
 OUTPUT_ARCH(sh)
-#ifdef CONFIG_CPU_LITTLE_ENDIAN
-OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
-#else
-OUTPUT_FORMAT("elf32-shbig-linux", "elf32-shbig-linux", "elf32-shbig-linux")
-#endif
 #endif
 
 #include <asm/thread_info.h>