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

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

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ 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.9 ] ~ [ 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
 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 of vgettimeofday.c to make possible to build the
 38 # kernel with CONFIG_WERROR enabled.
 39 CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os $(CC_FLAGS_SCS) \
 40                                 $(RANDSTRUCT_CFLAGS) $(GCC_PLUGINS_CFLAGS) \
 41                                 $(CC_FLAGS_LTO) $(CC_FLAGS_CFI) \
 42                                 -Wmissing-prototypes -Wmissing-declarations
 43 
 44 CFLAGS_vgettimeofday.o = -O2 -mcmodel=tiny -fasynchronous-unwind-tables
 45 
 46 ifneq ($(c-gettimeofday-y),)
 47   CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y)
 48 endif
 49 
 50 targets += vdso.lds
 51 CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
 52 
 53 # Link rule for the .so file, .lds has to be first
 54 $(obj)/vdso.so.dbg: $(obj)/vdso.lds $(obj-vdso) FORCE
 55         $(call if_changed,vdsold_and_vdso_check)
 56 
 57 # Strip rule for the .so file
 58 $(obj)/%.so: OBJCOPYFLAGS := -S
 59 $(obj)/%.so: $(obj)/%.so.dbg FORCE
 60         $(call if_changed,objcopy)
 61 
 62 # Generate VDSO offsets using helper script
 63 gen-vdsosym := $(src)/gen_vdso_offsets.sh
 64 quiet_cmd_vdsosym = VDSOSYM $@
 65       cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
 66 
 67 include/generated/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
 68         $(call if_changed,vdsosym)
 69 
 70 # Actual build commands
 71 quiet_cmd_vdsold_and_vdso_check = LD      $@
 72       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