mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 01:10:04 +00:00
![Paul Mundt](/assets/img/avatar_default.png)
The original sh64 toolchains required that we tune the ISA level accordingly to not have head.S/entry.S blow up. With current toolchains, this is no longer the case, and the syntax magically changed as well, causing all current toolchains to die a horrible death. Incidentally, code generation in other parts of the kernel is now significantly complex enough that none of the older toolchains make it very far these days, so there's not even any point in preserving legacy compatability via as-option. This fixes a long-standing issue, as noted here: http://lkml.org/lkml/2005/1/5/223 Though at the time the current toolchains were too broken to make adjusting the tuning worthwhile. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
111 lines
2.9 KiB
Makefile
111 lines
2.9 KiB
Makefile
#
|
|
# This file is subject to the terms and conditions of the GNU General Public
|
|
# License. See the file "COPYING" in the main directory of this archive
|
|
# for more details.
|
|
#
|
|
# Copyright (C) 2000, 2001 Paolo Alberelli
|
|
# Copyright (C) 2003, 2004 Paul Mundt
|
|
#
|
|
# This file is included by the global makefile so that you can add your own
|
|
# architecture-specific flags and dependencies. Remember to do have actions
|
|
# for "archclean" and "archdep" for cleaning up and making dependencies for
|
|
# this architecture
|
|
#
|
|
|
|
cpu-y := -mb
|
|
cpu-$(CONFIG_LITTLE_ENDIAN) := -ml
|
|
|
|
cpu-$(CONFIG_CPU_SH5) += -m5-32media-nofpu
|
|
|
|
ifdef CONFIG_LITTLE_ENDIAN
|
|
LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64'
|
|
LDFLAGS += -EL -mshlelf32_linux
|
|
else
|
|
LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64+4'
|
|
LDFLAGS += -EB -mshelf32_linux
|
|
endif
|
|
|
|
# No requirements for endianess support from AFLAGS, 'as' always run through gcc
|
|
CFLAGS += $(cpu-y)
|
|
|
|
LDFLAGS_vmlinux += --defsym phys_stext=_stext-$(CONFIG_CACHED_MEMORY_OFFSET) \
|
|
--defsym phys_stext_shmedia=phys_stext+1 \
|
|
-e phys_stext_shmedia
|
|
|
|
OBJCOPYFLAGS := -O binary -R .note -R .comment -R .stab -R .stabstr -S
|
|
|
|
#
|
|
# arch/sh64/defconfig never had any hope of being
|
|
# frequently updated, so use one that does
|
|
#
|
|
KBUILD_DEFCONFIG := cayman_defconfig
|
|
|
|
ifdef LOADADDR
|
|
LINKFLAGS += -Ttext $(word 1,$(LOADADDR))
|
|
endif
|
|
|
|
machine-$(CONFIG_SH_CAYMAN) := cayman
|
|
machine-$(CONFIG_SH_SIMULATOR) := sim
|
|
machine-$(CONFIG_SH_HARP) := harp
|
|
machine-$(CONFIG_SH_ROMRAM) := romram
|
|
|
|
head-y := arch/$(ARCH)/kernel/head.o arch/$(ARCH)/kernel/init_task.o
|
|
|
|
core-y += arch/sh64/kernel/ arch/sh64/mm/
|
|
|
|
ifneq ($(machine-y),)
|
|
core-y += arch/sh64/mach-$(machine-y)/
|
|
endif
|
|
|
|
LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
|
libs-y += arch/$(ARCH)/lib/ $(LIBGCC)
|
|
|
|
drivers-$(CONFIG_OPROFILE) += arch/sh64/oprofile/
|
|
|
|
boot := arch/$(ARCH)/boot
|
|
|
|
zImage: vmlinux
|
|
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
|
|
|
compressed: zImage
|
|
|
|
archclean:
|
|
$(Q)$(MAKE) $(clean)=$(boot)
|
|
|
|
archprepare: arch/$(ARCH)/lib/syscalltab.h
|
|
|
|
define filechk_gen-syscalltab
|
|
(set -e; \
|
|
echo "/*"; \
|
|
echo " * DO NOT MODIFY."; \
|
|
echo " *"; \
|
|
echo " * This file was generated by arch/$(ARCH)/Makefile"; \
|
|
echo " * Any changes will be reverted at build time."; \
|
|
echo " */"; \
|
|
echo ""; \
|
|
echo "#ifndef __SYSCALLTAB_H"; \
|
|
echo "#define __SYSCALLTAB_H"; \
|
|
echo ""; \
|
|
echo "#include <linux/kernel.h>"; \
|
|
echo ""; \
|
|
echo "struct syscall_info {"; \
|
|
echo " const char *name;"; \
|
|
echo "} syscall_info_table[] = {"; \
|
|
sed -e '/^.*\.long /!d;s// { "/;s/\(\([^/]*\)\/\)\{1\}.*/\2/; \
|
|
s/[ \t]*$$//g;s/$$/" },/;s/\("\)sys_/\1/g'; \
|
|
echo "};"; \
|
|
echo ""; \
|
|
echo "#define NUM_SYSCALL_INFO_ENTRIES ARRAY_SIZE(syscall_info_table)"; \
|
|
echo ""; \
|
|
echo "#endif /* __SYSCALLTAB_H */" )
|
|
endef
|
|
|
|
arch/$(ARCH)/lib/syscalltab.h: arch/sh64/kernel/syscalls.S
|
|
$(call filechk,gen-syscalltab)
|
|
|
|
CLEAN_FILES += arch/$(ARCH)/lib/syscalltab.h
|
|
|
|
define archhelp
|
|
@echo ' zImage - Compressed kernel image (arch/sh64/boot/zImage)'
|
|
endef
|
|
|