| Chris Zankel | 5a0015d | 2005-06-23 22:01:16 -0700 | [diff] [blame] | 1 | # |
| 2 | # Makefile for the Linux/Xtensa kernel. |
| 3 | # |
| 4 | |
| 5 | extra-y := head.o vmlinux.lds |
| 6 | |
| Matthew Wilcox | 64ac24e | 2008-03-07 21:55:58 -0500 | [diff] [blame] | 7 | obj-y := align.o entry.o irq.o coprocessor.o process.o ptrace.o \ |
| Chris Zankel | 1c0350b | 2006-12-13 00:34:32 -0800 | [diff] [blame] | 8 | setup.o signal.o syscall.o time.o traps.o vectors.o platform.o \ |
| Chris Zankel | 787a22d | 2007-08-04 14:31:04 -0700 | [diff] [blame] | 9 | pci-dma.o init_task.o io.o |
| Chris Zankel | 5a0015d | 2005-06-23 22:01:16 -0700 | [diff] [blame] | 10 | |
| Chris Zankel | 5a0015d | 2005-06-23 22:01:16 -0700 | [diff] [blame] | 11 | obj-$(CONFIG_KGDB) += xtensa-stub.o |
| 12 | obj-$(CONFIG_PCI) += pci.o |
| 13 | obj-$(CONFIG_MODULES) += xtensa_ksyms.o module.o |
| 14 | |
| Chris Zankel | 78f3cdf | 2009-04-21 00:34:15 -0700 | [diff] [blame] | 15 | # In the Xtensa architecture, assembly generates literals which must always |
| 16 | # precede the L32R instruction with a relative offset less than 256 kB. |
| 17 | # Therefore, the .text and .literal section must be combined in parenthesis |
| 18 | # in the linker script, such as: *(.literal .text). |
| 19 | # |
| 20 | # We need to post-process the generated vmlinux.lds scripts to convert |
| 21 | # *(xxx.text) to *(xxx.literal xxx.text) for the following text sections: |
| 22 | # .text .ref.text .*init.text .*exit.text .text.* |
| 23 | # |
| 24 | # Replicate rules in scripts/Makefile.build |
| Chris Zankel | 5a0015d | 2005-06-23 22:01:16 -0700 | [diff] [blame] | 25 | |
| Chris Zankel | ed5010e | 2010-05-01 23:00:07 -0700 | [diff] [blame] | 26 | sed-y = -e 's/\*(\(\.[a-z]*it\|\.ref\|\)\.text)/*(\1.literal \1.text)/g' \ |
| 27 | -e 's/\*(\(\.text\.[a-z]*\))/*(\1.literal \1)/g' |
| Chris Zankel | 78f3cdf | 2009-04-21 00:34:15 -0700 | [diff] [blame] | 28 | |
| 29 | quiet_cmd__cpp_lds_S = LDS $@ |
| Sam Ravnborg | 51b563f | 2009-09-20 12:28:22 +0200 | [diff] [blame] | 30 | cmd__cpp_lds_S = $(CPP) $(cpp_flags) -P -C -Uxtensa -D__ASSEMBLY__ $< \ |
| 31 | | sed $(sed-y) >$@ |
| Chris Zankel | 78f3cdf | 2009-04-21 00:34:15 -0700 | [diff] [blame] | 32 | |
| 33 | $(obj)/vmlinux.lds: $(src)/vmlinux.lds.S FORCE |
| 34 | $(call if_changed_dep,_cpp_lds_S) |