+2016-11-27 Iain Sandoe <iain@codesourcery.com>
+ Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/67710
+ * config.in: Regenerate
+ * config/darwin-driver.c (darwin_driver_init): Emit a version string
+ for the assembler.
+ * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests.
+ * config/darwin.opt(asm_macosx_version_min): New.
+ * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC.
+ * configure: Regenerate
+ * configure.ac: Check for mmacosx-version-min handling.
+
2016-11-27 Iain Sandoe <iain@codesourcery.com>
PR target/57438
#endif
+/* Define if your Mac OS X assembler supports the -mmacos-version-min option.
+ */
+#ifndef USED_FOR_TARGET
+#undef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
+#endif
+
+
/* Define if the assembler understands -mnan=. */
#ifndef USED_FOR_TARGET
#undef HAVE_AS_NAN
component. */
if (major_vers - 4 <= 4)
/* On 10.4 and earlier, the old linker is used which does not
- support three-component system versions. */
+ support three-component system versions.
+ FIXME: we should not assume this - a newer linker could be used. */
asprintf (&new_flag, "10.%d", major_vers - 4);
else
asprintf (&new_flag, "10.%d.%s", major_vers - 4, minor_vers);
&(*decoded_options)[*decoded_options_count - 1]);
}
}
+ /* Create and push the major version for assemblers that need it. */
+ if (vers_string != NULL)
+ {
+ char *asm_major = NULL;
+ char *first_period = strchr(vers_string, '.');
+ if (first_period != NULL)
+ {
+ char *second_period = strchr(first_period+1, '.');
+ if (second_period != NULL)
+ asm_major = xstrndup (vers_string, second_period-vers_string);
+ else
+ asm_major = xstrdup (vers_string);
+ }
+ /* Else we appear to have a weird macosx version with no major number.
+ Punt on this for now. */
+ if (asm_major != NULL)
+ {
+ ++*decoded_options_count;
+ *decoded_options = XRESIZEVEC (struct cl_decoded_option,
+ *decoded_options,
+ *decoded_options_count);
+ generate_option (OPT_asm_macosx_version_min_, asm_major, 1, CL_DRIVER,
+ &(*decoded_options)[*decoded_options_count - 1]);
+ }
+ }
}
%:version-compare(>< 10.6 10.8 mmacosx-version-min= -lcrt1.10.6.o) \
%{fgnu-tm: -lcrttms.o}"
-/* Default Darwin ASM_SPEC, very simple. */
+#ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
+/* Emit macosx version (but only major). */
+#define ASM_MMACOSX_VERSION_MIN_SPEC \
+ " %{asm_macosx_version_min=*: -mmacosx-version-min=%*} %<asm_macosx_version_min=*"
+#else
+#define ASM_MMACOSX_VERSION_MIN_SPEC " %<asm_macosx_version_min=*"
+#endif
+
+/* When we detect that we're cctools or llvm as, we need to insert the right
+ additional options. */
+#if HAVE_GNU_AS
+#define ASM_OPTIONS ""
+#else
+#define ASM_OPTIONS "%{v} %{w:-W} %{I*}"
+#endif
+
+/* Default Darwin ASM_SPEC, very simple. */
#define ASM_SPEC "-arch %(darwin_arch) \
+ " ASM_OPTIONS " \
%{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL} \
- %{static}"
+ %{static}" ASM_MMACOSX_VERSION_MIN_SPEC
/* Default ASM_DEBUG_SPEC. Darwin's as cannot currently produce dwarf
debugging data. */
arch_errors_fatal
Driver Alias(Zarch_errors_fatal)
+asm_macosx_version_min=
+Driver RejectNegative Joined
+
bind_at_load
Driver Alias(Zbind_at_load)
DARWIN_CC1_SPEC
#undef ASM_SPEC
-#define ASM_SPEC "-arch %(darwin_arch) -force_cpusubtype_ALL \
- %{static}"
+#define ASM_SPEC "-arch %(darwin_arch) \
+ " ASM_OPTIONS " -force_cpusubtype_ALL \
+ %{static}" ASM_MMACOSX_VERSION_MIN_SPEC
#define DARWIN_ARCH_SPEC "%{m64:x86_64;:i386}"
#define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_lto_plugin" >&5
$as_echo "$gcc_cv_lto_plugin" >&6; }
+# Target OS-specific assembler checks.
+
+case "$target_os" in
+ darwin*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for -mmacosx-version-min option" >&5
+$as_echo_n "checking assembler for -mmacosx-version-min option... " >&6; }
+if test "${gcc_cv_as_mmacosx_version_min+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ gcc_cv_as_mmacosx_version_min=no
+ if test x$gcc_cv_as != x; then
+ $as_echo '.text' > conftest.s
+ if { ac_try='$gcc_cv_as $gcc_cv_as_flags -mmacosx-version-min=10.1 -o conftest.o conftest.s >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+ then
+ gcc_cv_as_mmacosx_version_min=yes
+ else
+ echo "configure: failed program was" >&5
+ cat conftest.s >&5
+ fi
+ rm -f conftest.o conftest.s
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_mmacosx_version_min" >&5
+$as_echo "$gcc_cv_as_mmacosx_version_min" >&6; }
+if test $gcc_cv_as_mmacosx_version_min = yes; then
+
+$as_echo "#define HAVE_AS_MMACOSX_VERSION_MIN_OPTION 1" >>confdefs.h
+
+fi
+ ;;
+esac
+
+# Target CPU-specific assembler checks.
+
case "$target" in
aarch64*-*-*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for -mabi option" >&5
[Define to the level of your linker's plugin support.])
AC_MSG_RESULT($gcc_cv_lto_plugin)
+# Target OS-specific assembler checks.
+
+case "$target_os" in
+ darwin*)
+ gcc_GAS_CHECK_FEATURE([-mmacosx-version-min option],
+ gcc_cv_as_mmacosx_version_min,,
+ [-mmacosx-version-min=10.1], [.text],,
+ [AC_DEFINE(HAVE_AS_MMACOSX_VERSION_MIN_OPTION, 1,
+ [Define if your Mac OS X assembler supports the -mmacos-version-min option.])])
+ ;;
+esac
+
+# Target CPU-specific assembler checks.
+
case "$target" in
aarch64*-*-*)
gcc_GAS_CHECK_FEATURE([-mabi option], gcc_cv_as_aarch64_mabi,,
+2016-11-27 Iain Sandoe <iain@codesourcery.com>
+ Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+ Dominique d'Humieres <dominiq@lps.ens.fr>
+
+ PR target/67710
+ * gcc.dg/darwin-minversion-1.c: Update min version check.
+ * gcc.dg/darwin-minversion-2.c: Likewise.
+ * gcc.dg/darwin-minversion-3.c: Likewise.
+
2016-11-27 Iain Sandoe <iain@codesourcery.com>
PR target/57438
/* Basic test for -mmacosx-version-min switch on Darwin. */
-/* { dg-options "-mmacosx-version-min=10.1" } */
+/* { dg-options "-mmacosx-version-min=10.5" } */
/* { dg-do run { target *-*-darwin* } } */
int
main ()
{
-#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1010
+#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1050
fail me;
#endif
return 0;
/* Basic test for -mmacosx-version-min switch on Darwin. */
-/* { dg-options "-mmacosx-version-min=10.1 -mmacosx-version-min=10.3" } */
+/* { dg-options "-mmacosx-version-min=10.1 -mmacosx-version-min=10.5" } */
/* { dg-do run { target *-*-darwin* } } */
int
main ()
{
-#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1030
+#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1050
fail me;
#endif
return 0;
/* Test that most minor versions less than 10 work. */
-/* { dg-options "-mmacosx-version-min=10.4.1" } */
+/* { dg-options "-mmacosx-version-min=10.5.8" } */
/* { dg-do compile { target *-*-darwin* } } */
int
main ()
{
-#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1041
+#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != 1058
fail me;
#endif
return 0;
+2016-11-27 Iain Sandoe <iain@codesourcery.com>
+ Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/67710
+ * config/t-darwin: Default builds to 10.5 codegen.
+
2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
* config/aarch64/sfp-machine.h (_FP_NANFRAC_H): Define.
+# Set this as a minimum (unless overriden by arch t-files) since it's a
+# reasonable lowest common denominator that works for all our archs.
+HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.5
+
crt3.o: $(srcdir)/config/darwin-crt3.c
$(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $<