Skip to content

Commit a2d7f45

Browse files
authored
Add support for more Linux architectures (#904)
* Add support for alpha * Add support for hppa * Add support for ia64 * Add support for sh
1 parent 0b5af59 commit a2d7f45

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

absl/base/internal/direct_mmap.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ namespace base_internal {
7474
inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
7575
off64_t offset) noexcept {
7676
#if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \
77-
defined(__m68k__) || \
77+
defined(__m68k__) || defined(__sh__) || \
78+
(defined(__hppa__) && !defined(__LP64__)) || \
7879
(defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) || \
7980
(defined(__PPC__) && !defined(__PPC64__)) || \
8081
(defined(__riscv) && __riscv_xlen == 32) || \

absl/debugging/internal/examine_stack.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,17 @@ void* GetProgramCounter(void* vuc) {
4646
ucontext_t* context = reinterpret_cast<ucontext_t*>(vuc);
4747
#if defined(__aarch64__)
4848
return reinterpret_cast<void*>(context->uc_mcontext.pc);
49+
#elif defined(__alpha__)
50+
return reinterpret_cast<void*>(context->uc_mcontext.sc_pc);
4951
#elif defined(__arm__)
5052
return reinterpret_cast<void*>(context->uc_mcontext.arm_pc);
53+
#elif defined(__hppa__)
54+
return reinterpret_cast<void*>(context->uc_mcontext.sc_iaoq[0]);
5155
#elif defined(__i386__)
5256
if (14 < ABSL_ARRAYSIZE(context->uc_mcontext.gregs))
5357
return reinterpret_cast<void*>(context->uc_mcontext.gregs[14]);
58+
#elif defined(__ia64__)
59+
return reinterpret_cast<void*>(context->uc_mcontext.sc_ip);
5460
#elif defined(__m68k__)
5561
return reinterpret_cast<void*>(context->uc_mcontext.gregs[16]);
5662
#elif defined(__mips__)
@@ -65,6 +71,8 @@ void* GetProgramCounter(void* vuc) {
6571
return reinterpret_cast<void*>(context->uc_mcontext.psw.addr & 0x7fffffff);
6672
#elif defined(__s390__) && defined(__s390x__)
6773
return reinterpret_cast<void*>(context->uc_mcontext.psw.addr);
74+
#elif defined(__sh__)
75+
return reinterpret_cast<void*>(context->uc_mcontext.pc);
6876
#elif defined(__sparc__) && !defined(__arch64__)
6977
return reinterpret_cast<void*>(context->uc_mcontext.gregs[19]);
7078
#elif defined(__sparc__) && defined(__arch64__)

0 commit comments

Comments
 (0)