]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix llvm-libunwind userspace build on ARM
authorConrad Meyer <cem@FreeBSD.org>
Tue, 5 Nov 2019 03:20:40 +0000 (03:20 +0000)
committerConrad Meyer <cem@FreeBSD.org>
Tue, 5 Nov 2019 03:20:40 +0000 (03:20 +0000)
commitc8b5e3de39bcfa6833d4ab2980b0dddd30edbb74
treecb9c33df28d5affbc288afb10e65645d2b64cb2c
parent6d180b1360b19930587764af836c009419cc3365
Fix llvm-libunwind userspace build on ARM

GCC's libgcc exports a few ARM-specific symbols for ARM EABI, AEABI, or
EHABI or whatever it's called.  Export the same ones from LLVM-libunwind's
libgcc_s, on ARM.  As part of this, convert libgcc_s from a direct
Version.map to one constructed from component Symbol.map files.  This allows
the ARM-specific Symbol.map to be included only on ARM.

Fix ARM-only oddities in struct name/aliases in LLVM-libunwind to match
non-ARM definitions and ARM-specific expectations in libcxxrt /
libcompiler_rt.

No functional change intended for non-ARM architectures.

This commit does not actually flip the switch for ARM defaults from libgcc
to llvm-libunwind, but makes it possible (to compile, anyway).
contrib/compiler-rt/lib/builtins/gcc_personality_v0.c
contrib/libunwind/include/unwind.h
lib/libcompiler_rt/Makefile
lib/libgcc_s/Makefile
lib/libgcc_s/Symbol.map [moved from lib/libgcc_s/Version.map with 94% similarity]
lib/libgcc_s/Versions.def [new file with mode: 0644]
lib/libgcc_s/arm/Symbol.map [new file with mode: 0644]