mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-16 09:56:46 +00:00
caf539cd10
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>
23 lines
491 B
C
23 lines
491 B
C
/*
|
|
* Copyright (c) 2017 Oracle and/or its affiliates. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _ASM_SPARC_VDSO_H
|
|
#define _ASM_SPARC_VDSO_H
|
|
|
|
struct vdso_image {
|
|
void *data;
|
|
unsigned long size; /* Always a multiple of PAGE_SIZE */
|
|
|
|
long sym_vvar_start; /* Negative offset to the vvar area */
|
|
};
|
|
|
|
#ifdef CONFIG_SPARC64
|
|
extern const struct vdso_image vdso_image_64_builtin;
|
|
#endif
|
|
#ifdef CONFIG_COMPAT
|
|
extern const struct vdso_image vdso_image_32_builtin;
|
|
#endif
|
|
|
|
#endif /* _ASM_SPARC_VDSO_H */
|