| 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 \ |
| Max Filippov | d38efc1 | 2012-09-17 05:44:40 +0400 | [diff] [blame] | 9 | pci-dma.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 | c4c4594 | 2012-11-28 16:53:51 -0800 | [diff] [blame] | 26 | sed-y = -e 's/\*(\(\.[a-z]*it\|\.ref\|\)\.text)/*(\1.literal \1.text)/g' \ |
| 27 | -e 's/\.text\.unlikely/.literal.unlikely .text.unlikely/g' \ |
| Chris Zankel | ed5010e | 2010-05-01 23:00:07 -0700 | [diff] [blame] | 28 | -e 's/\*(\(\.text\.[a-z]*\))/*(\1.literal \1)/g' |
| Chris Zankel | 78f3cdf | 2009-04-21 00:34:15 -0700 | [diff] [blame] | 29 | |
| 30 | quiet_cmd__cpp_lds_S = LDS $@ |
| Chris Zankel | c4c4594 | 2012-11-28 16:53:51 -0800 | [diff] [blame] | 31 | cmd__cpp_lds_S = $(CPP) $(cpp_flags) -P -C -Uxtensa -D__ASSEMBLY__ $< \ |
| 32 | | sed $(sed-y) >$@ |
| Chris Zankel | 78f3cdf | 2009-04-21 00:34:15 -0700 | [diff] [blame] | 33 | |
| 34 | $(obj)/vmlinux.lds: $(src)/vmlinux.lds.S FORCE |
| 35 | $(call if_changed_dep,_cpp_lds_S) |