summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2013-01-09 16:17:21 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2013-01-10 10:56:19 +0100
commita8dc90eaaa5e6474beac828558d969b1aafee4af (patch)
treeed22c27193dcc91697f6b8782da9a9abd08d42b1 /extra
parentdf3a5fcc8d1c3402289375c92df705e978fab58d (diff)
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 <timonterbraak@gmail.com> Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'extra')
-rw-r--r--extra/Configs/Config.arm1
-rw-r--r--extra/Configs/Config.i3861
-rw-r--r--extra/Configs/Config.in16
-rw-r--r--extra/Configs/Config.mips1
-rw-r--r--extra/Configs/Config.x86_641
5 files changed, 20 insertions, 0 deletions
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