diff options
Diffstat (limited to 'packages/klibc/klibc.inc')
-rw-r--r-- | packages/klibc/klibc.inc | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/packages/klibc/klibc.inc b/packages/klibc/klibc.inc index ef5b57d8bc..7f1b503f12 100644 --- a/packages/klibc/klibc.inc +++ b/packages/klibc/klibc.inc @@ -1,4 +1,4 @@ -DEPENDS = "virtual/kernel" +DEPENDS = "virtual/kernel perl-native" SECTION = "libs" DESCRIPTION = "klibc is intended to be a minimalistic libc subset for \ use with initramfs. It is deliberately written for small size, \ @@ -6,6 +6,7 @@ minimal entaglement, and portability, not speed." MAINTAINER = "Chris Larson <kergoth@handhelds.org>" LICENSE = "BSD-ADV" SRC_URI = "http://www.kernel.org/pub/linux/libs/klibc/Stable/klibc-${PV}.tar.bz2" +SRC_URI += "file://install.patch;patch=1" S = "${WORKDIR}/klibc-${PV}" # for the correct kernel staging path @@ -13,8 +14,8 @@ S = "${WORKDIR}/klibc-${PV}" EXTRA_OEMAKE = "'ARCH=${KLIBC_ARCH}' \ 'CROSS=${TARGET_PREFIX}' \ - 'CC=${CC}' \ - 'LD=${LD}' \ + 'CC=${HOST_PREFIX}gcc' \ + 'LD=${HOST_PREFIX}ld' \ 'AR=${AR}' \ 'RANLIB=${RANLIB}' \ 'NM=${TARGET_PREFIX}nm' \ @@ -25,16 +26,51 @@ EXTRA_OEMAKE = "'ARCH=${KLIBC_ARCH}' \ 'HOST_LDFLAGS=${BUILD_LDFLAGS}' \ 'HOST_LIBS=' \ 'LDFLAGS=' \ - 'WARNFLAGS=${CFLAGS}' \ - 'OPTFLAGS='" + 'ARCHREQFLAGS=${HOST_CC_ARCH}' \ + 'OPTFLAGS=${TARGET_CFLAGS}' \ + 'mandir=${mandir}'" KLIBC_ARCH = '${TARGET_ARCH}' KLIBC_ARCH_armeb = 'arm' KLIBC_ARCH_mipsel = 'mips' -CFLAGS := "${@oe_filter_out('-I\S+', '${CFLAGS}', d)} -I${STAGING_KERNEL_DIR}/include" -# CFLAGS := "${@oe_filter_out('-I\S+', '${CFLAGS}', d)}" +# the klibc code contains ARM instructions (for ARM), this +# could be fixed, but for the moment: +ARM_INSTRUCTION_SET = "arm" + +TARGET_CFLAGS := "${@oe_filter_out('-I\S+', '${TARGET_CFLAGS}', d)} -I${STAGING_KERNEL_DIR}/include" + +INSTALLDIR = "/usr/lib/klibc" +INSTALLPREFIX = "${INSTALLDIR}/${TARGET_PREFIX}" +INSTALLBINDIR = "${INSTALLPREFIX}bin" +INSTALLLIBDIR = "${INSTALLPREFIX}lib" +INSTALLINCDIR = "${INSTALLPREFIX}include" + +PACKAGES = "${PN} ${PN}-dev ${PN}-doc" + +FILES_${PN} = "/lib/*.so* ${INSTALLBINDIR}" +FILES_${PN}-dev = "/usr/bin ${INSTALLINCDIR} ${INSTALLLIBDIR}" do_configure () { ln -sf ${STAGING_KERNEL_DIR} linux } + +STAGING_KLIBC_DIR = "${STAGING_DIR}/${HOST_SYS}/klibc" + +do_stage() { + rm -rf "${STAGING_KLIBC_DIR}" + oe_runmake 'prefix=${STAGING_KLIBC_DIR}' \ + 'bindir=${STAGING_BINDIR}' \ + 'mandir=${STAGING_DIR}/${BUILD_SYS}/share/man' \ + install + # The following is sufficient, at least in klibc 1.1.1 to make klcc + # use the staged libraries and include files. + sed -i -e 's@^\$prefix = .*$@\$prefix = "${STAGING_KLIBC_DIR}/lib/klibc";@' \ + '${STAGING_BINDIR}/${TARGET_PREFIX}klcc' +} + +do_install() { + # The installed -dev won't work because it has the cross compiler + # path compiled in. + oe_runmake 'INSTALLROOT=${D}' install +} |