uclibc cleanups
PATCH 1/6 util-macros_1.13.0.bb: Depend on virtual/gettext instead of gettext
In reply to Khem RajSo multiple provider problem can be reolved amicably
--- .../xorg-util/util-macros_1.13.0.bb | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-graphics/xorg-util/util-macros_1.13.0.bb +2 -2
@@ -12,8 +12,8 @@ PR = "r0" # ${PN} is empty so we need to tweak -dev and -dbg package dependencies DEPENDS = "libgpg-error" -DEPENDS_virtclass-native = "gettext" -DEPENDS_virtclass-nativesdk = "gettext" +DEPENDS_virtclass-native = "virtual/gettext" +DEPENDS_virtclass-nativesdk = "virtual/gettext" RDEPENDS_${PN}-dev = "" RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
Signature · 1 line
1.7.4.1
cover uclibc cleanups
This set of patches cleans up uclibc recipes and builds in addition it also fixes the issues where gettext was being pulled in even when uclibc did not require it and gettext itself needed to be patched to build on uclibc.
The following changes since commit fb85c6a6184184f6eed942af59ce2cf03f6b623b:
uclibc: remove PACKAGE_ARCH, fix compilation on i586 (2011-06-11 21:03:57 -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 (4):
util-macros_1.13.0.bb: Depend on virtual/gettext instead of gettext uclibc.inc: libsegfault is only RPROVIDED by uclibc gettext_0.18.1.1.bb: Fix build on uclibc
uclibc: Cleanup the machine dependent config files
Phil Blundell (2):
uclibc: remove redundant python code
uclibc: remove PACKAGE_ARCH, fix compilation on i586
.../gnulib-uclibc-sched_param-def.patch | 21 ++++++
meta/recipes-core/gettext/gettext_0.18.1.1.bb | 7 +-
.../uclibc/uclibc-git/armv5te/uClibc.machine | 4 +-
.../{nslu2be => armv5teb}/uClibc.machine | 0
.../uclibc/uclibc-git/efika/uClibc.machine | 45 ------------
.../uclibc-git/{qemumips => mips}/uClibc.machine | 0
.../uclibc/uclibc-git/qemuarm/uClibc.machine | 77 --------------------
.../uclibc/uclibc-git/qemux86/uClibc.machine | 59 ---------------
meta/recipes-core/uclibc/uclibc-git/uClibc.distro | 14 ++++-
meta/recipes-core/uclibc/uclibc.inc | 19 +----
meta/recipes-core/uclibc/uclibc_git.bb | 5 +-
.../xorg-util/util-macros_1.13.0.bb | 4 +-
12 files changed, 47 insertions(+), 208 deletions(-)
create mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/gnulib-uclibc-sched_param-def.patch
rename meta/recipes-core/uclibc/uclibc-git/{nslu2be => armv5teb}/uClibc.machine (100%)
delete mode 100644 meta/recipes-core/uclibc/uclibc-git/efika/uClibc.machine
rename meta/recipes-core/uclibc/uclibc-git/{qemumips => mips}/uClibc.machine (100%)
delete mode 100644 meta/recipes-core/uclibc/uclibc-git/qemuarm/uClibc.machine
delete mode 100644 meta/recipes-core/uclibc/uclibc-git/qemux86/uClibc.machine
delete mode 100644 meta/recipes-core/uclibc/uclibc-git/uClibc.configSignature · 1 line
1.7.4.1
PATCH 2/6 uclibc.inc: libsegfault is only RPROVIDED by uclibc
In reply to Khem RajUsing ${PN} also means that uclibc-initial gets to provide it which we do not want
--- meta/recipes-core/uclibc/uclibc.inc | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-core/uclibc/uclibc.inc +1 -1
@@ -99,7 +99,7 @@ RPROVIDES_uclibc-dev += "libc-dev virtual-libc-dev" # uclibc does not really have libsegfault but then using the one from glibc is also not # going to work. So we pretend that we have it to make bitbake not pull other recipes # to satisfy this dependency for the images/tasks -RPROVIDES_${PN} += "libsegfault" +RPROVIDES_uclibc += "libsegfault" SRC_URI = "\ http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2;name=uClibc-${PV} \
Signature · 1 line
1.7.4.1
PATCH 4/6 uclibc: Cleanup the machine dependent config files
In reply to Khem RajWe only have arch specific machine fragments now. Introduce use of KCONFIG_ALLCONFIG and use allnoconfig
---
.../uclibc/uclibc-git/armv5te/uClibc.machine | 4 +-
.../{nslu2be => armv5teb}/uClibc.machine | 0
.../uclibc/uclibc-git/efika/uClibc.machine | 45 ------------
.../uclibc-git/{qemumips => mips}/uClibc.machine | 0
.../uclibc/uclibc-git/qemuarm/uClibc.machine | 77 --------------------
.../uclibc/uclibc-git/qemux86/uClibc.machine | 59 ---------------
meta/recipes-core/uclibc/uclibc-git/uClibc.distro | 14 ++++-
meta/recipes-core/uclibc/uclibc.inc | 5 +-
meta/recipes-core/uclibc/uclibc_git.bb | 1 -
9 files changed, 17 insertions(+), 188 deletions(-)
rename meta/recipes-core/uclibc/uclibc-git/{nslu2be => armv5teb}/uClibc.machine (100%)
delete mode 100644 meta/recipes-core/uclibc/uclibc-git/efika/uClibc.machine
rename meta/recipes-core/uclibc/uclibc-git/{qemumips => mips}/uClibc.machine (100%)
delete mode 100644 meta/recipes-core/uclibc/uclibc-git/qemuarm/uClibc.machine
delete mode 100644 meta/recipes-core/uclibc/uclibc-git/qemux86/uClibc.machine
delete mode 100644 meta/recipes-core/uclibc/uclibc-git/uClibc.configmeta/recipes-core/uclibc/uclibc-git/armv5te/uClibc.machine +2 -2
@@ -38,14 +38,14 @@ FORCE_OPTIONS_FOR_ARCH=y CONFIG_ARM_EABI=y # COMPILE_IN_THUMB_MODE is not set USE_BX=y -CONFIG_GENERIC_ARM=y +# CONFIG_GENERIC_ARM is not set # 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_ARM926T=y # CONFIG_ARM10T is not set # CONFIG_ARM1136JF_S is not set # CONFIG_ARM1176JZ_S is not set
meta/recipes-core/uclibc/uclibc-git/armv5teb/uClibc.machine renamed from meta/recipes-core/uclibc/uclibc-git/nslu2be/uClibc.machine +0 -0
meta/recipes-core/uclibc/uclibc-git/efika/uClibc.machine deleted +0 -45
45 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/mips/uClibc.machine renamed from meta/recipes-core/uclibc/uclibc-git/qemumips/uClibc.machine +0 -0
meta/recipes-core/uclibc/uclibc-git/qemuarm/uClibc.machine deleted +0 -77
77 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/qemux86/uClibc.machine deleted +0 -59
59 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/uClibc.config deleted +0 -0
meta/recipes-core/uclibc/uclibc-git/uClibc.distro +13 -1
@@ -157,4 +157,16 @@ WARNINGS="-Wall" DO_C99_MATH=y UCLIBC_HAS_LONG_DOUBLE_MATH=y UCLIBC_HAS_FENV=y - +UCLIBC_LINUX_SPECIFIC=y +UCLIBC_HAS_REALTIME=y +UCLIBC_HAS_ADVANCED_REALTIME=y +UCLIBC_HAS_NETWORK_SUPPORT=y +UCLIBC_HAS_SOCKET=y +UCLIBC_HAS_BSD_ERR=y +UCLIBC_HAS_SYSLOG=y +UCLIBC_HAS_CRYPT=y +UCLIBC_HAS_CRYPT_IMPL=y +UCLIBC_HAS_GNU_ERROR=y +UCLIBC_HAS_PTY=y +UCLIBC_BSD_SPECIFIC=y +UCLIBC_HAS_EPOLL=y
meta/recipes-core/uclibc/uclibc.inc +2 -3
@@ -202,12 +202,11 @@ do_configure() { echo "### FPU" >>${S}/merged.config echo "### ABI" >>${S}/merged.config echo "### DISTRO FEATURES" >>${S}/merged.config - cp ${S}/merged.config ${S}/.config # Mangle the resulting .config depending on OE variables - sed -i -e '${configmangle}' ${S}/.config + sed -i -e '${configmangle}' ${S}/merged.config - oe_runmake oldconfig + oe_runmake KCONFIG_ALLCONFIG=${S}/merged.config allnoconfig } do_install() {
meta/recipes-core/uclibc/uclibc_git.bb +0 -1
@@ -10,7 +10,6 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}" SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \ - file://uClibc.config \ file://uClibc.machine \ file://uClibc.distro \ file://uclibc-arm-ftruncate64.patch \
Signature · 1 line
1.7.4.1
PATCH 5/6 uclibc: remove redundant python code
In reply to Khem RajFrom: Phil Blundell <[email protected]>
This chunk of python code has been around for a while (witness the comment about gcc 3.4.0) and predates the availability of COMPATIBLE_HOST. Rewrite it using a more modern idiom.
--- meta/recipes-core/uclibc/uclibc.inc | 12 +----------- 1 files changed, 1 insertions(+), 11 deletions(-)
meta/recipes-core/uclibc/uclibc.inc +1 -11
@@ -36,21 +36,11 @@ cp ${SYSROOT_DESTDIR}${libdir}/libc.so ${WORKDIR}/site_config_libc; \ sed -i -e 's# ${base_libdir}# ${SYSROOT_DESTDIR}${base_libdir}#g' -e 's# ${libdir}# ${SYSROOT_DESTDIR}${libdir}#g' ${WORKDIR}/site_config_libc/libc.so; \ " -# # For now, we will skip building of a gcc package if it is a uclibc one # and our build is not a uclibc one, and we skip a glibc one if our build # is a uclibc build. -# -# See the note in gcc/gcc_3.4.0.oe -# +COMPATIBLE_HOST = ".*-uclibc.*" -python __anonymous () { - import bb, re - uc_os = (re.match('.*uclibc*', bb.data.getVar('TARGET_OS', d, 1)) != None) - if not uc_os: - raise bb.parse.SkipPackage("incompatible with target %s" % - bb.data.getVar('TARGET_OS', d, 1)) -} PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" DEPENDS = "virtual/${TARGET_PREFIX}binutils \ virtual/${TARGET_PREFIX}gcc-intermediate \
Signature · 1 line
1.7.4.1
PATCH 6/6 uclibc: remove PACKAGE_ARCH, fix compilation on i586
In reply to Khem RajFrom: Phil Blundell <[email protected]>
There is no good reason for uclibc to be machine specific. Remove local assignment to PACKAGE_ARCH so that it gets the default target architecture and bump PR for that change.
See http://lists.linuxtogo.org/pipermail/openembedded-core/2011-May/003064.html
--- meta/recipes-core/uclibc/uclibc_git.bb | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-)
meta/recipes-core/uclibc/uclibc_git.bb +1 -3
@@ -2,11 +2,9 @@ SRCREV="71d63ed75648da9b0b71afabb9c60aaad792c55c" require uclibc.inc PV = "0.9.31+0.9.32rc3" -PR = "${INC_PR}.2" +PR = "${INC_PR}.3" PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc" -#recent versions uclibc require real kernel headers -PACKAGE_ARCH = "${MACHINE_ARCH}" FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}" SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
Signature · 1 line
1.7.4.1
PATCH 3/6 gettext_0.18.1.1.bb: Fix build on uclibc
In reply to Khem RajUse libc-uclibc override to seprate out uclibc bits instead of using TARGET_OS
--- .../gnulib-uclibc-sched_param-def.patch | 21 ++++++++++++++++++++ meta/recipes-core/gettext/gettext_0.18.1.1.bb | 7 +++-- 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-core/gettext/gettext-0.18.1.1/gnulib-uclibc-sched_param-def.patch
meta/recipes-core/gettext/gettext-0.18.1.1/gnulib-uclibc-sched_param-def.patch new file +21 -0
@@ -0,0 +1,21 @@ +uclibc defines __GLIBC__ but it does not expose struct shed_param as much as glibc +and is not needed too per standard. gnulib attempts to use it but we have to account +for it because in this case uclibc does not behave like glibc. + +-Khem + +Upstream-Status: Pending + +Index: gettext-0.18.1.1/gettext-tools/gnulib-lib/spawn.in.h +=================================================================== +--- gettext-0.18.1.1.orig/gettext-tools/gnulib-lib/spawn.in.h ++++ gettext-0.18.1.1/gettext-tools/gnulib-lib/spawn.in.h +@@ -31,7 +31,7 @@ + + /* Get definitions of 'struct sched_param' and 'sigset_t'. + But avoid namespace pollution on glibc systems. */ +-#ifndef __GLIBC__ ++#if !defined __GLIBC__ || defined __UCLIBC__ + # include <sched.h> + # include <signal.h> + #endif
meta/recipes-core/gettext/gettext_0.18.1.1.bb +4 -3
@@ -12,11 +12,12 @@ PROVIDES = "virtual/libintl virtual/gettext" PROVIDES_virtclass-native = "" CONFLICTS_${PN} = "proxy-libintl" SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \ - file://wchar-uclibc.patch \ " -SRC_URI_append_linux-uclibc = " file://gettext-error_print_progname.patch;patch=1" -SRC_URI_append_linux-uclibceabi = " file://gettext-error_print_progname.patch;patch=1" +SRC_URI_append_libc-uclibc = " file://wchar-uclibc.patch \ + file://gettext-error_print_progname.patch \ + file://gnulib-uclibc-sched_param-def.patch \ + " SRC_URI[md5sum] = "3dd55b952826d2b32f51308f2f91aa89" SRC_URI[sha256sum] = "93ac71a7afa5b70c1b1032516663658c51e653087f42a3fc8044752c026443e9"
Signature · 1 line
1.7.4.1