Skip to contentSkip to conversation

kconfig-frontends and uclibc updated for systemd

PATCH In review Khem Raj 2 participants 10 messages Jun 27, 2012 – Jun 28, 2012

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

cover kconfig-frontends and uclibc updated for systemd

This patch consolidates the feedback on kconfig-frontends Adds additional patches needed for systemd to work with uclibc Fixes uclibc and other userspace recipes to work with gold linker

The following changes since commit f4b5afe46ff018570c1949653eb6995428827f6f:

sanity.bbclass: Increase LAYER_CONF_VERSION to match bblayers change (2012-06-25 17:20:06 +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

Khem Raj (7):
kconfig-frontends: New recipe
tclibc-eglibc.inc: Define USE_NLS
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/distro/include/tclibc-eglibc.inc         |    2 +
 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 +
 .../kconfig-frontends/kconfig-frontends_3.4.bb     |   34 ++
 21 files changed, 1221 insertions(+), 99 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/7 kconfig-frontends: New recipe

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
#2 lore raw

PATCH 2/7 tclibc-eglibc.inc: Define 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/distro/include/tclibc-eglibc.inc |    2 ++
 1 file changed, 2 insertions(+)
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
#3 lore raw

Re: [PATCH 2/7] tclibc-eglibc.inc: Define USE_NLS

Quoted 19 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/distro/include/tclibc-eglibc.inc |    2 ++
 1 file changed, 2 insertions(+)
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 ''

Shouldn't this go as a weak default in bitbake.conf?

USE_NLS ??= "yes"

Cheers,

Richard

author
#4 lore raw

Re: [PATCH 2/7] tclibc-eglibc.inc: Define USE_NLS

Quoted 10 lines · Richard Purdie
Quoted 9 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.

Quoted 6 lines

Review

Quoted 6 lines
---
 meta/conf/distro/include/tclibc-eglibc.inc |    2 ++
 1 file changed, 2 insertions(+)
(quoted diff) +0 -0

b/meta/conf/distro/include/tclibc-eglibc.inc

Quoted 11 lines

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

Quoted 11 lines

index 4f5607f..e2ca4e8 100644

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() :

Quoted 6 lines

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

Quoted 1 line
meta/conf/distro/include/tclibc-eglibc.inc +0 -0
         return d.getVar('LIBC_LOCALE_DEPENDENCIES', True) or ''

Shouldn't this go as a weak default in bitbake.conf?

USE_NLS ??= "yes"

I think that would be better I will try that out and update

Quoted 10 lines

Cheers,

Richard

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

author
#5 lore raw

PATCH 3/7 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
#6 lore raw

PATCH 4/7 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
#7 lore raw

PATCH 5/7 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
#8 lore raw

PATCH 6/7 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
#9 lore raw

PATCH 7/7 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