summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--glibc/glibc_2.3.2.oe111
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