diff options
author | David S. Miller <davem@davemloft.net> | 2018-10-25 10:36:19 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-10-25 10:36:19 -0700 |
commit | caf539cd1087f7c36b9c4df271575e9aee49fde5 (patch) | |
tree | ead06508c7fc91d86b0c0d302abd43110f32a056 /arch/sparc/include | |
parent | 44adbac8f7217040be97928cd19998259d9d4418 (diff) | |
download | linux-caf539cd1087f7c36b9c4df271575e9aee49fde5.tar.bz2 |
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/include')
-rw-r--r-- | arch/sparc/include/asm/vdso.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/sparc/include/asm/vdso.h b/arch/sparc/include/asm/vdso.h index 56836eb01787..59e79d35cd73 100644 --- a/arch/sparc/include/asm/vdso.h +++ b/arch/sparc/include/asm/vdso.h @@ -9,8 +9,6 @@ struct vdso_image { void *data; unsigned long size; /* Always a multiple of PAGE_SIZE */ - unsigned long tick_patch, tick_patch_len; - long sym_vvar_start; /* Negative offset to the vvar area */ }; |