From a8dc90eaaa5e6474beac828558d969b1aafee4af Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Wed, 9 Jan 2013 16:17:21 +0100 Subject: libc: add {get,set,swap,make}context user context manipulation functions Add the obsolescent SUSv3 family of user context manipulating functions for arm, i386, mips, x86_64. Signed-off-by: Timon ter Braak Signed-off-by: Florian Fainelli Signed-off-by: Bernhard Reutner-Fischer Signed-off-by: Natanael Copa Signed-off-by: Bernhard Reutner-Fischer --- extra/Configs/Config.arm | 1 + extra/Configs/Config.i386 | 1 + extra/Configs/Config.in | 16 ++++++++++++++++ extra/Configs/Config.mips | 1 + extra/Configs/Config.x86_64 | 1 + 5 files changed, 20 insertions(+) (limited to 'extra') diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index 0bb2971a9..dc536434d 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -11,6 +11,7 @@ config FORCE_OPTIONS_FOR_ARCH bool default y select ARCH_ANY_ENDIAN + select ARCH_HAS_UCONTEXT config CONFIG_ARM_EABI bool "Build for EABI" diff --git a/extra/Configs/Config.i386 b/extra/Configs/Config.i386 index 288aa5ebe..92cee3b83 100644 --- a/extra/Configs/Config.i386 +++ b/extra/Configs/Config.i386 @@ -12,6 +12,7 @@ config FORCE_OPTIONS_FOR_ARCH default y select ARCH_LITTLE_ENDIAN select ARCH_HAS_MMU + select ARCH_HAS_UCONTEXT choice prompt "Target x86 Processor Family" diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 4bb681207..62bcd9b6c 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -261,6 +261,9 @@ config ARCH_HAS_NO_LDSO bool select ARCH_HAS_NO_SHARED +config ARCH_HAS_UCONTEXT + bool + config HAVE_SHARED bool "Enable shared libraries" depends on !ARCH_HAS_NO_SHARED @@ -678,6 +681,19 @@ config UCLIBC_SUSV3_LEGACY WARNING! ABI incompatibility. +config UCLIBC_HAS_CONTEXT_FUNCS + bool "Use obsolescent context control functions" + depends on UCLIBC_SUSV3_LEGACY && ARCH_HAS_UCONTEXT + help + Add into library the SuSv3 obsolescent functions used for context + control. The setcontext family allows the implementation in C of + advanced control flow patterns such as iterators, fibers, and + coroutines. They may be viewed as an advanced version of + setjmp/longjmp; whereas the latter allows only a single non-local jump + up the stack, setcontext allows the creation of multiple cooperative + threads of control, each with its own stack. + These functions are: setcontext, getcontext, makecontext, swapcontext. + config UCLIBC_SUSV3_LEGACY_MACROS bool "Enable SuSv3 LEGACY macros" help diff --git a/extra/Configs/Config.mips b/extra/Configs/Config.mips index 063b07cea..48e0b6489 100644 --- a/extra/Configs/Config.mips +++ b/extra/Configs/Config.mips @@ -11,6 +11,7 @@ config FORCE_OPTIONS_FOR_ARCH bool default y select ARCH_ANY_ENDIAN + select ARCH_HAS_UCONTEXT choice prompt "Target ABI" diff --git a/extra/Configs/Config.x86_64 b/extra/Configs/Config.x86_64 index 1b2808893..4c8c3a9bd 100644 --- a/extra/Configs/Config.x86_64 +++ b/extra/Configs/Config.x86_64 @@ -12,3 +12,4 @@ config FORCE_OPTIONS_FOR_ARCH default y select ARCH_LITTLE_ENDIAN select ARCH_HAS_MMU + select ARCH_HAS_UCONTEXT -- cgit v1.2.3