[Darwin, PPC] Collate the system library spec into one expression.
authorIain Sandoe <iain@sandoe.co.uk>
Wed, 10 Jul 2019 19:29:56 +0000 (19:29 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Wed, 10 Jul 2019 19:29:56 +0000 (19:29 +0000)
There's no need to redefine this dependent on the target header (that only
works in the case that we have self-hosting which is less and less likely
for the older system versions).

Actually, what we need is for the correct library set to be used based
on the SDK(s) that can target the chosen system.

gcc/ChangeLog:

2019-07-10  Iain Sandoe  <iain@sandoe.co.uk>

* config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
* config/rs6000/darwin7.h (LIB_SPEC): Remove.
* config/rs6000/darwin8.h (LIB_SPEC): Remove.
(DEF_MIN_OSX_VERSION): New.

From-SVN: r273369

gcc/ChangeLog
gcc/config/rs6000/darwin.h
gcc/config/rs6000/darwin7.h
gcc/config/rs6000/darwin8.h

index 6166215f5f4ceb55982029b194a0f4d7cdaccd1d..5d3c8d42401c68f503e283bc4ab87a94486623a5 100644 (file)
@@ -1,3 +1,10 @@
+2019-07-10  Iain Sandoe  <iain@sandoe.co.uk>
+
+       * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
+       * config/rs6000/darwin7.h (LIB_SPEC): Remove.
+       * config/rs6000/darwin8.h (LIB_SPEC): Remove.
+       (DEF_MIN_OSX_VERSION): New.
+
 2019-07-10  Richard Sandiford  <richard.sandiford@arm.com>
 
        * fold-const.c (fold_relational_const): Fix folding of
index b0b504769704db807c44645f3d68b795bf23f2f9..272cd4541897420b962563c93aeb2de539c3b8ab 100644 (file)
@@ -86,6 +86,24 @@ extern int darwin_emit_picsym_stub;
 
 #define RS6000_DEFAULT_LONG_DOUBLE_SIZE 128
 
+/* Machine dependent libraries.
+   Include libmx when targeting Darwin 7.0 and above, but before libSystem,
+   since the functions are actually in libSystem but for 7.x compatibility
+   we want them to be looked for in libmx first.
+   Include libSystemStubs when compiling against 10.3 - 10.5 SDKs (we assume
+   this is the case when targetting these) - but not for 64-bit long double.
+   Don't do either for m64, the library is either a dummy or non-existent.
+*/
+
+#undef LIB_SPEC
+#define LIB_SPEC \
+"%{!static:                                                            \
+  %{!m64:%{!mlong-double-64:                                           \
+    %{pg:%:version-compare(>< 10.3 10.5 mmacosx-version-min= -lSystemStubs_profile)} \
+    %{!pg:%:version-compare(>< 10.3 10.5 mmacosx-version-min= -lSystemStubs)} \
+     %:version-compare(>< 10.3 10.4 mmacosx-version-min= -lmx)}}       \
+  -lSystem                                                             \
+}"
 
 /* We want -fPIC by default, unless we're using -static to compile for
    the kernel or some such.  The "-faltivec" option should have been
index d299074eaccda160c6241f5cdb9fdd1b00ea001e..6a3adc0297c7dcfd15c89d5e0552cf318e547e83 100644 (file)
@@ -17,21 +17,11 @@ You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
-/* Machine dependent libraries.  Include libmx when compiling for
-   Darwin 7.0 and above, but before libSystem, since the functions are
-   actually in libSystem but for 7.x compatibility we want them to be
-   looked for in libmx first.  Include libmx by default because otherwise
-   libstdc++ isn't usable.  */
-
-#undef LIB_SPEC
-#define LIB_SPEC "%{!static:\
-  %:version-compare(!< 10.3 mmacosx-version-min= -lmx)\
-  -lSystem}"
-
 /* This generation of tools (specifically the archive tool) did not
    export weak symbols from the TOC. */
 #undef TARGET_WEAK_NOT_IN_ARCHIVE_TOC
 #define TARGET_WEAK_NOT_IN_ARCHIVE_TOC 1
 
+/* Default to the last version, with most support for C++.  */
 #undef DEF_MIN_OSX_VERSION
 #define DEF_MIN_OSX_VERSION "10.3.9"
index ca4ede210467ecdc3d5196364ff5c6d2d9d5c741..ec5a8af37cdec638ebecb7d6b9a56c8091f1f20f 100644 (file)
@@ -17,15 +17,5 @@ You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
-/* Machine dependent libraries.  Include libmx when compiling on
-   Darwin 7.0 and above, but before libSystem, since the functions are
-   actually in libSystem but for 7.x compatibility we want them to be
-   looked for in libmx first---but only do this if 7.x compatibility
-   is a concern, which it's not in 64-bit mode.  Include
-   libSystemStubs when compiling on (not necessarily for) 8.0 and
-   above and not 64-bit long double.  */
-
-#undef LIB_SPEC
-#define LIB_SPEC "%{!static:\
-  %{!mlong-double-64:%{pg:-lSystemStubs_profile;:-lSystemStubs}} \
-  %{!m64:%:version-compare(>< 10.3 10.4 mmacosx-version-min= -lmx)} -lSystem}"
+#undef DEF_MIN_OSX_VERSION
+#define DEF_MIN_OSX_VERSION "10.4"