~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/kernel/vdso/Makefile

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0
  2 #
  3 # Building a vDSO image for AArch64.
  4 #
  5 # Author: Will Deacon <will.deacon@arm.com>
  6 # Heavily based on the vDSO Makefiles for other archs.
  7 #
  8 
  9 # Include the generic Makefile to check the built vdso.
 10 include $(srctree)/lib/vdso/Makefile
 11 
 12 obj-vdso := vgettimeofday.o note.o sigreturn.o vgetrandom.o vgetrandom-chacha.o
 13 
 14 # Build rules
 15 targets := $(obj-vdso) vdso.so vdso.so.dbg
 16 obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
 17 
 18 btildflags-$(CONFIG_ARM64_BTI_KERNEL) += -z force-bti
 19 
 20 # -Bsymbolic has been added for consistency with arm, the compat vDSO and
 21 # potential future proofing if we end up with internal calls to the exported
 22 # routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
 23 # preparation in build-time C")).
 24 ldflags-y := -shared -soname=linux-vdso.so.1 \
 25              -Bsymbolic --build-id=sha1 -n $(btildflags-y)
 26 
 27 ifdef CONFIG_LD_ORPHAN_WARN
 28   ldflags-y += --orphan-handling=$(CONFIG_LD_ORPHAN_WARN_LEVEL)
 29 endif
 30 
 31 ldflags-y += -T
 32 
 33 ccflags-y := -fno-common -fno-builtin -fno-stack-protector -ffixed-x18
 34 ccflags-y += -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO
 35 
 36 # -Wmissing-prototypes and -Wmissing-declarations are removed from
 37 # the CFLAGS to make possible to build the kernel with CONFIG_WERROR enabled.
 38 CC_FLAGS_REMOVE_VDSO := $(CC_FLAGS_FTRACE) -Os $(CC_FLAGS_SCS) \
 39                         $(RANDSTRUCT_CFLAGS) $(GCC_PLUGINS_CFLAGS) \
 40                         $(CC_FLAGS_LTO) $(CC_FLAGS_CFI) \
 41                         -Wmissing-prototypes -Wmissing-declarations
 42 
 43 CC_FLAGS_ADD_VDSO := -O2 -mcmodel=tiny -fasynchronous-unwind-tables
 44 
 45 CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_REMOVE_VDSO)
 46 CFLAGS_REMOVE_vgetrandom.o = $(CC_FLAGS_REMOVE_VDSO)
 47 
 48 CFLAGS_vgettimeofday.o = $(CC_FLAGS_ADD_VDSO)
 49 CFLAGS_vgetrandom.o = $(CC_FLAGS_ADD_VDSO)
 50 
 51 ifneq ($(c-gettimeofday-y),)
 52   CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
 53 endif
 54 
 55 ifneq ($(c-getrandom-y),)
 56   CFLAGS_vgetrandom.o += -include $(c-getrandom-y)
 57 endif
 58 
 59 targets += vdso.lds
 60 CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
 61 
 62 # Link rule for the .so file, .lds has to be first
 63 $(obj)/vdso.so.dbg: $(obj)/vdso.lds $(obj-vdso) FORCE
 64         $(call if_changed,vdsold_and_vdso_check)
 65 
 66 # Strip rule for the .so file
 67 $(obj)/%.so: OBJCOPYFLAGS := -S
 68 $(obj)/%.so: $(obj)/%.so.dbg FORCE
 69         $(call if_changed,objcopy)
 70 
 71 # Generate VDSO offsets using helper script
 72 gen-vdsosym := $(src)/gen_vdso_offsets.sh
 73 quiet_cmd_vdsosym = VDSOSYM $@
 74       cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
 75 
 76 include/generated/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
 77         $(call if_changed,vdsosym)
 78 
 79 # Actual build commands
 80 quiet_cmd_vdsold_and_vdso_check = LD      $@
 81       cmd_vdsold_and_vdso_check = $(cmd_ld); $(cmd_vdso_check)

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php