Introduce the variable BR2_TOOLCHAIN_HAS_UCONTEXT
authorPatrick Havelange <patrick.havelange@essensium.com>
Tue, 29 Jan 2019 09:39:16 +0000 (10:39 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Mon, 4 Feb 2019 10:00:01 +0000 (11:00 +0100)
It is set when the platform exposes the struct ucontext_t.

This avoids duplication of logic inside each package requiring
the use of that type.

Signed-off-by: Patrick Havelange <patrick.havelange@essensium.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/libsigsegv/Config.in
toolchain/Config.in

index f258dc9e8a768b007f257859066eb2a75f8f8f4b..8e89ff5aa4c9f556c7b40c5e993cf3b08933d366 100644 (file)
@@ -1,15 +1,6 @@
 config BR2_PACKAGE_LIBSIGSEGV_ARCH_SUPPORTS
        bool
-       # with glibc/musl, ucontext is available for all supported
-       # architectures
-       default y if BR2_TOOLCHAIN_USES_GLIBC
-       default y if BR2_TOOLCHAIN_USES_MUSL
-       # with uclibc, ucontext is only available for a subset of the
-       # supported architectures
-       default y if BR2_TOOLCHAIN_USES_UCLIBC && \
-               (BR2_ARM_CPU_HAS_ARM || BR2_i386 || \
-                BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
-                BR2_sparc || BR2_x86_64)
+       default y if BR2_TOOLCHAIN_HAS_UCONTEXT
 
 config BR2_PACKAGE_LIBSIGSEGV
        bool "libsigsegv"
index baf192c936d4d2c1ee0391a8abf8ee2a62573797..275f9f9cddd4fb3ead1fab9be8da41dd0bbc1812 100644 (file)
@@ -15,10 +15,16 @@ config BR2_TOOLCHAIN_USES_GLIBC
        select BR2_TOOLCHAIN_HAS_THREADS
        select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
        select BR2_TOOLCHAIN_HAS_THREADS_NPTL
+       select BR2_TOOLCHAIN_HAS_UCONTEXT
        select BR2_TOOLCHAIN_SUPPORTS_PIE
 
 config BR2_TOOLCHAIN_USES_UCLIBC
        bool
+       # ucontext is only available for a subset of the supported
+       # architectures
+       select BR2_TOOLCHAIN_HAS_UCONTEXT if BR2_ARM_CPU_HAS_ARM || BR2_i386 \
+               || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el \
+               || BR2_sparc || BR2_x86_64
        select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_m68k && !BR2_microblaze && !BR2_STATIC_LIBS
 
 config BR2_TOOLCHAIN_USES_MUSL
@@ -28,6 +34,7 @@ config BR2_TOOLCHAIN_USES_MUSL
        select BR2_TOOLCHAIN_HAS_THREADS
        select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
        select BR2_TOOLCHAIN_HAS_THREADS_NPTL
+       select BR2_TOOLCHAIN_HAS_UCONTEXT
        select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_STATIC_LIBS
 
 choice
@@ -145,6 +152,9 @@ config BR2_TOOLCHAIN_HAS_THREADS_NPTL
 config BR2_TOOLCHAIN_HAS_SSP
        bool
 
+config BR2_TOOLCHAIN_HAS_UCONTEXT
+       bool
+
 config BR2_TOOLCHAIN_SUPPORTS_PIE
        bool