toolchain updates
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
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
@@ -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
@@ -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
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
@@ -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
PATCH 3/11 gcc-configure-sdk, gcc-configure-cross: Dont recompute USE_NLS
In reply to Khem RajThis 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
@@ -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
@@ -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
PATCH 4/11 eglibc: support mipsel little endian, filter out -march=mips32
In reply to Khem RajFrom: 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
@@ -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
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
@@ -1,6 +1,6 @@ require eglibc.inc -SRCREV = "17386" +SRCREV = "19294" DEPENDS += "gperf-native" PR = "r12"
Signature · 1 line
1.7.9.5
PATCH 6/11 kconfig-frontends: New recipe
In reply to Khem Rajkconfig-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
@@ -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
PATCH 7/11 uclibc: Separate the bits between uclibc and uclibc-initial
In reply to Khem Rajuclibc 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 8/11 uclibc-git: Update for building systemd
In reply to Khem RajThis 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 9/11 uclibc-0.9.33: add posix_fallocate implementation
In reply to Khem RajThis 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
@@ -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
PATCH 10/11 bison: link in librt on uclibc
In reply to Khem Rajuclibc 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
@@ -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
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
@@ -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
@@ -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
Re: [PATCH 01/11] bitbake.conf: Add weak definition for USE_NLS
In reply to Khem RajQuoted 32 lines · Khem Raj
USE_NLSis 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 onUSE_NLSand also checking got uclibc at the same time to avoid pythong exceptions when its not defined.Signed-off-by Khem Raj <[email protected]>--- meta/conf/bitbake.conf | 1 + meta/conf/distro/include/tclibc-eglibc.inc | 2 ++ 2 files changed, 3 insertions(+)meta/conf/bitbake.conf +1
-0@@ -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
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
Quoted 16 lines · Khem Raj
This combines my two previous pull requests in Addition RP's feedback on
USE_NLSdefinitionThe 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-contribkraj/misc-updates
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/misc-updatesDennis Lan (1):
eglibc: support mipsel little endian, filter out -march=mips32
Quoted 11 lines
Khem Raj (10):
bitbake.conf: Add weak definition forUSE_NLS
libgcc: Remove unpackageunwind.hgcc-configure-sdk,gcc-configure-cross: Dont recomputeUSE_NLSeglibc-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: addposix_fallocateimplementation
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