On 03/11/2020 15:08, Bernd Edlinger wrote: > Hi, > > this fixes a problem with a missing symbol __sync_synchronize > which happens when newlib is used together with libstdc++ for > the non-threaded simulator target arm-none-eabi. > > There are several questions on stackoverflow about this issue. > > I would like to add a weak symbol for this target, since this > is only a default implementation and not meant to override a > possibly more sophisticated synchronization function from the > c-runtime. > > > Regression tested successfully on arm-none-eabi with newlib-3.3.0. > > Is it OK for trunk? > > > Thanks > Bernd. >
I seem to recall that this was a deliberate decision - you can't guess this correctly, at least when trying to build portable code - you just have to know which runtime you will be using. I think Ramana had some changes in the works at one point to address (some) of this, but I'm not sure what happened to them. Ramana? +#if defined (__ARM_ARCH_6__) || defined (__ARM_ARCH_6J__) \ + || defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6T2__) \ + || defined (__ARM_ARCH_6Z__) || defined (__ARM_ARCH_6ZK__) \ + || defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__) +#if defined (__ARM_ARCH_7__) || defined (__ARM_ARCH_7A__) Ug, no! Use the ACLE macros to avoid this sort of mess. R.