Ping? Michael Hudson-Doyle <michael.hud...@linaro.org> writes:
> Marcus Shawcroft <marcus.shawcr...@gmail.com> writes: > >> On 3 October 2013 23:43, Michael Hudson-Doyle <michael.hud...@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.hud...@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.hud...@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"