This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Enable building of libatomic on AArch64


Ping?

Michael Hudson-Doyle <michael.hudson@linaro.org> writes:

> Marcus Shawcroft <marcus.shawcroft@gmail.com> writes:
>
>> On 3 October 2013 23:43, Michael Hudson-Doyle <michael.hudson@linaro.org> wrote:
>>> Hi,
>>>
>>> As libatomic builds for and the tests pass on AArch64 (built on x86_64
>>> but tested on a foundation model, logs and summary:
>>>
>>>     http://people.linaro.org/~mwhudson/libatomic.sum.txt
>>>     http://people.linaro.org/~mwhudson/runtest-log-v-2.txt
>>>
>>> ) this patch enables the build.
>>>
>>> Cheers,
>>> mwh
>>> (first time posting to this list, let me know if I'm doing it wrong)
>>>
>>> 2013-10-04  Michael Hudson-Doyle  <michael.hudson@linaro.org>
>>>
>>>           * configure.tgt: Add AArch64 support.
>>>
>>
>> Hi,
>> The patch looks fine to me.
>
> Thanks for looking!
>
>> The ChangeLog entry should reflect the code that was removed rather
>> than the functionality added.  Perhaps:
>>
>>           * configure.tgt (aarch64*): Remove.
>
> There are few too many negatives going on to make a pithy explanation
> easy...
>
>> Did you investigate whether or not the 10 UNSUPPORTED results in the
>> testsuite are sane?
>
> I did not, but have now.
>
>> I think that 5 look legitimate since they require 128 bit sync ops.
>> The other 5 look superficially like they should be supported on
>> aarch64.  We may just be missing aarch64 target supports wiring in
>> check_effective_target_sync_long_long_runtime?
>
> Yes, that was it, with appropriate changes the -4 tests all pass.
>
> However, just out of a sense of curiosity, I added wiring to claim
> aarch64* supports 128 bit sync ops and all the -5 tests pass too.  Is
> that just luck or because the reservation granule on the foundation
> model is big enough or something else?
>
> In any case, I'll attach a patch that just claims support for long long
> sync ops for now...
>
> Cheers,
> mwh
>
>> /Marcus
>
> 2013-10-04  Michael Hudson-Doyle  <michael.hudson@linaro.org>
>
>           * libatomic/configure.tgt (aarch64*): Remove code preventing
>             build.
>
>           * gcc/testsuite/lib/target-supports.exp
>             (check_effective_target_sync_long_long): AArch64 supports
>             atomic operations on "long long".
>             (check_effective_target_sync_long_long_runtime): AArch64 can
>             execute atomic operations on "long long".
>
> diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
> index 7eb4dfe..5557c06 100644
> --- a/gcc/testsuite/lib/target-supports.exp
> +++ b/gcc/testsuite/lib/target-supports.exp
> @@ -4508,6 +4508,7 @@ proc check_effective_target_sync_int_128_runtime { } {
>  proc check_effective_target_sync_long_long { } {
>      if { [istarget x86_64-*-*]
>  	 || [istarget i?86-*-*])
> +	 || [istarget aarch64*-*-*]
>  	 || [istarget arm*-*-*]
>  	 || [istarget alpha*-*-*]
>  	 || ([istarget sparc*-*-*] && [check_effective_target_lp64]) } {
> @@ -4537,6 +4538,8 @@ proc check_effective_target_sync_long_long_runtime { } {
>  		}
>  	    } ""
>  	}]
> +    } elseif { [istarget aarch64*-*-*] } {
> +	return 1
>      } elseif { [istarget arm*-*-linux-*] } {
>  	return [check_runtime sync_longlong_runtime {
>  	    #include <stdlib.h>
> diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
> index b9e5d6c..7eaab38 100644
> --- a/libatomic/configure.tgt
> +++ b/libatomic/configure.tgt
> @@ -95,11 +95,6 @@ fi
>  
>  # Other system configury
>  case "${target}" in
> -  aarch64*)
> -	# This is currently not supported in AArch64.
> -	UNSUPPORTED=1
> -	;;
> -
>    arm*-*-linux*)
>  	# OS support for atomic primitives.
>  	config_path="${config_path} linux/arm posix"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]