0500871f21
Construct the init thread stack in the linker script rather than doing it by means of a union so that ia64's init_task.c can be got rid of. The following symbols are then made available from INIT_TASK_DATA() linker script macro: init_thread_union init_stack INIT_TASK_DATA() also expands the region to THREAD_SIZE to accommodate the size of the init stack. init_thread_union is given its own section so that it can be placed into the stack space in the right order. I'm assuming that the ia64 ordering is correct and that the task_struct is first and the thread_info second. Signed-off-by: David Howells <dhowells@redhat.com> Tested-by: Tony Luck <tony.luck@intel.com> Tested-by: Will Deacon <will.deacon@arm.com> (arm64) Tested-by: Palmer Dabbelt <palmer@sifive.com> Acked-by: Thomas Gleixner <tglx@linutronix.de>
103 lines
3.1 KiB
Makefile
103 lines
3.1 KiB
Makefile
#
|
|
# ia64/Makefile
|
|
#
|
|
# This file is included by the global makefile so that you can add your own
|
|
# architecture-specific flags and dependencies.
|
|
#
|
|
# 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) 1998-2004 by David Mosberger-Tang <davidm@hpl.hp.com>
|
|
#
|
|
|
|
KBUILD_DEFCONFIG := generic_defconfig
|
|
|
|
NM := $(CROSS_COMPILE)nm -B
|
|
READELF := $(CROSS_COMPILE)readelf
|
|
|
|
export AWK
|
|
|
|
CHECKFLAGS += -m64 -D__ia64=1 -D__ia64__=1 -D_LP64 -D__LP64__
|
|
|
|
OBJCOPYFLAGS := --strip-all
|
|
LDFLAGS_vmlinux := -static
|
|
KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/ia64/module.lds
|
|
KBUILD_AFLAGS_KERNEL := -mconstant-gp
|
|
EXTRA :=
|
|
|
|
cflags-y := -pipe $(EXTRA) -ffixed-r13 -mfixed-range=f12-f15,f32-f127 \
|
|
-falign-functions=32 -frename-registers -fno-optimize-sibling-calls
|
|
KBUILD_CFLAGS_KERNEL := -mconstant-gp
|
|
|
|
GAS_STATUS = $(shell $(srctree)/arch/ia64/scripts/check-gas "$(CC)" "$(OBJDUMP)")
|
|
KBUILD_CPPFLAGS += $(shell $(srctree)/arch/ia64/scripts/toolchain-flags "$(CC)" "$(OBJDUMP)" "$(READELF)")
|
|
|
|
ifeq ($(GAS_STATUS),buggy)
|
|
$(error Sorry, you need a newer version of the assember, one that is built from \
|
|
a source-tree that post-dates 18-Dec-2002. You can find a pre-compiled \
|
|
static binary of such an assembler at: \
|
|
\
|
|
ftp://ftp.hpl.hp.com/pub/linux-ia64/gas-030124.tar.gz)
|
|
endif
|
|
|
|
KBUILD_CFLAGS += $(cflags-y)
|
|
head-y := arch/ia64/kernel/head.o
|
|
|
|
libs-y += arch/ia64/lib/
|
|
core-y += arch/ia64/kernel/ arch/ia64/mm/
|
|
core-$(CONFIG_IA64_DIG) += arch/ia64/dig/
|
|
core-$(CONFIG_IA64_DIG_VTD) += arch/ia64/dig/
|
|
core-$(CONFIG_IA64_GENERIC) += arch/ia64/dig/
|
|
core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/
|
|
core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/
|
|
core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/
|
|
core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/
|
|
|
|
drivers-$(CONFIG_PCI) += arch/ia64/pci/
|
|
drivers-$(CONFIG_IA64_HP_SIM) += arch/ia64/hp/sim/
|
|
drivers-$(CONFIG_IA64_HP_ZX1) += arch/ia64/hp/common/ arch/ia64/hp/zx1/
|
|
drivers-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/hp/common/ arch/ia64/hp/zx1/
|
|
drivers-$(CONFIG_IA64_GENERIC) += arch/ia64/hp/common/ arch/ia64/hp/zx1/ arch/ia64/hp/sim/ arch/ia64/sn/ arch/ia64/uv/
|
|
drivers-$(CONFIG_OPROFILE) += arch/ia64/oprofile/
|
|
|
|
boot := arch/ia64/hp/sim/boot
|
|
|
|
PHONY += boot compressed check
|
|
|
|
all: compressed unwcheck
|
|
|
|
compressed: vmlinux.gz
|
|
|
|
vmlinuz: vmlinux.gz
|
|
|
|
vmlinux.gz: vmlinux
|
|
$(Q)$(MAKE) $(build)=$(boot) $@
|
|
|
|
unwcheck: vmlinux
|
|
-$(Q)READELF=$(READELF) $(PYTHON) $(srctree)/arch/ia64/scripts/unwcheck.py $<
|
|
|
|
archclean:
|
|
$(Q)$(MAKE) $(clean)=$(boot)
|
|
|
|
CLEAN_FILES += vmlinux.gz bootloader
|
|
|
|
boot: lib/lib.a vmlinux
|
|
$(Q)$(MAKE) $(build)=$(boot) $@
|
|
|
|
install: vmlinux.gz
|
|
sh $(srctree)/arch/ia64/install.sh $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)"
|
|
|
|
define archhelp
|
|
echo '* compressed - Build compressed kernel image'
|
|
echo ' install - Install compressed kernel image'
|
|
echo ' boot - Build vmlinux and bootloader for Ski simulator'
|
|
echo '* unwcheck - Check vmlinux for invalid unwind info'
|
|
endef
|
|
|
|
archprepare: make_nr_irqs_h
|
|
PHONY += make_nr_irqs_h
|
|
|
|
make_nr_irqs_h:
|
|
$(Q)$(MAKE) $(build)=arch/ia64/kernel include/generated/nr-irqs.h
|