[all-commits] [llvm/llvm-project] cd20e5: [unwind] fix build with GCC on PPC32

Sam James via All-commits all-commits at lists.llvm.org
Thu Jan 27 14:05:34 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cd20e579df07517a4ddbf6eef58b96d04f6bd9a9
      https://github.com/llvm/llvm-project/commit/cd20e579df07517a4ddbf6eef58b96d04f6bd9a9
  Author: Sam James <sam at gentoo.org>
  Date:   2022-01-27 (Thu, 27 Jan 2022)

  Changed paths:
    M libunwind/include/__libunwind_config.h
    M libunwind/src/UnwindRegistersRestore.S
    M libunwind/src/UnwindRegistersSave.S
    M libunwind/src/assembly.h
    M libunwind/src/config.h
    M libunwind/src/libunwind.cpp

  Log Message:
  -----------
  [unwind] fix build with GCC on PPC32

Originally reported downstream in Gentoo: https://bugs.gentoo.org/832140

```
/var/tmp/portage/sys-libs/llvm-libunwind-13.0.0/work/libunwind/src/libunwind.cpp:77:3: error: #error Architecture not supported
   77 | # error Architecture not supported
      |   ^~~~~
[...]
/var/tmp/portage/sys-libs/llvm-libunwind-13.0.0/work/libunwind/src/libunwind.cpp: In function ‘int __unw_init_local(unw_cursor_t*, unw_context_t*)’:
/var/tmp/portage/sys-libs/llvm-libunwind-13.0.0/work/libunwind/src/libunwind.cpp:80:57: error: ‘REGISTER_KIND’ was not declared in this scope
   80 |   new (reinterpret_cast<UnwindCursor<LocalAddressSpace, REGISTER_KIND> *>(cursor))
      |                                                         ^~~~~~~~~~~~~
[...]
```

PPC is actually a supported architecture, but GCC (tested with 11.2.0)
on powerpc32 seems to only define: `__PPC__, _ARCH_PPC, __PPC,
__powerpc` and //not// `__ppc__`.

This instead uses `__powerpc__` which should be around on PPC32
and PPC64 (but we check it after PPC64, so it's fine).

Signed-off-by: Sam James <sam at gentoo.org>
Differential Revision: https://reviews.llvm.org/D118320




More information about the All-commits mailing list