[Buildroot] [PATCH 1/1] package/z3: introduce _ARCH_SUPPORTS
Yann E. MORIN
yann.morin.1998 at free.fr
Sat Dec 31 17:32:35 UTC 2022
Julien, All,
On 2022-12-07 00:10 +0100, Julien Olivain spake thusly:
> z3 package was initially added with a depends on !BR2_nios2. This was
> detected by testing with "./utils/test-pkg -a -p z3". It turned out that
> few other architectures are also not supported. The actual z3
> requirement is to have a libc that provides <fenv.h> AND also provides
> all the four macros: FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO,
> FE_UPWARD.
>
> Quoting glibc manual, or "man fenv":
> https://www.gnu.org/software/libc/manual/html_node/Rounding.html
>
> "fenv.h defines constants which you can use to refer to the various
> rounding modes. Each one will be defined if and only if the FPU
> supports the corresponding rounding mode."
>
> This patch introduces _ARCH_SUPPORTS to limit only to the architectures
> with a FPU that has those rounding modes.
>
> Fixes:
> - http://autobuild.buildroot.net/results/2809dd1ae2f3ada8ee7b3f3e388341c7cfb633fb
>
> Signed-off-by: Julien Olivain <ju.o at free.fr>
Great explanations, thanks!
Applied to master, thanks.
Regards,
Yann E. MORIN.
> ---
> package/z3/Config.in | 26 ++++++++++++++++++++++++--
> 1 file changed, 24 insertions(+), 2 deletions(-)
>
> diff --git a/package/z3/Config.in b/package/z3/Config.in
> index 55b0e8bb3b..8cd3128687 100644
> --- a/package/z3/Config.in
> +++ b/package/z3/Config.in
> @@ -1,11 +1,33 @@
> +# z3 supports arch for which libc fenv.h provides all four macros:
> +# FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD
> +# See for example in glibc https://sourceware.org/git/glibc.git
> +# git grep -E '^[[:space:]]*#[[:space:]]*define[[:space:]]+FE_(TONEAREST|UPWARD|DOWNWARD|TOWARDZERO)' sysdeps/
> +config BR2_PACKAGE_Z3_ARCH_SUPPORTS
> + bool
> + default y if BR2_aarch64 || BR2_aarch64_be
> + default y if BR2_arceb || BR2_arcle
> + default y if BR2_arm || BR2_armeb
> + default y if BR2_i386
> + default y if BR2_m68k
> + # BR2_microblaze has only FE_TONEAREST
> + default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
> + # BR2_nios2 has only FE_TONEAREST
> + default y if BR2_or1k
> + default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
> + default y if BR2_riscv
> + default y if BR2_s390x
> + # BR2_sh has only FE_{TONEAREST,TOWARDZERO}
> + default y if BR2_sparc || BR2_sparc64
> + default y if BR2_x86_64
> + # BR2_xtensa supports only uclibc which does not have fenv.h
> +
> config BR2_PACKAGE_Z3
> bool "z3"
> depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # c++17
> # z3 needs fenv.h which is not provided by uclibc
> depends on !BR2_TOOLCHAIN_USES_UCLIBC
> - # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2
> - depends on !BR2_nios2
> + depends on BR2_PACKAGE_Z3_ARCH_SUPPORTS
> help
> Z3, also known as the Z3 Theorem Prover, is a cross-platform
> satisfiability modulo theories (SMT) solver.
> --
> 2.38.1
>
> _______________________________________________
> buildroot mailing list
> buildroot at buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list