diff options
-rw-r--r-- | glibc/glibc_2.3.2.oe | 111 |
1 files changed, 23 insertions, 88 deletions
diff --git a/glibc/glibc_2.3.2.oe b/glibc/glibc_2.3.2.oe index c743e64d5f..8dc1a2b232 100644 --- a/glibc/glibc_2.3.2.oe +++ b/glibc/glibc_2.3.2.oe @@ -3,7 +3,7 @@ LICENSE = "LGPL" SECTION = "libs" PRIORITY = "required" MAINTAINER = "Chris Larson <kergoth@handhelds.org>" -PR = "r1" +PR = "r2" # # For now, we will skip building of a gcc package if it is a uclibc one # and our build is not a uclibc one, and we skip a glibc one if our build @@ -31,6 +31,9 @@ FILES_glibc-dev_append = " ${libdir}/*.o" FILES_glibc-gconv = "${libdir}/gconv" FILES_glibc-i18n = "${datadir}/i18n" +HEADERS_VERSION = "2.6.5.1" +HEADERS_DIR = "${WORKDIR}/linux-libc-headers-${HEADERS_VERSION}" + # file://dyn-ldconfig.diff;patch=1;pnum=0 # file://glibcbug.patch;patch=1;pnum=0 # file://nptl-pthread-once.patch;patch=1;pnum=1 @@ -40,7 +43,7 @@ FILES_glibc-i18n = "${datadir}/i18n" # This patch is needed for builds against recent 2.5/2.6 kernel headers: SRC_URI = "ftp://ftp.gnu.org/gnu/glibc/glibc-${PV}.tar.gz \ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-linuxthreads-2.3.2.tar.gz \ - http://www.uclibc.org/downloads/toolchain/kernel-headers-2.4.25.tar.bz2 \ + http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-${HEADERS_VERSION}.tar.bz2 \ file://noinfo.patch;patch=1 \ file://10_cvs.patch;patch=1 \ file://arm-ioperm.patch;patch=1;pnum=0 \ @@ -99,7 +102,8 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/glibc/glibc-${PV}.tar.gz \ file://glibc232-gcc34-i386-fixup-attribute.patch;patch=1;pnum=1 \ file://glibc232-gcc34-no-unit-at-a-time.patch;patch=1;pnum=1 \ \ - file://etc/ld.so.conf" + file://etc/ld.so.conf \ + file://generate-supported.mk" S = "${WORKDIR}/glibc-${PV}" B = "${WORKDIR}/build-${TARGET_SYS}" @@ -109,7 +113,7 @@ inherit autotools EXTRA_OECONF = "--without-tls --without-__thread --enable-kernel=${OLDEST_KERNEL} \ --without-cvs --disable-profile --disable-debug --without-gd \ --enable-clocale=gnu \ - --enable-add-ons=linuxthreads --with-headers=${WORKDIR}/linux/include" + --enable-add-ons=linuxthreads --with-headers=${HEADERS_DIR}/include" EXTRA_OECONF += "${@get_fpu_setting(oe, d)}" @@ -121,9 +125,6 @@ def get_fpu_setting(oe, d): glibcbuild_do_unpack () { mv "${WORKDIR}/linuxthreads" "${WORKDIR}/linuxthreads_db" "${S}/" # kernel headers - touch ${WORKDIR}/linux/include/linux/autoconf.h - sed 's:\(^.*define.*__NR_waitpid.*$\):/*&*/:' < ${WORKDIR}/linux/include/asm-arm/unistd.h > ${WORKDIR}/linux/include/asm-arm/unistd.h.new - mv ${WORKDIR}/linux/include/asm-arm/unistd.h.new ${WORKDIR}/linux/include/asm-arm/unistd.h case ${TARGET_ARCH} in alpha*) TARGET_ARCH=alpha ;; arm*) TARGET_ARCH=arm ;; @@ -140,13 +141,13 @@ glibcbuild_do_unpack () { sparc*) TARGET_ARCH=sparc ;; x86_64*) TARGET_ARCH=x86_64 ;; esac - if test ! -e ${WORKDIR}/linux/include/asm-$TARGET_ARCH; then + if test ! -e ${HEADERS_DIR}/include/asm-$TARGET_ARCH; then oefatal unable to create asm symlink in kernel headers fi - ln -sf "asm-$TARGET_ARCH" "${WORKDIR}/linux/include/asm" + ln -sf "asm-$TARGET_ARCH" "${HEADERS_DIR}/include/asm" if test "$TARGET_ARCH" = "arm"; then - ln -sf proc-armv ${WORKDIR}/linux/include/asm/proc - ln -sf arch-ebsa285 ${WORKDIR}/linux/include/asm/arch + ln -sf proc-armv ${HEADERS_DIR}/include/asm/proc + ln -sf arch-ebsa285 ${HEADERS_DIR}/include/asm/arch fi } @@ -169,7 +170,10 @@ rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \ rusers.x spray.x nfs_prot.x rquota.x key_prot.x" do_compile () { - touch ${S}/sysdeps/${TARGET_ARCH}/framestate.c + # this really is arm specific + touch ${S}/sysdeps/arm/framestate.c + # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging + unset LDFLAGS base_do_compile ( cd ${S}/sunrpc/rpcsvc @@ -187,8 +191,10 @@ do_stage() { install-headers install-lib install -d ${STAGING_INCDIR}/asm - cp -a ${WORKDIR}/linux/include/linux ${STAGING_INCDIR}/ - cp -a ${WORKDIR}/linux/include/asm/* ${STAGING_INCDIR}/asm/ + rm -f ${STAGING_INCDIR}/linux/wireless.h + cp -a ${HEADERS_DIR}/include/linux ${STAGING_INCDIR}/ + ln -sf ${STAGING_KERNEL_DIR}/include/linux/wireless.h ${STAGING_INCDIR}/linux/wireless.h + cp -a ${HEADERS_DIR}/include/asm/* ${STAGING_INCDIR}/asm/ install -d ${STAGING_INCDIR}/gnu \ ${STAGING_INCDIR}/bits \ @@ -213,8 +219,8 @@ do_stage() { install-headers install-lib install -d ${CROSS_DIR}/${TARGET_SYS}/include/asm - cp -a ${WORKDIR}/linux/include/linux ${CROSS_DIR}/${TARGET_SYS}/include/ - cp -R ${WORKDIR}/linux/include/asm/* ${CROSS_DIR}/${TARGET_SYS}/include/asm/ + cp -a ${HEADERS_DIR}/include/linux ${CROSS_DIR}/${TARGET_SYS}/include/ + cp -R ${HEADERS_DIR}/include/asm/* ${CROSS_DIR}/${TARGET_SYS}/include/asm/ install -d ${CROSS_DIR}/${TARGET_SYS}/include/gnu \ ${CROSS_DIR}/${TARGET_SYS}/include/bits \ @@ -234,75 +240,4 @@ do_stage() { echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${CROSS_DIR}/${TARGET_SYS}/lib/libc.so } -do_install() { - oe_runmake install_root=${D} install - for r in ${rpcsvc}; do - h=`echo $r|sed -e's,\.x$,.h,'` - install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/ - done - install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ -} - -python package_do_split_gconvs () { - import os - def do_split(root, pattern, format, description, postinst): - dvar = oe.data.getVar('D', d, 1) - if not dvar: - oe.error("D not defined") - return - - packages = oe.data.getVar('PACKAGES', d, 1).split() - if not packages: - oe.error("PACKAGES not defined") - return - - if postinst: - postinst = '#!/bin/sh\n' + postinst - objs = os.listdir(dvar + root) - mainpkg = oe.data.getVar('PKG_' + packages[0], d) or packages[0] - for o in objs: - import re - m = re.match(pattern, o) - if not m: - continue - on = m.group(1).lower().replace('_', '+').replace('@', '+') - pkg = format % on - packages.append(pkg) - oe.data.setVar('FILES_' + pkg, os.path.join(root, o), d) - oe.data.setVar('RDEPENDS_' + pkg, mainpkg, d) - oe.data.setVar('DESCRIPTION_' + pkg, description % on, d) - if postinst: - oe.data.setVar('pkg_postinst_' + pkg, postinst, d) - - oe.data.setVar('PACKAGES', ' '.join(packages), d) - - if (oe.data.getVar('PACKAGE_NO_GCONV', d, 1) == '1'): - oe.note("package requested not splitting gconvs") - return - - if not oe.data.getVar('PACKAGES', d, 1): - return - - libdir = oe.data.getVar('libdir', d, 1) - if not libdir: - oe.error("libdir not defined") - return - - gconv_libdir = os.path.join(libdir, "gconv") - - do_split(gconv_libdir, '^(.*)\.so$', 'glibc-gconv-%s', 'gconv module for character set %s', None) - - oe.data.setVar('PACKAGES', oe.data.getVar('PACKAGES', d) + ' glibc-gconv', d) -} - -# We want to do this indirection so that we can safely 'return' -# from the called function even though we're prepending -python populate_packages_prepend () { - oe.build.exec_func('package_do_split_gconvs', d) -} - -python do_package () { - if oe.data.getVar('DEBIAN_NAMES', d, 1): - oe.data.setVar('PKG_glibc', 'libc6', d) - oe.build.exec_func('package_do_package', d) -} +include glibc-package.oe |