Package: abseil
Version: 0~20200923-2
Severity: normal
Tags: patch

Dear Maintainer,

The abseil package fails to build on hppa and needs porting.  See:
https://buildd.debian.org/status/fetch.php?pkg=abseil&arch=hppa&ver=0%7E20200923-2&stamp=1601997353&raw=0

The attached change enables abseil to build successfully on hppa.

Regards,
Dave Anglin

-- System Information:
Debian Release: bullseye/sid
  APT prefers buildd-unstable
  APT policy: (500, 'buildd-unstable'), (500, 'unstable')
Architecture: hppa (parisc64)

Kernel: Linux 5.8.13+ (SMP w/4 CPU threads)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Index: abseil-0~20200923/absl/base/internal/direct_mmap.h
===================================================================
--- abseil-0~20200923.orig/absl/base/internal/direct_mmap.h
+++ abseil-0~20200923/absl/base/internal/direct_mmap.h
@@ -74,6 +74,7 @@ namespace base_internal {
 inline void* DirectMmap(void* start, size_t length, int prot, int flags, int 
fd,
                         off64_t offset) noexcept {
 #if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \
+    (defined(__hppa__) && !defined(__LP64__)) ||                             \
     (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) ||                   \
     (defined(__PPC__) && !defined(__PPC64__)) ||                             \
     (defined(__riscv) && __riscv_xlen == 32) ||                              \
Index: abseil-0~20200923/absl/debugging/internal/examine_stack.cc
===================================================================
--- abseil-0~20200923.orig/absl/debugging/internal/examine_stack.cc
+++ abseil-0~20200923/absl/debugging/internal/examine_stack.cc
@@ -48,6 +48,8 @@ void* GetProgramCounter(void* vuc) {
     return reinterpret_cast<void*>(context->uc_mcontext.pc);
 #elif defined(__arm__)
     return reinterpret_cast<void*>(context->uc_mcontext.arm_pc);
+#elif defined(__hppa__)
+    return reinterpret_cast<void*>(context->uc_mcontext.sc_iaoq[0]);
 #elif defined(__i386__)
     if (14 < ABSL_ARRAYSIZE(context->uc_mcontext.gregs))
       return reinterpret_cast<void*>(context->uc_mcontext.gregs[14]);

Reply via email to