diff options
18 files changed, 114 insertions, 102 deletions
diff --git a/packages/glibc/eglibc-svn/.mtn2git_empty b/packages/eglibc/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/glibc/eglibc-svn/.mtn2git_empty +++ b/packages/eglibc/.mtn2git_empty diff --git a/packages/eglibc/eglibc-initial.inc b/packages/eglibc/eglibc-initial.inc new file mode 100644 index 0000000000..342711c157 --- /dev/null +++ b/packages/eglibc/eglibc-initial.inc @@ -0,0 +1,31 @@ +SECTION = "libs" +DEPENDS = "linux-libc-headers" +PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" +FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" + +PACKAGES = "" +PACKAGES_DYNAMIC = "" + +do_configure () { + sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure + chmod +x ${S}/configure + CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" \ + ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \ + --without-cvs --disable-sanity-checks \ + --with-headers=${STAGING_DIR_TARGET}${layout_includedir} \ + --enable-hacker-mode +} + +do_compile () { + : +} + +do_stage () { + oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \ + includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers + +} + +do_install () { + : +} diff --git a/packages/eglibc/eglibc-initial_svn.bb b/packages/eglibc/eglibc-initial_svn.bb new file mode 100644 index 0000000000..787c762609 --- /dev/null +++ b/packages/eglibc/eglibc-initial_svn.bb @@ -0,0 +1,6 @@ +require eglibc_${PV}.bb +require eglibc-initial.inc + +do_configure_prepend () { + unset CFLAGS +} diff --git a/packages/glibc/eglibc-intermediate_svn.bb b/packages/eglibc/eglibc-intermediate.inc index 5ecbdb6ed8..c226d8658d 100644 --- a/packages/glibc/eglibc-intermediate_svn.bb +++ b/packages/eglibc/eglibc-intermediate.inc @@ -1,20 +1,12 @@ -require eglibc_${PV}.bb +SECTION = "libs" +PACKAGES = "" +PACKAGES_DYNAMIC = "" +PROVIDES = "virtual/${TARGET_PREFIX}libc-for-gcc" +DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers" do_install () { : } -# gcc uses -Werror which break on a "you have no thumb interwork" _warning_ -do_configure_prepend() { - find ${S} -name "configure" | xargs touch - sed -i s:-Werror:: ${S}/configure -} - - - -PACKAGES = "" -PACKAGES_DYNAMIC = "" -PROVIDES = "virtual/${TARGET_PREFIX}libc-for-gcc" -DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers" GLIBC_ADDONS = "nptl,ports" GLIBC_EXTRA_OECONF = "" diff --git a/packages/eglibc/eglibc-intermediate_svn.bb b/packages/eglibc/eglibc-intermediate_svn.bb new file mode 100644 index 0000000000..7150f56d26 --- /dev/null +++ b/packages/eglibc/eglibc-intermediate_svn.bb @@ -0,0 +1,8 @@ +require eglibc_${PV}.bb +require eglibc-intermediate.inc + +# gcc uses -Werror which break on a "you have no thumb interwork" _warning_ +do_configure_prepend() { + find ${S} -name "configure" | xargs touch + sed -i s:-Werror:: ${S}/configure +} diff --git a/packages/glibc/eglibc-package.bbclass b/packages/eglibc/eglibc-package.bbclass index 241d8d30a6..2de24db859 100644 --- a/packages/glibc/eglibc-package.bbclass +++ b/packages/eglibc/eglibc-package.bbclass @@ -27,7 +27,7 @@ ENABLE_BINARY_LOCALE_GENERATION ?= "0" BINARY_LOCALE_ARCHES ?= "arm.*" PACKAGES = "eglibc-dbg eglibc catchsegv sln nscd ldd localedef eglibc-utils eglibc-dev eglibc-doc eglibc-locale libsegfault eglibc-extra-nss eglibc-thread-db eglibc-pcprofile" -PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-* eglibc-gconv-* eglibc-charmap-* eglibc-localedata-*" +PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-* glibc-binary-localedata-* eglibc-gconv-* eglibc-charmap-* eglibc-localedata-* eglibc-binary-localedata-* locale-base-*" RPROVIDES_eglibc = "glibc" RPROVIDES_eglibc-utils = "glibc-utils" @@ -36,7 +36,8 @@ RPROVIDES_eglibc-doc = "glibc-doc" RPROVIDES_eglibc-locale = "glibc-locale" RPROVIDES_eglibc-extra-nss = "glibc-extra-nss" RPROVIDES_eglibc-thread-db = "glibc-thread-db" -RPROVIDES_eglibc-pcprofiles = "glibc-pcprofiles" +RPROVIDES_eglibc-pcprofile = "glibc-pcprofile" +RPROVIDES_eglibc-dbg = "glibc-dbg" libc_baselibs = "/lib/libc* /lib/libm* /lib/ld* /lib/libpthread* /lib/libresolv* /lib/librt* /lib/libutil* /lib/libnsl* /lib/libnss_files* /lib/libnss_compat* /lib/libnss_dns* /lib/libdl* /lib/libanl* /lib/libBrokenLocale*" @@ -49,7 +50,7 @@ FILES_eglibc-dev_append = " ${libdir}/*.o ${bindir}/rpcgen" FILES_nscd = "${sbindir}/nscd*" FILES_eglibc-utils = "${bindir}/* ${sbindir}/*" FILES_eglibc-gconv = "${libdir}/gconv/*" -FILES_${PN}-dbg += "${libexecdir}/getconf/.debug ${libdir}/gconv/.debug" +FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/gconv/.debug" FILES_catchsegv = "${bindir}/catchsegv" RDEPENDS_catchsegv = "libsegfault" FILES_eglibc-pcprofile = "/lib/libpcprofile.so" diff --git a/packages/eglibc/eglibc-stage.inc b/packages/eglibc/eglibc-stage.inc new file mode 100644 index 0000000000..d4ddecfa4d --- /dev/null +++ b/packages/eglibc/eglibc-stage.inc @@ -0,0 +1,21 @@ +do_stage() { + rm -f ${STAGING_DIR_HOST}${layout_base_libdir}/libc.so.6 + oe_runmake 'install_root=${STAGING_DIR_HOST}' \ + 'includedir=${layout_includedir}' 'libdir=${layout_libdir}' 'slibdir=${layout_base_libdir}' \ + '${STAGING_DIR_HOST}${layout_base_libdir}/libc.so.6' \ + install-headers install-lib install + + install -d ${STAGING_INCDIR}/gnu \ + ${STAGING_INCDIR}/bits \ + ${STAGING_INCDIR}/rpcsvc + install -m 0644 ${S}/include/gnu/stubs.h ${STAGING_INCDIR}/gnu/ + install -m 0644 ${B}/bits/stdio_lim.h ${STAGING_INCDIR}/bits/ + install -m 0644 misc/syscall-list.h ${STAGING_INCDIR}/bits/syscall.h + for r in ${rpcsvc}; do + h=`echo $r|sed -e's,\.x$,.h,'` + install -m 0644 ${S}/sunrpc/rpcsvc/$h ${STAGING_INCDIR}/rpcsvc/ + done + for i in libc.a libc_pic.a libc_nonshared.a; do + install -m 0644 ${B}/$i ${STAGING_DIR_HOST}/${layout_base_libdir}/ || die "failed to install $i" + done +} diff --git a/packages/eglibc/eglibc-svn/.mtn2git_empty b/packages/eglibc/eglibc-svn/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/eglibc/eglibc-svn/.mtn2git_empty diff --git a/packages/glibc/eglibc-svn/eglibc-svn-arm-lowlevellock-include-tls.patch b/packages/eglibc/eglibc-svn/eglibc-svn-arm-lowlevellock-include-tls.patch index 99c3fef802..99c3fef802 100644 --- a/packages/glibc/eglibc-svn/eglibc-svn-arm-lowlevellock-include-tls.patch +++ b/packages/eglibc/eglibc-svn/eglibc-svn-arm-lowlevellock-include-tls.patch diff --git a/packages/eglibc/eglibc.inc b/packages/eglibc/eglibc.inc new file mode 100644 index 0000000000..e1559e46e4 --- /dev/null +++ b/packages/eglibc/eglibc.inc @@ -0,0 +1,22 @@ +DESCRIPTION = "Embedded GNU C Library" +HOMEPAGE = "http://www.eglibc.org/home" +SECTION = "libs" +PRIORITY = "required" +LICENSE = "LGPL" +# nptl needs unwind support in gcc, which can't be built without glibc. +DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers" +#this leads to circular deps, so lets not add it yet +#RDEPENDS_ldd += " bash" +# nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this +RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}" +PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}" +PROVIDES += "virtual/libintl virtual/libiconv" + +inherit autotools + +LEAD_SONAME = "libc.so" + +GLIBC_EXTRA_OECONF ?= "" +INHIBIT_DEFAULT_DEPS = "1" + +PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile" diff --git a/packages/glibc/eglibc_svn.bb b/packages/eglibc/eglibc_svn.bb index ee5b3cfd23..e7a4a1ba75 100644 --- a/packages/glibc/eglibc_svn.bb +++ b/packages/eglibc/eglibc_svn.bb @@ -1,12 +1,10 @@ -require glibc.inc +require eglibc.inc -DEFAULT_PREFERENCE = "-1" +# DEFAULT_PREFERENCE = "-1" FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/eglibc-svn" PV = "2.8+svnr${SRCREV}" PR = "r6" SRC_URI = "svn://svn.eglibc.org;module=trunk \ - file://eglibc-svn-arm-cargs6.patch;patch=1 \ - file://eglibc-svn-arm-check_pf.patch;patch=1 \ file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \ file://etc/ld.so.conf \ file://generate-supported.mk" @@ -15,6 +13,7 @@ B = "${WORKDIR}/build-${TARGET_SYS}" PACKAGES_DYNAMIC = "libc6*" RPROVIDES_${PN}-dev = "libc6-dev" +PROVIDES_${PN}-dbg = "glibc-dbg" # the -isystem in bitbake.conf screws up glibc do_stage BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" @@ -93,6 +92,6 @@ do_compile () { ) } -require glibc-stage.inc +require eglibc-stage.inc require eglibc-package.bbclass diff --git a/packages/eglibc/files/.mtn2git_empty b/packages/eglibc/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/eglibc/files/.mtn2git_empty diff --git a/packages/eglibc/files/etc/.mtn2git_empty b/packages/eglibc/files/etc/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/eglibc/files/etc/.mtn2git_empty diff --git a/packages/eglibc/files/etc/ld.so.conf b/packages/eglibc/files/etc/ld.so.conf new file mode 100644 index 0000000000..dfa65edb85 --- /dev/null +++ b/packages/eglibc/files/etc/ld.so.conf @@ -0,0 +1,2 @@ +/usr/local/lib +/usr/X11R6/lib diff --git a/packages/eglibc/files/generate-supported.mk b/packages/eglibc/files/generate-supported.mk new file mode 100644 index 0000000000..d2a28c2dc6 --- /dev/null +++ b/packages/eglibc/files/generate-supported.mk @@ -0,0 +1,11 @@ +#!/usr/bin/make + +include $(IN) + +all: + rm -f $(OUT) + touch $(OUT) + for locale in $(SUPPORTED-LOCALES); do \ + [ $$locale = true ] && continue; \ + echo $$locale | sed 's,/, ,' >> $(OUT); \ + done diff --git a/packages/glibc/eglibc-initial_svn.bb b/packages/glibc/eglibc-initial_svn.bb deleted file mode 100644 index cbe4878529..0000000000 --- a/packages/glibc/eglibc-initial_svn.bb +++ /dev/null @@ -1,48 +0,0 @@ -require eglibc_${PV}.bb - -DEPENDS = "linux-libc-headers" -PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" -FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" - -PACKAGES = "" -PACKAGES_DYNAMIC = "" - -do_configure () { - sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure - chmod +x ${S}/configure - unset CFLAGS - find ${S} -name "configure" | xargs touch - CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \ - --without-cvs --disable-sanity-checks \ - --with-headers=${STAGING_INCDIR} \ - --enable-hacker-mode - if grep -q GLIBC_2.3 ${S}/ChangeLog; then - # glibc-2.3.x passes cross options to $(CC) when generating errlist-compat.c, which fails without a real cross-compiler. - # Fortunately, we don't need errlist-compat.c, since we just need .h files, - # so work around this by creating a fake errlist-compat.c and satisfying its dependencies. - # Another workaround might be to tell configure to not use any cross options to $(CC). - # The real fix would be to get install-headers to not generate errlist-compat.c. - make sysdeps/gnu/errlist.c - mkdir -p stdio-common - touch stdio-common/errlist-compat.c - fi -} - -do_compile () { - : -} - -do_stage () { - oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} includedir=${layout_includedir} prefix="" install-headers - - # Two headers -- stubs.h and features.h -- aren't installed by install-headers, - # so do them by hand. We can tolerate an empty stubs.h for the moment. - # See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html - mkdir -p ${STAGING_INCDIR}/gnu - touch ${STAGING_INCDIR}/gnu/stubs.h - cp ${S}/include/features.h ${STAGING_INCDIR}/features.h -} - -do_install () { - : -} diff --git a/packages/glibc/eglibc-svn/eglibc-svn-arm-cargs6.patch b/packages/glibc/eglibc-svn/eglibc-svn-arm-cargs6.patch deleted file mode 100644 index ef9708faaa..0000000000 --- a/packages/glibc/eglibc-svn/eglibc-svn-arm-cargs6.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- libc/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h.org 2008-04-04 18:44:53.000000000 -0700 -+++ libc/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2008-04-04 18:45:27.000000000 -0700 -@@ -73,6 +73,9 @@ - # define DOCARGS_5 DOCARGS_4 - # define UNDOCARGS_5 UNDOCARGS_4 - -+# define DOCARGS_6 DOCARGS_5 -+# define UNDOCARGS_6 UNDOCARGS_5 -+ - # ifdef IS_IN_libpthread - # define CENABLE bl PLTJMP(__pthread_enable_asynccancel) - # define CDISABLE bl PLTJMP(__pthread_disable_asynccancel) diff --git a/packages/glibc/eglibc-svn/eglibc-svn-arm-check_pf.patch b/packages/glibc/eglibc-svn/eglibc-svn-arm-check_pf.patch deleted file mode 100644 index cf45035f99..0000000000 --- a/packages/glibc/eglibc-svn/eglibc-svn-arm-check_pf.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: eglibc/ports/sysdeps/unix/sysv/linux/arm/check_pf.c -=================================================================== ---- eglibc/ports/sysdeps/unix/sysv/linux/arm/check_pf.c (revision 5790) -+++ eglibc/ports/sysdeps/unix/sysv/linux/arm/check_pf.c (working copy) -@@ -200,16 +200,12 @@ - } - - if (ifam->ifa_flags & (IFA_F_DEPRECATED -- | IFA_F_TEMPORARY - | IFA_F_HOMEADDRESS)) - { - struct in6ailist *newp = alloca (sizeof (*newp)); - newp->info.flags = (((ifam->ifa_flags & IFA_F_DEPRECATED) - ? in6ai_deprecated : 0) - | ((ifam->ifa_flags -- & IFA_F_TEMPORARY) -- ? in6ai_temporary : 0) -- | ((ifam->ifa_flags - & IFA_F_HOMEADDRESS) - ? in6ai_homeaddress : 0)); - memcpy (newp->info.addr, address ?: local, |