mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-18 16:44:27 +08:00
d49a062621
Generic function-alignment infrastructure. Architectures can select FUNCTION_ALIGNMENT_xxB symbols; the FUNCTION_ALIGNMENT symbol is then set to the largest such selected size, 0 otherwise. From this the -falign-functions compiler argument and __ALIGN macro are set. This incorporates the DEBUG_FORCE_FUNCTION_ALIGN_64B knob and future alignment requirements for x86_64 (later in this series) into a single place. NOTE: also removes the 0x90 filler byte from the generic __ALIGN primitive, that value makes no sense outside of x86. NOTE: .balign 0 reverts to a no-op. Requested-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20220915111143.719248727@infradead.org
83 lines
2.2 KiB
Makefile
83 lines
2.2 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
|
|
|
|
CHECKFLAGS += -D__ia64=1 -D__ia64__=1 -D_LP64 -D__LP64__
|
|
|
|
OBJCOPYFLAGS := --strip-all
|
|
LDFLAGS_vmlinux := -static
|
|
KBUILD_AFLAGS_KERNEL := -mconstant-gp
|
|
EXTRA :=
|
|
|
|
cflags-y := -pipe $(EXTRA) -ffixed-r13 -mfixed-range=f12-f15,f32-f127 \
|
|
-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
|
|
|
|
quiet_cmd_gzip = GZIP $@
|
|
cmd_gzip = cat $(real-prereqs) | $(KGZIP) -n -f -9 > $@
|
|
|
|
quiet_cmd_objcopy = OBJCOPY $@
|
|
cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
|
|
|
|
KBUILD_CFLAGS += $(cflags-y)
|
|
|
|
libs-y += arch/ia64/lib/
|
|
|
|
drivers-y += arch/ia64/pci/ arch/ia64/hp/common/
|
|
|
|
PHONY += compressed check
|
|
|
|
all: compressed unwcheck
|
|
|
|
compressed: vmlinux.gz
|
|
|
|
vmlinuz: vmlinux.gz
|
|
|
|
vmlinux.gz: vmlinux.bin FORCE
|
|
$(call if_changed,gzip)
|
|
|
|
vmlinux.bin: vmlinux FORCE
|
|
$(call if_changed,objcopy)
|
|
|
|
unwcheck: vmlinux
|
|
-$(Q)READELF=$(READELF) $(PYTHON3) $(srctree)/arch/ia64/scripts/unwcheck.py $<
|
|
|
|
archheaders:
|
|
$(Q)$(MAKE) $(build)=arch/ia64/kernel/syscalls all
|
|
|
|
CLEAN_FILES += vmlinux.gz
|
|
|
|
install: KBUILD_IMAGE := vmlinux.gz
|
|
install:
|
|
$(call cmd,install)
|
|
|
|
define archhelp
|
|
echo '* compressed - Build compressed kernel image'
|
|
echo ' install - Install compressed kernel image'
|
|
echo '* unwcheck - Check vmlinux for invalid unwind info'
|
|
endef
|