Skip to contentSkip to conversation

toolchain updates

PATCH In review Khem Raj 2 participants 14 messages Jun 28, 2012 – Jun 29, 2012

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

cover toolchain updates

This combines my two previous pull requests in Addition RP's feedback on USE_NLS definition

The following changes since commit b26dda2d1e839ea461485236028e1af53b839d34:

local.conf.sample.extended: Add accidentally missed features (2012-06-28 16:30:32 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib kraj/misc-updates
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc-updates

Dennis Lan (1):
eglibc: support mipsel little endian, filter out -march=mips32

Khem Raj (10):
bitbake.conf: Add weak definition for USE_NLS
libgcc: Remove unpackage unwind.h gcc-configure-sdk,gcc-configure-cross: Dont recompute USE_NLS eglibc-2.15: Update to latest on 2.15 branch
kconfig-frontends: New recipe
uclibc: Separate the bits between uclibc and uclibc-initial
uclibc-git: Update for building systemd uclibc-0.9.33: add posix_fallocate implementation
bison: link in librt on uclibc
glib-2.0: Add missing dependency on virtual/libiconv

 meta/conf/bitbake.conf                             |    1 +
 meta/conf/distro/include/tclibc-eglibc.inc         |    2 +
 meta/recipes-core/eglibc/eglibc_2.15.bb            |    3 +-
 meta/recipes-core/glib-2.0/glib-2.0_2.32.3.bb      |    2 +-
 meta/recipes-core/glib-2.0/glib.inc                |    2 +-
 meta/recipes-core/uclibc/uclibc-0.9.33.inc         |   22 ++
 .../uclibc/uclibc-0.9.33/posix_fallocate.patch     |  408 ++++++++++++++++++++
 meta/recipes-core/uclibc/uclibc-git.inc            |   29 ++
 ...1-atexit_old-Do-not-add-it-to-shared-libc.patch |   44 +++
 ...brt-Use-nodefaultlibs-instead-of-nostdlib.patch |   33 ++
 ...-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch |   31 ++
 ...rk-Hide-pthread_atfork-in-shared-versions.patch |   74 ++++
 .../uclibc-git/define-MSG_CMSG_CLOEXEC.patch       |   25 ++
 meta/recipes-core/uclibc/uclibc-git/dup3.patch     |   37 ++
 .../uclibc/uclibc-git/posix_fallocate.patch        |  408 ++++++++++++++++++++
 meta/recipes-core/uclibc/uclibc-initial_0.9.33.bb  |    3 +-
 meta/recipes-core/uclibc/uclibc-initial_git.bb     |    3 +-
 meta/recipes-core/uclibc/uclibc-package.inc        |   37 ++
 meta/recipes-core/uclibc/uclibc.inc                |   59 +--
 meta/recipes-core/uclibc/uclibc_0.9.33.bb          |   33 +-
 meta/recipes-core/uclibc/uclibc_git.bb             |   33 +-
 meta/recipes-devtools/bison/bison_2.5.bb           |    1 +
 meta/recipes-devtools/gcc/gcc-configure-cross.inc  |    2 -
 meta/recipes-devtools/gcc/gcc-configure-sdk.inc    |    4 -
 meta/recipes-devtools/gcc/libgcc_4.7.bb            |    4 +
 .../kconfig-frontends/kconfig-frontends_3.4.bb     |   34 ++
 26 files changed, 1228 insertions(+), 106 deletions(-)
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33.inc
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/posix_fallocate.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git.inc
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-atexit_old-Do-not-add-it-to-shared-libc.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-librt-Use-nodefaultlibs-instead-of-nostdlib.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/define-MSG_CMSG_CLOEXEC.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/dup3.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/posix_fallocate.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-package.inc
 create mode 100644 meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.4.bb
Signature · 1 line
1.7.9.5
author
#1 lore raw

PATCH 1/11 bitbake.conf: Add weak definition for USE_NLS

USE_NLS is generally defined for uclibc based system builds and generally its defined to 'no' there. However this variable does not exist at all for eglibc/glibc distributions. This patch adds a weak definition to 'yes' on eglibc based system builds. This will ease out some of the cryptic contructs we have to define certain options based on USE_NLS and also checking got uclibc at the same time to avoid pythong exceptions when its not defined.

---
 meta/conf/bitbake.conf                     |    1 +
 meta/conf/distro/include/tclibc-eglibc.inc |    2 ++
 2 files changed, 3 insertions(+)
meta/conf/bitbake.conf +1 -0
index 9b26580..9377ee6 100644
@@ -98,6 +98,7 @@ TUNE_ASARGS ??= ""
 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
 LIBCEXTENSION ??= ""
 ABIEXTENSION ??= ""
+USE_NLS ??= "yes"
 
 TARGET_ARCH = "${TUNE_ARCH}"
 TARGET_OS = "linux${LIBCEXTENSION}${ABIEXTENSION}"
meta/conf/distro/include/tclibc-eglibc.inc +2 -0
index 4f5607f..e2ca4e8 100644
@@ -32,6 +32,8 @@ LIBC_LOCALE_DEPENDENCIES = "\
 	eglibc-gconv-iso8859-1 \
 	eglibc-gconv-iso8859-15"
 
+USE_NLS ?= "yes"
+
 def get_libc_locales_dependencies(d):
     if 'libc-locales' in (d.getVar('DISTRO_FEATURES', True) or '').split() :
         return d.getVar('LIBC_LOCALE_DEPENDENCIES', True) or ''
Signature · 1 line
1.7.9.5
author
#2 lore raw

PATCH 2/11 libgcc: Remove unpackage unwind.h

Fixes build warnings like below

WARNING: For recipe libgcc, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/lib/arm-oe-linux-gnueabi/4.7.2/include
WARNING:   /usr/lib/arm-oe-linux-gnueabi/4.7.2/include/unwind.h
---
 meta/recipes-devtools/gcc/libgcc_4.7.bb |    4 ++++
 1 file changed, 4 insertions(+)
meta/recipes-devtools/gcc/libgcc_4.7.bb +4 -0
index 891c03e..55aa03c 100644
@@ -58,6 +58,10 @@ do_install () {
 
 	mv ${D}${libdir}/gcc/* ${D}${libdir}
 	rm -rf ${D}${libdir}/gcc/
+	# unwind.h is installed here which is shipped in gcc-cross
+	# as well as target gcc and they are identical so we dont
+	# ship one with libgcc here
+	rm -rf ${D}${libdir}/${TARGET_SYS}/${BINV}/include
 }
 
 do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_package"
Signature · 1 line
1.7.9.5
author
#3 lore raw

PATCH 3/11 gcc-configure-sdk, gcc-configure-cross: Dont recompute USE_NLS

In reply to Khem Raj

This was needed because on eglibc based builds we did not define USE_NLS but now we define it in default config to have a valid value so we do not need this here. Moreover it was wrong and was not covering all cases of uclibc triplets

---
 meta/recipes-devtools/gcc/gcc-configure-cross.inc |    2 --
 meta/recipes-devtools/gcc/gcc-configure-sdk.inc   |    4 ----
 2 files changed, 6 deletions(-)
meta/recipes-devtools/gcc/gcc-configure-cross.inc +0 -2
index 3cb3452..243ee55d 100644
@@ -1,7 +1,5 @@
 require gcc-configure-common.inc
 
-USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
-
 EXTRA_OECONF += " --enable-poison-system-directories \
 		"
 
meta/recipes-devtools/gcc/gcc-configure-sdk.inc +0 -4
index 90e20f5..51c0217 100644
@@ -1,9 +1,5 @@
 require gcc-configure-common.inc
 
-# The two lines below conflict, this needs fixing - RP
-USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
-USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibceabi", "no", "", d )}'
-
 EXTRA_OECONF_PATHS = "--with-gxx-include-dir=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}${target_includedir}/c++ \
                       --with-build-time-tools=${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin \
                       --with-sysroot=${SDKPATH}/sysroots/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS} \
Signature · 1 line
1.7.9.5
author
#4 lore raw

PATCH 4/11 eglibc: support mipsel little endian, filter out -march=mips32

In reply to Khem Raj

From: Dennis Lan <[email protected]>

Quote for eglibc source:
for mips eglibc now builds syscall tables for all abi's so we make sure that we choose right march option which is compatible with o32,n32 and n64 abi's
e.g. -march=mips32 is not compatible with n32 and n64 therefore we filter it out in such case -march=from-abi which will be mips1 when using o32 and mips3 when using n32/n64

---
 meta/recipes-core/eglibc/eglibc_2.15.bb |    1 +
 1 file changed, 1 insertion(+)
meta/recipes-core/eglibc/eglibc_2.15.bb +1 -0
index e57a112..b2922b4 100644
@@ -101,6 +101,7 @@ do_patch_append() {
 # mips1 when using o32 and mips3 when using n32/n64
 
 TUNE_CCARGS_mips := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
+TUNE_CCARGS_mipsel := "${@oe_filter_out('-march=mips32', '${TUNE_CCARGS}', d)}"
 
 # We need to ensure that all of the i386 and x86_64 headers are identical
 # to support the multilib case.  We do this by copying headers from x86_64
Signature · 1 line
1.7.9.5
author
#5 lore raw

PATCH 5/11 eglibc-2.15: Update to latest on 2.15 branch

In reply to Khem Raj
---
 meta/recipes-core/eglibc/eglibc_2.15.bb |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-core/eglibc/eglibc_2.15.bb +1 -1
index b2922b4..7dd9810 100644
@@ -1,6 +1,6 @@
 require eglibc.inc
 
-SRCREV = "17386"
+SRCREV = "19294"
 
 DEPENDS += "gperf-native"
 PR = "r12"
Signature · 1 line
1.7.9.5
author
#6 lore raw

PATCH 6/11 kconfig-frontends: New recipe

In reply to Khem Raj

kconfig-frontends provides the kconfig infrastructure thats used for linux kernel as a standalone package. Its not intended to be used for kernel itself but can be used by packages who are based on kconfig e.g. busybox uclibc or new packages who wants to use kconfig infra for the package build

kconfig-frontends names it's shared library as -3.4.0.so instead of .so.3.4.0, this causes the -dev package to grab it since it matches on *.so. This error would also have shown up with the old PACKAGE order.

---
 .../kconfig-frontends/kconfig-frontends_3.4.bb     |   34 ++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.4.bb
meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.4.bb new file +34 -0
new file mode 100644
index 0000000..9abfa75
@@ -0,0 +1,34 @@
+# Copyright (C) 2012 Khem Raj <[email protected]>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "The kconfig-frontends project aims at centralising \
+the effort of keeping an up-to-date, out-of-tree, packaging of the \
+kconfig infrastructure, ready for use by third-party projects. \
+The kconfig-frontends package provides the kconfig parser, as well as all \
+the frontends"
+HOMEPAGE = "http://ymorin.is-a-geek.org/projects/kconfig-frontends"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9b8cf60ff39767ff04b671fca8302408"
+SECTION = "devel"
+DEPENDS += "ncurses flex bison gperf"
+PR = "r0"
+PV = "3.4.0"
+SPIN = "0"
+SRC_URI = "http://ymorin.is-a-geek.org/download/${BPN}/${BPN}-${PV}-${SPIN}.tar.xz"
+SRC_URI[md5sum] = "7eed0faf5a41d6dd0b2a886a440a972d"
+SRC_URI[sha256sum] = "638006f3d1aefefdc1db3030a15b562cf3c89f2028b1cea0bf0f0629708802f2"
+
+S = "${WORKDIR}/${BPN}-${PV}-${SPIN}"
+
+inherit autotools
+do_configure_prepend () {
+	mkdir -p scripts/.autostuff/m4
+}
+EXTRA_OECONF += "--disable-gconf --disable-qconf"
+
+# Some packages have the version preceeding the .so instead properly
+# versioned .so.<version>, so we need to reorder and repackage.
+SOLIBS = "-${PV}.so"
+FILES_SOLIBSDEV = "${libdir}/libkconfig-parser.so"
+
+BBCLASSEXTEND = "native"
Signature · 1 line
1.7.9.5
author
#7 lore raw

PATCH 7/11 uclibc: Separate the bits between uclibc and uclibc-initial

In reply to Khem Raj

uclibc and uclibc-initial were providing conflicting PROVIDES separate the common bits into logical pieces. Create a common inc file to hold package information and version specific includes so correct logical units can be included in uclibc and uclibc-initial recipes.

---
 meta/recipes-core/uclibc/uclibc-0.9.33.inc         |   21 ++++
 meta/recipes-core/uclibc/uclibc-git.inc            |   23 +++++
 .../uclibc/uclibc-git/utmp-locking.patch           |  106 ++++++++++++++++++++
 meta/recipes-core/uclibc/uclibc-initial_0.9.33.bb  |    3 +-
 meta/recipes-core/uclibc/uclibc-initial_git.bb     |    3 +-
 meta/recipes-core/uclibc/uclibc-package.inc        |   37 +++++++
 meta/recipes-core/uclibc/uclibc.inc                |   59 +----------
 meta/recipes-core/uclibc/uclibc_0.9.33.bb          |   33 +++---
 meta/recipes-core/uclibc/uclibc_git.bb             |   33 +++---
 9 files changed, 221 insertions(+), 97 deletions(-)
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33.inc
 create mode 100644 meta/recipes-core/uclibc/uclibc-git.inc
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/utmp-locking.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-package.inc
meta/recipes-core/uclibc/uclibc-0.9.33.inc new file +21 -0
new file mode 100644
index 0000000..8d03e21
@@ -0,0 +1,21 @@
+SRCREV="7810e4f8027b5c4c8ceec6fefec4eb779362ebb5"
+
+PR = "${INC_PR}.2"
+
+SRC_URI = "git://uclibc.org/uClibc.git;branch=${PV};protocol=git \
+	file://uClibc.machine \
+	file://uClibc.distro \
+	file://uclibc_enable_log2_test.patch \
+	file://ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch \
+	file://powerpc_copysignl.patch \
+	file://argp-support.patch \
+	file://argp-headers.patch \
+	file://remove_attribute_optimize_Os.patch \
+	file://compile-arm-fork-with-O2.patch \
+	file://uclibc-execvpe.patch \
+	file://orign_path.patch \
+	file://dup3.patch \
+	file://define-MSG_CMSG_CLOEXEC.patch \
+	"
+
+S = "${WORKDIR}/git"
meta/recipes-core/uclibc/uclibc-git.inc new file +23 -0
new file mode 100644
index 0000000..eac7e75
@@ -0,0 +1,23 @@
+SRCREV="0dcc13bf7a61b1d0708e5dd103d5515e0ffec79a"
+
+DEFAULT_PREFERENCE = "-1"
+
+PV = "0.9.33+git${SRCPV}"
+PR = "${INC_PR}.1"
+
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}"
+
+SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
+	file://uClibc.machine \
+	file://uClibc.distro \
+	file://uclibc_enable_log2_test.patch \
+	file://powerpc_copysignl.patch \
+	file://argp-support.patch \
+	file://argp-headers.patch \
+	file://remove_attribute_optimize_Os.patch \
+	file://compile-arm-fork-with-O2.patch \
+	file://uclibc-execvpe.patch \
+	file://orign_path.patch \
+	"
+
+S = "${WORKDIR}/git"
meta/recipes-core/uclibc/uclibc-git/utmp-locking.patch new file +106 -0

106 lines not on this page · raw message

meta/recipes-core/uclibc/uclibc-initial_0.9.33.bb +2 -1
index 234b810..51afab2 100644
@@ -1,5 +1,6 @@
 SECTION = "base"
-require uclibc_${PV}.bb
+require uclibc.inc
+require uclibc-${PV}.inc
 
 DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
meta/recipes-core/uclibc/uclibc-initial_git.bb +2 -1
index 8e5c251..2226d25 100644
@@ -1,5 +1,6 @@
 SECTION = "base"
-require uclibc_git.bb
+require uclibc.inc
+require uclibc-git.inc
 
 DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
 PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
meta/recipes-core/uclibc/uclibc-package.inc new file +37 -0
new file mode 100644
index 0000000..c1815f9
@@ -0,0 +1,37 @@
+# Ensure the uclibc-dev package is processed before uclibc-staticdev to allow
+# *_nonshared.a libraries to be packaged in the uclibc-dev package.
+PACKAGES = "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db uclibc-argp uclibc-backtrace uclibc-libcrypt uclibc-libintl uclibc-libnsl uclibc-libresolv uclibc-libm uclibc-libdl uclibc-libutil uclibc-libpthread uclibc-librt ${PN}-dbg ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}"
+
+FILES_uclibc-libcrypt = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so"
+FILES_uclibc-libintl = "${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so"
+FILES_uclibc-libnsl = "${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so"
+FILES_uclibc-libresolv = "${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so"
+FILES_uclibc-libm = "${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so"
+FILES_uclibc-libdl = "${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so"
+FILES_uclibc-libutil = "${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so"
+FILES_uclibc-libpthread = "${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so"
+FILES_uclibc-librt = "${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so"
+
+FILES_ldd = "${bindir}/ldd"
+FILES_uclibc-utils = "${bindir} ${sbindir}"
+FILES_uclibc-utils-dbg += "${bindir}/.debug ${sbindir}/.debug"
+FILES_uclibc-gconv = "${libdir}/gconv"
+FILES_uclibc-thread-db = "${base_libdir}/libthread_db*"
+FILES_uclibc-argp = "${base_libdir}/libuargp-*.so ${base_libdir}/libuargp*.so.*"
+FILES_uclibc-backtrace = "${base_libdir}/libubacktrace-*.so ${base_libdir}/libubacktrace*.so.*"
+
+# The last line (gdb and lib1) is for uclinux-uclibc builds
+uclibc_baselibs = "${base_libdir}/ld*.so.* ${base_libdir}/ld*.so \
+                   ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
+                   ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
+                  "
+FILES_SOLIBSDEV = "${libdir}/lib*${SOLIBSDEV}"
+FILES_${PN}-dev += "\
+        ${libdir}/lib*.so \
+        ${libdir}/*_nonshared.a \
+        ${libdir}/[S]*crt[1in].o \
+        ${libdir}/crtreloc*.o \
+        ${includedir}/*.h ${includedir}/*/*.h \
+       "
+FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
+               ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
meta/recipes-core/uclibc/uclibc.inc +1 -58

74 lines not on this page · raw message

meta/recipes-core/uclibc/uclibc_0.9.33.bb +15 -18
index b72f9dd..c863896 100644
@@ -1,24 +1,21 @@
 SRCREV="7810e4f8027b5c4c8ceec6fefec4eb779362ebb5"
 
 require uclibc.inc
+require uclibc-package.inc
+require uclibc-${PV}.inc
 
-PR = "${INC_PR}.2"
-PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
+STAGINGCC = "gcc-cross-intermediate"
+STAGINGCC_virtclass-nativesdk = "gcc-crosssdk-intermediate"
 
-SRC_URI = "git://uclibc.org/uClibc.git;branch=${PV};protocol=git \
-	file://uClibc.machine \
-	file://uClibc.distro \
-	file://uclibc_enable_log2_test.patch \
-	file://ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch \
-	file://powerpc_copysignl.patch \
-	file://argp-support.patch \
-	file://argp-headers.patch \
-	file://remove_attribute_optimize_Os.patch \
-	file://compile-arm-fork-with-O2.patch \
-	file://uclibc-execvpe.patch \
-	file://orign_path.patch \
-	file://dup3.patch \
-	file://define-MSG_CMSG_CLOEXEC.patch \
-	"
+DEPENDS = "virtual/${TARGET_PREFIX}binutils \
+           virtual/${TARGET_PREFIX}gcc-intermediate \
+           linux-libc-headers ncurses-native"
 
-S = "${WORKDIR}/git"
+PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-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 rtld(GNU_HASH)"
meta/recipes-core/uclibc/uclibc_git.bb +14 -19
index 1744c48..4e5b830 100644
@@ -1,27 +1,22 @@
 SRCREV="0dcc13bf7a61b1d0708e5dd103d5515e0ffec79a"
 
 require uclibc.inc
+require uclibc-package.inc
+require uclibc-git.inc
 
-# We prefer a release version so DP -1 for this
-DEFAULT_PREFERENCE = "-1"
+STAGINGCC = "gcc-cross-intermediate"
+STAGINGCC_virtclass-nativesdk = "gcc-crosssdk-intermediate"
 
-PV = "0.9.33+git${SRCPV}"
-PR = "${INC_PR}.1"
-PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
+PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 
-FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}"
+DEPENDS = "virtual/${TARGET_PREFIX}binutils \
+           virtual/${TARGET_PREFIX}gcc-intermediate \
+           linux-libc-headers ncurses-native"
 
-SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
-	file://uClibc.machine \
-	file://uClibc.distro \
-	file://uclibc_enable_log2_test.patch \
-	file://powerpc_copysignl.patch \
-	file://argp-support.patch \
-	file://argp-headers.patch \
-	file://remove_attribute_optimize_Os.patch \
-	file://compile-arm-fork-with-O2.patch \
-	file://uclibc-execvpe.patch \
-	file://orign_path.patch \
-	"
+RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
+RPROVIDES_${PN}-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
 
-S = "${WORKDIR}/git"
+RPROVIDES_${PN} += "libsegfault rtld(GNU_HASH)"
Signature · 1 line
1.7.9.5
author
#8 lore raw

PATCH 8/11 uclibc-git: Update for building systemd

In reply to Khem Raj

This adds uclibc patches to build systemd there are new functions that are used by systemd which are needed

Additionally when using gold linker to build userspace based on uclibc there are spurious hidden symbol that show up in librt.so and libc.so which should not exist

So we patch uclibc for that

---
 meta/recipes-core/uclibc/uclibc-git.inc            |   10 +-
 ...1-atexit_old-Do-not-add-it-to-shared-libc.patch |   44 +++
 ...brt-Use-nodefaultlibs-instead-of-nostdlib.patch |   33 ++
 ...-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch |   31 ++
 ...rk-Hide-pthread_atfork-in-shared-versions.patch |   74 ++++
 .../uclibc-git/define-MSG_CMSG_CLOEXEC.patch       |   25 ++
 meta/recipes-core/uclibc/uclibc-git/dup3.patch     |   37 ++
 .../uclibc/uclibc-git/posix_fallocate.patch        |  408 ++++++++++++++++++++
 .../uclibc/uclibc-git/utmp-locking.patch           |  106 -----
 9 files changed, 660 insertions(+), 108 deletions(-)
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-atexit_old-Do-not-add-it-to-shared-libc.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-librt-Use-nodefaultlibs-instead-of-nostdlib.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/define-MSG_CMSG_CLOEXEC.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/dup3.patch
 create mode 100644 meta/recipes-core/uclibc/uclibc-git/posix_fallocate.patch
 delete mode 100644 meta/recipes-core/uclibc/uclibc-git/utmp-locking.patch
meta/recipes-core/uclibc/uclibc-git.inc +8 -2
index eac7e75..60d36f4 100644
@@ -3,7 +3,7 @@ SRCREV="0dcc13bf7a61b1d0708e5dd103d5515e0ffec79a"
 DEFAULT_PREFERENCE = "-1"
 
 PV = "0.9.33+git${SRCPV}"
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-git' ], d)}"
 
@@ -18,6 +18,12 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master;protocol=git \
 	file://compile-arm-fork-with-O2.patch \
 	file://uclibc-execvpe.patch \
 	file://orign_path.patch \
+	file://dup3.patch \
+	file://define-MSG_CMSG_CLOEXEC.patch \
+	file://posix_fallocate.patch \
+	file://0001-atexit_old-Do-not-add-it-to-shared-libc.patch \
+	file://0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch \
+	file://0001-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch \
+	file://0001-librt-Use-nodefaultlibs-instead-of-nostdlib.patch \
 	"
-
 S = "${WORKDIR}/git"
meta/recipes-core/uclibc/uclibc-git/0001-atexit_old-Do-not-add-it-to-shared-libc.patch new file +44 -0

44 lines not on this page · raw message

meta/recipes-core/uclibc/uclibc-git/0001-librt-Use-nodefaultlibs-instead-of-nostdlib.patch new file +33 -0
new file mode 100644
index 0000000..ecb9d31
@@ -0,0 +1,33 @@
+From 95f9b6f37152b8316735d3c86c0db963ff59e22d Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Sat, 23 Jun 2012 16:51:52 -0700
+Subject: [PATCH] librt: Use -nodefaultlibs instead of -nostdlib
+
+nostdlib disables linking in startup files too which is not
+what we want here since it needs to resolve __dso_handle
+which comes from crtbeginS.o, otherwise librt has this
+undefined reference to a weak undefined __dso_handle that
+shows up as error (with gold linker)
+when shared libraries are being built which are
+linking in librt
+
+Signed-off-by: Khem Raj <[email protected]>
+Upstream-Status: Pending
+---
+ librt/Makefile.in |    1 +
+ 1 file changed, 1 insertion(+)
+
+Index: git/librt/Makefile.in
+===================================================================
+--- git.orig/librt/Makefile.in	2012-06-24 10:32:59.512653237 -0700
++++ git/librt/Makefile.in	2012-06-24 11:31:00.660821666 -0700
+@@ -15,6 +15,9 @@
+ ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
+ LIBS-librt.so += $(top_builddir)lib/libdl.so $(top_builddir)lib/libpthread.so
+ endif
++START_FILE-librt.so := $(SHARED_START_FILES)
++END_FILE-librt.so := $(SHARED_END_FILES)
++
+ 
+ librt_FULL_NAME := librt-$(VERSION).so
+ 
meta/recipes-core/uclibc/uclibc-git/0001-nptl-arm-Move-aeabi_read_tp-to-uclibc_nonshared.a.patch new file +31 -0
new file mode 100644
index 0000000..bf6f2c8
@@ -0,0 +1,31 @@
+From 714f543f4fa8fb3911449b6ce1517481359e0cff Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Sat, 23 Jun 2012 14:21:17 -0700
+Subject: [PATCH] nptl/arm: Move aeabi_read_tp to uclibc_nonshared.a
+
+Otherwise it creates wrong references from shared libs
+
+Signed-off-by: Khem Raj <[email protected]>
+Upstream-Status: Pending
+---
+ libc/sysdeps/linux/arm/Makefile.arch |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/libc/sysdeps/linux/arm/Makefile.arch b/libc/sysdeps/linux/arm/Makefile.arch
+index 5fc3e54..8285b9b 100644
+--- a/libc/sysdeps/linux/arm/Makefile.arch
++++ b/libc/sysdeps/linux/arm/Makefile.arch
+@@ -13,7 +13,9 @@ SSRC := \
+ 	vfork.S clone.S
+ 
+ ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
+-SSRC += libc-aeabi_read_tp.S libc-thumb_atomics.S
++SSRC += libc-thumb_atomics.S
++libc-nonshared-y += $(ARCH_OUT)/libc-aeabi_read_tp.os
++libc-static-y += $(ARCH_OUT)/libc-aeabi_read_tp.o
+ endif
+ 
+ ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
+-- 
+1.7.9.5
+
meta/recipes-core/uclibc/uclibc-git/0001-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch new file +74 -0

74 lines not on this page · raw message

meta/recipes-core/uclibc/uclibc-git/define-MSG_CMSG_CLOEXEC.patch new file +25 -0
new file mode 100644
index 0000000..4e900f3
@@ -0,0 +1,25 @@
+Add definition of MSG_WAITFORONE and MSG_CMSG_CLOEXEC
+
+Upstream-Status: Pending
+
+Index: git/libc/sysdeps/linux/common/bits/socket.h
+===================================================================
+--- git.orig/libc/sysdeps/linux/common/bits/socket.h	2012-01-26 23:23:21.537456132 -0800
++++ git/libc/sysdeps/linux/common/bits/socket.h	2012-01-26 23:25:10.125461388 -0800
+@@ -235,8 +235,15 @@
+ #define	MSG_ERRQUEUE	MSG_ERRQUEUE
+     MSG_NOSIGNAL	= 0x4000, /* Do not generate SIGPIPE.  */
+ #define	MSG_NOSIGNAL	MSG_NOSIGNAL
+-    MSG_MORE		= 0x8000  /* Sender will send more.  */
++    MSG_MORE		= 0x8000,  /* Sender will send more.  */
+ #define	MSG_MORE	MSG_MORE
++    MSG_WAITFORONE      = 0x10000, /* Wait for at least one packet to return.*/
++#define MSG_WAITFORONE  MSG_WAITFORONE
++
++    MSG_CMSG_CLOEXEC    = 0x40000000    /* Set close_on_exit for file
++                                           descriptor received through
++                                           SCM_RIGHTS.  */
++#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
+   };
+ 
+ 
meta/recipes-core/uclibc/uclibc-git/dup3.patch new file +37 -0
new file mode 100644
index 0000000..481f23b
@@ -0,0 +1,37 @@
+Implement dup3()
+
+Upstream-Status: Pending
+
+Index: git/libc/sysdeps/linux/common/dup3.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ git/libc/sysdeps/linux/common/dup3.c	2012-01-27 07:40:52.802900849 -0800
+@@ -0,0 +1,15 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * dup3() for uClibc
++ *
++ * Copyright (C) 2000-2006 Erik Andersen <[email protected]>
++ *
++ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
++ */
++
++#include <sys/syscall.h>
++#include <unistd.h>
++
++
++_syscall3(int, dup3, int, oldfd, int, newfd, int, flags)
++libc_hidden_def(dup3)
+Index: git/include/unistd.h
+===================================================================
+--- git.orig/include/unistd.h	2012-01-27 01:19:17.521792781 -0800
++++ git/include/unistd.h	2012-01-27 07:40:03.106898447 -0800
+@@ -512,6 +512,8 @@
+ /* Duplicate FD to FD2, closing FD2 and making it open on the same file.  */
+ extern int dup2 (int __fd, int __fd2) __THROW;
+ libc_hidden_proto(dup2)
++extern int dup3 (int __fd, int __fd2, int __flags) __THROW;
++libc_hidden_proto(dup3)
+ 
+ /* NULL-terminated array of "NAME=VALUE" environment variables.  */
+ extern char **__environ;
meta/recipes-core/uclibc/uclibc-git/posix_fallocate.patch new file +408 -0

408 lines not on this page · raw message

meta/recipes-core/uclibc/uclibc-git/utmp-locking.patch deleted +0 -106

106 lines not on this page · raw message

Signature · 1 line
1.7.9.5
author
#9 lore raw

PATCH 9/11 uclibc-0.9.33: add posix_fallocate implementation

In reply to Khem Raj

This gets systemd building with uclibc

---
 meta/recipes-core/uclibc/uclibc-0.9.33.inc         |    1 +
 .../uclibc/uclibc-0.9.33/posix_fallocate.patch     |  408 ++++++++++++++++++++
 2 files changed, 409 insertions(+)
 create mode 100644 meta/recipes-core/uclibc/uclibc-0.9.33/posix_fallocate.patch
meta/recipes-core/uclibc/uclibc-0.9.33.inc +1 -0
index 8d03e21..f03dd2e 100644
@@ -16,6 +16,7 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=${PV};protocol=git \
 	file://orign_path.patch \
 	file://dup3.patch \
 	file://define-MSG_CMSG_CLOEXEC.patch \
+	file://posix_fallocate.patch \
 	"
 
 S = "${WORKDIR}/git"
meta/recipes-core/uclibc/uclibc-0.9.33/posix_fallocate.patch new file +408 -0

408 lines not on this page · raw message

Signature · 1 line
1.7.9.5
author
#10 lore raw

PATCH 10/11 bison: link in librt on uclibc

In reply to Khem Raj

uclibc has some functions in librt that are needed by bison build.

---
 meta/recipes-devtools/bison/bison_2.5.bb |    1 +
 1 file changed, 1 insertion(+)
meta/recipes-devtools/bison/bison_2.5.bb +1 -0
index c5113cd..fc3bb6d 100644
@@ -21,6 +21,7 @@ SRC_URI = "${BASE_SRC_URI} \
 SRC_URI[md5sum] = "687e1dcd29452789d34eaeea4c25abe4"
 SRC_URI[sha256sum] = "722def46e4a19a5b7a579ef30db1965f86c37c1a20a5f0113743a2e4399f7c99"
 
+LDFLAGS_prepend_libc-uclibc = " -lrt "
 DEPENDS_virtclass-native = "gettext-minimal-native"
 SRC_URI_virtclass-native = "${BASE_SRC_URI}"
 
Signature · 1 line
1.7.9.5
author
#11 lore raw

PATCH 11/11 glib-2.0: Add missing dependency on virtual/libiconv

In reply to Khem Raj
---
 meta/recipes-core/glib-2.0/glib-2.0_2.32.3.bb |    2 +-
 meta/recipes-core/glib-2.0/glib.inc           |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-core/glib-2.0/glib-2.0_2.32.3.bb +1 -1
index 6f89f56..08aa897 100644
@@ -1,6 +1,6 @@
 require glib.inc
 
-PR = "r1"
+PR = "r2"
 PE = "1"
 
 DEPENDS += "libffi python-argparse-native zlib"
meta/recipes-core/glib-2.0/glib.inc +1 -1
index 1dbd538..e7d547a 100644
@@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
 BUGTRACKER = "http://bugzilla.gnome.org"
 SECTION = "libs"
 
-DEPENDS = "glib-2.0-native gtk-doc-native zip"
+DEPENDS = "glib-2.0-native gtk-doc-native zip virtual/libiconv"
 DEPENDS_virtclass-native = "gtk-doc-native pkgconfig-native gettext-native"
 DEPENDS_virtclass-nativesdk = "libtool-nativesdk"
 PACKAGES =+ "${PN}-utils "
Signature · 1 line
1.7.9.5
#12 lore raw

Re: [PATCH 01/11] bitbake.conf: Add weak definition for USE_NLS

In reply to Khem Raj
Quoted 32 lines · Khem Raj

USE_NLS is generally defined for uclibc based system builds and generally its defined to 'no' there. However this variable does not exist at all for eglibc/glibc distributions. This patch adds a weak definition to 'yes' on eglibc based system builds. This will ease out some of the cryptic contructs we have to define certain options based on USE_NLS and also checking got uclibc at the same time to avoid pythong exceptions when its not defined.

---
 meta/conf/bitbake.conf                     |    1 +
 meta/conf/distro/include/tclibc-eglibc.inc |    2 ++
 2 files changed, 3 insertions(+)
meta/conf/bitbake.conf +1 -0
index 9b26580..9377ee6 100644
@@ -98,6 +98,7 @@ TUNE_ASARGS ??= ""
 TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
 LIBCEXTENSION ??= ""
 ABIEXTENSION ??= ""
+USE_NLS ??= "yes"
 
 TARGET_ARCH = "${TUNE_ARCH}"
 TARGET_OS = "linux${LIBCEXTENSION}${ABIEXTENSION}"
meta/conf/distro/include/tclibc-eglibc.inc +0 -0
index 4f5607f..e2ca4e8 100644

meta/conf/distro/include/tclibc-eglibc.inc LIBC_LOCALE_DEPENDENCIES = "\ · line 39

Quoted 8 lines
meta/conf/distro/include/tclibc-eglibc.inc +2 -0
@@ -32,6 +32,8 @@ LIBC_LOCALE_DEPENDENCIES = "\
 	eglibc-gconv-iso8859-1 \
 	eglibc-gconv-iso8859-15"
 
+USE_NLS ?= "yes"
+
 def get_libc_locales_dependencies(d):
     if 'libc-locales' in (d.getVar('DISTRO_FEATURES', True) or '').split() :
         return d.getVar('LIBC_LOCALE_DEPENDENCIES', True) or ''

This second change is just pointless noise now :)

Cheers,

Richard

#13 lore raw
In reply to Khem Raj
Quoted 16 lines · Khem Raj

This combines my two previous pull requests in Addition RP's feedback on USE_NLS definition

The following changes since commit b26dda2d1e839ea461485236028e1af53b839d34:

local.conf.sample.extended: Add accidentally missed features (2012-06-28 16:30:32 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib kraj/misc-updates
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc-updates

Dennis Lan (1):
eglibc: support mipsel little endian, filter out -march=mips32

Quoted 11 lines

Khem Raj (10):
bitbake.conf: Add weak definition for USE_NLS
libgcc: Remove unpackage unwind.h gcc-configure-sdk,gcc-configure-cross: Dont recompute USE_NLS eglibc-2.15: Update to latest on 2.15 branch
kconfig-frontends: New recipe
uclibc: Separate the bits between uclibc and uclibc-initial
uclibc-git: Update for building systemd uclibc-0.9.33: add posix_fallocate implementation
bison: link in librt on uclibc
glib-2.0: Add missing dependency on virtual/libiconv

I merged these to master apart from the kconfig one which I'd like Saul to check over. I fixed up the bitbake.conf patch myself in the end since it was easier to do that than wait for another patch.

Cheers,

Richard