You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[SPARC]: Handle UNWIND_INFO properly.
For sparc32 we need R_SPARC_UA32 relocation support, for sparc64 we need the handle R_SPARC_DISP32 relocations. Based upon reports and initial patch by Martin Habets. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -113,6 +113,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
|
||||
|
||||
switch (ELF32_R_TYPE(rel[i].r_info)) {
|
||||
case R_SPARC_32:
|
||||
case R_SPARC_UA32:
|
||||
location[0] = v >> 24;
|
||||
location[1] = v >> 16;
|
||||
location[2] = v >> 8;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.17-rc3
|
||||
# Mon May 8 15:12:53 2006
|
||||
# Fri May 12 12:43:49 2006
|
||||
#
|
||||
CONFIG_SPARC=y
|
||||
CONFIG_SPARC64=y
|
||||
@@ -1309,6 +1309,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
|
||||
# CONFIG_DEBUG_INFO is not set
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_DEBUG_VM is not set
|
||||
# CONFIG_UNWIND_INFO is not set
|
||||
CONFIG_FORCED_INLINING=y
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
|
||||
@@ -143,6 +143,11 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
|
||||
location[3] = v >> 0;
|
||||
break;
|
||||
|
||||
case R_SPARC_DISP32:
|
||||
v -= (Elf64_Addr) location;
|
||||
*loc32 = v;
|
||||
break;
|
||||
|
||||
case R_SPARC_WDISP30:
|
||||
v -= (Elf64_Addr) location;
|
||||
*loc32 = (*loc32 & ~0x3fffffff) |
|
||||
|
||||
Reference in New Issue
Block a user