From d3ddb92ea03c89fe7d56a0bcbfbe64743bc51210 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Wed, 11 May 2011 13:12:14 +0200 Subject: add pipe2() Signed-off-by: Bernhard Reutner-Fischer --- extra/Configs/Config.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'extra') diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 147a316e6..7dffdeab9 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -915,7 +915,8 @@ config UCLIBC_LINUX_SPECIFIC default y help capget(), capset(), fstatfs(), inotify_*(), ioperm(), iopl(), - madvise(), modify_ldt(), personality(), prctl()/arch_prctl(), + madvise(), modify_ldt(), pipe2(), personality(), + prctl()/arch_prctl(), ppoll(), readahead(), reboot(), remap_file_pages(), sched_getaffinity(), sched_setaffinity(), sendfile(), setfsgid(), setfsuid(), setresuid(), -- cgit v1.2.3 From 44100dac1138c480deabb72ee8e180544005dfd9 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Thu, 12 May 2011 10:37:36 +0200 Subject: linux_specific: handle accept4 and pipe2 Signed-off-by: Bernhard Reutner-Fischer --- extra/Configs/Config.in | 1 + 1 file changed, 1 insertion(+) (limited to 'extra') diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in index 7dffdeab9..e41adc465 100644 --- a/extra/Configs/Config.in +++ b/extra/Configs/Config.in @@ -914,6 +914,7 @@ config UCLIBC_LINUX_SPECIFIC bool "Linux specific functions" default y help + accept4(), capget(), capset(), fstatfs(), inotify_*(), ioperm(), iopl(), madvise(), modify_ldt(), pipe2(), personality(), prctl()/arch_prctl(), -- cgit v1.2.3 From 0e5a44e8ccf1c5ac49c1319f74c296e875f290e2 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 9 Jan 2011 01:45:04 +0100 Subject: ARM: reorder "Use BX" option "Use BX" is not available on all CPUs, so the option depends on a correct CPU to be chosen . It is weird that e BX" then appears _above_ the CPU selection, not below. Move the "Use BX" after the CPU selection. Signed-off-by: "Yann E. MORIN" Cc: Khem Raj Cc: Bernhard Reutner-Fischer Cc: Carmelo AMOROSO Signed-off-by: Khem Raj --- extra/Configs/Config.arm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'extra') diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index eb27a3391..dd63b807c 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -30,13 +30,6 @@ config CONFIG_ARM_EABI endchoice -config USE_BX - bool "Use BX in function return" - default y - depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710 - help - Use BX instruction for THUMB aware architectures. - choice prompt "Target Processor Type" default CONFIG_GENERIC_ARM @@ -131,3 +124,10 @@ config CONFIG_ARM_IWMMXT select ARCH_HAS_MMU endchoice + +config USE_BX + bool "Use BX in function return" + default y + depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710 + help + Use BX instruction for THUMB aware architectures. -- cgit v1.2.3 From bda6117489ad3de5abfb008a8cb065c9059cd60c Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 9 Jan 2011 01:45:05 +0100 Subject: ARM: introduce blind options to select & force THUMB mode Add three new blind options to set use of Thumb mode: - COMPILE_IN_THUMB_MODE - if set, CFLAGS will contain -mthumb - if unset, the compiler's default is used - HAS_THUMB - CPUS with Thumb instruction set can select this - use of BX depends on this - FORCE_THUMB - CPUs that are Thumb-only must select this - this selects: HAS_THUMB, COMPILE_IN_THUMB_MODE and USE_BX Also, remove leading space in Rules.mak. Signed-off-by: "Yann E. MORIN" Cc: Khem Raj Cc: Bernhard Reutner-Fischer Cc: Carmelo AMOROSO Signed-off-by: Khem Raj --- extra/Configs/Config.arm | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'extra') diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index dd63b807c..93038e9b2 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -64,70 +64,95 @@ config CONFIG_ARM710 config CONFIG_ARM7TDMI bool "Arm 7TDMI" select ARCH_HAS_NO_MMU + select HAS_THUMB config CONFIG_ARM720T bool "Arm 720T" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM920T bool "Arm 920T" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM922T bool "Arm 922T" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM926T bool "Arm 926T" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM10T bool "Arm 10T" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM1136JF_S bool "Arm 1136JF-S" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM1176JZ_S bool "Arm 1176JZ-S" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM1176JZF_S bool "Arm 1176JZF-S" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM_CORTEX_M3 bool "Arm Cortex-M3" select ARCH_HAS_NO_MMU - select USE_BX + select FORCE_THUMB config CONFIG_ARM_CORTEX_M1 bool "Arm Cortex-M1" select ARCH_HAS_NO_MMU - select USE_BX + select FORCE_THUMB config CONFIG_ARM_SA110 bool "Intel StrongArm SA-110" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM_SA1100 bool "Intel StrongArm SA-1100" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM_XSCALE bool "Intel Xscale" select ARCH_HAS_MMU + select HAS_THUMB config CONFIG_ARM_IWMMXT bool "Intel Xscale With WMMX PXA27x" select ARCH_HAS_MMU + select HAS_THUMB endchoice +config HAS_THUMB + bool + +config FORCE_THUMB + bool + select HAS_THUMB + select COMPILE_IN_THUMB_MODE + select USE_BX + +config COMPILE_IN_THUMB_MODE + bool + config USE_BX bool "Use BX in function return" default y - depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710 + depends on HAS_THUMB help Use BX instruction for THUMB aware architectures. -- cgit v1.2.3 From 3936325282d988fcc998b4dfc611fcffcff29c40 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 9 Jan 2011 01:45:06 +0100 Subject: ARM: remove sub-arch/variants selection from menuconfig Rely on the compiler to be correctly set up to generate appropriate code for the target variant. This exposes the Thumb option, as it is no longer auto-selected. The "Use BX" no longer depends on supported CPU to be selected, so it now defaults to 'n' as it shall work by default on CPUs that do not have BX. Signed-off-by: "Yann E. MORIN" Cc: Khem Raj Cc: Bernhard Reutner-Fischer Cc: Carmelo AMOROSO Signed-off-by: Khem Raj --- extra/Configs/Config.arm | 125 ++--------------------------------------------- 1 file changed, 5 insertions(+), 120 deletions(-) (limited to 'extra') diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index 93038e9b2..b3f66f4a4 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -30,129 +30,14 @@ config CONFIG_ARM_EABI endchoice -choice - prompt "Target Processor Type" - default CONFIG_GENERIC_ARM - help - This is the processor type of your CPU. This information is used for - optimizing purposes. To build a library that will run on all ARMCPU - types (albeit not optimally fast), you can specify "Generic Arm" here. - If you pick anything other than "Generic Arm", there is no guarantee - that uClibc will even run on anything other than the selected - processor type. - - Here are the settings recommended for greatest speed: - - "Generic Arm" select this if your compiler is already setup to - optimize things properly, or if you want to run on pretty much - everything, or you just don't much care. - - For anything else, pick the ARM core type that best matches the - cpu you will be using on your device. - - If you don't know what to do, choose "Generic Arm". - -config CONFIG_GENERIC_ARM - bool "Generic Arm" - -config CONFIG_ARM610 - bool "Arm 610" - select ARCH_HAS_MMU - -config CONFIG_ARM710 - bool "Arm 710" - select ARCH_HAS_MMU - -config CONFIG_ARM7TDMI - bool "Arm 7TDMI" - select ARCH_HAS_NO_MMU - select HAS_THUMB - -config CONFIG_ARM720T - bool "Arm 720T" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM920T - bool "Arm 920T" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM922T - bool "Arm 922T" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM926T - bool "Arm 926T" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM10T - bool "Arm 10T" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM1136JF_S - bool "Arm 1136JF-S" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM1176JZ_S - bool "Arm 1176JZ-S" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM1176JZF_S - bool "Arm 1176JZF-S" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM_CORTEX_M3 - bool "Arm Cortex-M3" - select ARCH_HAS_NO_MMU - select FORCE_THUMB - -config CONFIG_ARM_CORTEX_M1 - bool "Arm Cortex-M1" - select ARCH_HAS_NO_MMU - select FORCE_THUMB - -config CONFIG_ARM_SA110 - bool "Intel StrongArm SA-110" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM_SA1100 - bool "Intel StrongArm SA-1100" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM_XSCALE - bool "Intel Xscale" - select ARCH_HAS_MMU - select HAS_THUMB - -config CONFIG_ARM_IWMMXT - bool "Intel Xscale With WMMX PXA27x" - select ARCH_HAS_MMU - select HAS_THUMB - -endchoice - -config HAS_THUMB - bool - -config FORCE_THUMB - bool - select HAS_THUMB - select COMPILE_IN_THUMB_MODE - select USE_BX - config COMPILE_IN_THUMB_MODE - bool + bool "Build using Thumb mode" + select USE_BX + help + Say 'y' here to force building uClibc in thumb mode. + Say 'n' to use your compiler's default mode. config USE_BX bool "Use BX in function return" - default y - depends on HAS_THUMB help Use BX instruction for THUMB aware architectures. -- cgit v1.2.3 From 7f40574243cfdbecbc5dde1798105027b84b81fc Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 9 Jan 2011 01:45:07 +0100 Subject: ARM: transform the EABI/OABI choice into a boolean The CONFIG_ARM_OABI option is never used. Signed-off-by: "Yann E. MORIN" Cc: Khem Raj Cc: Bernhard Reutner-Fischer Cc: Carmelo AMOROSO Signed-off-by: Khem Raj --- extra/Configs/Config.arm | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'extra') diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index b3f66f4a4..4ab7da0d1 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -12,23 +12,16 @@ config FORCE_OPTIONS_FOR_ARCH default y select ARCH_ANY_ENDIAN -choice - prompt "Target ABI" - default CONFIG_ARM_EABI +config CONFIG_ARM_EABI + bool "Build for EABI" help - If you choose "EABI" here, functions and constants required by the - ARM EABI will be built into the library. You should choose "EABI" + If you say 'y' here, functions and constants required by the + ARM EABI will be built into the library. You should say 'y' if your compiler uses the ARM EABI, in which case you will also - need a kernel supporting the EABI system call interface, or "OABI" - for a compiler using the old Linux ABI. - -config CONFIG_ARM_OABI - bool "OABI" - -config CONFIG_ARM_EABI - bool "EABI" + need a kernel supporting the EABI system call interface. -endchoice + If you say 'n' here, then the library will be built for the + old Linux ABI. config COMPILE_IN_THUMB_MODE bool "Build using Thumb mode" -- cgit v1.2.3 From 7a246fda8e3bd2067d44e01c30c8ce761dad39a8 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 9 Jan 2011 01:45:09 +0100 Subject: ARM: detect BX availibility at build time The "use BX" option is now a suggestion that BX be used if available. Use a macro to detect if BX is available at build time. If so, and the user requested it be used, then use it. Otherwise, error out. Macro courtesy Khem RAJ: http://lists.uclibc.org/pipermail/uclibc/2009-April/042301.html Signed-off-by: "Yann E. MORIN" Cc: Khem Raj Cc: Bernhard Reutner-Fischer Cc: Carmelo AMOROSO Signed-off-by: Khem Raj --- extra/Configs/Config.arm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'extra') diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index 4ab7da0d1..0bb2971a9 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -33,4 +33,6 @@ config COMPILE_IN_THUMB_MODE config USE_BX bool "Use BX in function return" help - Use BX instruction for THUMB aware architectures. + Say 'y' to use BX to return from functions on your thumb-aware + processor. Say 'y' if you need to use interworking. Say 'n' if not. + It is safe to say 'y' even if you're not doing interworking. -- cgit v1.2.3