Commit Graph

3 Commits

Author SHA1 Message Date
Iain Sandoe c18ddb05b0 Darwin, libgcc: Fix build errors on powerpc-darwin8.
PowerPC Darwin8 is the last version to use an unwind frame fallback routine.
This had been omitted from the new shared EH library, along with one more
header dependency that only fires there.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>

libgcc/ChangeLog:

	* config/rs6000/t-darwin-ehs: Add darwin-fallback.o.
	* config/t-darwin-ehs: Add dependency on unwind.h.
2022-03-04 16:44:54 +00:00
Iain Sandoe 574c09da48 libgcc, Darwin: Add missing build dependencies.
There was a race condition where the link for the new shared EH library
(only used on earlier Darwin) could fail because the new crts had not been
copied to the gcc directory.  This can cause a build failure (although
currently only seen on powerpc-darwin).

Fixed by adding specific dependency on the crts and on the multi target.
We also add the declaration header for the Darwin10 unwinder shim to the
powerpc cases, since we build that there for Rosetta use.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>

libgcc/ChangeLog:

	* config.host: Add shim declaration header to powerpc*-darwin builds.
	* config/rs6000/t-darwin-ehs: Remove dependency on the powerpc end
	file.
	* config/t-darwin-ehs: Add dependencies to the shared unwinder
	objects.
	* config/t-slibgcc-darwin: Add extra_parts to the dependencies for
	the shared EH lib.  Add all-multi to the dependencies for the
	libgcc_s.1.dylib redirections.
2021-12-17 10:12:53 +00:00
Iain Sandoe 7add7f7bb3 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.
2021-12-08 19:53:28 +00:00