[v2,3/7] configure: Detect compiler support for __attribute__((alias))
diff mbox series

Message ID 20191023154505.30521-4-richard.henderson@linaro.org
State New
Headers show
Series
  • exec: Improve code for TARGET_PAGE_BITS_VARY
Related show

Commit Message

Richard Henderson Oct. 23, 2019, 3:45 p.m. UTC
Such support is present almost everywhere, except for Xcode 9.
It is added in Xcode 10, but travis uses xcode9 by default,
so we should support it for a while yet.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 configure | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

Comments

Alex Bennée Oct. 25, 2019, 2:04 p.m. UTC | #1
Richard Henderson <richard.henderson@linaro.org> writes:

> Such support is present almost everywhere, except for Xcode 9.
> It is added in Xcode 10, but travis uses xcode9 by default,
> so we should support it for a while yet.

We really should get someone who has an AppleID to check what the
support period is because if Apple don't care about Xcode9 anymore I
doubt we should.

Anyway:

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>  configure | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
>
> diff --git a/configure b/configure
> index 145fcabbb3..3a9862fe5e 100755
> --- a/configure
> +++ b/configure
> @@ -5518,6 +5518,21 @@ if compile_prog "" "" ; then
>    vector16=yes
>  fi
>
> +########################################
> +# See if __attribute__((alias)) is supported.
> +# This false for Xcode 9, but has been remedied for Xcode 10.
> +# Unfortunately, travis uses Xcode 9 by default.
> +
> +attralias=no
> +cat > $TMPC << EOF
> +int x = 1;
> +extern const int y __attribute__((alias("x")));
> +int main(void) { return 0; }
> +EOF
> +if compile_prog "" "" ; then
> +    attralias=yes
> +fi
> +
>  ########################################
>  # check if getauxval is available.
>
> @@ -7083,6 +7098,10 @@ if test "$vector16" = "yes" ; then
>    echo "CONFIG_VECTOR16=y" >> $config_host_mak
>  fi
>
> +if test "$attralias" = "yes" ; then
> +  echo "CONFIG_ATTRIBUTE_ALIAS=y" >> $config_host_mak
> +fi
> +
>  if test "$getauxval" = "yes" ; then
>    echo "CONFIG_GETAUXVAL=y" >> $config_host_mak
>  fi


--
Alex Bennée
Thomas Huth Nov. 8, 2019, 4:01 p.m. UTC | #2
On 25/10/2019 16.04, Alex Bennée wrote:
> 
> Richard Henderson <richard.henderson@linaro.org> writes:
> 
>> Such support is present almost everywhere, except for Xcode 9.
>> It is added in Xcode 10, but travis uses xcode9 by default,
>> so we should support it for a while yet.
> 
> We really should get someone who has an AppleID to check what the
> support period is because if Apple don't care about Xcode9 anymore I
> doubt we should.

The page at https://docs.travis-ci.com/user/reference/osx/ has a nice 
list which Xcode versions are used with which macOS versions.
Xcode10 was also available for macOS 10.13 (which is likely the oldest 
macOS version that we care about), so I think we can assume that macOS 
users that are still using 10.13 can upgrade to xcode10.1 if they want 
to compile QEMU.

  Thomas

Patch
diff mbox series

diff --git a/configure b/configure
index 145fcabbb3..3a9862fe5e 100755
--- a/configure
+++ b/configure
@@ -5518,6 +5518,21 @@  if compile_prog "" "" ; then
   vector16=yes
 fi
 
+########################################
+# See if __attribute__((alias)) is supported.
+# This false for Xcode 9, but has been remedied for Xcode 10.
+# Unfortunately, travis uses Xcode 9 by default.
+
+attralias=no
+cat > $TMPC << EOF
+int x = 1;
+extern const int y __attribute__((alias("x")));
+int main(void) { return 0; }
+EOF
+if compile_prog "" "" ; then
+    attralias=yes
+fi
+
 ########################################
 # check if getauxval is available.
 
@@ -7083,6 +7098,10 @@  if test "$vector16" = "yes" ; then
   echo "CONFIG_VECTOR16=y" >> $config_host_mak
 fi
 
+if test "$attralias" = "yes" ; then
+  echo "CONFIG_ATTRIBUTE_ALIAS=y" >> $config_host_mak
+fi
+
 if test "$getauxval" = "yes" ; then
   echo "CONFIG_GETAUXVAL=y" >> $config_host_mak
 fi