aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2009-09-20 06:28:22 -0400
committerSam Ravnborg <sam@ravnborg.org>2009-09-20 06:28:22 -0400
commit51b563fc93c8cb5bff1d67a0a71c374e4a4ea049 (patch)
tree38c6a6d185183b30b8dbe59d5b8fa78815a1fdd4 /arch/mips
parent4356f4890792a678936c93c9196e8f7742e04535 (diff)
arm, cris, mips, sparc, powerpc, um, xtensa: fix build with bash 4.0
Albin Tonnerre <albin.tonnerre@free-electrons.com> reported: Bash 4 filters out variables which contain a dot in them. This happends to be the case of CPPFLAGS_vmlinux.lds. This is rather unfortunate, as it now causes build failures when using SHELL=/bin/bash to compile, or when bash happens to be used by make (eg when it's /bin/sh) Remove the common definition of CPPFLAGS_vmlinux.lds by pushing relevant stuff to either Makefile.build or the arch specific kernel/Makefile where we build the linker script. This is also nice cleanup as we move the information out where it is used. Notes for the different architectures touched: arm - we use an already exported symbol cris - we use a config symbol aleady available [Not build tested] mips - the jiffies complexity has moved to vmlinux.lds.S where we need it. Added a few variables to CPPFLAGS - they are only used by the linker script. [Not build tested] powerpc - removed assignment that is not needed [not build tested] sparc - simplified it using $(BITS) um - introduced a few new exported variables to deal with this xtensa - added options to CPP invocation [not build tested] Cc: Albin Tonnerre <albin.tonnerre@free-electrons.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Mikael Starvik <starvik@axis.com> Cc: Jesper Nilsson <jesper.nilsson@axis.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: Jeff Dike <jdike@addtoit.com> Cc: Chris Zankel <chris@zankel.net> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'arch/mips')
-rw-r--r--arch/mips/Makefile27
-rw-r--r--arch/mips/kernel/vmlinux.lds.S13
2 files changed, 14 insertions, 26 deletions
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index c825b14b4ed0..77f5021218d3 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -627,16 +627,6 @@ endif
627cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic 627cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic
628drivers-$(CONFIG_PCI) += arch/mips/pci/ 628drivers-$(CONFIG_PCI) += arch/mips/pci/
629 629
630ifdef CONFIG_32BIT
631ifdef CONFIG_CPU_LITTLE_ENDIAN
632JIFFIES = jiffies_64
633else
634JIFFIES = jiffies_64 + 4
635endif
636else
637JIFFIES = jiffies_64
638endif
639
640# 630#
641# Automatically detect the build format. By default we choose 631# Automatically detect the build format. By default we choose
642# the elf format according to the load address. 632# the elf format according to the load address.
@@ -660,8 +650,9 @@ ifdef CONFIG_64BIT
660endif 650endif
661 651
662KBUILD_AFLAGS += $(cflags-y) 652KBUILD_AFLAGS += $(cflags-y)
663KBUILD_CFLAGS += $(cflags-y) \ 653KBUILD_CFLAGS += $(cflags-y)
664 -D"VMLINUX_LOAD_ADDRESS=$(load-y)" 654KBUILD_CPPFLAGS += -D"VMLINUX_LOAD_ADDRESS=$(load-y)"
655KBUILD_CPPFLAGS += -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)"
665 656
666LDFLAGS += -m $(ld-emul) 657LDFLAGS += -m $(ld-emul)
667 658
@@ -676,18 +667,6 @@ endif
676 667
677OBJCOPYFLAGS += --remove-section=.reginfo 668OBJCOPYFLAGS += --remove-section=.reginfo
678 669
679#
680# Choosing incompatible machines durings configuration will result in
681# error messages during linking. Select a default linkscript if
682# none has been choosen above.
683#
684
685CPPFLAGS_vmlinux.lds := \
686 $(KBUILD_CFLAGS) \
687 -D"LOADADDR=$(load-y)" \
688 -D"JIFFIES=$(JIFFIES)" \
689 -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)"
690
691head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o 670head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o
692 671
693libs-y += arch/mips/lib/ 672libs-y += arch/mips/lib/
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
index 2769bed3d2af..9bf0e3df7c5a 100644
--- a/arch/mips/kernel/vmlinux.lds.S
+++ b/arch/mips/kernel/vmlinux.lds.S
@@ -10,7 +10,16 @@ PHDRS {
10 text PT_LOAD FLAGS(7); /* RWX */ 10 text PT_LOAD FLAGS(7); /* RWX */
11 note PT_NOTE FLAGS(4); /* R__ */ 11 note PT_NOTE FLAGS(4); /* R__ */
12} 12}
13jiffies = JIFFIES; 13
14ifdef CONFIG_32BIT
15 ifdef CONFIG_CPU_LITTLE_ENDIAN
16 jiffies = jiffies_64;
17 else
18 jiffies = jiffies_64 + 4;
19 endif
20else
21 jiffies = jiffies_64;
22endif
14 23
15SECTIONS 24SECTIONS
16{ 25{
@@ -29,7 +38,7 @@ SECTIONS
29 /* . = 0xa800000000300000; */ 38 /* . = 0xa800000000300000; */
30 . = 0xffffffff80300000; 39 . = 0xffffffff80300000;
31#endif 40#endif
32 . = LOADADDR; 41 . = VMLINUX_LOAD_ADDRESS;
33 /* read-only */ 42 /* read-only */
34 _text = .; /* Text and read-only data */ 43 _text = .; /* Text and read-only data */
35 .text : { 44 .text : {