klibc: fix hardcoded symlinks to linux-libc-headers
cover klibc: fix hardcoded symlinks to linux-libc-headers
One (fixed) bug in sstate.bbclass has exposed absolute symlinks pointing to the linux-libc-headers.
To fix this bug properly it is necessary to take care of exec_prefix in order to create a proper symlink.
Andrea Adami (3):
klibc_2.0.2: refactor recipe to respect exec_prefix klcc-cross_2.0.2: refactor recipe to respect exec_prefix
kexec-tools-klibc: fix includes now that klibc respects exec_prefix
.../recipes-devtools/klibc/klcc-cross_2.0.2.bb | 11 ++++------ .../klibc/klibc-2.0.2/klcc_prefix.patch | 24 ---------------------- .../klibc/klibc-2.0.2/klibc-linux-libc-dev.patch | 2 +- .../klibc/klibc-2.0.2/prefix.patch | 14 ------------- .../klibc/klibc-2.0.2/staging.patch | 2 +- meta-initramfs/recipes-devtools/klibc/klibc.inc | 4 +++- .../recipes-devtools/klibc/klibc_2.0.2.bb | 22 +++++++++----------- .../kexec/kexec-tools-klibc_2.0.2.bb | 4 ++-- 8 files changed, 21 insertions(+), 62 deletions(-) delete mode 100644 meta-initramfs/recipes-devtools/klibc/klibc-2.0.2/klcc_prefix.patch delete mode 100644 meta-initramfs/recipes-devtools/klibc/klibc-2.0.2/prefix.patch
Signature · 1 line
1.8.1.5
PATCH 1/3 klibc_2.0.2: refactor recipe to respect exec_prefix
Signed-off-by Andrea Adami <[email protected]>
--- .../klibc/klibc-2.0.2/klibc-linux-libc-dev.patch | 2 +- .../klibc/klibc-2.0.2/prefix.patch | 14 -------------- .../klibc/klibc-2.0.2/staging.patch | 2 +- meta-initramfs/recipes-devtools/klibc/klibc.inc | 4 +++- .../recipes-devtools/klibc/klibc_2.0.2.bb | 22 ++++++++++------------ 5 files changed, 15 insertions(+), 29 deletions(-) delete mode 100644 meta-initramfs/recipes-devtools/klibc/klibc-2.0.2/prefix.patch
meta-initramfs/recipes-devtools/klibc/klibc-2.0.2/klibc-linux-libc-dev.patch +1 -1
@@ -14,7 +14,7 @@ Index: klibc-2.0~rc2/scripts/Kbuild.install $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin - $(Q)$(MAKE) -C $(KLIBCKERNELSRC) ARCH=$(KLIBCARCH) INSTALL_HDR_PATH=$(INSTALLROOT)$(INSTALLDIR)/$(KCROSS) headers_install -+ $(Q)for x in $(KLIBCKERNELSRC)/include/asm $(KLIBCKERNELSRC)/include/asm* $(KLIBCKERNELSRC)/include/linux $(KLIBCKERNELSRC)/include/mtd; do \ ++ $(Q)for x in ../../../include/asm ../../../include/asm-generic ../../../include/linux ../../../include/mtd; do \ + ln -sf $${x} $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \ + done $(Q)cp -rf usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/.
meta-initramfs/recipes-devtools/klibc/klibc-2.0.2/prefix.patch deleted +0 -14
@@ -1,14 +0,0 @@ -Index: klibc-1.5.24/Makefile -=================================================================== ---- a/Makefile 2011-07-27 15:50:53.000000000 +0200 -+++ b/Makefile 2011-08-01 00:47:56.000000000 +0200 -@@ -39,7 +39,7 @@ - export PERL := perl - - # Location for installation --export prefix = /usr -+export prefix = $(INST) - export bindir = $(prefix)/bin - export libdir = $(prefix)/lib - export mandir = $(prefix)/man -
meta-initramfs/recipes-devtools/klibc/klibc-2.0.2/staging.patch +1 -1
@@ -21,7 +21,7 @@ Index: klibc-1.5.24/scripts/Kbuild.install $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib - $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin - $(Q)for x in $(KLIBCKERNELSRC)/include/asm $(KLIBCKERNELSRC)/include/asm* $(KLIBCKERNELSRC)/include/linux $(KLIBCKERNELSRC)/include/mtd; do \ + $(Q)for x in ../../../include/asm ../../../include/asm-generic ../../../include/linux ../../../include/mtd; do \ ln -sf $${x} $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \ done @@ -103,7 +100,6 @@
meta-initramfs/recipes-devtools/klibc/klibc.inc +3 -1
@@ -37,7 +37,6 @@ SRC_URI_append_linux-uclibceabi = " file://klibc-config-eabi.patch \ " SRC_URI += "file://klibc-linux-libc-dev.patch \ - file://prefix.patch \ file://staging.patch \ "
@@ -46,6 +45,9 @@ S = "${WORKDIR}/git" EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \ 'CROSS_COMPILE=${TARGET_PREFIX}' \ 'KLIBCKERNELSRC=${STAGING_DIR_TARGET}${exec_prefix}' \ + 'prefix=${exec_prefix}' \ + 'INSTALLROOT=${D}' \ + 'SHLIBDIR=${libdir}' \ " do_configure () {
meta-initramfs/recipes-devtools/klibc/klibc_2.0.2.bb +10 -12
@@ -1,27 +1,25 @@ PR = "${INC_PR}.0" -export INST = "${D}" - do_install() { oe_runmake install # the crosscompiler is packaged by klcc-cross # remove klcc - rm ${D}${base_bindir}/klcc + rm ${D}${bindir}/klcc # remove now empty dir - rmdir ${D}${base_bindir} + rmdir ${D}${bindir} - install -d ${D}${base_libdir} - install -m 755 usr/klibc/klibc-*.so ${D}${base_libdir} - (cd ${D}${base_libdir}; ln -s klibc-*.so klibc.so) + install -d ${D}${libdir} + install -m 755 usr/klibc/klibc-*.so ${D}${libdir} + (cd ${D}${libdir}; ln -s klibc-*.so klibc.so) } PACKAGES = "libklibc libklibc-staticdev libklibc-dev" -FILES_libklibc = "${base_libdir}/klibc-*.so" -FILES_libklibc-staticdev = "${base_libdir}/klibc/lib/libc.a" -FILES_libklibc-dev = "${base_libdir}/klibc.so \ - ${base_libdir}/klibc/lib/* \ - ${base_libdir}/klibc/include/* \ +FILES_libklibc = "${libdir}/klibc-*.so" +FILES_libklibc-staticdev = "${libdir}/klibc/lib/libc.a" +FILES_libklibc-dev = "${libdir}/klibc.so \ + ${libdir}/klibc/lib/* \ + ${libdir}/klibc/include/* \ " require klibc.inc SUMMARY = "klibc, a small C library for use with initramfs"
Signature · 1 line
1.8.1.5
PATCH 2/3 klcc-cross_2.0.2: refactor recipe to respect exec_prefix
In reply to Andrea AdamiSigned-off-by Andrea Adami <[email protected]>
--- .../recipes-devtools/klibc/klcc-cross_2.0.2.bb | 11 ++++------ .../klibc/klibc-2.0.2/klcc_prefix.patch | 24 ---------------------- 2 files changed, 4 insertions(+), 31 deletions(-) delete mode 100644 meta-initramfs/recipes-devtools/klibc/klibc-2.0.2/klcc_prefix.patch
meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.2.bb +4 -7
@@ -3,10 +3,7 @@ PR = "${INC_PR}.0" require klibc.inc SUMMARY = "The klcc crosscompiler for klibc" -export KLCC_INST = "${STAGING_DIR_TARGET}/lib/klibc" - -SRC_URI += "file://klcc_prefix.patch \ - file://use-env-for-perl.patch" +SRC_URI += "file://use-env-for-perl.patch" DEPENDS = "klibc"
@@ -19,10 +16,10 @@ do_configure () { } do_compile() { - oe_runmake klcc + oe_runmake 'INSTALLDIR=${STAGING_DIR_TARGET}${target_libdir}/klibc' klcc } do_install() { - install -d ${D}${base_bindir} - install -m 0755 klcc/klcc ${D}${base_bindir}/${TARGET_PREFIX}klcc + install -d ${D}${bindir} + install -m 0755 klcc/klcc ${D}${bindir}/${TARGET_PREFIX}klcc }
meta-initramfs/recipes-devtools/klibc/klibc-2.0.2/klcc_prefix.patch deleted +0 -24
@@ -1,24 +0,0 @@ -Patch was imported from the OpenEmbedded git server -(git://git.openembedded.org/openembedded) -as of commit id a29bf15b9c9c0d15f96c254b2ed830e104ae3436 -Signed-off-by: Andrea Adami <[email protected]> - -Index: klibc-1.5.19/klcc/Kbuild -=================================================================== ---- --- klibc-1.5.19.orig/klcc/Kbuild 2010-07-07 14:07:48.000000000 +0200 -+++ --- klibc-1.5.19./klcc/Kbuild 2010-08-18 23:39:23.000000000 +0200 -@@ -22,10 +22,10 @@ - $(Q)echo 'EMAIN=$(KLIBCEMAIN)' >> $@ - $(Q)echo 'BITSIZE=$(KLIBCBITSIZE)' >> $@ - $(Q)echo 'VERSION=$(shell cat $(srctree)/usr/klibc/version)' >> $@ -- $(Q)echo 'prefix=$(INSTALLDIR)' >> $@ -- $(Q)echo 'bindir=$(INSTALLDIR)/$(KCROSS)bin' >> $@ -- $(Q)echo 'libdir=$(INSTALLDIR)/$(KCROSS)lib' >> $@ -- $(Q)echo 'includedir=$(INSTALLDIR)/$(KCROSS)include' >> $@ -+ $(Q)echo 'prefix=$(KLCC_INST)' >> $@ -+ $(Q)echo 'bindir=$(KLCC_INST)/$(KCROSS)bin' >> $@ -+ $(Q)echo 'libdir=$(KLCC_INST)/$(KCROSS)lib' >> $@ -+ $(Q)echo 'includedir=$(KLCC_INST)/$(KCROSS)include' >> $@ - - - # Generate klcc
Signature · 1 line
1.8.1.5
PATCH 3/3 kexec-tools-klibc: fix includes now that klibc respects exec_prefix
In reply to Andrea AdamiSigned-off-by Andrea Adami <[email protected]>
--- meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb +2 -2
@@ -28,8 +28,8 @@ S = "${WORKDIR}/kexec-tools-${PV}" EXTRA_OECONF += "--without-zlib --without-lzma --without-xen" -CFLAGS += "-I${STAGING_DIR_HOST}${base_libdir}/klibc/include -I${STAGING_DIR_HOST}${base_libdir}/klibc/include/bits32" -CFLAGS_x86-64 += "-I${STAGING_DIR_HOST}${base_libdir}/klibc/include -I${STAGING_DIR_HOST}${base_libdir}/klibc/include/bits64" +CFLAGS += "-I${STAGING_DIR_HOST}${libdir}/klibc/include -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32" +CFLAGS_x86-64 += "-I${STAGING_DIR_HOST}${libdir}/klibc/include -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64" PACKAGES =+ "kexec-klibc kdump-klibc"
Signature · 1 line
1.8.1.5