diff options
author | Martin Schlemmer <azarah@gentoo.org> | 2002-11-07 15:21:07 +0000 |
---|---|---|
committer | Martin Schlemmer <azarah@gentoo.org> | 2002-11-07 15:21:07 +0000 |
commit | 1a44050a8e352683d1480a43eb036f62467603ad (patch) | |
tree | 1624665ce4d461bcd78edc23dc40a16e07c3e593 /sys-libs/glibc | |
parent | Version bump (diff) | |
download | historical-1a44050a8e352683d1480a43eb036f62467603ad.tar.gz historical-1a44050a8e352683d1480a43eb036f62467603ad.tar.bz2 historical-1a44050a8e352683d1480a43eb036f62467603ad.zip |
update compat patches
Diffstat (limited to 'sys-libs/glibc')
-rw-r--r-- | sys-libs/glibc/ChangeLog | 9 | ||||
-rw-r--r-- | sys-libs/glibc/files/2.3.1/glibc-2.3.1-ctype-compat-v2.patch | 34 | ||||
-rw-r--r-- | sys-libs/glibc/files/2.3.1/glibc-2.3.1-stack_end-compat.patch | 22 | ||||
-rw-r--r-- | sys-libs/glibc/files/digest-glibc-2.3.1-r2 | 2 | ||||
-rw-r--r-- | sys-libs/glibc/glibc-2.3.1-r2.ebuild | 237 |
5 files changed, 303 insertions, 1 deletions
diff --git a/sys-libs/glibc/ChangeLog b/sys-libs/glibc/ChangeLog index 69779e00226b..af3f6906a6cb 100644 --- a/sys-libs/glibc/ChangeLog +++ b/sys-libs/glibc/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for sys-libs/glibc # Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.24 2002/10/31 18:02:24 azarah Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.25 2002/11/07 15:21:07 azarah Exp $ + +*glibc-2.3.1-r2 (7 Nov 2002) + + 7 Nov 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r2.ebuild : + + Second try at ctype-compat.patch. Add stack_end-compat patch for missing + libc_stack_end symbold in linker. 30 Oct 2002; Martin Schlemmer <azarah@gentoo.org> glibc-2.3.1-r1.ebuild : diff --git a/sys-libs/glibc/files/2.3.1/glibc-2.3.1-ctype-compat-v2.patch b/sys-libs/glibc/files/2.3.1/glibc-2.3.1-ctype-compat-v2.patch new file mode 100644 index 000000000000..8afc061a87ea --- /dev/null +++ b/sys-libs/glibc/files/2.3.1/glibc-2.3.1-ctype-compat-v2.patch @@ -0,0 +1,34 @@ +--- glibc-2.3.1/ctype/ctype-info.c.orig 2002-11-07 15:58:39.000000000 +0200 ++++ glibc-2.3.1/ctype/ctype-info.c 2002-11-07 16:01:24.000000000 +0200 +@@ -48,6 +48,7 @@ + + #define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o) + ++#if 0 + const unsigned short int *__ctype_b = b (unsigned short int, class, 128); + const __uint32_t *__ctype32_b = b (__uint32_t, class32, 0); + const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128); +@@ -61,5 +62,23 @@ + compat_symbol (libc, __ctype32_b, __ctype32_b, GLIBC_2_0); + compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2); + compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2); ++#endif + + #endif ++ ++/* Temporarily exported until all .a libraries are recompiled. */ ++#undef b ++#define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o) ++ ++extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; ++extern const char _nl_C_LC_CTYPE_class32[] attribute_hidden; ++extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden; ++extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden; ++ ++const unsigned short int *__ctype_b = b (unsigned short int, class, 128); ++const __uint32_t *__ctype32_b = b (__uint32_t, class32, 0); ++const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128); ++const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128); ++const __uint32_t *__ctype32_tolower = b (__uint32_t, tolower, 128); ++const __uint32_t *__ctype32_toupper = b (__uint32_t, toupper, 128); ++ diff --git a/sys-libs/glibc/files/2.3.1/glibc-2.3.1-stack_end-compat.patch b/sys-libs/glibc/files/2.3.1/glibc-2.3.1-stack_end-compat.patch new file mode 100644 index 000000000000..ad68ed7c5d5b --- /dev/null +++ b/sys-libs/glibc/files/2.3.1/glibc-2.3.1-stack_end-compat.patch @@ -0,0 +1,22 @@ +--- glibc-2.3.1/elf/Versions.orig 2002-11-07 17:04:54.000000000 +0200 ++++ glibc-2.3.1/elf/Versions 2002-11-07 17:06:56.000000000 +0200 +@@ -32,6 +32,10 @@ + _r_debug; + } + GLIBC_2.1 { ++ # This will be GLIBC_PRIVATE, just to give folks some time ++ # to fix their stuff ++ __libc_stack_end; ++ + # functions used in other libraries + _dl_mcount; + } +@@ -41,7 +45,7 @@ + } + GLIBC_PRIVATE { + # Those are in the dynamic linker, but used by libc.so. +- __libc_enable_secure; __libc_stack_end; ++ __libc_enable_secure; # __libc_stack_end; + _dl_argv; _dl_catch_error; _dl_check_map_versions; + _dl_debug_printf; _dl_debug_state; _dl_dst_count; + _dl_dst_substitute; _dl_init; _dl_lookup_symbol; _dl_lookup_symbol_skip; diff --git a/sys-libs/glibc/files/digest-glibc-2.3.1-r2 b/sys-libs/glibc/files/digest-glibc-2.3.1-r2 new file mode 100644 index 000000000000..a0effd0be274 --- /dev/null +++ b/sys-libs/glibc/files/digest-glibc-2.3.1-r2 @@ -0,0 +1,2 @@ +MD5 e8e7ffcb86f921c5b597008bf6f891bd glibc-2.3.1.tar.gz 17882515 +MD5 73a5b953b89c8ebeb534bf59822dde07 glibc-linuxthreads-2.3.1.tar.gz 244012 diff --git a/sys-libs/glibc/glibc-2.3.1-r2.ebuild b/sys-libs/glibc/glibc-2.3.1-r2.ebuild new file mode 100644 index 000000000000..a5c4031c23c6 --- /dev/null +++ b/sys-libs/glibc/glibc-2.3.1-r2.ebuild @@ -0,0 +1,237 @@ +# Copyright 1999-2002 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.1-r2.ebuild,v 1.1 2002/11/07 15:21:07 azarah Exp $ + +IUSE="nls pic build" + +inherit flag-o-matic gcc + +filter-flags "-fomit-frame-pointer -malign-double" + +# Recently there has been a lot of stability problem in Gentoo-land. Many +# things can be the cause to this, but I believe that it is due to gcc3 +# still having issues with optimizations, or with it not filtering bad +# combinations (protecting the user maybe from himeself) yet. +# +# This can clearly be seen in large builds like glibc, where too aggressive +# CFLAGS cause the tests to fail miserbly. +# +# Quote from Nick Jones <carpaski@gentoo.org>, who in my opinion +# knows what he is talking about: +# +# People really shouldn't force code-specific options on... It's a +# bad idea. The -march options aren't just to look pretty. They enable +# options that are sensible (and include sse,mmx,3dnow when apropriate). +# +# The next command strips CFLAGS and CXXFLAGS from nearly all flags. If +# you do not like it, comment it, but do not bugreport if you run into +# problems. +# +# <azarah@gentoo.org> (13 Oct 2002) +strip-flags + +# Lock glibc at -O2 -- linuxthreads needs it and we want to be conservative here +export CFLAGS="${CFLAGS//-O?} -O2" +export CXXFLAGS="${CFLAGS}" + +S="${WORKDIR}/${P}" +DESCRIPTION="GNU libc6 (also called glibc2) C library" +SRC_URI="http://ftp.gnu.org/gnu/glibc/glibc-${PV}.tar.gz + http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-${PV}.tar.gz" +HOMEPAGE="http://www.gnu.org/software/libc/libc.html" + +KEYWORDS="~x86 ~ppc ~sparc ~sparc64 ~alpha" +# Is 99% compadible, just some .a's bork +SLOT="2.2" +LICENSE="GPL-2" + +# Portage-1.8.9 needed for smart library merging feature (avoids segfaults on glibc upgrade) +# Drobbins, 18 Mar 2002: we now rely on the system profile to select the correct linus-headers +DEPEND=">=sys-devel/gcc-3.2-r1 + >=sys-devel/binutils-2.13.90.0.4-r1 + sys-kernel/linux-headers + nls? ( sys-devel/gettext )" +RDEPEND="sys-kernel/linux-headers + sys-apps/baselayout + nls? ( sys-devel/gettext ) + build? ( >=sys-apps/portage-1.9.0 )" + +PROVIDE="virtual/glibc" + + +pkg_config() { + if [ "`gcc-major-version`" -ne "3" -o "`gcc-minor-version`" -lt "2" ] + then + eerror "As of glibc-2.3, gcc-3.2 or later is needed" + eerror "for the build to succeed." + die "GCC too old" + fi +} + +src_unpack() { + unpack glibc-${PV}.tar.gz || die + # Extract pre-made man pages. Otherwise we need perl, which is a no-no. + mkdir man; cd man + tar xjf ${FILESDIR}/glibc-manpages-${PV}.tar.bz2 || die + cd ${S} + unpack glibc-linuxthreads-${PV}.tar.gz || die + + # This next patch fixes a test that will timeout due to ReiserFS' slow handling of sparse files + einfo "Applying test-lfs-timeout patch..." + cd ${S}/io; patch -p0 < ${FILESDIR}/glibc-2.2.2-test-lfs-timeout.patch > /dev/null || die + + # This add back glibc 2.2 compadibility. See bug #8766 and #9586 for more info, + # and also: + # + # http://lists.debian.org/debian-glibc/2002/debian-glibc-200210/msg00093.html + # + # We should think about remoing it in the future after things have settled. + # + # Thanks to Jan Gutter <jangutter@tuks.co.za> for reporting it. + # + # <azarah@gentoo.org> (26 Oct 2002). + einfo "Applying ctype-compat patch..." + cd ${S}; patch -p1 < ${FILESDIR}/${PV}/${P}-ctype-compat-v2.patch > /dev/null || die + + # One more compat issue which breaks sun-jdk-1.3.1. See bug #8766 for more + # info, and also: + # + # http://sources.redhat.com/ml/libc-alpha/2002-04/msg00143.html + # + # Thanks to Jan Gutter <jangutter@tuks.co.za> for reporting it. + # + # <azarah@gentoo.org> (30 Oct 2002). + einfo "Applying libc_wait-compat patch..." + cd ${S}; patch -p1 < ${FILESDIR}/${PV}/${P}-libc_wait-compat.patch > /dev/null || die + + # One more compat issue ... libc_stack_end is missing from ld.so. + # Got this one from diffing redhat glibc tarball .. would help if + # they used patches and not modified tarball ... + # + # <azarah@gentoo.org> (7 Nov 2002). + einfo "Applying stack_end-compat patch..." + cd ${S}; patch -p1 < ${FILESDIR}/${PV}/${P}-stack_end-compat.patch > /dev/null || die +} + +src_compile() { + local myconf="" + + # If we build for the build system we use the kernel headers from the target + use build \ + && myconf="${myconf} --with-header=${ROOT}usr/include" + # Set it without "build" as well, else it might use the current kernel's + # headers, which might just fail (the linux-headers package is usually well + # tested...) + + use nls || myconf="${myconf} --disable-nls" + + # Thread Local Storage support. This dont really work as of yet... +# use x86 && use tls \ +# && myconf="${myconf} --with-tls" + myconf="${myconf} --without-tls" + + if [ "`uname -r | cut -d. -f2`" -ge "4" ] + then + myconf="${myconf} --enable-kernel=2.4.0" + fi + + einfo "Configuring GLIBC..." + rm -rf buildhere + mkdir buildhere + cd buildhere + ../configure --host=${CHOST} \ + --with-gd=no \ + --without-cvs \ + --enable-add-ons=yes \ + --disable-profile \ + --prefix=/usr \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --libexecdir=/usr/lib/misc \ + ${myconf} || die + + einfo "Building GLIBC..." + make PARALLELMFLAGS="${MAKEOPTS}" || die +# einfo "Doing GLIBC checks..." +# make check +} + + +src_install() { + export LC_ALL="C" + einfo "Installing GLIBC..." + make PARALLELMFLAGS="${MAKEOPTS}" \ + install_root=${D} \ + install -C buildhere || die + + if [ -z "`use build`" ] + then + einfo "Installing Info pages..." + make PARALLELMFLAGS="${MAKEOPTS}" \ + install_root=${D} \ + info -C buildhere || die + + einfo "Installing Locale data..." + make PARALLELMFLAGS="${MAKEOPTS}" \ + install_root=${D} \ + localedata/install-locales -C buildhere || die + + einfo "Installing man pages and docs..." + # Install linuxthreads man pages + dodir /usr/share/man/man3 + doman ${S}/man/*.3thr + + # Install nscd config file + insinto /etc + doins ${S}/nscd/nscd.conf + + dodoc BUGS ChangeLog* CONFORMANCE COPYING* FAQ INTERFACE \ + NEWS NOTES PROJECTS README* + else + rm -rf ${D}/usr/share ${D}/usr/lib/gconv + fi + + if [ "`use pic`" ] + then + find ${S}/buildhere -name "soinit.os" -exec cp {} ${D}/lib/soinit.o \; + find ${S}/buildhere -name "sofini.os" -exec cp {} ${D}/lib/sofini.o \; + find ${S}/buildhere -name "*_pic.a" -exec cp {} ${D}/lib \; + find ${S}/buildhere -name "*.map" -exec cp {} ${D}/lib \; + for i in ${D}/lib/*.map + do + mv ${i} ${i%.map}_pic.map + done + fi + + # Is this next line actually needed or does the makefile get it right? + # It previously has 0755 perms which was killing things. + fperms 4755 /usr/lib/misc/pt_chown + + rm -f ${D}/etc/ld.so.cache + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f ${D}/etc/localtime + + # Some things want this, notably ash. + dosym /usr/lib/libbsd-compat.a /usr/lib/libbsd.a +} + +pkg_postinst() { + # Correct me if I am wrong here, but my /etc/localtime is a file + # created by zic .... + # I am thinking that it should only be recreated if no /etc/localtime + # exists, or if it is an invalid symlink. + # + # For invalid symlink: + # -f && -e will fail + # -L will succeed + # + if [ ! -e ${ROOT}/etc/localtime ] + then + echo "Please remember to set your timezone using the zic command." + rm -f ${ROOT}/etc/localtime + ln -s ../usr/share/zoneinfo/Factory ${ROOT}/etc/localtime + fi +} + |