Merge bk://openembedded@openembedded.bkbits.net/packages
authorPhil Blundell <philb@gnu.org>
Sat, 24 Jul 2004 20:00:45 +0000 (20:00 +0000)
committerPhil Blundell <philb@gnu.org>
Sat, 24 Jul 2004 20:00:45 +0000 (20:00 +0000)
into workhouse.nexus.co.uk:/home/pb/oe/oe-packages

2004/07/24 21:00:23+01:00 nexus.co.uk!pb
bring glibc_2.3.2 up to (mostly) modern standards

BKrev: 4102bfedw91Iy-usgOl6cbjcut82iQ

glibc/glibc_2.3.2.oe

index c743e64..8dc1a2b 100644 (file)
@@ -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