mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-11-01 09:13:37 +00:00 
			
		
		
		
	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
		
	
			
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			82 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
 |