uclibc config cleanup
cover uclibc config cleanup
We do not need machine configs or even arch configs since we construct the bits in .inc files. Once anamoly is mips where we do not use default ARCH for o32 which is mips1 but we use mips32 so thats the reason we have a separate config for mips.
Additionally fix boot issue found on mips which were exposed by udev 171
These patches have been tested with builds from scratch for all supported qemu machines and incrmental too (for qemumips)
and angstrom/console-image is booted on all supported qemu machines
The following changes since commit ae4c2b8834dc4d88be7207ea5c45c596bb46fded:
uclibc: Fix bug exposed by udev 168+ for mips architecture (2011-06-30 00:52:32 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib kraj/uclibc-cleanup
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/uclibc-cleanup
Khem Raj (6):
uclibc: Remove redundant machine/arch configs uclibc-config.inc: Fix regexp to determine big-endian arm uclibc.inc: Use ARCH_WANTS_{LITTLE|BIG}_ENDIAN to denote endian uclibc_git.bb: Untether UCLIBC_HAS_FPU from UCLIBC_HAS_FLOATS
uclibc: Add UCLIBC_HAS_FLOATS=y to uClibc.distro
uclibc: Fix bug exposed by udev 168+ for mips architecture
meta/recipes-core/uclibc/uClibc.distro | 157 -------------------- meta/recipes-core/uclibc/uclibc-config.inc | 2 +- ...rch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch | 29 ++++ ...fd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch | 33 ++++ .../uclibc/uclibc-git/arm/uClibc.machine | 70 --------- .../uclibc/uclibc-git/armeb/uClibc.machine | 53 ------- .../uclibc/uclibc-git/armv5te/uClibc.machine | 77 ---------- .../uclibc/uclibc-git/armv5teb/uClibc.machine | 74 --------- .../uclibc/uclibc-git/i386/uClibc.machine | 59 -------- .../uclibc/uclibc-git/i486/uClibc.machine | 62 -------- .../uclibc/uclibc-git/i586/uClibc.machine | 62 -------- .../uclibc/uclibc-git/i686/uClibc.machine | 59 -------- .../uclibc/uclibc-git/mips/uClibc.machine | 61 +------- .../uclibc/uclibc-git/mips64/uClibc.machine | 63 -------- .../uclibc/uclibc-git/mipsel/uClibc.machine | 63 -------- .../uclibc/uclibc-git/powerpc/uClibc.machine | 46 ------ .../uclibc/uclibc-git/sh4/uClibc.machine | 48 ------ meta/recipes-core/uclibc/uclibc-git/uClibc.distro | 1 + meta/recipes-core/uclibc/uclibc-git/uClibc.machine | 14 ++ .../uclibc/uclibc-git/x86_64/uClibc.machine | 41 ----- meta/recipes-core/uclibc/uclibc.inc | 2 +- meta/recipes-core/uclibc/uclibc_git.bb | 4 +- 22 files changed, 89 insertions(+), 991 deletions(-) delete mode 100644 meta/recipes-core/uclibc/uClibc.distro create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch delete mode 100644 meta/recipes-core/uclibc/uclibc-git/arm/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/armeb/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/armv5te/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/armv5teb/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/i386/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/i486/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/i586/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/i686/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/mips64/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/mipsel/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/powerpc/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/sh4/uClibc.machine create mode 100644 meta/recipes-core/uclibc/uclibc-git/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/x86_64/uClibc.machine
Signature · 1 line
1.7.4.1
PATCH 1/6 uclibc: Remove redundant machine/arch configs
Big endian counterparts are not needed since
we already add the proper endianness to final
.config as seen in uclibc-config.inc
The difference between arm and armv5te configs were also superficial since all it did was select arm926t which made sure that right mtune and march flags were passed to gcc when building uclibc We already do that via passing them in UCLIBC_EXTRA_CFLAGS.
Similarly for other architectures the features
are really taken care of in config mangler and
machine config fragments are no longer needed
Add generic machine config file
uClibc.machine in topdir should work mostly
and odd ones like mips should have a copy
of their own as explained
--- .../uclibc/uclibc-git/arm/uClibc.machine | 70 ------------------ .../uclibc/uclibc-git/armeb/uClibc.machine | 53 -------------- .../uclibc/uclibc-git/armv5te/uClibc.machine | 77 -------------------- .../uclibc/uclibc-git/armv5teb/uClibc.machine | 74 ------------------- .../uclibc/uclibc-git/i386/uClibc.machine | 59 --------------- .../uclibc/uclibc-git/i486/uClibc.machine | 62 ---------------- .../uclibc/uclibc-git/i586/uClibc.machine | 62 ---------------- .../uclibc/uclibc-git/i686/uClibc.machine | 59 --------------- .../uclibc/uclibc-git/mips/uClibc.machine | 61 ++-------------- .../uclibc/uclibc-git/mips64/uClibc.machine | 63 ---------------- .../uclibc/uclibc-git/mipsel/uClibc.machine | 63 ---------------- .../uclibc/uclibc-git/powerpc/uClibc.machine | 46 ------------ .../uclibc/uclibc-git/sh4/uClibc.machine | 48 ------------ meta/recipes-core/uclibc/uclibc-git/uClibc.machine | 14 ++++ .../uclibc/uclibc-git/x86_64/uClibc.machine | 41 ----------- 15 files changed, 21 insertions(+), 831 deletions(-) delete mode 100644 meta/recipes-core/uclibc/uclibc-git/arm/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/armeb/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/armv5te/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/armv5teb/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/i386/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/i486/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/i586/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/i686/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/mips64/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/mipsel/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/powerpc/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/sh4/uClibc.machine create mode 100644 meta/recipes-core/uclibc/uclibc-git/uClibc.machine delete mode 100644 meta/recipes-core/uclibc/uclibc-git/x86_64/uClibc.machine
meta/recipes-core/uclibc/uclibc-git/arm/uClibc.machine deleted +0 -70
@@ -1,70 +0,0 @@ -# -# Automatically generated make config: don't edit -# Mon May 14 10:23:14 2007 -# -# TARGET_alpha is not set -TARGET_arm=y -# TARGET_bfin is not set -# TARGET_cris is not set -# TARGET_e1 is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_i960 is not set -# TARGET_ia64 is not set -# TARGET_m68k is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nios is not set -# TARGET_nios2 is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sh64 is not set -# TARGET_sparc is not set -# TARGET_v850 is not set -# TARGET_vax is not set -# TARGET_x86_64 is not set - -# -# Target Architecture Features and Options -# -TARGET_ARCH="arm" -FORCE_OPTIONS_FOR_ARCH=y -# CONFIG_ARM_OABI is not set -CONFIG_ARM_EABI=y -# COMPILE_IN_THUMB_MODE is not set -USE_BX=y -CONFIG_GENERIC_ARM=y -# CONFIG_ARM610 is not set -# CONFIG_ARM710 is not set -# CONFIG_ARM7TDMI is not set -# CONFIG_ARM720T is not set -# CONFIG_ARM920T is not set -# CONFIG_ARM922T is not set -# CONFIG_ARM926T is not set -# CONFIG_ARM10T is not set -# CONFIG_ARM1136JF_S is not set -# CONFIG_ARM1176JZ_S is not set -# CONFIG_ARM1176JZF_S is not set -# CONFIG_ARM_SA110 is not set -# CONFIG_ARM_SA1100 is not set -# CONFIG_ARM_XSCALE is not set -# CONFIG_ARM_IWMMXT is not set -TARGET_SUBARCH="" - -# -# Using ELF file format -# -ARCH_ANY_ENDIAN=y -ARCH_LITTLE_ENDIAN=y -# ARCH_WANTS_BIG_ENDIAN is not set -ARCH_WANTS_LITTLE_ENDIAN=y -ARCH_HAS_MMU=y -ARCH_USE_MMU=y -UCLIBC_HAS_FLOATS=y -# UCLIBC_HAS_FPU is not set -UCLIBC_HAS_SOFT_FLOAT=y -KERNEL_HEADERS="/usr/include" -HAVE_DOT_CONFIG=y -
meta/recipes-core/uclibc/uclibc-git/armeb/uClibc.machine deleted +0 -53
53 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/armv5te/uClibc.machine deleted +0 -77
77 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/armv5teb/uClibc.machine deleted +0 -74
74 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/i386/uClibc.machine deleted +0 -59
59 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/i486/uClibc.machine deleted +0 -62
62 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/i586/uClibc.machine deleted +0 -62
62 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/i686/uClibc.machine deleted +0 -59
59 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/mips/uClibc.machine +7 -54
70 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/mips64/uClibc.machine deleted +0 -63
63 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/mipsel/uClibc.machine deleted +0 -63
63 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/powerpc/uClibc.machine deleted +0 -46
46 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/sh4/uClibc.machine deleted +0 -48
48 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/uClibc.machine new file +14 -0
@@ -0,0 +1,14 @@ +# +# Automatically generated make config: don't edit +# Version: 0.9.32-git +# Mon Jul 19 01:34:29 2010 +# +# +# Using ELF file format +# +FORCE_OPTIONS_FOR_ARCH=y +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +KERNEL_HEADERS="/usr/include" +HAVE_DOT_CONFIG=y +
meta/recipes-core/uclibc/uclibc-git/x86_64/uClibc.machine deleted +0 -41
41 lines not on this page · raw message
Signature · 1 line
1.7.4.1
PATCH 2/6 uclibc-config.inc: Fix regexp to determine big-endian arm
Without this even arm-*-* was being treated as big endian but normal convention is the arm-*-* is little endian
--- meta/recipes-core/uclibc/uclibc-config.inc | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-core/uclibc/uclibc-config.inc +1 -1
@@ -75,7 +75,7 @@ def map_uclibc_endian(a, d): if re.match('^(avr32|e1|frv|(parisc|hppa)|m68k|microblaze|powerpc.*|(sparc|sun).*)$', a): return 'BIG' # Possibly BE - elif re.match('^((arm|sa110|arm.*eb)|h8300.*eb|(parisc|hppa).*eb|mips|sh.*eb|xtensa.*eb)$', a): + elif re.match('^(((arm|sa110).*eb)|h8300.*eb|(parisc|hppa).*eb|mips|sh.*eb|xtensa.*eb)$', a): return 'BIG' return 'LITTLE'
Signature · 1 line
1.7.4.1
PATCH 3/6 uclibc.inc: Use ARCH_WANTS_{LITTLE|BIG}_ENDIAN to denote endian
In reply to Khem RajARCH_{BIG|LITTLE}_ENDIAN is governed by ARCH_WANTS_{LITTLE|BIG}_ENDIAN therefore we tame the superior
--- meta/recipes-core/uclibc/uclibc.inc | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-core/uclibc/uclibc.inc +1 -1
@@ -164,7 +164,7 @@ python () { "/^### FPU$/a\\\n%s\n\n" % (["UCLIBC_HAS_FPU=y","# UCLIBC_HAS_FPU is not set"][bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]]), d) if "${UCLIBC_ENDIAN}": bb.data.setVar('configmangle_append', - "/^### ABI$/a\\\nARCH_%s_ENDIAN=y\n\n" % ("${UCLIBC_ENDIAN}"), + "/^### ABI$/a\\\nARCH_WANTS_%s_ENDIAN=y\n\n" % ("${UCLIBC_ENDIAN}"), d) if "${UCLIBC_ABI}": bb.data.setVar('configmangle_append',
Signature · 1 line
1.7.4.1
PATCH 4/6 uclibc_git.bb: Untether UCLIBC_HAS_FPU from UCLIBC_HAS_FLOATS
In reply to Khem Raj--- ...rch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch | 29 ++++++++++++++++++++ meta/recipes-core/uclibc/uclibc_git.bb | 1 + 2 files changed, 30 insertions(+), 0 deletions(-) create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch
meta/recipes-core/uclibc/uclibc-git/0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch new file +29 -0
@@ -0,0 +1,29 @@ +From 06cdcd2a9dd6b46b7fbb5b3ae0a62bdb7ee6c402 Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Mon, 27 Jun 2011 17:48:18 -0700 +Subject: [PATCH] Config.in.arch: Free UCLIBC_HAS_FPU setting from depending on UCLIBC_HAS_FLOATS + +UCLIBC_HAS_FLOATS and UCLIBC_HAS_FPU are denoting two different aspects. +UCLIBC_HAS_FLOATS covers the floating point operations which has nothing +to do if you have FPU or not. + +Signed-off-by: Khem Raj <[email protected]> +--- + extra/Configs/Config.in.arch | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch +index 5f7a2b0..c1ca390 100644 +--- a/extra/Configs/Config.in.arch ++++ b/extra/Configs/Config.in.arch +@@ -133,7 +133,6 @@ config UCLIBC_HAS_FLOATS + + config UCLIBC_HAS_FPU + bool "Target CPU has a floating point unit (FPU)" +- depends on UCLIBC_HAS_FLOATS + default y + help + If your target CPU does not have a Floating Point Unit (FPU) or a +-- +1.7.0.4 +
meta/recipes-core/uclibc/uclibc_git.bb +1 -0
@@ -29,5 +29,6 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \ file://epoll-asm-fix.patch \ file://orign_path.patch \ file://rtld_no.patch \ + file://0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch \ " S = "${WORKDIR}/git"
Signature · 1 line
1.7.4.1
PATCH 5/6 uclibc: Add UCLIBC_HAS_FLOATS=y to uClibc.distro
In reply to Khem RajRemove unused uClibc.distro from topdir. It just creates confusion
--- meta/recipes-core/uclibc/uClibc.distro | 157 --------------------- meta/recipes-core/uclibc/uclibc-git/uClibc.distro | 1 + 2 files changed, 1 insertions(+), 157 deletions(-) delete mode 100644 meta/recipes-core/uclibc/uClibc.distro
meta/recipes-core/uclibc/uClibc.distro deleted +0 -157
@@ -1,157 +0,0 @@ -# -# General Library Settings -# -# HAVE_NO_PIC is not set -# DOPIC is not set -# HAVE_NO_SHARED is not set -# ARCH_HAS_NO_LDSO is not set -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -LDSO_CACHE_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_BASE_FILENAME="ld.so" -# UCLIBC_STATIC_LDCONFIG is not set -LDSO_RUNPATH=y -UCLIBC_CTOR_DTOR=y -LDSO_GNU_HASH_SUPPORT=y -# HAS_NO_THREADS is not set -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_THREADS_NATIVE=y -PTHREADS_DEBUG_SUPPORT=y -# LINUXTHREADS_OLD is not set -UCLIBC_HAS_LFS=y -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -MALLOC_GLIBC_COMPAT=y -UCLIBC_DYNAMIC_ATEXIT=y -COMPAT_ATEXIT=y -UCLIBC_SUSV3_LEGACY=y -UCLIBC_SUSV3_LEGACY_MACROS=y -UCLIBC_SUSV4_LEGACY=y -UCLIBC_HAS_SHADOW=y -UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y -UCLIBC_HAS___PROGNAME=y -UNIX98PTY_ONLY=y -ASSUME_DEVPTS=y -UCLIBC_HAS_LIBUTIL=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" - -# -# Advanced Library Settings -# -UCLIBC_PWD_BUFFER_SIZE=256 -UCLIBC_GRP_BUFFER_SIZE=256 - -# -# Networking Support -# -UCLIBC_HAS_IPV6=y -UCLIBC_HAS_RPC=y -UCLIBC_HAS_FULL_RPC=y -# UCLIBC_HAS_REENTRANT_RPC is not set -UCLIBC_USE_NETLINK=y -UCLIBC_SUPPORT_AI_ADDRCONFIG=y - -UCLIBC_HAS_BSD_RES_CLOSE=y -UCLIBC_HAS_LIBRESOLV_STUB=y -UCLIBC_HAS_LIBNSL_STUB=y - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -# UCLIBC_HAS_CTYPE_UNSAFE is not set -UCLIBC_HAS_CTYPE_CHECKED=y -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -# UCLIBC_HAS_LOCALE is not set -UCLIBC_HAS_HEXADECIMAL_FLOATS=y -UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y -# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set -UCLIBC_HAS_STDIO_BUFSIZ_256=y -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -UCLIBC_HAS_PRINTF_M_SPEC=y -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GNU_GETSUBOPT=y - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -# UCLIBC_HAS_REGEX_OLD is not set -UCLIBC_HAS_FNMATCH=y -# UCLIBC_HAS_FNMATCH_OLD is not set -UCLIBC_HAS_WORDEXP=y -UCLIBC_HAS_NFTW=y -UCLIBC_HAS_FTW=y -UCLIBC_HAS_FTS=y -UCLIBC_HAS_GLOB=y -UCLIBC_HAS_GNU_GLOB=y - -# -# Library Installation Options -# -SHARED_LIB_LOADER_PREFIX="/lib" -RUNTIME_PREFIX="/" -DEVEL_PREFIX="//usr" - -# -# Security options -# -# UCLIBC_BUILD_PIE is not set -# UCLIBC_HAS_ARC4RANDOM is not set -# HAVE_NO_SSP is not set -# UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -UCLIBC_BUILD_NOW=y -UCLIBC_BUILD_NOEXECSTACK=y - -# -# uClibc development/debugging options -# -CROSS_COMPILER_PREFIX="" -UCLIBC_EXTRA_CFLAGS="" -# DODEBUG is not set -# DODEBUG_PT is not set -# DOSTRIP is not set -# DOASSERTS is not set -# SUPPORT_LD_DEBUG is not set -# SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set -WARNINGS="-Wall" -# EXTRA_WARNINGS is not set -# DOMULTI is not set -# UCLIBC_MJN3_ONLY is not set - -# math stuff for perl -DO_C99_MATH=y -UCLIBC_HAS_LONG_DOUBLE_MATH=y
meta/recipes-core/uclibc/uclibc-git/uClibc.distro +1 -0
@@ -170,3 +170,4 @@ UCLIBC_HAS_GNU_ERROR=y UCLIBC_HAS_PTY=y UCLIBC_BSD_SPECIFIC=y UCLIBC_HAS_EPOLL=y +UCLIBC_HAS_FLOATS=y
Signature · 1 line
1.7.4.1
PATCH 6/6 uclibc: Fix bug exposed by udev 168+ for mips architecture
In reply to Khem Rajnewer udev uses sgnalfd + epoll and this exposed a bug in uclibc for mips where SFD_NONBLOCK should be defined with 0200 for mips but was using 04000. This would cause random segfaults in udev during boot process
Tested on qemumips/angstrom console-image since angstrom uses udev 171. It worked well when we did not use meta-oe layer because udev in oe-core will then be used which is at version 164.
--- ...fd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch | 33 ++++++++++++++++++++ meta/recipes-core/uclibc/uclibc_git.bb | 3 +- 2 files changed, 35 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch
meta/recipes-core/uclibc/uclibc-git/0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch new file +33 -0
@@ -0,0 +1,33 @@ +From ecc7d34cbbaf83aae87b091555650ed33e27ed2e Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Thu, 30 Jun 2011 00:32:11 -0700 +Subject: [PATCH] mips/signalfd.h: SFD_NONBLOCK for mips is 0200 unlike 04000 commonly + +Signed-off-by: Khem Raj <[email protected]> +--- + include/sys/signalfd.h | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) + +diff --git a/include/sys/signalfd.h b/include/sys/signalfd.h +index 8cee17c..f1cb63a 100644 +--- a/include/sys/signalfd.h ++++ b/include/sys/signalfd.h +@@ -64,6 +64,15 @@ enum + # define SFD_NONBLOCK SFD_NONBLOCK + }; + ++#elif defined __mips__ ++enum ++ { ++ SFD_CLOEXEC = 02000000, ++# define SFD_CLOEXEC SFD_CLOEXEC ++ SFD_NONBLOCK = 0200 ++# define SFD_NONBLOCK SFD_NONBLOCK ++ }; ++ + #else + enum + { +-- +1.7.0.4 +
meta/recipes-core/uclibc/uclibc_git.bb +2 -1
@@ -2,7 +2,7 @@ SRCREV="71d63ed75648da9b0b71afabb9c60aaad792c55c" require uclibc.inc PV = "0.9.31+0.9.32rc3" -PR = "${INC_PR}.4" +PR = "${INC_PR}.5" PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc" FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}"
@@ -30,5 +30,6 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \ file://orign_path.patch \ file://rtld_no.patch \ file://0001-Config.in.arch-Free-UCLIBC_HAS_FPU-setting-from-depe.patch \ + file://0001-mips-signalfd.h-SFD_NONBLOCK-for-mips-is-0200-unlike.patch \ " S = "${WORKDIR}/git"
Signature · 1 line
1.7.4.1
Richard Purdie
AppliedQuoted 19 lines · Khem Raj
We do not need machine configs or even arch configs since we construct the bits in .inc files. Once anamoly is mips where we do not use default ARCH for o32 which is mips1 but we use mips32 so thats the reason we have a separate config for mips.
Additionally fix boot issue found on mips which were exposed by udev 171
These patches have been tested with builds from scratch for all supported qemu machines and incrmental too (for qemumips)
and angstrom/console-image is booted on all supported qemu machinesThe following changes since commit
ae4c2b8834dc4d88be7207ea5c45c596bb46fded:uclibc: Fix bug exposed by udev 168+ for mips architecture (2011-06-30 00:52:32 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contribkraj/uclibc-cleanup
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/uclibc-cleanup
Quoted 7 lines
Khem Raj (6):
uclibc: Remove redundant machine/arch configs uclibc-config.inc: Fix regexp to determine big-endian arm uclibc.inc: Use ARCH_WANTS_{LITTLE|BIG}_ENDIAN to denote endian uclibc_git.bb: UntetherUCLIBC_HAS_FPUfromUCLIBC_HAS_FLOATS
uclibc: Add UCLIBC_HAS_FLOATS=y to uClibc.distro
uclibc: Fix bug exposed by udev 168+ for mips architecture
Merged to master, thanks.
Richard
Quoted 28 lines · Richard Purdie
Quoted 19 lines · Khem Raj
We do not need machine configs or even arch configs since we construct the bits in .inc files. Once anamoly is mips where we do not use default ARCH for o32 which is mips1 but we use mips32 so thats the reason we have a separate config for mips.
Additionally fix boot issue found on mips which were exposed by udev 171
These patches have been tested with builds from scratch for all supported qemu machines and incrmental too (for qemumips)
and angstrom/console-image is booted on all supported qemu machinesThe following changes since commit
ae4c2b8834dc4d88be7207ea5c45c596bb46fded:uclibc: Fix bug exposed by udev 168+ for mips architecture (2011-06-30 00:52:32 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contribkraj/uclibc-cleanup
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/uclibc-cleanupQuoted 7 lines
Khem Raj (6):
uclibc: Remove redundant machine/arch configs uclibc-config.inc: Fix regexp to determine big-endian arm uclibc.inc: Use ARCH_WANTS_{LITTLE|BIG}_ENDIAN to denote endian uclibc_git.bb: UntetherUCLIBC_HAS_FPUfromUCLIBC_HAS_FLOATS
uclibc: Add UCLIBC_HAS_FLOATS=y to uClibc.distro
uclibc: Fix bug exposed by udev 168+ for mips architecture
Quoted 1 line
Merged to master, thanks.
Hi Richard
Somehow first patch that got merged was older version I guess from the one I posted to ml
before the pull request got in. So I have sent a follow up patch which adds the missing
parts. The patch is here
http://patches.openembedded.org/patch/6769/
Please install
Thanks
-Khem
Quoted 40 lines · Khem Raj
Quoted 28 lines · Richard Purdie
Quoted 19 lines · Khem Raj
We do not need machine configs or even arch configs since we construct the bits in .inc files. Once anamoly is mips where we do not use default ARCH for o32 which is mips1 but we use mips32 so thats the reason we have a separate config for mips.
Additionally fix boot issue found on mips which were exposed by udev 171
These patches have been tested with builds from scratch for all supported qemu machines and incrmental too (for qemumips)
and angstrom/console-image is booted on all supported qemu machinesThe following changes since commit
ae4c2b8834dc4d88be7207ea5c45c596bb46fded:uclibc: Fix bug exposed by udev 168+ for mips architecture (2011-06-30 00:52:32 -0700)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contribkraj/uclibc-cleanup
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/uclibc-cleanupQuoted 7 lines
Khem Raj (6):
uclibc: Remove redundant machine/arch configs uclibc-config.inc: Fix regexp to determine big-endian arm uclibc.inc: Use ARCH_WANTS_{LITTLE|BIG}_ENDIAN to denote endian uclibc_git.bb: UntetherUCLIBC_HAS_FPUfromUCLIBC_HAS_FLOATS
uclibc: Add UCLIBC_HAS_FLOATS=y to uClibc.distro
uclibc: Fix bug exposed by udev 168+ for mips architectureQuoted 1 line
Merged to master, thanks.
Hi Richard
Somehow first patch that got merged was older version I guess from the one I posted to ml
before the pull request got in. So I have sent a follow up patch which adds the missing
parts. The patch is here
Quoted 3 lines
http://patches.openembedded.org/patch/6769/
Please install
Sorry about that, I think things got confused. I've pulled the update, thanks.
Richard