summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAchim Gottinger <achim@gentoo.org>2001-01-25 18:00:27 +0000
committerAchim Gottinger <achim@gentoo.org>2001-01-25 18:00:27 +0000
commit4eda87a0b31972c8a88a83f5cb3e609dcc2c5bd1 (patch)
tree28ef823448248e2cc2e6c65a2a19494bfd5b7471 /sys-build
parentnew sys-build category added (diff)
downloadhistorical-4eda87a0b31972c8a88a83f5cb3e609dcc2c5bd1.tar.gz
historical-4eda87a0b31972c8a88a83f5cb3e609dcc2c5bd1.tar.bz2
historical-4eda87a0b31972c8a88a83f5cb3e609dcc2c5bd1.zip
First set of static build packages
Diffstat (limited to 'sys-build')
-rw-r--r--sys-build/bash/bash-2.04-r1.ebuild36
-rw-r--r--sys-build/bash/files/digest-bash-2.04-r11
-rw-r--r--sys-build/binutils/binutils-2.10.1.ebuild24
-rw-r--r--sys-build/binutils/files/digest-binutils-2.10.11
-rw-r--r--sys-build/bzip2/bzip2-1.0.1.ebuild34
-rw-r--r--sys-build/bzip2/files/digest-bzip2-1.0.11
-rw-r--r--sys-build/debianutils/debianutils-1.13.3-r1.ebuild31
-rw-r--r--sys-build/debianutils/files/digest-debianutils-1.13.3-r11
-rw-r--r--sys-build/diffutils/diffutils-2.7-r1.ebuild25
-rw-r--r--sys-build/diffutils/files/digest-diffutils-2.7-r11
-rw-r--r--sys-build/fileutils/files/digest-fileutils-4.0.331
-rw-r--r--sys-build/fileutils/fileutils-4.0.33.ebuild26
-rw-r--r--sys-build/gcc/files/digest-gcc-2.95.2-r46
-rw-r--r--sys-build/gcc/files/gcc-2.95.2.dif.gzbin0 -> 1644 bytes
-rw-r--r--sys-build/gcc/files/gcc-accept-doublecolon.diff.gzbin0 -> 367 bytes
-rw-r--r--sys-build/gcc/files/gcc-exception-fix.diff.gzbin0 -> 1487 bytes
-rw-r--r--sys-build/gcc/files/gcc-glibc-2.2-compat.diff332
-rw-r--r--sys-build/gcc/files/gccinclude-glibc-2.2-compat.diff50
-rw-r--r--sys-build/gcc/files/libioP.h657
-rw-r--r--sys-build/gcc/gcc-2.95.2-r4.ebuild79
-rw-r--r--sys-build/glibc/files/digest-glibc-2.2.12
-rw-r--r--sys-build/glibc/glibc-2.2.1.ebuild49
-rw-r--r--sys-build/grep/files/digest-grep-2.4.2-r11
-rw-r--r--sys-build/grep/grep-2.4.2-r1.ebuild28
-rw-r--r--sys-build/gzip/files/digest-gzip-1.2.4a-r11
-rw-r--r--sys-build/gzip/gzip-1.2.4a-r1.ebuild38
-rw-r--r--sys-build/make/files/digest-make-3.79.1-r11
-rw-r--r--sys-build/make/make-3.79.1-r1.ebuild26
-rw-r--r--sys-build/sed/files/digest-sed-3.02.801
-rw-r--r--sys-build/sed/sed-3.02.80.ebuild21
-rw-r--r--sys-build/sh-utils/files/digest-sh-utils-2.0j-r11
-rw-r--r--sys-build/sh-utils/sh-utils-2.0j-r1.ebuild40
-rw-r--r--sys-build/spython/files/digest-spython-2.0-r12
-rw-r--r--sys-build/spython/files/pfconfig.h17
-rw-r--r--sys-build/spython/spython-2.0-r1.ebuild62
-rw-r--r--sys-build/tar/files/digest-tar-1.13.18-r11
-rw-r--r--sys-build/tar/tar-1.13.18-r1.ebuild27
-rw-r--r--sys-build/textutils/files/digest-textutils-2.0.101
-rw-r--r--sys-build/textutils/textutils-2.0.10.ebuild38
39 files changed, 1663 insertions, 0 deletions
diff --git a/sys-build/bash/bash-2.04-r1.ebuild b/sys-build/bash/bash-2.04-r1.ebuild
new file mode 100644
index 000000000000..b5d376e80ab8
--- /dev/null
+++ b/sys-build/bash/bash-2.04-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/bash/bash-2.04-r1.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="The standard GNU Bourne again shell"
+SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/bash/${A}
+ ftp://ftp.gnu.org/gnu/bash/${A}"
+
+HOMEPAGE="http://www.gnu.org/software/bash/bash.html"
+
+src_compile() {
+
+ cd ${S}
+ echo $THOST
+ try ./configure --prefix=/ --build=${CHOST} --target=${THOST} \
+ --disable-profiling --with-curses \
+ --enable-static-link --disable-nls
+ cp Makefile Makefile.orig
+ sed -e "s:-lcurses:-lncurses:" Makefile.orig > Makefile
+ try pmake
+}
+
+
+
+src_install() {
+ cd ${S}
+ make prefix=${D}/usr install
+ dodir /bin
+ mv ${D}/usr/bin/bash ${D}/bin
+ dosym bash /bin/sh
+ rm -rf ${D}/usr
+}
+
diff --git a/sys-build/bash/files/digest-bash-2.04-r1 b/sys-build/bash/files/digest-bash-2.04-r1
new file mode 100644
index 000000000000..2357c32167ec
--- /dev/null
+++ b/sys-build/bash/files/digest-bash-2.04-r1
@@ -0,0 +1 @@
+MD5 49b548a8b72a4c925ff26930e4c31c6c bash-2.04.tar.gz
diff --git a/sys-build/binutils/binutils-2.10.1.ebuild b/sys-build/binutils/binutils-2.10.1.ebuild
new file mode 100644
index 000000000000..1e3c1e1a0b48
--- /dev/null
+++ b/sys-build/binutils/binutils-2.10.1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/binutils/binutils-2.10.1.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="Tools necessary to build programs"
+SRC_URI="ftp://ftp.gnu.org/gnu/binutils/${A}"
+
+src_compile() {
+ try ./configure --prefix=/usr --host=${CHOST} \
+ --disable-nls
+ try make -e LDFLAGS=-all-static tooldir=/usr ${MAKEOPTS}
+}
+
+src_install() {
+ try make prefix=${D}/usr tooldir=${D}/usr install
+ rm -rf ${D}/usr/man
+
+}
+
+
+
diff --git a/sys-build/binutils/files/digest-binutils-2.10.1 b/sys-build/binutils/files/digest-binutils-2.10.1
new file mode 100644
index 000000000000..ec81f98fe173
--- /dev/null
+++ b/sys-build/binutils/files/digest-binutils-2.10.1
@@ -0,0 +1 @@
+MD5 3e8be56825395a075a71e0b7e8da206a binutils-2.10.1.tar.gz
diff --git a/sys-build/bzip2/bzip2-1.0.1.ebuild b/sys-build/bzip2/bzip2-1.0.1.ebuild
new file mode 100644
index 000000000000..8917ec11ea06
--- /dev/null
+++ b/sys-build/bzip2/bzip2-1.0.1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/bzip2/bzip2-1.0.1.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="A high-quality data compressor used extensively by Gentoo"
+SRC_URI="ftp://sourceware.cygnus.com/pub/bzip2/v100/${A}
+ ftp://ftp.freesoftware.com/pub/sourceware/bzip2/v100/${A}"
+
+HOMEPAGE="http://sourceware.cygnus.com/bzip2/"
+
+
+src_unpack() {
+ unpack ${A}
+ # bzip2's try makefile does not use CFLAGS so we hard-wire the compile
+ # options using sed ;)
+ cd ${S}
+ cp Makefile Makefile.orig
+ sed -e "s/-O2/${CFLAGS}/" Makefile.orig > Makefile
+}
+
+src_compile() {
+ try pmake LDFLAGS=-static all
+}
+src_install() {
+ into /
+ dobin bzip2
+ cd ${D}/bin
+ ln bzip2 bunzip2
+}
+
+
diff --git a/sys-build/bzip2/files/digest-bzip2-1.0.1 b/sys-build/bzip2/files/digest-bzip2-1.0.1
new file mode 100644
index 000000000000..4a2d8e5861de
--- /dev/null
+++ b/sys-build/bzip2/files/digest-bzip2-1.0.1
@@ -0,0 +1 @@
+MD5 770135dc94369cb3eb6013ed505c8dc5 bzip2-1.0.1.tar.gz
diff --git a/sys-build/debianutils/debianutils-1.13.3-r1.ebuild b/sys-build/debianutils/debianutils-1.13.3-r1.ebuild
new file mode 100644
index 000000000000..82ac02793b56
--- /dev/null
+++ b/sys-build/debianutils/debianutils-1.13.3-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/debianutils/debianutils-1.13.3-r1.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+P=debianutils-1.13.3
+A=debianutils_1.13.3.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="A selection of tools from Debian"
+SRC_URI="ftp://ftp.debian.org/debian/dists/potato/main/source/base/${A}"
+
+src_compile() {
+ try pmake LDFLAGS=-static
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ mv Makefile Makefile.orig
+ sed -e "s/-O2 -g/${CFLAGS}/" Makefile.orig > Makefile
+}
+
+src_install() {
+
+ into /
+ dobin readlink tempfile mktemp
+
+}
+
+
+
diff --git a/sys-build/debianutils/files/digest-debianutils-1.13.3-r1 b/sys-build/debianutils/files/digest-debianutils-1.13.3-r1
new file mode 100644
index 000000000000..30079b8cc3cd
--- /dev/null
+++ b/sys-build/debianutils/files/digest-debianutils-1.13.3-r1
@@ -0,0 +1 @@
+MD5 91511bc2eec9beebb23cf22fb57a202e debianutils_1.13.3.tar.gz
diff --git a/sys-build/diffutils/diffutils-2.7-r1.ebuild b/sys-build/diffutils/diffutils-2.7-r1.ebuild
new file mode 100644
index 000000000000..97eb2af52ba2
--- /dev/null
+++ b/sys-build/diffutils/diffutils-2.7-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/diffutils/diffutils-2.7-r1.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+P=diffutils-2.7
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="Tools to make diffs and compare files"
+SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/diffutils/${A}
+ ftp://ftp.gnu.org/gnu/diffutils/${A}"
+
+HOMEPAGE="http://www.gnu.org/software/diffutils/diffutils.html"
+
+src_compile() {
+ try ./configure --host=${CHOST} --prefix=/usr --disable-nls
+ try pmake LDFLAGS=-static
+}
+
+src_install() {
+ into /usr
+ dobin cmp diff diff3 sdiff
+}
+
+
diff --git a/sys-build/diffutils/files/digest-diffutils-2.7-r1 b/sys-build/diffutils/files/digest-diffutils-2.7-r1
new file mode 100644
index 000000000000..d4b1dc7fc3ff
--- /dev/null
+++ b/sys-build/diffutils/files/digest-diffutils-2.7-r1
@@ -0,0 +1 @@
+MD5 300d86a0566afee1c3756828f6c9538a diffutils-2.7.tar.gz
diff --git a/sys-build/fileutils/files/digest-fileutils-4.0.33 b/sys-build/fileutils/files/digest-fileutils-4.0.33
new file mode 100644
index 000000000000..47c24eef9ef3
--- /dev/null
+++ b/sys-build/fileutils/files/digest-fileutils-4.0.33
@@ -0,0 +1 @@
+MD5 76076369cef8a091a21e18dffe770a04 fileutils-4.0.33.tar.gz
diff --git a/sys-build/fileutils/fileutils-4.0.33.ebuild b/sys-build/fileutils/fileutils-4.0.33.ebuild
new file mode 100644
index 000000000000..0046e7e5cd93
--- /dev/null
+++ b/sys-build/fileutils/fileutils-4.0.33.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Achim Gottinger <achim@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/fileutils/fileutils-4.0.33.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="Standard GNU file utilities (chmod, cp, dd, dir, ls, etc)"
+SRC_URI="ftp://alpha.gnu.org/gnu/fetish/${A}"
+HOMEPAGE="http://www.gnu.org/software/fileutils/fileutils.html"
+
+
+src_compile() {
+ try ./configure --prefix=/usr --host=${CHOST} --disable-nls
+ try make ${MAKEOPTS} LDFLAGS=-static
+}
+
+src_install() {
+ cd ${S}/src
+ into /
+ dobin chgrp chown dd dir du ln mkdir mknod rm touch \
+ chmod cp df ls mkfifo mv rmdir sync
+ newbin ginstall install
+
+}
+
diff --git a/sys-build/gcc/files/digest-gcc-2.95.2-r4 b/sys-build/gcc/files/digest-gcc-2.95.2-r4
new file mode 100644
index 000000000000..8cbef92431a6
--- /dev/null
+++ b/sys-build/gcc/files/digest-gcc-2.95.2-r4
@@ -0,0 +1,6 @@
+MD5 0e36957d734286e242e9697fd2806c4f gcc-2.95.2.tar.gz
+MD5 2826dbbd081646c459b1774145ffd7bf libg++-2.8.1.3.tar.gz
+MD5 906124171f15ee1585d840ed7d174009 libg++-2.8.1.3-20000312.diff.gz
+MD5 47b93312badd9550ccb7d113bbf0242a libg++-2.8.1.3-20000419.diff.gz
+MD5 9e00e62b8fb7af3e41364b7c6d9f4cf8 libg++-2.8.1.3-20000816.diff.gz
+MD5 625dd5a953661b901c876f92c2c5e7a6 libg++-2.8.1.3-20000914.diff.gz
diff --git a/sys-build/gcc/files/gcc-2.95.2.dif.gz b/sys-build/gcc/files/gcc-2.95.2.dif.gz
new file mode 100644
index 000000000000..034d06a0a335
--- /dev/null
+++ b/sys-build/gcc/files/gcc-2.95.2.dif.gz
Binary files differ
diff --git a/sys-build/gcc/files/gcc-accept-doublecolon.diff.gz b/sys-build/gcc/files/gcc-accept-doublecolon.diff.gz
new file mode 100644
index 000000000000..ced5ee0bd788
--- /dev/null
+++ b/sys-build/gcc/files/gcc-accept-doublecolon.diff.gz
Binary files differ
diff --git a/sys-build/gcc/files/gcc-exception-fix.diff.gz b/sys-build/gcc/files/gcc-exception-fix.diff.gz
new file mode 100644
index 000000000000..db8e6bce0898
--- /dev/null
+++ b/sys-build/gcc/files/gcc-exception-fix.diff.gz
Binary files differ
diff --git a/sys-build/gcc/files/gcc-glibc-2.2-compat.diff b/sys-build/gcc/files/gcc-glibc-2.2-compat.diff
new file mode 100644
index 000000000000..671311b716f7
--- /dev/null
+++ b/sys-build/gcc/files/gcc-glibc-2.2-compat.diff
@@ -0,0 +1,332 @@
+2000-09-21 Bruno Haible <haible@clisp.cons.org>
+
+ * libio.h: For glibc-2.2, set _IO_USER_LOCK to the value defined
+ in /usr/include/libio.h.
+
+1999-12-13 Jakub Jelinek <jakub@redhat.com>
+
+ * libio.h (_IO_cookie_io_functions_t): Use _IO_off_t instead of
+ _IO_fpos_t.
+ (_IO_seekoff, _IO_seekpos): Likewise. Use _IO_off64_t instead of
+ _IO_fpos64_t.
+ * libioP.h (_IO_seekoff_t, _IO_seekpos_t, _IO_seek_t): Likewise.
+ (_IO_seekoff, _IO_seekpos): Likewise.
+ (_IO_default_seekoff, _IO_default_seekpos): Likewise.
+ (_IO_default_seek): Likewise.
+ (_IO_file_seekoff, _IO_file_seek, _IO_str_seekoff): Likewise.
+ * streambuf.h (streampos): Typedef to _IO_off_t resp. _IO_off64_t.
+ * parsestream.h (class parsebuf::pos_at_line_start): Change type
+ to _IO_off_t.
+
+*** libio/libio.h.jj Mon Jun 29 20:06:26 1998
+--- libio/libio.h Thu Sep 21 02:14:17 2000
+***************
+*** 163,168 ****
+--- 163,171 ----
+ #ifdef _IO_MTSAFE_IO
+ # if defined __GLIBC__ && __GLIBC__ >= 2
+ # if __GLIBC_MINOR__ > 0
++ # if __GLIBC_MINOR__ >= 2
++ # define _IO_USER_LOCK 0x8000
++ # endif
+ # include <bits/stdio-lock.h>
+ # else
+ # include <stdio-lock.h>
+***************
+*** 277,283 ****
+ {
+ _IO_ssize_t (*read) __PMT ((struct _IO_FILE *, void *, _IO_ssize_t));
+ _IO_ssize_t (*write) __PMT ((struct _IO_FILE *, const void *, _IO_ssize_t));
+! _IO_fpos_t (*seek) __PMT ((struct _IO_FILE *, _IO_off_t, int));
+ int (*close) __PMT ((struct _IO_FILE *));
+ } _IO_cookie_io_functions_t;
+
+--- 280,286 ----
+ {
+ _IO_ssize_t (*read) __PMT ((struct _IO_FILE *, void *, _IO_ssize_t));
+ _IO_ssize_t (*write) __PMT ((struct _IO_FILE *, const void *, _IO_ssize_t));
+! _IO_off_t (*seek) __PMT ((struct _IO_FILE *, _IO_off_t, int));
+ int (*close) __PMT ((struct _IO_FILE *));
+ } _IO_cookie_io_functions_t;
+
+***************
+*** 348,358 ****
+ extern _IO_size_t _IO_sgetn __P ((_IO_FILE *, void *, _IO_size_t));
+
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_fpos64_t _IO_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+! extern _IO_fpos64_t _IO_seekpos __P ((_IO_FILE *, _IO_fpos64_t, int));
+ #else
+! extern _IO_fpos_t _IO_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+! extern _IO_fpos_t _IO_seekpos __P ((_IO_FILE *, _IO_fpos_t, int));
+ #endif
+
+ extern void _IO_free_backup_area __P ((_IO_FILE *));
+--- 351,361 ----
+ extern _IO_size_t _IO_sgetn __P ((_IO_FILE *, void *, _IO_size_t));
+
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_off64_t _IO_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+! extern _IO_off64_t _IO_seekpos __P ((_IO_FILE *, _IO_off64_t, int));
+ #else
+! extern _IO_off_t _IO_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+! extern _IO_off_t _IO_seekpos __P ((_IO_FILE *, _IO_off_t, int));
+ #endif
+
+ extern void _IO_free_backup_area __P ((_IO_FILE *));
+*** libio/libioP.h.jj Mon May 17 18:58:56 1999
+--- libio/libioP.h Mon May 15 16:14:00 2000
+***************
+*** 146,155 ****
+ It matches the streambuf::seekoff virtual function.
+ It is also used for the ANSI fseek function. */
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! typedef _IO_fpos64_t (*_IO_seekoff_t) __PMT ((_IO_FILE *FP, _IO_off64_t OFF,
+ int DIR, int MODE));
+ #else
+! typedef _IO_fpos_t (*_IO_seekoff_t) __PMT ((_IO_FILE *FP, _IO_off_t OFF,
+ int DIR, int MODE));
+ #endif
+ #define _IO_SEEKOFF(FP, OFF, DIR, MODE) JUMP3 (__seekoff, FP, OFF, DIR, MODE)
+--- 146,155 ----
+ It matches the streambuf::seekoff virtual function.
+ It is also used for the ANSI fseek function. */
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! typedef _IO_off64_t (*_IO_seekoff_t) __PMT ((_IO_FILE *FP, _IO_off64_t OFF,
+ int DIR, int MODE));
+ #else
+! typedef _IO_off_t (*_IO_seekoff_t) __PMT ((_IO_FILE *FP, _IO_off_t OFF,
+ int DIR, int MODE));
+ #endif
+ #define _IO_SEEKOFF(FP, OFF, DIR, MODE) JUMP3 (__seekoff, FP, OFF, DIR, MODE)
+***************
+*** 160,168 ****
+ It is also used for the ANSI fgetpos and fsetpos functions. */
+ /* The _IO_seek_cur and _IO_seek_end options are not allowed. */
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! typedef _IO_fpos64_t (*_IO_seekpos_t) __PMT ((_IO_FILE *, _IO_fpos64_t, int));
+ #else
+! typedef _IO_fpos_t (*_IO_seekpos_t) __PMT ((_IO_FILE *, _IO_fpos_t, int));
+ #endif
+ #define _IO_SEEKPOS(FP, POS, FLAGS) JUMP2 (__seekpos, FP, POS, FLAGS)
+
+--- 160,168 ----
+ It is also used for the ANSI fgetpos and fsetpos functions. */
+ /* The _IO_seek_cur and _IO_seek_end options are not allowed. */
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! typedef _IO_off64_t (*_IO_seekpos_t) __PMT ((_IO_FILE *, _IO_off64_t, int));
+ #else
+! typedef _IO_off_t (*_IO_seekpos_t) __PMT ((_IO_FILE *, _IO_off_t, int));
+ #endif
+ #define _IO_SEEKPOS(FP, POS, FLAGS) JUMP2 (__seekpos, FP, POS, FLAGS)
+
+***************
+*** 213,221 ****
+ It matches the streambuf::sys_seek virtual function, which is
+ specific to this implementation. */
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! typedef _IO_fpos64_t (*_IO_seek_t) __PMT ((_IO_FILE *, _IO_off64_t, int));
+ #else
+! typedef _IO_fpos_t (*_IO_seek_t) __PMT ((_IO_FILE *, _IO_off_t, int));
+ #endif
+ #define _IO_SYSSEEK(FP, OFFSET, MODE) JUMP2 (__seek, FP, OFFSET, MODE)
+
+--- 213,221 ----
+ It matches the streambuf::sys_seek virtual function, which is
+ specific to this implementation. */
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! typedef _IO_off64_t (*_IO_seek_t) __PMT ((_IO_FILE *, _IO_off64_t, int));
+ #else
+! typedef _IO_off_t (*_IO_seek_t) __PMT ((_IO_FILE *, _IO_off_t, int));
+ #endif
+ #define _IO_SYSSEEK(FP, OFFSET, MODE) JUMP2 (__seek, FP, OFFSET, MODE)
+
+***************
+*** 298,308 ****
+ /* Generic functions */
+
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_fpos64_t _IO_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+! extern _IO_fpos64_t _IO_seekpos __P ((_IO_FILE *, _IO_fpos64_t, int));
+ #else
+! extern _IO_fpos_t _IO_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+! extern _IO_fpos_t _IO_seekpos __P ((_IO_FILE *, _IO_fpos_t, int));
+ #endif
+
+ extern void _IO_switch_to_main_get_area __P ((_IO_FILE *));
+--- 298,308 ----
+ /* Generic functions */
+
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_off64_t _IO_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+! extern _IO_off64_t _IO_seekpos __P ((_IO_FILE *, _IO_off64_t, int));
+ #else
+! extern _IO_off_t _IO_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+! extern _IO_off_t _IO_seekpos __P ((_IO_FILE *, _IO_off_t, int));
+ #endif
+
+ extern void _IO_switch_to_main_get_area __P ((_IO_FILE *));
+***************
+*** 340,361 ****
+ _IO_size_t));
+ extern _IO_size_t _IO_default_xsgetn __P ((_IO_FILE *, void *, _IO_size_t));
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_fpos64_t _IO_default_seekoff __P ((_IO_FILE *,
+ _IO_off64_t, int, int));
+! extern _IO_fpos64_t _IO_default_seekpos __P ((_IO_FILE *,
+! _IO_fpos64_t, int));
+ #else
+! extern _IO_fpos_t _IO_default_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+! extern _IO_fpos_t _IO_default_seekpos __P ((_IO_FILE *, _IO_fpos_t, int));
+ #endif
+ extern _IO_ssize_t _IO_default_write __P ((_IO_FILE *, const void *,
+ _IO_ssize_t));
+ extern _IO_ssize_t _IO_default_read __P ((_IO_FILE *, void *, _IO_ssize_t));
+ extern int _IO_default_stat __P ((_IO_FILE *, void *));
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_fpos64_t _IO_default_seek __P ((_IO_FILE *, _IO_off64_t, int));
+ #else
+! extern _IO_fpos_t _IO_default_seek __P ((_IO_FILE *, _IO_off_t, int));
+ #endif
+ extern int _IO_default_sync __P ((_IO_FILE *));
+ #define _IO_default_close ((_IO_close_t) _IO_default_sync)
+--- 340,361 ----
+ _IO_size_t));
+ extern _IO_size_t _IO_default_xsgetn __P ((_IO_FILE *, void *, _IO_size_t));
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_off64_t _IO_default_seekoff __P ((_IO_FILE *,
+ _IO_off64_t, int, int));
+! extern _IO_off64_t _IO_default_seekpos __P ((_IO_FILE *,
+! _IO_off64_t, int));
+ #else
+! extern _IO_off_t _IO_default_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+! extern _IO_off_t _IO_default_seekpos __P ((_IO_FILE *, _IO_off_t, int));
+ #endif
+ extern _IO_ssize_t _IO_default_write __P ((_IO_FILE *, const void *,
+ _IO_ssize_t));
+ extern _IO_ssize_t _IO_default_read __P ((_IO_FILE *, void *, _IO_ssize_t));
+ extern int _IO_default_stat __P ((_IO_FILE *, void *));
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_off64_t _IO_default_seek __P ((_IO_FILE *, _IO_off64_t, int));
+ #else
+! extern _IO_off_t _IO_default_seek __P ((_IO_FILE *, _IO_off_t, int));
+ #endif
+ extern int _IO_default_sync __P ((_IO_FILE *));
+ #define _IO_default_close ((_IO_close_t) _IO_default_sync)
+***************
+*** 389,399 ****
+ extern int _IO_file_doallocate __P ((_IO_FILE *));
+ extern _IO_FILE* _IO_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_fpos64_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+! extern _IO_fpos64_t _IO_file_seek __P ((_IO_FILE *, _IO_off64_t, int));
+ #else
+! extern _IO_fpos_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+! extern _IO_fpos_t _IO_file_seek __P ((_IO_FILE *, _IO_off_t, int));
+ #endif
+ extern _IO_size_t _IO_file_xsputn __P ((_IO_FILE *, const void *, _IO_size_t));
+ extern int _IO_file_stat __P ((_IO_FILE *, void *));
+--- 389,399 ----
+ extern int _IO_file_doallocate __P ((_IO_FILE *));
+ extern _IO_FILE* _IO_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_off64_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+! extern _IO_off64_t _IO_file_seek __P ((_IO_FILE *, _IO_off64_t, int));
+ #else
+! extern _IO_off_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+! extern _IO_off_t _IO_file_seek __P ((_IO_FILE *, _IO_off_t, int));
+ #endif
+ extern _IO_size_t _IO_file_xsputn __P ((_IO_FILE *, const void *, _IO_size_t));
+ extern int _IO_file_stat __P ((_IO_FILE *, void *));
+***************
+*** 427,435 ****
+ extern int _IO_str_overflow __P ((_IO_FILE *, int));
+ extern int _IO_str_pbackfail __P ((_IO_FILE *, int));
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_fpos64_t _IO_str_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+ #else
+! extern _IO_fpos_t _IO_str_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+ #endif
+ extern void _IO_str_finish __P ((_IO_FILE *, int));
+
+--- 427,435 ----
+ extern int _IO_str_overflow __P ((_IO_FILE *, int));
+ extern int _IO_str_pbackfail __P ((_IO_FILE *, int));
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! extern _IO_off64_t _IO_str_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+ #else
+! extern _IO_off_t _IO_str_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+ #endif
+ extern void _IO_str_finish __P ((_IO_FILE *, int));
+
+***************
+*** 544,555 ****
+ where an _IO_fpos_t is a struct.
+ Note that _IO_off_t must be an integral type. */
+
+! /* _IO_pos_BAD is an _IO_fpos_t value indicating error, unknown, or EOF. */
+ #ifndef _IO_pos_BAD
+ # if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! # define _IO_pos_BAD ((_IO_fpos64_t) -1)
+ # else
+! # define _IO_pos_BAD ((_IO_fpos_t) -1)
+ # endif
+ #endif
+ /* _IO_pos_as_off converts an _IO_fpos_t value to an _IO_off_t value. */
+--- 544,555 ----
+ where an _IO_fpos_t is a struct.
+ Note that _IO_off_t must be an integral type. */
+
+! /* _IO_pos_BAD is an _IO_off_t value indicating error, unknown, or EOF. */
+ #ifndef _IO_pos_BAD
+ # if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+! # define _IO_pos_BAD ((_IO_off64_t) -1)
+ # else
+! # define _IO_pos_BAD ((_IO_off_t) -1)
+ # endif
+ #endif
+ /* _IO_pos_as_off converts an _IO_fpos_t value to an _IO_off_t value. */
+*** libio/streambuf.h.jj Sun Aug 8 20:07:01 1999
+--- libio/streambuf.h Mon May 15 16:04:27 2000
+***************
+*** 72,81 ****
+
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+ typedef _IO_off64_t streamoff;
+! typedef _IO_fpos64_t streampos;
+ #else
+ typedef _IO_off_t streamoff;
+! typedef _IO_fpos_t streampos;
+ #endif
+ typedef _IO_ssize_t streamsize;
+
+--- 72,81 ----
+
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+ typedef _IO_off64_t streamoff;
+! typedef _IO_off64_t streampos;
+ #else
+ typedef _IO_off_t streamoff;
+! typedef _IO_off_t streampos;
+ #endif
+ typedef _IO_ssize_t streamsize;
+
+*** libio/parsestream.h.jj Thu Aug 21 18:58:20 1997
+--- libio/parsestream.h Mon May 15 16:04:27 2000
+***************
+*** 42,48 ****
+
+ class parsebuf : public streambuf {
+ protected:
+! _IO_fpos_t pos_at_line_start;
+ long _line_length;
+ unsigned long __line_number;
+ char *buf_start;
+--- 42,48 ----
+
+ class parsebuf : public streambuf {
+ protected:
+! _IO_off_t pos_at_line_start;
+ long _line_length;
+ unsigned long __line_number;
+ char *buf_start;
diff --git a/sys-build/gcc/files/gccinclude-glibc-2.2-compat.diff b/sys-build/gcc/files/gccinclude-glibc-2.2-compat.diff
new file mode 100644
index 000000000000..58c960175128
--- /dev/null
+++ b/sys-build/gcc/files/gccinclude-glibc-2.2-compat.diff
@@ -0,0 +1,50 @@
+1999-12-13 Jakub Jelinek <jakub@redhat.com>
+
+ * streambuf.h (streampos): Typedef to _IO_off_t resp. _IO_off64_t.
+ * parsestream.h (class parsebuf::pos_at_line_start): Change type
+ to _IO_off_t.
+
+*** include/g++/streambuf.h.jj Sun Aug 8 20:07:01 1999
+--- include/g++/streambuf.h Mon May 15 16:04:27 2000
+***************
+*** 72,81 ****
+
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+ typedef _IO_off64_t streamoff;
+! typedef _IO_fpos64_t streampos;
+ #else
+ typedef _IO_off_t streamoff;
+! typedef _IO_fpos_t streampos;
+ #endif
+ typedef _IO_ssize_t streamsize;
+
+--- 72,81 ----
+
+ #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+ typedef _IO_off64_t streamoff;
+! typedef _IO_off64_t streampos;
+ #else
+ typedef _IO_off_t streamoff;
+! typedef _IO_off_t streampos;
+ #endif
+ typedef _IO_ssize_t streamsize;
+
+*** include/g++/parsestream.h.jj Thu Aug 21 18:58:20 1997
+--- include/g++/parsestream.h Mon May 15 16:04:27 2000
+***************
+*** 42,48 ****
+
+ class parsebuf : public streambuf {
+ protected:
+! _IO_fpos_t pos_at_line_start;
+ long _line_length;
+ unsigned long __line_number;
+ char *buf_start;
+--- 42,48 ----
+
+ class parsebuf : public streambuf {
+ protected:
+! _IO_off_t pos_at_line_start;
+ long _line_length;
+ unsigned long __line_number;
+ char *buf_start;
diff --git a/sys-build/gcc/files/libioP.h b/sys-build/gcc/files/libioP.h
new file mode 100644
index 000000000000..7d57a99a2225
--- /dev/null
+++ b/sys-build/gcc/files/libioP.h
@@ -0,0 +1,657 @@
+/* Copyright (C) 1993, 1997, 2000 Free Software Foundation, Inc.
+ This file is part of the GNU IO Library.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2, or (at
+ your option) any later version.
+
+ This library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this library; see the file COPYING. If not, write to
+ the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA.
+
+ As a special exception, if you link this library with files
+ compiled with a GNU compiler to produce an executable, this does
+ not cause the resulting executable to be covered by the GNU General
+ Public License. This exception does not however invalidate any
+ other reasons why the executable file might be covered by the GNU
+ General Public License. */
+
+#ifndef _POSIX_SOURCE
+# define _POSIX_SOURCE
+#endif
+
+#include <errno.h>
+#ifndef __set_errno
+# define __set_errno(Val) errno = (Val)
+#endif
+
+#ifdef _IO_MTSAFE_IO
+# if defined __GLIBC__ && __GLIBC__ >= 2
+# if __GLIBC_MINOR__ > 0
+# include <bits/libc-lock.h>
+# else
+# include <libc-lock.h>
+# endif
+# else
+/*# include <comthread.h>*/
+# endif
+#endif
+
+#include "iolibio.h"
+
+#ifndef _IO_USER_LOCK
+#define _IO_USER_LOCK 0x8000
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define _IO_seek_set 0
+#define _IO_seek_cur 1
+#define _IO_seek_end 2
+
+/* THE JUMPTABLE FUNCTIONS.
+
+ * The _IO_FILE type is used to implement the FILE type in GNU libc,
+ * as well as the streambuf class in GNU iostreams for C++.
+ * These are all the same, just used differently.
+ * An _IO_FILE (or FILE) object is allows followed by a pointer to
+ * a jump table (of pointers to functions). The pointer is accessed
+ * with the _IO_JUMPS macro. The jump table has a eccentric format,
+ * so as to be compatible with the layout of a C++ virtual function table.
+ * (as implemented by g++). When a pointer to a streambuf object is
+ * coerced to an (_IO_FILE*), then _IO_JUMPS on the result just
+ * happens to point to the virtual function table of the streambuf.
+ * Thus the _IO_JUMPS function table used for C stdio/libio does
+ * double duty as the virtual function table for C++ streambuf.
+ *
+ * The entries in the _IO_JUMPS function table (and hence also the
+ * virtual functions of a streambuf) are described below.
+ * The first parameter of each function entry is the _IO_FILE/streambuf
+ * object being acted on (i.e. the 'this' parameter).
+ */
+
+#define _IO_JUMPS(THIS) ((struct _IO_FILE_plus *) (THIS))->vtable
+#ifdef _G_USING_THUNKS
+# define JUMP_FIELD(TYPE, NAME) TYPE NAME
+# define JUMP0(FUNC, THIS) _IO_JUMPS(THIS)->FUNC (THIS)
+# define JUMP1(FUNC, THIS, X1) _IO_JUMPS(THIS)->FUNC (THIS, X1)
+# define JUMP2(FUNC, THIS, X1, X2) _IO_JUMPS(THIS)->FUNC (THIS, X1, X2)
+# define JUMP3(FUNC, THIS, X1,X2,X3) _IO_JUMPS(THIS)->FUNC (THIS, X1,X2, X3)
+# define JUMP_INIT(NAME, VALUE) VALUE
+# define JUMP_INIT_DUMMY JUMP_INIT(dummy, 0), JUMP_INIT (dummy2, 0)
+#else
+/* These macros will change when we re-implement vtables to use "thunks"! */
+# define JUMP_FIELD(TYPE, NAME) struct { short delta1, delta2; TYPE pfn; } NAME
+# define JUMP0(FUNC, THIS) _IO_JUMPS(THIS)->FUNC.pfn (THIS)
+# define JUMP1(FUNC, THIS, X1) _IO_JUMPS(THIS)->FUNC.pfn (THIS, X1)
+# define JUMP2(FUNC, THIS, X1, X2) _IO_JUMPS(THIS)->FUNC.pfn (THIS, X1, X2)
+# define JUMP3(FUNC, THIS, X1,X2,X3) _IO_JUMPS(THIS)->FUNC.pfn (THIS, X1,X2,X3)
+# define JUMP_INIT(NAME, VALUE) {0, 0, VALUE}
+# define JUMP_INIT_DUMMY JUMP_INIT(dummy, 0)
+#endif
+
+/* The 'finish' function does any final cleaning up of an _IO_FILE object.
+ It does not delete (free) it, but does everything else to finalize it/
+ It matches the streambuf::~streambuf virtual destructor. */
+typedef void (*_IO_finish_t) __PMT ((_IO_FILE *, int)); /* finalize */
+#define _IO_FINISH(FP) JUMP1 (__finish, FP, 0)
+
+/* The 'overflow' hook flushes the buffer.
+ The second argument is a character, or EOF.
+ It matches the streambuf::overflow virtual function. */
+typedef int (*_IO_overflow_t) __PMT ((_IO_FILE *, int));
+#define _IO_OVERFLOW(FP, CH) JUMP1 (__overflow, FP, CH)
+
+/* The 'underflow' hook tries to fills the get buffer.
+ It returns the next character (as an unsigned char) or EOF. The next
+ character remains in the get buffer, and the get position is not changed.
+ It matches the streambuf::underflow virtual function. */
+typedef int (*_IO_underflow_t) __PMT ((_IO_FILE *));
+#define _IO_UNDERFLOW(FP) JUMP0 (__underflow, FP)
+
+/* The 'uflow' hook returns the next character in the input stream
+ (cast to unsigned char), and increments the read position;
+ EOF is returned on failure.
+ It matches the streambuf::uflow virtual function, which is not in the
+ cfront implementation, but was added to C++ by the ANSI/ISO committee. */
+#define _IO_UFLOW(FP) JUMP0 (__uflow, FP)
+
+/* The 'pbackfail' hook handles backing up.
+ It matches the streambuf::pbackfail virtual function. */
+typedef int (*_IO_pbackfail_t) __PMT ((_IO_FILE *, int));
+#define _IO_PBACKFAIL(FP, CH) JUMP1 (__pbackfail, FP, CH)
+
+/* The 'xsputn' hook writes upto N characters from buffer DATA.
+ Returns the number of character actually written.
+ It matches the streambuf::xsputn virtual function. */
+typedef _IO_size_t (*_IO_xsputn_t) __PMT ((_IO_FILE *FP, const void *DATA,
+ _IO_size_t N));
+#define _IO_XSPUTN(FP, DATA, N) JUMP2 (__xsputn, FP, DATA, N)
+
+/* The 'xsgetn' hook reads upto N characters into buffer DATA.
+ Returns the number of character actually read.
+ It matches the streambuf::xsgetn virtual function. */
+typedef _IO_size_t (*_IO_xsgetn_t) __PMT ((_IO_FILE *FP, void *DATA,
+ _IO_size_t N));
+#define _IO_XSGETN(FP, DATA, N) JUMP2 (__xsgetn, FP, DATA, N)
+
+/* The 'seekoff' hook moves the stream position to a new position
+ relative to the start of the file (if DIR==0), the current position
+ (MODE==1), or the end of the file (MODE==2).
+ It matches the streambuf::seekoff virtual function.
+ It is also used for the ANSI fseek function. */
+#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+typedef _IO_off64_t (*_IO_seekoff_t) __PMT ((_IO_FILE *FP, _IO_off64_t OFF,
+ int DIR, int MODE));
+#else
+typedef _IO_off_t (*_IO_seekoff_t) __PMT ((_IO_FILE *FP, _IO_off_t OFF,
+ int DIR, int MODE));
+#endif
+#define _IO_SEEKOFF(FP, OFF, DIR, MODE) JUMP3 (__seekoff, FP, OFF, DIR, MODE)
+
+/* The 'seekpos' hook also moves the stream position,
+ but to an absolute position given by a fpos_t (seekpos).
+ It matches the streambuf::seekpos virtual function.
+ It is also used for the ANSI fgetpos and fsetpos functions. */
+/* The _IO_seek_cur and _IO_seek_end options are not allowed. */
+#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+typedef _IO_off64_t (*_IO_seekpos_t) __PMT ((_IO_FILE *, _IO_off64_t, int));
+#else
+typedef _IO_off_t (*_IO_seekpos_t) __PMT ((_IO_FILE *, _IO_off_t, int));
+#endif
+#define _IO_SEEKPOS(FP, POS, FLAGS) JUMP2 (__seekpos, FP, POS, FLAGS)
+
+/* The 'setbuf' hook gives a buffer to the file.
+ It matches the streambuf::setbuf virtual function. */
+typedef _IO_FILE* (*_IO_setbuf_t) __PMT ((_IO_FILE *, char *, _IO_ssize_t));
+#define _IO_SETBUF(FP, BUFFER, LENGTH) JUMP2 (__setbuf, FP, BUFFER, LENGTH)
+
+/* The 'sync' hook attempts to synchronize the internal data structures
+ of the file with the external state.
+ It matches the streambuf::sync virtual function. */
+typedef int (*_IO_sync_t) __PMT ((_IO_FILE *));
+#define _IO_SYNC(FP) JUMP0 (__sync, FP)
+
+/* The 'doallocate' hook is used to tell the file to allocate a buffer.
+ It matches the streambuf::doallocate virtual function, which is not
+ in the ANSI/ISO C++ standard, but is part traditional implementations. */
+typedef int (*_IO_doallocate_t) __PMT ((_IO_FILE *));
+#define _IO_DOALLOCATE(FP) JUMP0 (__doallocate, FP)
+
+/* The following four hooks (sysread, syswrite, sysclose, sysseek, and
+ sysstat) are low-level hooks specific to this implementation.
+ There is no correspondence in the ANSI/ISO C++ standard library.
+ The hooks basically correspond to the Unix system functions
+ (read, write, close, lseek, and stat) except that a _IO_FILE*
+ parameter is used instead of a integer file descriptor; the default
+ implementation used for normal files just calls those functions.
+ The advantage of overriding these functions instead of the higher-level
+ ones (underflow, overflow etc) is that you can leave all the buffering
+ higher-level functions. */
+
+/* The 'sysread' hook is used to read data from the external file into
+ an existing buffer. It generalizes the Unix read(2) function.
+ It matches the streambuf::sys_read virtual function, which is
+ specific to this implementation. */
+typedef _IO_ssize_t (*_IO_read_t) __PMT ((_IO_FILE *, void *, _IO_ssize_t));
+#define _IO_SYSREAD(FP, DATA, LEN) JUMP2 (__read, FP, DATA, LEN)
+
+/* The 'syswrite' hook is used to write data from an existing buffer
+ to an external file. It generalizes the Unix write(2) function.
+ It matches the streambuf::sys_write virtual function, which is
+ specific to this implementation. */
+typedef _IO_ssize_t (*_IO_write_t) __PMT ((_IO_FILE *,const void *,_IO_ssize_t));
+#define _IO_SYSWRITE(FP, DATA, LEN) JUMP2 (__write, FP, DATA, LEN)
+
+/* The 'sysseek' hook is used to re-position an external file.
+ It generalizes the Unix lseek(2) function.
+ It matches the streambuf::sys_seek virtual function, which is
+ specific to this implementation. */
+#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+typedef _IO_off64_t (*_IO_seek_t) __PMT ((_IO_FILE *, _IO_off64_t, int));
+#else
+typedef _IO_off_t (*_IO_seek_t) __PMT ((_IO_FILE *, _IO_off_t, int));
+#endif
+#define _IO_SYSSEEK(FP, OFFSET, MODE) JUMP2 (__seek, FP, OFFSET, MODE)
+
+/* The 'sysclose' hook is used to finalize (close, finish up) an
+ external file. It generalizes the Unix close(2) function.
+ It matches the streambuf::sys_close virtual function, which is
+ specific to this implementation. */
+typedef int (*_IO_close_t) __PMT ((_IO_FILE *)); /* finalize */
+#define _IO_SYSCLOSE(FP) JUMP0 (__close, FP)
+
+/* The 'sysstat' hook is used to get information about an external file
+ into a struct stat buffer. It generalizes the Unix fstat(2) call.
+ It matches the streambuf::sys_stat virtual function, which is
+ specific to this implementation. */
+typedef int (*_IO_stat_t) __PMT ((_IO_FILE *, void *));
+#define _IO_SYSSTAT(FP, BUF) JUMP1 (__stat, FP, BUF)
+
+#if _G_IO_IO_FILE_VERSION == 0x20001
+/* The 'showmany' hook can be used to get an image how much input is
+ available. In many cases the answer will be 0 which means unknown
+ but some cases one can provide real information. */
+typedef int (*_IO_showmanyc_t) __PMT ((_IO_FILE *));
+#define _IO_SHOWMANYC(FP) JUMP0 (__showmanyc, FP)
+
+/* The 'imbue' hook is used to get information about the currently
+ installed locales. */
+typedef void (*_IO_imbue_t) __PMT ((_IO_FILE *, void *));
+#define _IO_IMBUE(FP, LOCALE) JUMP1 (__imbue, FP, LOCALE)
+#endif
+
+
+#define _IO_CHAR_TYPE char /* unsigned char ? */
+#define _IO_INT_TYPE int
+
+struct _IO_jump_t
+{
+ JUMP_FIELD(_G_size_t, __dummy);
+#ifdef _G_USING_THUNKS
+ JUMP_FIELD(_G_size_t, __dummy2);
+#endif
+ JUMP_FIELD(_IO_finish_t, __finish);
+ JUMP_FIELD(_IO_overflow_t, __overflow);
+ JUMP_FIELD(_IO_underflow_t, __underflow);
+ JUMP_FIELD(_IO_underflow_t, __uflow);
+ JUMP_FIELD(_IO_pbackfail_t, __pbackfail);
+ /* showmany */
+ JUMP_FIELD(_IO_xsputn_t, __xsputn);
+ JUMP_FIELD(_IO_xsgetn_t, __xsgetn);
+ JUMP_FIELD(_IO_seekoff_t, __seekoff);
+ JUMP_FIELD(_IO_seekpos_t, __seekpos);
+ JUMP_FIELD(_IO_setbuf_t, __setbuf);
+ JUMP_FIELD(_IO_sync_t, __sync);
+ JUMP_FIELD(_IO_doallocate_t, __doallocate);
+ JUMP_FIELD(_IO_read_t, __read);
+ JUMP_FIELD(_IO_write_t, __write);
+ JUMP_FIELD(_IO_seek_t, __seek);
+ JUMP_FIELD(_IO_close_t, __close);
+ JUMP_FIELD(_IO_stat_t, __stat);
+#if _G_IO_IO_FILE_VERSION == 0x20001
+ JUMP_FIELD(_IO_showmanyc_t, __showmanyc);
+ JUMP_FIELD(_IO_imbue_t, __imbue);
+#endif
+#if 0
+ get_column;
+ set_column;
+#endif
+};
+
+/* We always allocate an extra word following an _IO_FILE.
+ This contains a pointer to the function jump table used.
+ This is for compatibility with C++ streambuf; the word can
+ be used to smash to a pointer to a virtual function table. */
+
+struct _IO_FILE_plus
+{
+ _IO_FILE file;
+ const struct _IO_jump_t *vtable;
+};
+
+/* Generic functions */
+
+#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+extern _IO_off64_t _IO_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+extern _IO_off64_t _IO_seekpos __P ((_IO_FILE *, _IO_off64_t, int));
+#else
+extern _IO_off_t _IO_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+extern _IO_off_t _IO_seekpos __P ((_IO_FILE *, _IO_off_t, int));
+#endif
+
+extern void _IO_switch_to_main_get_area __P ((_IO_FILE *));
+extern void _IO_switch_to_backup_area __P ((_IO_FILE *));
+extern int _IO_switch_to_get_mode __P ((_IO_FILE *));
+extern void _IO_init __P ((_IO_FILE *, int));
+extern int _IO_sputbackc __P ((_IO_FILE *, int));
+extern int _IO_sungetc __P ((_IO_FILE *));
+extern void _IO_un_link __P ((_IO_FILE *));
+extern void _IO_link_in __P ((_IO_FILE *));
+extern void _IO_doallocbuf __P ((_IO_FILE *));
+extern void _IO_unsave_markers __P ((_IO_FILE *));
+extern void _IO_setb __P ((_IO_FILE *, char *, char *, int));
+extern unsigned _IO_adjust_column __P ((unsigned, const char *, int));
+#define _IO_sputn(__fp, __s, __n) _IO_XSPUTN (__fp, __s, __n)
+
+/* Marker-related function. */
+
+extern void _IO_init_marker __P ((struct _IO_marker *, _IO_FILE *));
+extern void _IO_remove_marker __P ((struct _IO_marker *));
+extern int _IO_marker_difference __P ((struct _IO_marker *,
+ struct _IO_marker *));
+extern int _IO_marker_delta __P ((struct _IO_marker *));
+extern int _IO_seekmark __P ((_IO_FILE *, struct _IO_marker *, int));
+
+/* Default jumptable functions. */
+
+extern int _IO_default_underflow __P ((_IO_FILE *));
+extern int _IO_default_uflow __P ((_IO_FILE *));
+extern int _IO_default_doallocate __P ((_IO_FILE *));
+extern void _IO_default_finish __P ((_IO_FILE *, int));
+extern int _IO_default_pbackfail __P ((_IO_FILE *, int));
+extern _IO_FILE* _IO_default_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
+extern _IO_size_t _IO_default_xsputn __P ((_IO_FILE *, const void *,
+ _IO_size_t));
+extern _IO_size_t _IO_default_xsgetn __P ((_IO_FILE *, void *, _IO_size_t));
+#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+extern _IO_off64_t _IO_default_seekoff __P ((_IO_FILE *,
+ _IO_off64_t, int, int));
+extern _IO_off64_t _IO_default_seekpos __P ((_IO_FILE *,
+ _IO_off64_t, int));
+#else
+extern _IO_off_t _IO_default_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+extern _IO_off_t _IO_default_seekpos __P ((_IO_FILE *, _IO_off_t, int));
+#endif
+extern _IO_ssize_t _IO_default_write __P ((_IO_FILE *, const void *,
+ _IO_ssize_t));
+extern _IO_ssize_t _IO_default_read __P ((_IO_FILE *, void *, _IO_ssize_t));
+extern int _IO_default_stat __P ((_IO_FILE *, void *));
+#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+extern _IO_off64_t _IO_default_seek __P ((_IO_FILE *, _IO_off64_t, int));
+#else
+extern _IO_off_t _IO_default_seek __P ((_IO_FILE *, _IO_off_t, int));
+#endif
+extern int _IO_default_sync __P ((_IO_FILE *));
+#define _IO_default_close ((_IO_close_t) _IO_default_sync)
+
+extern struct _IO_jump_t _IO_file_jumps;
+extern struct _IO_jump_t _IO_streambuf_jumps;
+extern struct _IO_jump_t _IO_proc_jumps;
+extern struct _IO_jump_t _IO_str_jumps;
+extern int _IO_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
+extern int _IO_flush_all __P ((void));
+extern void _IO_cleanup __P ((void));
+extern void _IO_flush_all_linebuffered __P ((void));
+
+#define _IO_do_flush(_f) \
+ _IO_do_write(_f, (_f)->_IO_write_base, \
+ (_f)->_IO_write_ptr-(_f)->_IO_write_base)
+#define _IO_in_put_mode(_fp) ((_fp)->_flags & _IO_CURRENTLY_PUTTING)
+#define _IO_mask_flags(fp, f, mask) \
+ ((fp)->_flags = ((fp)->_flags & ~(mask)) | ((f) & (mask)))
+#define _IO_setg(fp, eb, g, eg) ((fp)->_IO_read_base = (eb),\
+ (fp)->_IO_read_ptr = (g), (fp)->_IO_read_end = (eg))
+#define _IO_setp(__fp, __p, __ep) \
+ ((__fp)->_IO_write_base = (__fp)->_IO_write_ptr = __p, (__fp)->_IO_write_end = (__ep))
+#define _IO_have_backup(fp) ((fp)->_IO_save_base != NULL)
+#define _IO_in_backup(fp) ((fp)->_flags & _IO_IN_BACKUP)
+#define _IO_have_markers(fp) ((fp)->_markers != NULL)
+#define _IO_blen(fp) ((fp)->_IO_buf_end - (fp)->_IO_buf_base)
+
+/* Jumptable functions for files. */
+
+extern int _IO_file_doallocate __P ((_IO_FILE *));
+extern _IO_FILE* _IO_file_setbuf __P ((_IO_FILE *, char *, _IO_ssize_t));
+#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+extern _IO_off64_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+extern _IO_off64_t _IO_file_seek __P ((_IO_FILE *, _IO_off64_t, int));
+#else
+extern _IO_off_t _IO_file_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+extern _IO_off_t _IO_file_seek __P ((_IO_FILE *, _IO_off_t, int));
+#endif
+extern _IO_size_t _IO_file_xsputn __P ((_IO_FILE *, const void *, _IO_size_t));
+extern int _IO_file_stat __P ((_IO_FILE *, void *));
+extern int _IO_file_close __P ((_IO_FILE *));
+extern int _IO_file_underflow __P ((_IO_FILE *));
+extern int _IO_file_overflow __P ((_IO_FILE *, int));
+#define _IO_file_is_open(__fp) ((__fp)->_fileno >= 0)
+extern void _IO_file_init __P ((_IO_FILE *));
+extern _IO_FILE* _IO_file_attach __P ((_IO_FILE *, int));
+extern _IO_FILE* _IO_file_open __P ((_IO_FILE *, const char *, int, int,
+ int, int));
+#if _G_IO_IO_FILE_VERSION == 0x20001
+extern _IO_FILE* _IO_file_fopen __P ((_IO_FILE *, const char *, const char *,
+ int));
+#else
+extern _IO_FILE* _IO_file_fopen __P ((_IO_FILE *, const char *, const char *));
+#endif
+extern _IO_ssize_t _IO_file_write __P ((_IO_FILE *, const void *,
+ _IO_ssize_t));
+extern _IO_ssize_t _IO_file_read __P ((_IO_FILE *, void *, _IO_ssize_t));
+extern int _IO_file_sync __P ((_IO_FILE *));
+extern int _IO_file_close_it __P ((_IO_FILE *));
+extern void _IO_file_finish __P ((_IO_FILE *, int));
+
+/* Jumptable functions for proc_files. */
+extern _IO_FILE* _IO_proc_open __P ((_IO_FILE *, const char *, const char *));
+extern int _IO_proc_close __P ((_IO_FILE *));
+
+/* Jumptable functions for strfiles. */
+extern int _IO_str_underflow __P ((_IO_FILE *));
+extern int _IO_str_overflow __P ((_IO_FILE *, int));
+extern int _IO_str_pbackfail __P ((_IO_FILE *, int));
+#if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+extern _IO_off64_t _IO_str_seekoff __P ((_IO_FILE *, _IO_off64_t, int, int));
+#else
+extern _IO_off_t _IO_str_seekoff __P ((_IO_FILE *, _IO_off_t, int, int));
+#endif
+extern void _IO_str_finish __P ((_IO_FILE *, int));
+
+/* Other strfile functions */
+extern void _IO_str_init_static __P ((_IO_FILE *, char *, int, char *));
+extern void _IO_str_init_readonly __P ((_IO_FILE *, const char *, int));
+extern _IO_ssize_t _IO_str_count __P ((_IO_FILE *));
+
+extern int _IO_vasprintf __P ((char **result_ptr, __const char *format,
+ _IO_va_list args));
+extern int _IO_vdprintf __P ((int d, __const char *format, _IO_va_list arg));
+extern int _IO_vsnprintf __P ((char *string, _IO_size_t maxlen,
+ __const char *format, _IO_va_list args));
+
+
+extern _IO_size_t _IO_getline __P ((_IO_FILE *,char *, _IO_size_t, int, int));
+extern _IO_size_t _IO_getline_info __P ((_IO_FILE *,char *, _IO_size_t,
+ int, int, int *));
+extern _IO_ssize_t _IO_getdelim __P ((char **, _IO_size_t *, int, _IO_FILE *));
+extern double _IO_strtod __P ((const char *, char **));
+extern char *_IO_dtoa __P ((double __d, int __mode, int __ndigits,
+ int *__decpt, int *__sign, char **__rve));
+extern int _IO_outfloat __P ((double __value, _IO_FILE *__sb, int __type,
+ int __width, int __precision, int __flags,
+ int __sign_mode, int __fill));
+
+extern _IO_FILE *_IO_list_all;
+extern void (*_IO_cleanup_registration_needed) __PMT ((void));
+
+#ifndef EOF
+# define EOF (-1)
+#endif
+#ifndef NULL
+# if defined __GNUG__ && \
+ (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
+# define NULL (__null)
+# else
+# if !defined(__cplusplus)
+# define NULL ((void*)0)
+# else
+# define NULL (0)
+# endif
+# endif
+#endif
+
+#if _G_HAVE_MMAP
+
+# include <unistd.h>
+# include <fcntl.h>
+# include <sys/mman.h>
+# include <sys/param.h>
+
+# if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)
+# define MAP_ANONYMOUS MAP_ANON
+# endif
+
+# if !defined(MAP_ANONYMOUS) || !defined(EXEC_PAGESIZE)
+# undef _G_HAVE_MMAP
+# define _G_HAVE_MMAP 0
+# endif
+
+#endif /* _G_HAVE_MMAP */
+
+#if _G_HAVE_MMAP
+
+# ifdef _LIBC
+/* When using this code in the GNU libc we must not pollute the name space. */
+# define mmap __mmap
+# define munmap __munmap
+# endif
+
+# define ROUND_TO_PAGE(_S) \
+ (((_S) + EXEC_PAGESIZE - 1) & ~(EXEC_PAGESIZE - 1))
+
+# define FREE_BUF(_B, _S) \
+ munmap ((_B), ROUND_TO_PAGE (_S))
+# define ALLOC_BUF(_B, _S, _R) \
+ do { \
+ (_B) = (char *) mmap (0, ROUND_TO_PAGE (_S), \
+ PROT_READ | PROT_WRITE, \
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); \
+ if ((_B) == (char *) -1) \
+ return (_R); \
+ } while (0)
+
+#else /* _G_HAVE_MMAP */
+
+# define FREE_BUF(_B, _S) \
+ free(_B)
+# define ALLOC_BUF(_B, _S, _R) \
+ do { \
+ (_B) = (char*)malloc(_S); \
+ if ((_B) == NULL) \
+ return (_R); \
+ } while (0)
+
+#endif /* _G_HAVE_MMAP */
+
+#ifndef OS_FSTAT
+# define OS_FSTAT fstat
+#endif
+struct stat;
+extern _IO_ssize_t _IO_read __P ((int, void *, _IO_size_t));
+extern _IO_ssize_t _IO_write __P ((int, const void *, _IO_size_t));
+extern _IO_off_t _IO_lseek __P ((int, _IO_off_t, int));
+extern int _IO_close __P ((int));
+extern int _IO_fstat __P ((int, struct stat *));
+extern int _IO_vscanf __P ((const char *, _IO_va_list));
+
+/* Operations on _IO_fpos_t.
+ Normally, these are trivial, but we provide hooks for configurations
+ where an _IO_fpos_t is a struct.
+ Note that _IO_off_t must be an integral type. */
+
+/* _IO_pos_BAD is an _IO_off_t value indicating error, unknown, or EOF. */
+#ifndef _IO_pos_BAD
+# if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+# define _IO_pos_BAD ((_IO_off64_t) -1)
+# else
+# define _IO_pos_BAD ((_IO_off_t) -1)
+# endif
+#endif
+/* _IO_pos_as_off converts an _IO_fpos_t value to an _IO_off_t value. */
+#ifndef _IO_pos_as_off
+# if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+# define _IO_pos_as_off(__pos) ((_IO_off64_t) (__pos))
+# else
+# define _IO_pos_as_off(__pos) ((_IO_off_t) (__pos))
+# endif
+#endif
+/* _IO_pos_adjust adjust an _IO_fpos_t by some number of bytes. */
+#ifndef _IO_pos_adjust
+# define _IO_pos_adjust(__pos, __delta) ((__pos) += (__delta))
+#endif
+/* _IO_pos_0 is an _IO_fpos_t value indicating beginning of file. */
+#ifndef _IO_pos_0
+# if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
+# define _IO_pos_0 ((_IO_fpos64_t) 0)
+# else
+# define _IO_pos_0 ((_IO_fpos_t) 0)
+# endif
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef _IO_MTSAFE_IO
+/* check following! */
+# define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \
+ { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD, \
+ 0, 0, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock }
+#else
+/* check following! */
+# define FILEBUF_LITERAL(CHAIN, FLAGS, FD) \
+ { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CHAIN, FD }
+#endif
+
+/* VTABLE_LABEL defines NAME as of the CLASS class.
+ CNLENGTH is strlen(#CLASS). */
+#ifdef __GNUC__
+# if (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100)
+# if _G_VTABLE_LABEL_HAS_LENGTH
+# define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \
+ extern char NAME[] asm (_G_VTABLE_LABEL_PREFIX #CNLENGTH #CLASS);
+# else
+# define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \
+ extern char NAME[] asm (_G_VTABLE_LABEL_PREFIX #CLASS);
+# endif
+# else
+# define VTABLE_LABEL(NAME, CLASS, CNLENGTH) \
+ extern char NAME[] asm ("_ZTV" #CNLENGTH #CLASS);
+# endif /* (!defined(__GXX_ABI_VERSION) || __GXX_ABI_VERSION < 100) */
+#endif /* __GNUC__ */
+
+#if !defined(builtinbuf_vtable) && defined(__cplusplus)
+# ifdef __GNUC__
+VTABLE_LABEL(builtinbuf_vtable, builtinbuf, 10)
+# else
+# if _G_VTABLE_LABEL_HAS_LENGTH
+# define builtinbuf_vtable _G_VTABLE_LABEL_PREFIX_ID##10builtinbuf
+# else
+# define builtinbuf_vtable _G_VTABLE_LABEL_PREFIX_ID##builtinbuf
+# endif
+# endif
+#endif /* !defined(builtinbuf_vtable) && defined(__cplusplus) */
+
+#if defined(__STDC__) || defined(__cplusplus)
+# define _IO_va_start(args, last) va_start(args, last)
+#else
+# define _IO_va_start(args, last) va_start(args)
+#endif
+
+extern struct _IO_fake_stdiobuf _IO_stdin_buf, _IO_stdout_buf, _IO_stderr_buf;
+
+#if 1
+# define COERCE_FILE(FILE) /* Nothing */
+#else
+/* This is part of the kludge for binary compatibility with old stdio. */
+# define COERCE_FILE(FILE) \
+ (((FILE)->_IO_file_flags & _IO_MAGIC_MASK) == _OLD_MAGIC_MASK \
+ && (FILE) = *(FILE**)&((int*)fp)[1])
+#endif
+
+#ifdef EINVAL
+# define MAYBE_SET_EINVAL __set_errno (EINVAL)
+#else
+# define MAYBE_SET_EINVAL /* nothing */
+#endif
+
+#ifdef IO_DEBUG
+# define CHECK_FILE(FILE, RET) \
+ if ((FILE) == NULL) { MAYBE_SET_EINVAL; return RET; } \
+ else { COERCE_FILE(FILE); \
+ if (((FILE)->_IO_file_flags & _IO_MAGIC_MASK) != _IO_MAGIC) \
+ { MAYBE_SET_EINVAL; return RET; }}
+#else
+# define CHECK_FILE(FILE, RET) COERCE_FILE (FILE)
+#endif
diff --git a/sys-build/gcc/gcc-2.95.2-r4.ebuild b/sys-build/gcc/gcc-2.95.2-r4.ebuild
new file mode 100644
index 000000000000..70f9201a464f
--- /dev/null
+++ b/sys-build/gcc/gcc-2.95.2-r4.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Achim Gottinger <achim@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/gcc/gcc-2.95.2-r4.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+P=gcc-2.95.2
+A="gcc-2.95.2.tar.gz
+ libg++-2.8.1.3.tar.gz
+ libg++-2.8.1.3-20000312.diff.gz
+ libg++-2.8.1.3-20000419.diff.gz
+ libg++-2.8.1.3-20000816.diff.gz
+ libg++-2.8.1.3-20000914.diff.gz"
+
+A0=gcc-2.95.2.dif.gz
+A1=gcc-exception-fix.diff.gz
+A2=gcc-accept-doublecolon.diff.gz
+A3=gcc-glibc-2.2-compat.diff
+S=${WORKDIR}/gcc-2.95.2
+T=/usr
+
+DESCRIPTION="modern gcc c/c++ compiler"
+
+SRC_URI="ftp://prep.ai.mit.edu/gnu/gcc/gcc-2.95.2.tar.gz
+ ftp://gatekeeper.dec.com/pub/GNU/gcc/gcc-2.95.2.tar.gz
+ ftp://sourceware.cygnus.com/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz
+ ftp://sourceware.cygnus.com/pub/gcc/infrastructure/libg++-2.8.1.3-20000816.diff.gz
+ ftp://ftp.freesoftware.com/pub/sourceware/gcc/infrastructure/libg++-2.8.1.3.tar.gz
+ ftp://ftp.freesoftware.com/pub/sourceware/gcc/infrastructure/libg++-2.8.1.3-20000312.diff.gz
+ ftp://ftp.freesoftware.com/pub/sourceware/gcc/infrastructure/libg++-2.8.1.3-20000419.diff.gz
+ ftp://ftp.freesoftware.com/pub/sourceware/gcc/infrastructure/libg++-2.8.1.3-20000816.diff.gz
+ ftp://ftp.freesoftware.com/pub/sourceware/gcc/infrastructure/libg++-2.8.1.3-20000914.diff.gz"
+
+HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
+
+src_unpack() {
+ unpack gcc-2.95.2.tar.gz
+ unpack libg++-2.8.1.3.tar.gz
+ cd ${S}/../libg++-2.8.1.3
+ gzip -dc ${DISTDIR}/libg++-2.8.1.3-20000312.diff.gz | patch -p1
+ gzip -dc ${DISTDIR}/libg++-2.8.1.3-20000419.diff.gz | patch -p1
+ gzip -dc ${DISTDIR}/libg++-2.8.1.3-20000816.diff.gz | patch -p1
+ gzip -dc ${DISTDIR}/libg++-2.8.1.3-20000914.diff.gz | patch -p1
+ einfo "Moving trees"
+ cd ${S}
+ rm -rf texinfo
+ mv ../libg++-2.8.1.3/* .
+ rmdir ../libg++-2.8.1.3
+ zcat ${FILESDIR}/${A0} | patch -p0
+ zcat ${FILESDIR}/${A1} | patch -p0
+ zcat ${FILESDIR}/${A2} | patch -p0
+ patch -p0 < ${FILESDIR}/${A3}
+}
+
+src_compile() {
+ cd ${S}
+ #i586a doesn't like optimization?
+ try ${S}/configure --prefix=${T} \
+ --host=${CHOST} \
+ --disable-nls \
+ --enable-languages=c,c++
+ # Parallel build does not work
+ try make ${MAKEOPTS} LDFLAGS=-static bootstrap
+}
+
+src_install() {
+
+ try make install prefix=${D}${T} mandir=${D}${T}/man
+ FULLPATH=${D}${T}/lib/gcc-lib/${THOST}/${PV}
+ cd ${FULLPATH}
+ dodir /lib
+ dosym ${T}/lib/gcc-lib/${THOST}/${PV}/cpp /lib/cpp
+ dosym /usr/bin/gcc /usr/bin/cc
+ rm -rf ${D}/usr/info ${D}/usr/man
+}
+
+
+
+
+
diff --git a/sys-build/glibc/files/digest-glibc-2.2.1 b/sys-build/glibc/files/digest-glibc-2.2.1
new file mode 100644
index 000000000000..7b9682289a38
--- /dev/null
+++ b/sys-build/glibc/files/digest-glibc-2.2.1
@@ -0,0 +1,2 @@
+MD5 5fda58bc58a2e7b5a818994b5d1445c3 glibc-2.2.1.tar.gz
+MD5 0963a626c6f4dc0c9871f60931643f5a glibc-linuxthreads-2.2.1.tar.gz
diff --git a/sys-build/glibc/glibc-2.2.1.ebuild b/sys-build/glibc/glibc-2.2.1.ebuild
new file mode 100644
index 000000000000..a9673a5fb3fe
--- /dev/null
+++ b/sys-build/glibc/glibc-2.2.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Achim Gottinger <achim@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/glibc/glibc-2.2.1.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+A="$P.tar.gz glibc-linuxthreads-${PV}.tar.gz"
+S=${WORKDIR}/${P}
+DESCRIPTION="GNU libc6 (also called glibc2) C library"
+SRC_URI="ftp://sourceware.cygnus.com/pub/glibc/releases/glibc-${PV}.tar.gz
+ ftp://sourceware.cygnus.com/pub/glibc/releases/glibc-linuxthreads-${PV}.tar.gz
+ ftp://ftp.unina.it/pub/Unix/cygnus/glibc/releases/glibc-${PV}.tar.gz
+ ftp://ftp.unina.it/pub/Unix/cygnus/glibc/releases/glibc-linuxthreads-${PV}.tar.gz
+ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.gz
+ ftp://ftp.gnu.org/pub/gnu/glibc/glibc-linuxthreads-${PV}.tar.gz"
+HOMEPAGE="http://www.gnu.org/software/libc/libc.html"
+DEPEND=""
+RDEPEND="$DEPEND
+ >=sys-apps/bash-2.04
+ >=sys-devel/perl-5.6"
+
+src_compile() {
+
+ rm -rf buildhere
+ mkdir buildhere
+ cd buildhere
+ try ../configure --host=${CHOST} --without-cvs \
+ --enable-add-ons=linuxthreads \
+ --disable-profile --prefix=/usr \
+ --enable-kernel=2.4.0
+ try make PARALLELMFLAGS=${MAKEOPTS}
+}
+
+src_unpack() {
+ unpack glibc-${PV}.tar.gz
+ cd ${S}
+ unpack glibc-linuxthreads-${PV}.tar.gz
+# patch -p1 < ${FILESDIR}/glibc-2.2-ldconfig.patch
+}
+
+src_install() {
+ cd ${S}
+ try make PARALELLMFLAGS=${MAKEOPTS} install_root=${D} install -C buildhere
+ #try make PARALELLMFLAGS=${MAKEOPTS} install_root=${D} localedata/install-locales -C buildhere
+ chmod 755 ${D}/usr/libexec/pt_chown
+ rm -rf ${D}/usr/info
+}
+
+
+
diff --git a/sys-build/grep/files/digest-grep-2.4.2-r1 b/sys-build/grep/files/digest-grep-2.4.2-r1
new file mode 100644
index 000000000000..10f2f727a071
--- /dev/null
+++ b/sys-build/grep/files/digest-grep-2.4.2-r1
@@ -0,0 +1 @@
+MD5 8ec9a2e875cd3aaa89896a8f39249f58 grep-2.4.2.tar.gz
diff --git a/sys-build/grep/grep-2.4.2-r1.ebuild b/sys-build/grep/grep-2.4.2-r1.ebuild
new file mode 100644
index 000000000000..4d9204632c1c
--- /dev/null
+++ b/sys-build/grep/grep-2.4.2-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/grep/grep-2.4.2-r1.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+P=grep-2.4.2
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="GNU regular expression matcher"
+SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/grep/${A}
+ ftp://prep.ai.mit.edu/gnu/grep/${A}"
+HOMEPAGE="http://www.gnu.org/software/grep/grep.html"
+DEPEND=">=sys-libs/glibc-2.1.3"
+src_compile() {
+ try ./configure --prefix=/usr --host=${CHOST} --disable-nls
+ try make LDFLAGS=-static ${MAKEOPTS}
+}
+
+src_install() {
+ cd ${S}/src
+ dobin grep
+ cd ${D}/usr/bin
+ ln grep egrep
+ ln grep fgrep
+}
+
+
+
diff --git a/sys-build/gzip/files/digest-gzip-1.2.4a-r1 b/sys-build/gzip/files/digest-gzip-1.2.4a-r1
new file mode 100644
index 000000000000..60ae475bc42e
--- /dev/null
+++ b/sys-build/gzip/files/digest-gzip-1.2.4a-r1
@@ -0,0 +1 @@
+MD5 39053e044b18ecd0627f80fbe7cfeaad gzip-1.2.4a.tar.gz
diff --git a/sys-build/gzip/gzip-1.2.4a-r1.ebuild b/sys-build/gzip/gzip-1.2.4a-r1.ebuild
new file mode 100644
index 000000000000..c08ed4ef407d
--- /dev/null
+++ b/sys-build/gzip/gzip-1.2.4a-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/gzip/gzip-1.2.4a-r1.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+P=gzip-1.2.4a
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="Standard GNU compressor"
+SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/gzip/${A}
+ ftp://prep.ai.mit.edu/gnu/gzip/${A}"
+HOMEPAGE="http://www.gnu.org/software/gzip/gzip.html"
+DEPEND=">=sys-libs/glibc-2.1.3"
+RDEPEND="$DEPEND
+ >=sys-apps/bash-2.04"
+
+src_compile() {
+ try ./configure --host=${CHOST} --prefix=/usr --disable-nls
+ try pmake LDFLAGS=-static ${MAKEOPTS}
+}
+
+src_install() {
+ dodir /usr/bin
+ try make prefix=${D}/usr exec_prefix=${D}/ install
+ cd ${D}/bin
+ for i in gzexe zforce zgrep zmore znew zcmp
+ do
+ cp ${i} ${i}.orig
+ sed -e "1d" -e "s:${D}::" ${i}.orig > ${i}
+ rm ${i}.orig
+ chmod 755 ${i}
+ done
+ rm -rf ${D}/usr
+}
+
+
+
+
diff --git a/sys-build/make/files/digest-make-3.79.1-r1 b/sys-build/make/files/digest-make-3.79.1-r1
new file mode 100644
index 000000000000..1445b8cf0490
--- /dev/null
+++ b/sys-build/make/files/digest-make-3.79.1-r1
@@ -0,0 +1 @@
+MD5 22ea95c125c7b80e04354d4ee4ae960d make-3.79.1.tar.gz
diff --git a/sys-build/make/make-3.79.1-r1.ebuild b/sys-build/make/make-3.79.1-r1.ebuild
new file mode 100644
index 000000000000..57167d9487c6
--- /dev/null
+++ b/sys-build/make/make-3.79.1-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Achim Gottinger <achim@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/make/make-3.79.1-r1.ebuild,v 1.1 2001/01/25 18:00:26 achim Exp $
+
+P=make-3.79.1
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="Standard tool to compile source trees"
+SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/make/${A}
+ ftp://prep.ai.mit.edu/gnu/make/${A}"
+HOMEPAGE="http://www.gnu.org/software/make/make.html"
+DEPEND=">=sys-libs/glibc-2.1.3"
+
+src_compile() {
+ try ./configure --prefix=/usr --host=${CHOST} --disable-nls
+ try make ${MAKEOPTS} LDFLAGS=-static
+}
+
+src_install() {
+
+ dobin make
+}
+
+
+
diff --git a/sys-build/sed/files/digest-sed-3.02.80 b/sys-build/sed/files/digest-sed-3.02.80
new file mode 100644
index 000000000000..c2922128b256
--- /dev/null
+++ b/sys-build/sed/files/digest-sed-3.02.80
@@ -0,0 +1 @@
+MD5 3bf4f42bc0a5f9345a7586a73be3df79 sed-3.02.80.tar.gz
diff --git a/sys-build/sed/sed-3.02.80.ebuild b/sys-build/sed/sed-3.02.80.ebuild
new file mode 100644
index 000000000000..2801c442e565
--- /dev/null
+++ b/sys-build/sed/sed-3.02.80.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/sed/sed-3.02.80.ebuild,v 1.1 2001/01/25 18:00:27 achim Exp $
+
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="Super-useful stream editor"
+SRC_URI="ftp://alpha.gnu.org/pub/gnu/sed/${A}"
+DEPEND=">=sys-libs/glibc-2.1.3"
+
+src_compile() {
+ try ./configure --prefix=/usr --host=${CHOST} --disable-nls
+ try make ${MAKEOPTS} LDFLAGS=-static
+}
+
+src_install() {
+ into /usr
+ dobin sed/sed
+}
+
diff --git a/sys-build/sh-utils/files/digest-sh-utils-2.0j-r1 b/sys-build/sh-utils/files/digest-sh-utils-2.0j-r1
new file mode 100644
index 000000000000..bc4f2b097953
--- /dev/null
+++ b/sys-build/sh-utils/files/digest-sh-utils-2.0j-r1
@@ -0,0 +1 @@
+MD5 82087d6cc313189c312a0cf8ef875a2c sh-utils-2.0j.tar.gz
diff --git a/sys-build/sh-utils/sh-utils-2.0j-r1.ebuild b/sys-build/sh-utils/sh-utils-2.0j-r1.ebuild
new file mode 100644
index 000000000000..bd32af55f05c
--- /dev/null
+++ b/sys-build/sh-utils/sh-utils-2.0j-r1.ebuild
@@ -0,0 +1,40 @@
+
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Achim Gottinger <achim@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/sh-utils/sh-utils-2.0j-r1.ebuild,v 1.1 2001/01/25 18:00:27 achim Exp $
+
+P=sh-utils-2.0j
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+DESCRIPTION="Your standard GNU shell utilities"
+SRC_URI="ftp://alpha.gnu.org/gnu/fetish/${A}"
+DEPEND=">=sys-libs/glibc-2.1.3"
+RDEPEND="$DEPEND
+ >=sys-apps/bash-2.04"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}/src
+ cp sys2.h sys2.h.orig
+ sed -e "s:^char \*strndup://:" sys2.h.orig > sys2.h
+}
+
+src_compile() {
+ export CFLAGS="${CFLAGS}"
+ try ./configure --host=${CHOST} --build=${CHOST} --prefix=/usr \
+ --without-included-regex --disable-nls
+ try make ${MAKEOPTS}
+}
+
+src_install() {
+ try make prefix=${D}/usr install
+ cd ${D}/usr/bin
+ dodir /bin
+ mv date echo false pwd stty su true uname hostname ${D}/bin
+ rm -rf ${D}/usr/lib ${D}/usr/man ${D}/usr/info
+
+}
+
+
+
diff --git a/sys-build/spython/files/digest-spython-2.0-r1 b/sys-build/spython/files/digest-spython-2.0-r1
new file mode 100644
index 000000000000..d5edd17f12a5
--- /dev/null
+++ b/sys-build/spython/files/digest-spython-2.0-r1
@@ -0,0 +1,2 @@
+MD5 4751f4619eda0b5ade9d9dd017e7c1ef BeOpen-Python-2.0.tar.bz2
+MD5 7c99113a11b03599d8494638f6d90b56 python-fchksum-1.1.tar.gz
diff --git a/sys-build/spython/files/pfconfig.h b/sys-build/spython/files/pfconfig.h
new file mode 100644
index 000000000000..6b0d4db091b0
--- /dev/null
+++ b/sys-build/spython/files/pfconfig.h
@@ -0,0 +1,17 @@
+/* pfconfig.h. Generated automatically by configure. */
+/* pfconfig.h.in. Generated automatically from configure.in by autoheader. */
+
+/* Define to empty if the keyword does not work. */
+/* #undef const */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define. */
+/* #undef size_t */
+
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define if you have the <endian.h> header file. */
+#define HAVE_ENDIAN_H 1
+
+/* Define if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
diff --git a/sys-build/spython/spython-2.0-r1.ebuild b/sys-build/spython/spython-2.0-r1.ebuild
new file mode 100644
index 000000000000..5eba3fd1c894
--- /dev/null
+++ b/sys-build/spython/spython-2.0-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/spython/spython-2.0-r1.ebuild,v 1.1 2001/01/25 18:00:27 achim Exp $
+
+S=${WORKDIR}/Python-2.0
+S2=${WORKDIR}/python-fchksum-1.1
+DESCRIPTION="A really great language -- minimalist python environment"
+SRC_URI="http://www.python.org/ftp/python/src/BeOpen-Python-2.0.tar.bz2
+ http://www.azstarnet.com/~donut/programs/fchksum/python-fchksum-1.1.tar.gz"
+
+HOMEPAGE="http://www.python.org http://www.azstarnet.com/~donut/programs/fchksum/"
+DEPEND=">=sys-libs/gpm-1.19.3"
+RDEPEND="$DEPEND >=sys-apps/bash-2.04"
+PROVIDE="virtual/python-2.0"
+
+src_unpack() {
+ unpack BeOpen-Python-2.0.tar.bz2
+ cd ${S}/Modules
+ sed -e 's:#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz:zlib zlibmodule.c -lz:' -e 's:#\*shared\*:\*static\*:' -e 's:^TKPATH=\:lib-tk:#TKPATH:' Setup.in > Setup
+ echo "fchksum fchksum.c md5_2.c" >> Setup
+ cd ${S}/Modules
+
+ cp ${FILESDIR}/pfconfig.h .
+ unpack python-fchksum-1.1.tar.gz
+
+ cd python-fchksum-1.1
+ mv md5.h ../md5_2.h
+ sed -e 's:"md5.h":"md5_2.h":' md5.c > ../md5_2.c
+ sed -e 's:"md5.h":"md5_2.h":' fchksum.c > ../fchksum.c
+
+ #for some reason, python 2.0 can't find /usr/lib/python2.0 without this fix to the source code.
+ cd ${S}/Python
+ cp pythonrun.c pythonrun.c.orig
+ sed -e 's:static char \*default_home = NULL:static char \*default_home = "/usr":' pythonrun.c.orig > pythonrun.c
+}
+
+src_compile() {
+ cd ${S}
+ export LDFLAGS=-static
+ try ./configure --prefix=/usr --without-libdb
+ #libdb3 support is available from http://pybsddb.sourceforge.net/; the one
+ #included with python is for db 1.85 only.
+ cp Makefile Makefile.orig
+ sed -e "s/-g -O2/${CFLAGS}/" Makefile.orig > Makefile
+ cd ${S}/Modules
+ cp Makefile.pre Makefile.orig
+ sed -e "s:MODOBJS=:MODOBJS=fchksum.o md5_2.o:" \
+ Makefile.orig > Makefile.pre
+
+ # Parallel make does not work
+ cd ${S}
+ try make
+}
+
+src_install() {
+ dodir /usr
+ try make install prefix=${D}/usr
+ rm ${D}/usr/bin/python
+ mv ${D}/usr/bin/python2.0 ${D}/usr/bin/spython
+ rm -rf ${D}/usr/man
+}
diff --git a/sys-build/tar/files/digest-tar-1.13.18-r1 b/sys-build/tar/files/digest-tar-1.13.18-r1
new file mode 100644
index 000000000000..49952d6234f7
--- /dev/null
+++ b/sys-build/tar/files/digest-tar-1.13.18-r1
@@ -0,0 +1 @@
+MD5 fd76b10a8e57cb944f0b2c9cb8bf742b tar-1.13.18.tar.gz
diff --git a/sys-build/tar/tar-1.13.18-r1.ebuild b/sys-build/tar/tar-1.13.18-r1.ebuild
new file mode 100644
index 000000000000..eecd378eb7cf
--- /dev/null
+++ b/sys-build/tar/tar-1.13.18-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Achim Gottinger <achim@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/tar/tar-1.13.18-r1.ebuild,v 1.1 2001/01/25 18:00:27 achim Exp $
+
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+
+DESCRIPTION="Use this to try make tarballs :)"
+SRC_URI="ftp://alpha.gnu.org/gnu/tar/"${A}
+HOMEPAGE="http://www.gnu.org/software/tar/"
+DEPEND=">=sys-libs/glibc-2.1.3"
+src_compile() {
+ try ./configure --prefix=/usr --libexecdir=/usr/libexec/misc \
+ --host=${CHOST} --disable-nls
+ try make ${MAKEOPTS} LDFLAGS=-static
+}
+
+src_install() {
+ cd ${S}
+ try make DESTDIR=${D} install
+ mv ${D}/usr/bin ${D}
+ rm -rf ${D}/usr/info
+
+}
+
+
diff --git a/sys-build/textutils/files/digest-textutils-2.0.10 b/sys-build/textutils/files/digest-textutils-2.0.10
new file mode 100644
index 000000000000..1c652739479f
--- /dev/null
+++ b/sys-build/textutils/files/digest-textutils-2.0.10
@@ -0,0 +1 @@
+MD5 420a7cd54d4ce4b44c412af1318f7c83 textutils-2.0.10.tar.gz
diff --git a/sys-build/textutils/textutils-2.0.10.ebuild b/sys-build/textutils/textutils-2.0.10.ebuild
new file mode 100644
index 000000000000..c64a7fb870da
--- /dev/null
+++ b/sys-build/textutils/textutils-2.0.10.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Daniel Robbins <drobbins@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/sys-build/textutils/textutils-2.0.10.ebuild,v 1.1 2001/01/25 18:00:27 achim Exp $
+
+A=${P}.tar.gz
+S=${WORKDIR}/${P}
+
+DESCRIPTION="Standard GNU text utilities"
+SRC_URI="ftp://alpha.gnu.org/gnu/fetish/${A}"
+DEPEND=">=sys-libs/glibc-2.1.3"
+
+src_compile() {
+ try ./configure --prefix=/usr --host=${CHOST} \
+ --without-included-regex --disable-nls
+ try make ${MAKEOPTS} LDFLAGS=-static
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}/src
+# mv tr.c tr.c.orig
+# sed -e "234d" tr.c.orig > tr.c
+# cp sys2.h sys2.h.orig
+# sed -e "s:^char \*strndup://:" sys2.h.orig > sys2.h
+}
+
+src_install() {
+ cd ${S}
+ try make prefix=${D}/usr install
+ dodir /bin
+ dosym /usr/bin/cat /bin/cat
+ rm -rf ${D}/usr/lib ${D}/usr/man ${D}/usr/info
+}
+
+
+
+