ARM: 8332/1: add CONFIG_VDSO Kconfig and Makefile bits
authorNathan Lynch <nathan_lynch@mentor.com>
Wed, 25 Mar 2015 18:16:05 +0000 (19:16 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 27 Mar 2015 22:20:45 +0000 (22:20 +0000)
Allow users to enable the vdso in Kconfig; include the vdso in the
build if CONFIG_VDSO is enabled.  Add 'vdso_install' target.

Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/Makefile
arch/arm/kernel/Makefile
arch/arm/mm/Kconfig

index 7f99cd6..6c13a84 100644 (file)
@@ -263,6 +263,7 @@ core-$(CONFIG_FPE_FASTFPE)  += $(FASTFPE_OBJ)
 core-$(CONFIG_VFP)             += arch/arm/vfp/
 core-$(CONFIG_XEN)             += arch/arm/xen/
 core-$(CONFIG_KVM_ARM_HOST)    += arch/arm/kvm/
+core-$(CONFIG_VDSO)            += arch/arm/vdso/
 
 # If we have a machine-specific directory, then include it in the build.
 core-y                         += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
@@ -320,6 +321,12 @@ dtbs: prepare scripts
 dtbs_install:
        $(Q)$(MAKE) $(dtbinst)=$(boot)/dts
 
+PHONY += vdso_install
+vdso_install:
+ifeq ($(CONFIG_VDSO),y)
+       $(Q)$(MAKE) $(build)=arch/arm/vdso $@
+endif
+
 # We use MRPROPER_FILES and CLEAN_FILES now
 archclean:
        $(Q)$(MAKE) $(clean)=$(boot)
@@ -344,4 +351,5 @@ define archhelp
   echo  '                  Install using (your) ~/bin/$(INSTALLKERNEL) or'
   echo  '                  (distribution) /sbin/$(INSTALLKERNEL) or'
   echo  '                  install to $$(INSTALL_PATH) and run lilo'
+  echo  '  vdso_install  - Install unstripped vdso.so to $$(INSTALL_MOD_PATH)/vdso'
 endef
index 902397d..3e316ca 100644 (file)
@@ -75,6 +75,7 @@ obj-$(CONFIG_HW_PERF_EVENTS)  += perf_event.o perf_event_cpu.o
 CFLAGS_pj4-cp0.o               := -marm
 AFLAGS_iwmmxt.o                        := -Wa,-mcpu=iwmmxt
 obj-$(CONFIG_ARM_CPU_TOPOLOGY)  += topology.o
+obj-$(CONFIG_VDSO)             += vdso.o
 
 ifneq ($(CONFIG_ARCH_EBSA110),y)
   obj-y                += io.o
index 9b4f29e..8a5f1e6 100644 (file)
@@ -825,6 +825,20 @@ config KUSER_HELPERS
          Say N here only if you are absolutely certain that you do not
          need these helpers; otherwise, the safe option is to say Y.
 
+config VDSO
+       bool "Enable VDSO for acceleration of some system calls"
+       depends on AEABI && MMU
+       default y if ARM_ARCH_TIMER
+       select GENERIC_TIME_VSYSCALL
+       help
+         Place in the process address space an ELF shared object
+         providing fast implementations of gettimeofday and
+         clock_gettime.  Systems that implement the ARM architected
+         timer will receive maximum benefit.
+
+         You must have glibc 2.22 or later for programs to seamlessly
+         take advantage of this.
+
 config DMA_CACHE_RWFO
        bool "Enable read/write for ownership DMA cache maintenance"
        depends on CPU_V6K && SMP