diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2021-11-21 17:19:24 +0000 |
---|---|---|
committer | Iain Sandoe <iain@sandoe.co.uk> | 2021-12-08 19:53:28 +0000 |
commit | 7add7f7bb3d35726a0c45322ffdbbab2bbf6a348 (patch) | |
tree | 2e2229281da0d7c80fcf9b5ee5ef3ddd88f9550c /libgcc/config/rs6000 | |
parent | 1c1563fb8ff227590eb5ab0fc3d22f3b0a57c241 (diff) | |
download | gcc-7add7f7bb3d35726a0c45322ffdbbab2bbf6a348.zip gcc-7add7f7bb3d35726a0c45322ffdbbab2bbf6a348.tar.gz gcc-7add7f7bb3d35726a0c45322ffdbbab2bbf6a348.tar.bz2 |
libgcc, Darwin: Build a libgcc_s.1 for backwards compatibility.
In order to reslve a long-standing issue with inter-operation
with libSystem, we have bumped the SO name for libgcc_s.
Distributions might wish to install this new version into a
structure where exisiting code is already linked with the
compiler-local libgcc_s.1 (providing symbols exported by the
now-retired libgcc_ext.10.x shims).
The replacement libgcc_s.1 forwards the symbols from the new SO.
In order to support DYLD_LIBRARY_PATH on systems (where it works)
we forward the libSystem unwinder symbols from 10.7+ and a
compiler-local version of the libgcc unwinder on earlier.
For macOS 10.4 to 10.6 this is 'bug-compatible' with existing uses.
For 10.7+ the behaviour will now actually be correct.
This should be squashed with the initial libgcc changes for PR80556
in any backport (r12-5418-gd4943ce939d)
libgcc/ChangeLog:
* config.host (*-*-darwin*): Add logic to build a shared
unwinder library for Darwin8-10.
* config/i386/t-darwin: Build legacy libgcc_s.1.
* config/rs6000/t-darwin: Likewise.
* config/t-darwin: Reorganise the EH fragments to place
them for inclusion in a shared EH lib.
* config/t-slibgcc-darwin: Build a legacy libgcc_s.1 and
the supporting pieces (all FAT libs).
* config/t-darwin-noeh: Removed.
* config/darwin-unwind.ver: New file.
* config/rs6000/t-darwin-ehs: New file.
* config/t-darwin-ehs: New file.
Diffstat (limited to 'libgcc/config/rs6000')
-rw-r--r-- | libgcc/config/rs6000/t-darwin | 3 | ||||
-rw-r--r-- | libgcc/config/rs6000/t-darwin-ehs | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/libgcc/config/rs6000/t-darwin b/libgcc/config/rs6000/t-darwin index 8b513bd..183d0df9 100644 --- a/libgcc/config/rs6000/t-darwin +++ b/libgcc/config/rs6000/t-darwin @@ -56,3 +56,6 @@ unwind-dw2_s.o: HOST_LIBGCC2_CFLAGS += -maltivec unwind-dw2.o: HOST_LIBGCC2_CFLAGS += -maltivec LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c + +# Build a legacy libgcc_s.1 +BUILD_LIBGCCS1 = YES diff --git a/libgcc/config/rs6000/t-darwin-ehs b/libgcc/config/rs6000/t-darwin-ehs new file mode 100644 index 0000000..3047f53 --- /dev/null +++ b/libgcc/config/rs6000/t-darwin-ehs @@ -0,0 +1,5 @@ +# We need the save_world code for the EH library. + +LIBEHSOBJS += darwin-world_s.o + +$(LIBEHSOBJS): libef_ppc.a |