+5234. [port] arm: just use the compiler's default support for
+ yield. [GL #981]
+
--- 9.15.0 released ---
5233. [bug] Negative trust anchors did not work with "forward only;"
## Platform quirks
-### ARM
-
-If the compilation ends with following error:
-
-```
-Error: selected processor does not support `yield' in ARM mode
-```
-
-You will need to set `-march` compiler option to `native`, so the compiler
-recognizes `yield` assembler instruction. The proper way to set `-march=native`
-would be to put it into `CFLAGS`, e.g. run `./configure` like this:
-`CFLAGS="-march=native -Os -g" ./configure` plus your usual options.
-
-If that doesn't work, you can enforce the minimum CPU and FPU (taken from Debian
-armhf documentation):
-
-* The lowest worthwhile CPU implementation is Armv7-A, therefore the recommended
- build option is `-march=armv7-a`.
-
-* FPU should be set at VFPv3-D16 as they represent the minimum specification of
- the processors to support here, therefore the recommended build option is
- `-mfpu=vfpv3-d16`.
-
-The `configure` command should look like this:
-
-```
-CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -Os -g" ./configure
-```
-
### NetBSD 6 i386
The i386 build of NetBSD requires the `libatomic` library, available from
/* Define to 1 if you have the `arc4random_uniform' function. */
#undef HAVE_ARC4RANDOM_UNIFORM
+/* define if the ARM yield instruction is available */
+#undef HAVE_ARM_YIELD
+
/* Define to 1 if the compiler supports __builtin_clz. */
#undef HAVE_BUILTIN_CLZ
#
case $host in #(
arm*) :
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yield instruction support" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yield instruction support" >&5
$as_echo_n "checking for yield instruction support... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
__asm__ __volatile__ ("yield")
-
;
return 0;
}
if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
+
+$as_echo "#define HAVE_ARM_YIELD 1" >>confdefs.h
+
else
- as_fn_error $? "no, try adding -march=native or -march=armv7-a to CFLAGS (see PLATFORMS.md for more information)" "$LINENO" 5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; #(
*) :
# Check for yield support on ARM processors
#
AS_CASE([$host],
- [arm*],[
- AC_MSG_CHECKING([for yield instruction support])
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [[]],
- [[__asm__ __volatile__ ("yield")]]
- )],
- [AC_MSG_RESULT([yes])],
- [AC_MSG_ERROR([no, try adding -march=native or -march=armv7-a to CFLAGS (see PLATFORMS.md for more information)])])])
+ [arm*],
+ [AC_MSG_CHECKING([for yield instruction support])
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[]],
+ [[__asm__ __volatile__ ("yield")]])],
+ [AC_MSG_RESULT([yes])
+ AC_DEFINE([HAVE_ARM_YIELD], [1],
+ [define if the ARM yield instruction is available])],
+ [AC_MSG_RESULT([no])])])
AC_CHECK_FUNCS([sysctlbyname])
# define isc_rwlock_pause() __asm__ __volatile__ ("rep; nop")
#elif defined(__ia64__)
# define isc_rwlock_pause() __asm__ __volatile__ ("hint @pause")
-#elif defined(__arm__)
+#elif defined(__arm__) && HAVE_ARM_YIELD
# define isc_rwlock_pause() __asm__ __volatile__ ("yield")
#elif defined(sun) && (defined(__sparc) || defined(__sparc__))
# define isc_rwlock_pause() smt_pause()