summaryrefslogtreecommitdiffstats
path: root/arch/sparc/vdso/vdso32
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-10-25 19:36:19 +0200
committerDavid S. Miller <davem@davemloft.net>2018-10-25 19:36:19 +0200
commitcaf539cd1087f7c36b9c4df271575e9aee49fde5 (patch)
treeead06508c7fc91d86b0c0d302abd43110f32a056 /arch/sparc/vdso/vdso32
parentMerge branch 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/gi... (diff)
downloadlinux-caf539cd1087f7c36b9c4df271575e9aee49fde5.tar.xz
linux-caf539cd1087f7c36b9c4df271575e9aee49fde5.zip
sparc: Fix VDSO build with older binutils.
Older versions of bintutils do not allow symbol math across different segments on sparc: ==================== Assembler messages: 99: Error: operation combines symbols in different segments ==================== This is controlled by whether or not DIFF_EXPR_OK is defined in gas/config/tc-*.h and for sparc this was not the case until mid-2017. So we have to patch between %stick and %tick another way. Do what powerpc does and emit two versions of the relevant functions, one using %tick and one using %stick, and patch the symbols in the dynamic symbol table. Fixes: 2f6c9bf31a0b ("sparc: Improve VDSO instruction patching.") Reported-by: Meelis Roos <mroos@linux.ee> Tested-by: Meelis Roos <mroos@linux.ee> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/vdso/vdso32')
-rw-r--r--arch/sparc/vdso/vdso32/vdso32.lds.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sparc/vdso/vdso32/vdso32.lds.S b/arch/sparc/vdso/vdso32/vdso32.lds.S
index 53575ee154c4..218930fdff03 100644
--- a/arch/sparc/vdso/vdso32/vdso32.lds.S
+++ b/arch/sparc/vdso/vdso32/vdso32.lds.S
@@ -17,8 +17,10 @@ VERSION {
global:
clock_gettime;
__vdso_clock_gettime;
+ __vdso_clock_gettime_stick;
gettimeofday;
__vdso_gettimeofday;
+ __vdso_gettimeofday_stick;
local: *;
};
}