diff options
463 files changed, 0 insertions, 34038 deletions
diff --git a/sys-apps/at/at-3.1.8-r1.ebuild b/sys-apps/at/at-3.1.8-r1.ebuild deleted file mode 100644 index ed9933347b6f..000000000000 --- a/sys-apps/at/at-3.1.8-r1.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# 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-apps/at/at-3.1.8-r1.ebuild,v 1.8 2001/01/31 20:49:06 achim Exp $ - -A="${P}.tar.bz2 ${P}.dif" -S=${WORKDIR}/${P} -DESCRIPTION="queues jobs for later execution" -SRC_URI="ftp://jurix.jura.uni-sb.de/pub/jurix/source/chroot/appl/at/${P}.tar.bz2 - ftp://jurix.jura.uni-sb.de/pub/jurix/source/chroot/appl/at/${P}.dif" - - -DEPEND=">=sys-libs/glibc-2.1.3 - sys-devel/flex" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - - try ./configure --host=${CHOST} --sysconfdir=/etc/at \ - --with-jobdir=/var/cron/atjobs \ - --with-atspool=/var/cron/atspool \ - --with-etcdir=/etc/at - try pmake - -} - -src_unpack() { - - unpack ${P}.tar.bz2 - cd ${S} - patch -p0 < ${DISTDIR}/${P}.dif - -} - -src_install() { - - cd ${S} - into /usr - chmod 755 batch - chmod 755 atrun - dobin at batch - dosym /usr/bin/at /usr/bin/atrm - dosym /usr/bin/at /usr/bin/atq - dosbin atd atrun - for i in atjobs atspool - do - dodir /var/cron/${i} - fperms 700 /var/cron/${i} - fowners daemon.daemon /var/cron/${i} - done - doman at.1 at_allow.5 atd.8 atrun.8 - dodoc COPYING ChangeLog Copyright - docinto txt - dodoc Problems README - dodir /etc/rc.d/init.d - cp ${O}/files/atd ${D}/etc/rc.d/init.d/ - dodir /etc/at - cp ${O}/files/at.deny ${D}/etc/at/ - -} - - - diff --git a/sys-apps/at/files/digest-at-3.1.8-r1 b/sys-apps/at/files/digest-at-3.1.8-r1 deleted file mode 100644 index 7ec2fb52f97d..000000000000 --- a/sys-apps/at/files/digest-at-3.1.8-r1 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 f5194baac29a30b0d90604422dad7037 at-3.1.8.tar.bz2 -MD5 72330908ac1117627486af1fb873ea81 at-3.1.8.dif diff --git a/sys-apps/baselayout/baselayout-1.4.ebuild b/sys-apps/baselayout/baselayout-1.4.ebuild deleted file mode 100644 index 0a0bb73a843b..000000000000 --- a/sys-apps/baselayout/baselayout-1.4.ebuild +++ /dev/null @@ -1,122 +0,0 @@ -# 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-apps/baselayout/baselayout-1.4.ebuild,v 1.5 2001/01/09 23:04:11 drobbins Exp $# Copyright 1999-2000 Gentoo Technologies, Inc. - -A="" -S=${WORKDIR}/${P} -DESCRIPTION="Base layout for Gentoo Linux filesystem (incl. initscripts)" -SRC_URI="" -HOMEPAGE="http://www.gentoo.org" - -src_install() -{ - if [ "$MAINTAINER" != "yes" ] - then - echo '!!! baselayout should only be merged if you know what youre doing.' - echo '!!! It will overwrite important system files (passwd/group and others) with their' - echo '!!! original versions. For now, please update your files by hand by' - echo '!!! comparing the contents of the files in '${FILESDIR}' to your' - echo '!!! installed versions. We will have an automated update system shortly.' - exit 1 - fi - dodir /boot - dodir /usr/include /usr/src - dosym /var/log /usr/adm - dosym ../X11R6/include/X11 /usr/include/X11 - dosym ../src/linux/include/linux /usr/include/linux - dosym ../src/linux/include/asm-i386 /usr/include/asm - local foo - for foo in games man lib sbin share bin doc src - do - dodir /usr/local/${foo} - done - doman ${FILESDIR}/MAKEDEV.8 - dodir /usr/lib - dodir /usr/sbin - dosbin ${FILESDIR}/MAKEDEV ${FILESDIR}/run-crons - dodir /dev - dodir /dev/pts - dosym /usr/sbin/MAKEDEV /dev/MAKEDEV - dodir /usr/share /usr/bin/ /usr/doc - dodoc ${FILESDIR}/copyright ${FILESDIR}/changelog.Debian - dodir /usr/X11R6/lib - dodir /var /var/shm /var/run /var/log/news - touch ${D}/var/log/lastlog - touch ${D}/var/run/utmp - touch ${D}/var/log/wtmp - dodir /var/db/pkg /var/spool - dodir /var/lib/supervise - install -d -m0750 -o root -g wheel ${D}/var/lib/supervise/control - install -d -m0750 -o root -g wheel ${D}/var/lib/supervise/services - dodir /root /opt /home/ftp /etc/modules /proc - chmod go-rx ${D}/root - dodir /tmp - chmod 1777 ${D}/tmp - insopts -m0644 - insinto /etc - for foo in services passwd shadow nsswitch.conf inetd.conf ld.so.conf protocols fstab hosts syslog.conf pwdb.conf filesystems group profile crontab - do - doins ${FILESDIR}/${foo} - done - for foo in hourly daily weekly monthly - do - dodir /etc/cron.$foo - done - chmod go-rwx ${D}/etc/shadow - dodir /dev/pts /lib /proc /mnt/floppy /mnt/cdrom - chmod go-rwx ${D}/mnt/floppy ${D}/mnt/cdrom - - for x in boot halt 1 2 3 4 5 - do - dodir /etc/rc.d/rc${x}.d - done - dosym rcboot.d /etc/rc.d/rc0.d - dosym rchalt.d /etc/rc.d/rc6.d - - dodir /etc/pam.d - cd ${FILESDIR}/pam.d - insinto /etc/pam.d - doins * - - dodir /etc/rc.d/init.d - dodir /etc/rc.d/config - cd ${FILESDIR}/rc.d/init.d - exeinto /etc/rc.d/init.d - doexe * - insinto /etc/rc.d/init.d/extra_scripts - cd ${FILESDIR}/rc.d/config - insinto /etc/rc.d/config - doins * - doins runlevels - cd ${FILESDIR} - insinto /etc - doins inittab - into /usr - dosbin rc-update env-update - insinto /usr/bin - insopts -m0755 - doins colors - dodir /dev - cd ${D}/dev - MAKEDEV generic-i386 - MAKEDEV sg - MAKEDEV scd - MAKEDEV rtc - cd ${D}/etc/rc.d/config - cp runlevels runlevels.orig - sed -e 's:##OSNAME##:Gentoo Linux:g' -e 's:##ARCH##:i686a:g' runlevels.orig > runlevels - rm runlevels.orig - - dodir /etc/env.d - insinto /etc/env.d - doins ${FILESDIR}/00basic -} - - - - - - - - diff --git a/sys-apps/baselayout/baselayout-1.5-r1.ebuild b/sys-apps/baselayout/baselayout-1.5-r1.ebuild deleted file mode 100644 index 7b0c7673f1ab..000000000000 --- a/sys-apps/baselayout/baselayout-1.5-r1.ebuild +++ /dev/null @@ -1,136 +0,0 @@ -# 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-apps/baselayout/baselayout-1.5-r1.ebuild,v 1.2 2001/01/27 14:41:33 achim Exp $# Copyright 1999-2000 Gentoo Technologies, Inc. - -A="" -S=${WORKDIR}/${P} -DESCRIPTION="Base layout for Gentoo Linux filesystem (incl. initscripts)" -SRC_URI="" -HOMEPAGE="http://www.gentoo.org" - -src_install() -{ - if [ "$MAINTAINER" != "yes" ] - then - echo '!!! baselayout should only be merged if you know what youre doing.' - echo '!!! It will overwrite important system files (passwd/group and others) with their' - echo '!!! original versions. For now, please update your files by hand by' - echo '!!! comparing the contents of the files in '${FILESDIR}' to your' - echo '!!! installed versions. We will have an automated update system shortly.' - exit 1 - fi - dodir /boot - dodir /usr/include /usr/src - dosym ../X11R6/include/X11 /usr/include/X11 - dosym ../src/linux/include/linux /usr/include/linux - dosym ../src/linux/include/asm-i386 /usr/include/asm - local foo - for foo in games man lib sbin share bin doc src - do - dodir /usr/local/${foo} - done - - dodir /usr/lib - dodir /usr/sbin - dosbin ${FILESDIR}/MAKEDEV ${FILESDIR}/run-crons - dodir /dev - dodir /dev/pts - dosym /usr/sbin/MAKEDEV /dev/MAKEDEV - dodir /usr/share/man /usr/share/info /usr/bin/ /usr/doc - -#FHS 2.1 stuff - dosym share/man /usr/man - dosym share/doc /usr/doc - dosym share/info /usr/info -#end FHS 2.1 stuff - doman ${FILESDIR}/MAKEDEV.8 - - dodoc ${FILESDIR}/copyright ${FILESDIR}/changelog.Debian - dodir /usr/X11R6/lib - dodir /var /var/shm /var/run /var/log/news - touch ${D}/var/log/lastlog - touch ${D}/var/run/utmp - touch ${D}/var/log/wtmp - dodir /var/db/pkg /var/spool - -#supervise stuff - dodir /var/lib/supervise - install -d -m0750 -o root -g wheel ${D}/var/lib/supervise/control - install -d -m0750 -o root -g wheel ${D}/var/lib/supervise/services -#end supervise stuff - dodir /root /opt /etc/modules /proc - - chmod go-rx ${D}/root - dodir /tmp - chmod 1777 ${D}/tmp - insopts -m0644 - insinto /etc - for foo in services passwd shadow nsswitch.conf inetd.conf ld.so.conf protocols fstab hosts syslog.conf pwdb.conf filesystems group profile crontab - do - doins ${FILESDIR}/${foo} - done - for foo in hourly daily weekly monthly - do - dodir /etc/cron.$foo - done - chmod go-rwx ${D}/etc/shadow - dodir /dev/pts /lib /proc /mnt/floppy /mnt/cdrom - chmod go-rwx ${D}/mnt/floppy ${D}/mnt/cdrom - - for x in boot halt 1 2 3 4 5 - do - dodir /etc/rc.d/rc${x}.d - done - dosym rcboot.d /etc/rc.d/rc0.d - dosym rchalt.d /etc/rc.d/rc6.d - - dodir /etc/pam.d - cd ${FILESDIR}/pam.d - insinto /etc/pam.d - doins * - - dodir /etc/rc.d/init.d - dodir /etc/rc.d/config - cd ${FILESDIR}/rc.d/init.d - exeinto /etc/rc.d/init.d - doexe * - insinto /etc/rc.d/init.d/extra_scripts - cd ${FILESDIR}/rc.d/config - insinto /etc/rc.d/config - doins * - doins runlevels - cd ${FILESDIR} - insinto /etc - doins inittab - into /usr - dosbin rc-update - insinto /usr/bin - insopts -m0755 - doins colors - dodir /dev - cd ${D}/dev - MAKEDEV generic-i386 - MAKEDEV sg - MAKEDEV scd - MAKEDEV rtc - cd ${D}/etc/rc.d/config - cp runlevels runlevels.orig - sed -e 's:##OSNAME##:Gentoo Linux:g' -e 's:##ARCH##:i686a:g' runlevels.orig > runlevels - rm runlevels.orig - -#env-update stuff - dodir /etc/env.d - insinto /etc/env.d - doins ${FILESDIR}/00basic -#end env-update stuff - -} - - - - - - - - diff --git a/sys-apps/baselayout/baselayout-1.5-r2.ebuild b/sys-apps/baselayout/baselayout-1.5-r2.ebuild deleted file mode 100644 index 4bcd80b78f0e..000000000000 --- a/sys-apps/baselayout/baselayout-1.5-r2.ebuild +++ /dev/null @@ -1,140 +0,0 @@ -# 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-apps/baselayout/baselayout-1.5-r2.ebuild,v 1.3 2001/02/07 18:22:18 achim Exp $# Copyright 1999-2000 Gentoo Technologies, Inc. - -A="" -S=${WORKDIR}/${P} -DESCRIPTION="Base layout for Gentoo Linux filesystem (incl. initscripts)" -SRC_URI="" -HOMEPAGE="http://www.gentoo.org" - -src_install() -{ - if [ "$MAINTAINER" != "yes" ] - then - echo '!!! baselayout should only be merged if you know what youre doing.' - echo '!!! It will overwrite important system files (passwd/group and others) with their' - echo '!!! original versions. For now, please update your files by hand by' - echo '!!! comparing the contents of the files in '${FILESDIR}' to your' - echo '!!! installed versions. We will have an automated update system shortly.' - exit 1 - fi - dodir /boot - dodir /usr/include /usr/src - dosym ../X11R6/include/X11 /usr/include/X11 - dosym ../src/linux/include/linux /usr/include/linux - dosym ../src/linux/include/asm-i386 /usr/include/asm - local foo - for foo in games man lib sbin share bin doc src - do - dodir /usr/local/${foo} - done - - dodir /usr/lib - dodir /usr/sbin - dosbin ${FILESDIR}/MAKEDEV ${FILESDIR}/run-crons - dodir /dev - dodir /dev/pts - dosym /usr/sbin/MAKEDEV /dev/MAKEDEV - dodir /usr/share/man /usr/share/info /usr/share/doc /usr/share/misc /usr/bin/ - -#FHS 2.1 stuff - dosym share/man /usr/man - dosym share/doc /usr/doc - dosym share/info /usr/info -#end FHS 2.1 stuff - dosym ../tmp /usr/tmp - doman ${FILESDIR}/MAKEDEV.8 - - dodoc ${FILESDIR}/copyright ${FILESDIR}/changelog.Debian - dodir /usr/X11R6/lib - dodir /var /var/shm /var/run /var/log/news - touch ${D}/var/log/lastlog - touch ${D}/var/run/utmp - touch ${D}/var/log/wtmp - dodir /var/db/pkg /var/spool /var/tmp /var/lib/misc - -#supervise stuff - dodir /var/lib/supervise - install -d -m0750 -o root -g wheel ${D}/var/lib/supervise/control - install -d -m0750 -o root -g wheel ${D}/var/lib/supervise/services -#end supervise stuff - dodir /root /opt /etc/modules /proc - - chmod go-rx ${D}/root - dodir /tmp - chmod 1777 ${D}/tmp - insopts -m0644 - insinto /etc - for foo in services passwd shadow nsswitch.conf \ - inetd.conf ld.so.conf protocols fstab \ - hosts syslog.conf pwdb.conf filesystems \ - group profile crontab inputrc - do - doins ${FILESDIR}/${foo} - done - for foo in hourly daily weekly monthly - do - dodir /etc/cron.$foo - done - chmod go-rwx ${D}/etc/shadow - dodir /dev/pts /lib /proc /mnt/floppy /mnt/cdrom - chmod go-rwx ${D}/mnt/floppy ${D}/mnt/cdrom - - for x in boot halt 1 2 3 4 5 - do - dodir /etc/rc.d/rc${x}.d - done - dosym rcboot.d /etc/rc.d/rc0.d - dosym rchalt.d /etc/rc.d/rc6.d - - dodir /etc/pam.d - cd ${FILESDIR}/pam.d - insinto /etc/pam.d - doins * - - dodir /etc/rc.d/init.d - dodir /etc/rc.d/config - cd ${FILESDIR}/rc.d/init.d - exeinto /etc/rc.d/init.d - doexe * - insinto /etc/rc.d/init.d/extra_scripts - cd ${FILESDIR}/rc.d/config - insinto /etc/rc.d/config - doins * - doins runlevels - cd ${FILESDIR} - insinto /etc - doins inittab - into /usr - dosbin rc-update - insinto /usr/bin - insopts -m0755 - doins colors - dodir /dev - cd ${D}/dev - MAKEDEV generic-i386 - MAKEDEV sg - MAKEDEV scd - MAKEDEV rtc - cd ${D}/etc/rc.d/config - cp runlevels runlevels.orig - sed -e 's:##OSNAME##:Gentoo Linux:g' -e 's:##ARCH##:i686a:g' runlevels.orig > runlevels - rm runlevels.orig - -#env-update stuff - dodir /etc/env.d - insinto /etc/env.d - doins ${FILESDIR}/00basic -#end env-update stuff - -} - - - - - - - - diff --git a/sys-apps/bash/bash-2.04-r1.ebuild b/sys-apps/bash/bash-2.04-r1.ebuild deleted file mode 100644 index 670c6b8470da..000000000000 --- a/sys-apps/bash/bash-2.04-r1.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# 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-apps/bash/bash-2.04-r1.ebuild,v 1.3 2001/02/01 19:30:33 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" - -PROVIDE="virtual/bash" - -src_compile() { - - cd ${S} - try ./configure --prefix=/ --host=${CHOST} \ - --disable-profiling --with-curses \ - --enable-static-link --with-installed-readline - cp Makefile Makefile.orig - sed -e "s:-lcurses:-lncurses:" Makefile.orig > Makefile - try pmake - if [ "`use tex`" ] - then - cd support - cp texi2html texi2html.orig - sed -e "s:/usr/local/bin/perl:/usr/bin/perl:" \ - texi2html.orig > texi2html - cd ../doc - try make - fi - -} - - - -src_install() { - cd ${S} - if [ "`use tex`" ] - then - docinto html - dodoc doc/*.html - docinto ps - dodoc doc/*.ps - fi - make prefix=${D}/usr install - dodir /bin - mv ${D}/usr/bin/bash ${D}/bin - dosym bash /bin/sh - doman doc/builtins.1 bash_builtins.1 - dodoc README NEWS AUTHORS CHANGES COMPAT COPYING Y2K - dodoc doc/FAQ doc/INTRO -} - diff --git a/sys-apps/bash/bash-2.04-r2.ebuild b/sys-apps/bash/bash-2.04-r2.ebuild deleted file mode 100644 index 2a80cf5c0c97..000000000000 --- a/sys-apps/bash/bash-2.04-r2.ebuild +++ /dev/null @@ -1,74 +0,0 @@ -# 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-apps/bash/bash-2.04-r2.ebuild,v 1.2 2001/02/15 18:17:31 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" - -DEPEND=">=sys-libs/ncurses-5.2-r2 - readline? ( >=sys-libs/readline-4.1-r2 ) - tex? ( app-text/tetex ) - sys-apps/groff - sys-apps/texinfo" - -src_compile() { - - local myconf - if [ "`use readline`" ] - then - myconf="--with-installed-readline" - fi - - try ./configure --prefix=/ --mandir=/usr/share/man \ - --infodir=/usr/share/info --host=${CHOST} \ - --disable-profiling --with-curses \ - --enable-static-link ${myconf} - - try pmake - - if [ "`use tex`" ] - then - cd support - cp texi2html texi2html.orig - sed -e "s:/usr/local/bin/perl:/usr/bin/perl:" \ - texi2html.orig > texi2html - cd ../doc - try make - fi - -} - - - -src_install() { - - make prefix=${D}/usr mandir=${D}/usr/share/man \ - infodir=${D}/usr/share/info install - dodir /bin - mv ${D}/usr/bin/bash ${D}/bin - dosym bash /bin/sh - doman doc/*.1 - - if [ -z "`use readline`" ] - then - doman doc/*.3 - fi - dodoc README NEWS AUTHORS CHANGES COMPAT COPYING Y2K - dodoc doc/FAQ doc/INTRO - - if [ "`use tex`" ] - then - docinto html - dodoc doc/*.html - docinto ps - dodoc doc/*.ps - fi - -} - diff --git a/sys-apps/bash/files/digest-bash-2.04-r1 b/sys-apps/bash/files/digest-bash-2.04-r1 deleted file mode 100644 index 2357c32167ec..000000000000 --- a/sys-apps/bash/files/digest-bash-2.04-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 49b548a8b72a4c925ff26930e4c31c6c bash-2.04.tar.gz diff --git a/sys-apps/bash/files/digest-bash-2.04-r2 b/sys-apps/bash/files/digest-bash-2.04-r2 deleted file mode 100644 index 2357c32167ec..000000000000 --- a/sys-apps/bash/files/digest-bash-2.04-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 49b548a8b72a4c925ff26930e4c31c6c bash-2.04.tar.gz diff --git a/sys-apps/bzip2/bzip2-1.0.1-r1.ebuild b/sys-apps/bzip2/bzip2-1.0.1-r1.ebuild deleted file mode 100644 index 92fb2fadbf05..000000000000 --- a/sys-apps/bzip2/bzip2-1.0.1-r1.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# 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-apps/bzip2/bzip2-1.0.1-r1.ebuild,v 1.1 2001/02/07 15:51:27 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/" - -DEPEND="virtual/glibc" - -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}/" \ - -e "s:/man/man1:/man/man1:" Makefile.orig > Makefile - - cp Makefile-libbz2_so Makefile-libbz2.orig - sed -e "s/-O2/${CFLAGS}/" Makefile-libbz2.orig > Makefile-libbz2_so - -} - -src_compile() { - - try pmake -f Makefile-libbz2_so all - try pmake all - -} -src_install() { - - dodir /usr/share/man/man1 - try make PREFIX=${D}/usr install - rm -rf ${D}/usr/man - - dolib.so libbz2.so.1.0.1 - mv ${D}/usr/bin ${D} - preplib /usr - - dodoc README LICENSE CHANGES Y2K_INFO - docinto txt - dodoc bzip2.txt - docinto ps - dodoc manual.ps - docinto html - dodoc manual_*.html - -} - - diff --git a/sys-apps/bzip2/bzip2-1.0.1.ebuild b/sys-apps/bzip2/bzip2-1.0.1.ebuild deleted file mode 100644 index 66c70c623e15..000000000000 --- a/sys-apps/bzip2/bzip2-1.0.1.ebuild +++ /dev/null @@ -1,46 +0,0 @@ -# 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-apps/bzip2/bzip2-1.0.1.ebuild,v 1.9 2001/01/31 20:49:06 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/" - -DEPEND="virtual/glibc" - -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 - cp Makefile-libbz2_so Makefile-libbz2.orig - sed -e "s/-O2/${CFLAGS}/" Makefile-libbz2.orig > Makefile-libbz2_so -} - -src_compile() { - try pmake -f Makefile-libbz2_so all - try pmake all -} -src_install() { - dodoc README LICENSE CHANGES Y2K_INFO - docinto txt - dodoc bzip2.txt - docinto ps - dodoc manual.ps - docinto html - dodoc manual_*.html - try make PREFIX=${D}/usr install - into /usr - dolib.so libbz2.so.1.0.1 - mv ${D}/usr/bin ${D} - preplib /usr -} - - diff --git a/sys-apps/bzip2/files/digest-bzip2-1.0.1 b/sys-apps/bzip2/files/digest-bzip2-1.0.1 deleted file mode 100644 index 4a2d8e5861de..000000000000 --- a/sys-apps/bzip2/files/digest-bzip2-1.0.1 +++ /dev/null @@ -1 +0,0 @@ -MD5 770135dc94369cb3eb6013ed505c8dc5 bzip2-1.0.1.tar.gz diff --git a/sys-apps/bzip2/files/digest-bzip2-1.0.1-r1 b/sys-apps/bzip2/files/digest-bzip2-1.0.1-r1 deleted file mode 100644 index 4a2d8e5861de..000000000000 --- a/sys-apps/bzip2/files/digest-bzip2-1.0.1-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 770135dc94369cb3eb6013ed505c8dc5 bzip2-1.0.1.tar.gz diff --git a/sys-apps/bzip2/files/digest-bzip2-1.0.1-r2 b/sys-apps/bzip2/files/digest-bzip2-1.0.1-r2 deleted file mode 100644 index 4a2d8e5861de..000000000000 --- a/sys-apps/bzip2/files/digest-bzip2-1.0.1-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 770135dc94369cb3eb6013ed505c8dc5 bzip2-1.0.1.tar.gz diff --git a/sys-apps/console-data/console-data-1999.08.29-r1.ebuild b/sys-apps/console-data/console-data-1999.08.29-r1.ebuild deleted file mode 100644 index f0a156c332a2..000000000000 --- a/sys-apps/console-data/console-data-1999.08.29-r1.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# 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-apps/console-data/console-data-1999.08.29-r1.ebuild,v 1.4 2000/11/30 23:14:31 achim Exp $ - -P=console-data-1999.08.29 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Data (fonts, keymaps) for the consoletools package" -SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/keyboards/"${A} -HOMEPAGE="http://altern.org/ydirson/en/lct/data.html" - -src_compile() { - - try ./configure --host=${CHOST} --prefix=/usr - # do not use pmake - try make - -} - -src_install() { - - dodoc ChangeLog - docinto txt - dodoc doc/README.* - docinto txt/fonts - dodoc doc/fonts/* - docinto txt/keymaps - dodoc doc/keymaps/* - try make DESTDIR=${D} install - -} - - diff --git a/sys-apps/console-data/files/digest-console-data-1999.08.29-r1 b/sys-apps/console-data/files/digest-console-data-1999.08.29-r1 deleted file mode 100644 index 46645acb4c93..000000000000 --- a/sys-apps/console-data/files/digest-console-data-1999.08.29-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 b534787af0edaa73f608f518263f9334 console-data-1999.08.29.tar.gz diff --git a/sys-apps/console-tools/console-tools-0.2.3-r2.ebuild b/sys-apps/console-tools/console-tools-0.2.3-r2.ebuild deleted file mode 100644 index cd429b86d145..000000000000 --- a/sys-apps/console-tools/console-tools-0.2.3-r2.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# 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-apps/console-tools/console-tools-0.2.3-r2.ebuild,v 1.3 2000/12/19 00:38:01 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Console and font utilities" -SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/keyboards/${A}" -HOMEPAGE="http://altern.org/ydirson/en/lct/" - -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_unpack() { - unpack ${A} - cd ${S} - gzip -dc ${FILESDIR}/${PN}-${PV}.patch.gz | patch -p1 -} - -src_compile() { - - local myconf - - if [ "$DEBUG" ] - then - myconf="--enable-debugging" - fi - - try ./configure --prefix=/usr --host=${CHOST} - try make $MAKEOPTS all -} - -src_install() { - into /usr - cd ${S} - try make prefix=${D}/usr install - # DESTDIR does not work correct - dodoc BUGS COPYING* CREDITS ChangeLog NEWS README RELEASE TODO - docinto txt - dodoc doc/*.txt doc/README.* - docinto sgml - dodoc doc/*.sgml - docinto txt/contrib - dodoc doc/contrib/* - docinto txt/dvorak - dodoc doc/dvorak/* - docinto txt/file-formats - dodoc doc/file-formats/* - doman doc/man/*.[1-8] - MOPREFIX="console-tools" - domo ${S}/po/*.gmo -} - - - diff --git a/sys-apps/console-tools/files/digest-console-tools-0.2.3-r2 b/sys-apps/console-tools/files/digest-console-tools-0.2.3-r2 deleted file mode 100644 index 7c2347441144..000000000000 --- a/sys-apps/console-tools/files/digest-console-tools-0.2.3-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 983d4586a791b3fdfa0fbeff76aadf43 console-tools-0.2.3.tar.gz diff --git a/sys-apps/cpio/cpio-2.4.2-r2.ebuild b/sys-apps/cpio/cpio-2.4.2-r2.ebuild deleted file mode 100644 index d3ab29fe410b..000000000000 --- a/sys-apps/cpio/cpio-2.4.2-r2.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# 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-apps/cpio/cpio-2.4.2-r2.ebuild,v 1.1 2001/01/01 21:57:38 drobbins Exp $ - -P="cpio-2.4.2" -A="${P}.tar.gz" -S=${WORKDIR}/${P} -DESCRIPTION="A file archival tool which can also read and write tar files" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/cpio/${A} - ftp://prep.ai.mit.edu/gnu/cpio/${A}" - -HOMEPAGE="http://www.gnu.org/software/cpio/cpio.html" - -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - try pmake - makeinfo --html --force cpio.texi -} - -src_unpack() { - unpack ${A} - cd ${S} - mv rmt.c rmt.c.orig - sed -e "78d" rmt.c.orig > rmt.c - mv userspec.c userspec.c.orig - sed -e "85d" userspec.c.orig > userspec.c -} - -src_install() { - into /usr - #dobin cpio mt; now we're using Schilly's enhanced mt from star - dobin cpio - doman cpio.1 - doinfo cpio.info - dodoc COPYING* ChangeLog NEWS README - docinto html - dodoc cpio.html - -} - diff --git a/sys-apps/cpio/files/digest-cpio-2.4.2-r1 b/sys-apps/cpio/files/digest-cpio-2.4.2-r1 deleted file mode 100644 index 1707e00faef6..000000000000 --- a/sys-apps/cpio/files/digest-cpio-2.4.2-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 e651ca1e1ac53aaebfa7ad256b0fe4fc cpio-2.4.2.tar.gz diff --git a/sys-apps/cpio/files/digest-cpio-2.4.2-r2 b/sys-apps/cpio/files/digest-cpio-2.4.2-r2 deleted file mode 100644 index 1707e00faef6..000000000000 --- a/sys-apps/cpio/files/digest-cpio-2.4.2-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 e651ca1e1ac53aaebfa7ad256b0fe4fc cpio-2.4.2.tar.gz diff --git a/sys-apps/cpio/files/digest-cpio-2.4.2-r3 b/sys-apps/cpio/files/digest-cpio-2.4.2-r3 deleted file mode 100644 index 1707e00faef6..000000000000 --- a/sys-apps/cpio/files/digest-cpio-2.4.2-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 e651ca1e1ac53aaebfa7ad256b0fe4fc cpio-2.4.2.tar.gz diff --git a/sys-apps/daemontools/daemontools-0.70.ebuild b/sys-apps/daemontools/daemontools-0.70.ebuild deleted file mode 100644 index 1dae3dfbf2a6..000000000000 --- a/sys-apps/daemontools/daemontools-0.70.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# 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-apps/daemontools/daemontools-0.70.ebuild,v 1.2 2000/11/30 23:14:32 achim Exp $ - -P=daemontools-0.70 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Collection of tools for managing UNIX services" -SRC_URI="http://cr.yp.to/daemontools/"${A} -HOMEPAGE="http://cr.yp.to/daemontools.html" - -DEPEND=">=sys-libs/glibc-2.1.3" - -src_unpack() { - unpack ${A} - cd ${S} - echo "gcc ${CFLAGS}" > conf-cc - echo "gcc" > conf-ld -} - -src_compile() { - cd ${S} - try pmake -} - -src_install() { - cd ${S} - into /usr - for i in svscan supervise svc svok svstat fghack multilog tai64n \ - tai64nlocal softlimit setuidgid envuidgid envdir setlock - do - dobin $i - done - dodoc CHANGES FILES README SYSDEPS TARGETS TODO VERSION -} - - - diff --git a/sys-apps/daemontools/files/digest-daemontools-0.70 b/sys-apps/daemontools/files/digest-daemontools-0.70 deleted file mode 100644 index 33e9c5938e35..000000000000 --- a/sys-apps/daemontools/files/digest-daemontools-0.70 +++ /dev/null @@ -1 +0,0 @@ -MD5 c88e8c5e4453b4df41571f60eaa0baf3 daemontools-0.70.tar.gz diff --git a/sys-apps/dcron/files/digest-dcron-2.7-r2 b/sys-apps/dcron/files/digest-dcron-2.7-r2 deleted file mode 100644 index d7f67342a50f..000000000000 --- a/sys-apps/dcron/files/digest-dcron-2.7-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 8984a6bb120cd674d4fb7f1cc52630a2 dcron27.tgz diff --git a/sys-apps/dcron/files/digest-dcron-2.7-r3 b/sys-apps/dcron/files/digest-dcron-2.7-r3 deleted file mode 100644 index d7f67342a50f..000000000000 --- a/sys-apps/dcron/files/digest-dcron-2.7-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 8984a6bb120cd674d4fb7f1cc52630a2 dcron27.tgz diff --git a/sys-apps/debianutils/debianutils-1.13.3-r1.ebuild b/sys-apps/debianutils/debianutils-1.13.3-r1.ebuild deleted file mode 100644 index 7d795a805d6c..000000000000 --- a/sys-apps/debianutils/debianutils-1.13.3-r1.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# 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-apps/debianutils/debianutils-1.13.3-r1.ebuild,v 1.5 2001/01/31 20:49:06 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}" - -DEPEND="virtual/glibc" -RDEPEND="virtual/glibc - sys-apps/bash" - -src_compile() { - try pmake -} - -src_unpack() { - unpack ${A} - cd ${S} - mv Makefile Makefile.orig - sed -e "s/-O2 -g/${CFLAGS}/" Makefile.orig > Makefile -} - -src_install() { - - into / - dobin run-parts readlink tempfile mktemp - insopts -m755 - insinto /usr/sbin - doins savelog - doman run-parts.8 readlink.1 tempfile.1 mktemp.1 savelog.8 - dodoc debian/changelog debian/control debian/copyright - -} - - - diff --git a/sys-apps/debianutils/debianutils-1.13.3-r2.ebuild b/sys-apps/debianutils/debianutils-1.13.3-r2.ebuild deleted file mode 100644 index 1a22e5353ec5..000000000000 --- a/sys-apps/debianutils/debianutils-1.13.3-r2.ebuild +++ /dev/null @@ -1,42 +0,0 @@ -# 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-apps/debianutils/debianutils-1.13.3-r2.ebuild,v 1.1 2001/02/07 15:51:27 achim Exp $ - -S=${WORKDIR}/${P} -DESCRIPTION="A selection of tools from Debian" -SRC_URI="ftp://ftp.debian.org/debian/dists/potato/main/source/base/debianutils_${PV}.tar.gz" - -DEPEND="virtual/glibc" - -src_unpack() { - - unpack ${A} - cd ${S} - cp Makefile Makefile.orig - sed -e "s/-O2 -g/${CFLAGS}/" Makefile.orig > Makefile -} - -src_compile() { - - try pmake -} - - -src_install() { - - into / - dobin run-parts readlink tempfile mktemp - insopts -m755 - exeinto /usr/sbin - doexe savelog - - doman mktemp.1 readlink.1 tempfile.1 run-parts.8 savelog.8 - - cd debian - dodoc changelog control copyright - -} - - - diff --git a/sys-apps/debianutils/files/digest-debianutils-1.13.3-r1 b/sys-apps/debianutils/files/digest-debianutils-1.13.3-r1 deleted file mode 100644 index 30079b8cc3cd..000000000000 --- a/sys-apps/debianutils/files/digest-debianutils-1.13.3-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 91511bc2eec9beebb23cf22fb57a202e debianutils_1.13.3.tar.gz diff --git a/sys-apps/debianutils/files/digest-debianutils-1.13.3-r2 b/sys-apps/debianutils/files/digest-debianutils-1.13.3-r2 deleted file mode 100644 index 30079b8cc3cd..000000000000 --- a/sys-apps/debianutils/files/digest-debianutils-1.13.3-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 91511bc2eec9beebb23cf22fb57a202e debianutils_1.13.3.tar.gz diff --git a/sys-apps/devfsd/devfsd-1.3.10.ebuild b/sys-apps/devfsd/devfsd-1.3.10.ebuild deleted file mode 100644 index c7748e06d46b..000000000000 --- a/sys-apps/devfsd/devfsd-1.3.10.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 1999-2000 Gentoo Technologies, Inc. -# Distributed under the terms of the GNU General Public License, v2 or later -# Author Your Name <your email> -# $Header: /var/cvsroot/gentoo-x86/sys-apps/devfsd/devfsd-1.3.10.ebuild,v 1.2 2001/01/18 18:22:11 achim Exp $ - -S=${WORKDIR}/${PN} -DESCRIPTION="Daemon for the Lunx Device Filesystem" -SRC_URI="ftp://ftp.atnf.csiro.au/pub/people/rgooch/linux/daemons/devfsd/devfsd-v1.3.10.tar.gz" -HOMEPAGE="http://www.atnf.csiro.au/~rgooch/linux/" - -src_unpack() { - unpack ${A} - cp ${FILESDIR}/devfsd.h ${S} -} - -src_compile() { - - cd ${S} - try make - -} - -src_install () { - - into / - dosbin devfsd - into /usr - doman devfsd.8 - insinto /etc - doins devfsd.conf modules.devfs - exeinto /etc/rc.d/init.d - doexe ${FILESDIR}/devfsd - -} -pkg_postinst () { - rc-update add devfsd -} - diff --git a/sys-apps/devfsd/files/digest-devfsd-1.3.10 b/sys-apps/devfsd/files/digest-devfsd-1.3.10 deleted file mode 100644 index 5777a069d6f8..000000000000 --- a/sys-apps/devfsd/files/digest-devfsd-1.3.10 +++ /dev/null @@ -1 +0,0 @@ -MD5 2e82cf69ae4ef7a32161a98bb4a67c21 devfsd-v1.3.10.tar.gz diff --git a/sys-apps/diffutils/diffutils-2.7-r1.ebuild b/sys-apps/diffutils/diffutils-2.7-r1.ebuild deleted file mode 100644 index 946cfb53171c..000000000000 --- a/sys-apps/diffutils/diffutils-2.7-r1.ebuild +++ /dev/null @@ -1,31 +0,0 @@ -# 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-apps/diffutils/diffutils-2.7-r1.ebuild,v 1.6 2001/01/31 20:49:06 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" -DEPEND="virtual/glibc" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - try pmake - makeinfo --html --force diff.texi -} - -src_install() { - into /usr - doinfo *.info* - dobin cmp diff diff3 sdiff - dodoc COPYING ChangeLog NEWS README - docinto html - dodoc *.html -} - - diff --git a/sys-apps/diffutils/diffutils-2.7-r2.ebuild b/sys-apps/diffutils/diffutils-2.7-r2.ebuild deleted file mode 100644 index e12ef33493cb..000000000000 --- a/sys-apps/diffutils/diffutils-2.7-r2.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# 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-apps/diffutils/diffutils-2.7-r2.ebuild,v 1.1 2001/02/07 15:51:27 achim Exp $ - -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" -DEPEND="virtual/glibc" - -src_compile() { - - try ./configure --host=${CHOST} --prefix=/usr - try pmake - -} - -src_install() { - - doinfo *.info* - dobin cmp diff diff3 sdiff - - dodoc COPYING ChangeLog NEWS README -} - - diff --git a/sys-apps/diffutils/files/digest-diffutils-2.7-r1 b/sys-apps/diffutils/files/digest-diffutils-2.7-r1 deleted file mode 100644 index d4b1dc7fc3ff..000000000000 --- a/sys-apps/diffutils/files/digest-diffutils-2.7-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 300d86a0566afee1c3756828f6c9538a diffutils-2.7.tar.gz diff --git a/sys-apps/diffutils/files/digest-diffutils-2.7-r2 b/sys-apps/diffutils/files/digest-diffutils-2.7-r2 deleted file mode 100644 index d4b1dc7fc3ff..000000000000 --- a/sys-apps/diffutils/files/digest-diffutils-2.7-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 300d86a0566afee1c3756828f6c9538a diffutils-2.7.tar.gz diff --git a/sys-apps/e2fsprogs/e2fsprogs-1.19-r1.ebuild b/sys-apps/e2fsprogs/e2fsprogs-1.19-r1.ebuild deleted file mode 100644 index 3e48476b9785..000000000000 --- a/sys-apps/e2fsprogs/e2fsprogs-1.19-r1.ebuild +++ /dev/null @@ -1,76 +0,0 @@ -# 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-apps/e2fsprogs/e2fsprogs-1.19-r1.ebuild,v 1.3 2001/04/06 15:35:21 achim Exp $ - -S=${WORKDIR}/${P} -DESCRIPTION="Standard ext2 filesystem utilities" -SRC_URI="ftp://download.sourceforge.net/pub/sourceforge/${PN}/${P}.tar.gz" -HOMEPAGE="http://e2fsprogs.sourceforge.net/" - -DEPEND="virtual/glibc - nls? ( sys-devel/gettext ) - sys-apps/texinfo" -RDEPEND="virtual/glibc" - -src_unpack() { - unpack ${A} - cd ${S} - patch -p0 < ${FILESDIR}/${P}-po-Makefile.in.in-gentoo.diff -} - -src_compile() { - - local myconf - if [ "`use nls`" ] - then - myconf="--enable-nls" - else - myconf="--disable-nls" - fi - try ./configure --host=${CHOST} --prefix=/usr \ - --mandir=/usr/share/man --infodir=/usr/share/info \ - --enable-elf-shlibs ${myconf} - - # Parallel make sometimes fails - try make - -} - -src_install() { - - local myopts - if [ "$DEBUG" ] - then - myopts="STRIP=\"echo\"" - fi - - myopts="${myopts} mandir=/usr/share/man infodir=/usr/share/info" - - try make DESTDIR=${D} ${myopts} install - try make DESTDIR=${D} ${myopts} install-libs - - if [ "`use nls`" ] - then - cd po - try make DESTDIR=${D} install - fi - dodoc COPYING ChangeLog README RELEASE-NOTES SHLIBS - docinto e2fsck - dodoc e2fsck/ChangeLog e2fsck/CHANGES - for i in e2p et ext2fs ss uuid - do - docinto lib/${i} - dodoc lib/${i}/ChangeLog - done - docinto misc - dodoc misc/ChangeLog - docinto resize - dodoc resize/ChangeLog - docinto util - dodoc util/ChangeLog - -} - - - diff --git a/sys-apps/e2fsprogs/e2fsprogs-1.19.ebuild b/sys-apps/e2fsprogs/e2fsprogs-1.19.ebuild deleted file mode 100644 index b25c30ca3d29..000000000000 --- a/sys-apps/e2fsprogs/e2fsprogs-1.19.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# 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-apps/e2fsprogs/e2fsprogs-1.19.ebuild,v 1.6 2001/01/31 20:49:06 achim Exp $ - -P=e2fsprogs-1.19 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Standard ext2 filesystem utilities" -SRC_URI="ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/e2fsprogs-1.19.tar.gz" -HOMEPAGE="http://e2fsprogs.sourceforge.net/" - -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - try ./configure --host=${CHOST} --enable-elf-shlibs --enable-nls - # do not use pmake recursive - try make - #$MAKEOPTS - -} - -src_install() { - into /usr - local myopts - if [ "$DEBUG" ] - then - myopts="STRIP=\"echo\"" - fi - try make DESTDIR=${D} ${myopts} install - try make DESTDIR=${D} ${myopts} install-libs - dodoc COPYING ChangeLog README RELEASE-NOTES SHLIBS - docinto e2fsck - dodoc e2fsck/ChangeLog e2fsck/CHANGES - for i in e2p et ext2fs ss uuid - do - docinto lib/${i} - dodoc lib/${i}/ChangeLog - done - docinto misc - dodoc misc/ChangeLog - docinto resize - dodoc resize/ChangeLog - docinto util - dodoc util/ChangeLog - -} - - - diff --git a/sys-apps/e2fsprogs/files/digest-e2fsprogs-1.19 b/sys-apps/e2fsprogs/files/digest-e2fsprogs-1.19 deleted file mode 100644 index 74b5ba0f7cba..000000000000 --- a/sys-apps/e2fsprogs/files/digest-e2fsprogs-1.19 +++ /dev/null @@ -1 +0,0 @@ -MD5 670dafc419fca17bfb92c9c467904b19 e2fsprogs-1.19.tar.gz diff --git a/sys-apps/e2fsprogs/files/digest-e2fsprogs-1.19-r1 b/sys-apps/e2fsprogs/files/digest-e2fsprogs-1.19-r1 deleted file mode 100644 index 74b5ba0f7cba..000000000000 --- a/sys-apps/e2fsprogs/files/digest-e2fsprogs-1.19-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 670dafc419fca17bfb92c9c467904b19 e2fsprogs-1.19.tar.gz diff --git a/sys-apps/ed/ed-0.2.ebuild b/sys-apps/ed/ed-0.2.ebuild deleted file mode 100644 index 9c41abd5c2a8..000000000000 --- a/sys-apps/ed/ed-0.2.ebuild +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/ebuild -# 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-apps/ed/ed-0.2.ebuild,v 1.7 2001/01/31 20:49:06 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Your basic line editor" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/ed/${A} - ftp://ftp.gnu.org/pub/gnu/ed/${A}" -HOMEPAGE="http://www.gnu.org/software/ed/" -DEPEND="virtual/glibc" - -src_compile() { - - try ./configure --prefix=/ --host=${CHOST} - try pmake -} - -src_install() { - - try make prefix=${D}/ mandir=${D}/usr/man/man1 infodir=${D}/usr/info \ - install - dodoc COPYING ChangeLog NEWS POSIX README THANKS TODO - -} - - diff --git a/sys-apps/ed/files/digest-ed-0.2 b/sys-apps/ed/files/digest-ed-0.2 deleted file mode 100644 index b5231566a2a0..000000000000 --- a/sys-apps/ed/files/digest-ed-0.2 +++ /dev/null @@ -1 +0,0 @@ -MD5 ddd57463774cae9b50e70cd51221281b ed-0.2.tar.gz diff --git a/sys-apps/file/file-3.33-r1.ebuild b/sys-apps/file/file-3.33-r1.ebuild deleted file mode 100644 index ebc49518c2dc..000000000000 --- a/sys-apps/file/file-3.33-r1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# 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-apps/file/file-3.33-r1.ebuild,v 1.1 2001/02/07 15:51:27 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Program to identify a file's format by scanning binary data for patters" -#unfortunately, this ftp site doesn't support passive ftp -#maybe we can find an alternative for those behind firewalls, or mirror -#on cvs.gentoo.org -SRC_URI="ftp://ftp.astron.com/pub/file/${A}" - -DEPEND="virtual/glibc" - -src_compile() { - - try ./configure --prefix=/usr --datadir=/usr/share/misc --host=${CHOST} - try pmake -} - -src_install() { - - dobin file - doman file.1 magic.4 - insinto /usr/share/misc - doins magic magic.mime - dodoc LEGAL.NOTICE MAINT README -} - - - diff --git a/sys-apps/file/file-3.33.ebuild b/sys-apps/file/file-3.33.ebuild deleted file mode 100644 index f2540b84dfaa..000000000000 --- a/sys-apps/file/file-3.33.ebuild +++ /dev/null @@ -1,31 +0,0 @@ -# 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-apps/file/file-3.33.ebuild,v 1.3 2001/01/31 20:49:07 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Program to identify a file's format by scanning binary data for patters" -#unfortunately, this ftp site doesn't support passive ftp -#maybe we can find an alternative for those behind firewalls, or mirror -#on cvs.gentoo.org -SRC_URI="ftp://ftp.astron.com/pub/file/${A}" - -DEPEND="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --datadir=/etc --host=${CHOST} - try pmake -} - -src_install() { - into /usr - dobin file - doman file.1 magic.4 - insinto /etc - doins magic magic.mime - dodoc LEGAL.NOTICE MAINT README -} - - - diff --git a/sys-apps/file/files/digest-file-3.33 b/sys-apps/file/files/digest-file-3.33 deleted file mode 100644 index 9a0e1f33e262..000000000000 --- a/sys-apps/file/files/digest-file-3.33 +++ /dev/null @@ -1 +0,0 @@ -MD5 3b8e32ed3a79774bd92f0052fa07ca04 file-3.33.tar.gz diff --git a/sys-apps/file/files/digest-file-3.33-r1 b/sys-apps/file/files/digest-file-3.33-r1 deleted file mode 100644 index 9a0e1f33e262..000000000000 --- a/sys-apps/file/files/digest-file-3.33-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 3b8e32ed3a79774bd92f0052fa07ca04 file-3.33.tar.gz diff --git a/sys-apps/fileutils/files/digest-fileutils-4.0.33 b/sys-apps/fileutils/files/digest-fileutils-4.0.33 deleted file mode 100644 index 47c24eef9ef3..000000000000 --- a/sys-apps/fileutils/files/digest-fileutils-4.0.33 +++ /dev/null @@ -1 +0,0 @@ -MD5 76076369cef8a091a21e18dffe770a04 fileutils-4.0.33.tar.gz diff --git a/sys-apps/fileutils/files/digest-fileutils-4.0.36 b/sys-apps/fileutils/files/digest-fileutils-4.0.36 deleted file mode 100644 index 44878ba266d7..000000000000 --- a/sys-apps/fileutils/files/digest-fileutils-4.0.36 +++ /dev/null @@ -1 +0,0 @@ -MD5 c603c20eedd5b964b1b429efe8103159 fileutils-4.0.36.tar.gz diff --git a/sys-apps/fileutils/files/digest-fileutils-4.0.36-r1 b/sys-apps/fileutils/files/digest-fileutils-4.0.36-r1 deleted file mode 100644 index 44878ba266d7..000000000000 --- a/sys-apps/fileutils/files/digest-fileutils-4.0.36-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 c603c20eedd5b964b1b429efe8103159 fileutils-4.0.36.tar.gz diff --git a/sys-apps/fileutils/files/digest-fileutils-4.0.36-r2 b/sys-apps/fileutils/files/digest-fileutils-4.0.36-r2 deleted file mode 100644 index 44878ba266d7..000000000000 --- a/sys-apps/fileutils/files/digest-fileutils-4.0.36-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 c603c20eedd5b964b1b429efe8103159 fileutils-4.0.36.tar.gz diff --git a/sys-apps/fileutils/fileutils-4.0.36-r1.ebuild b/sys-apps/fileutils/fileutils-4.0.36-r1.ebuild deleted file mode 100644 index bb29966fcd71..000000000000 --- a/sys-apps/fileutils/fileutils-4.0.36-r1.ebuild +++ /dev/null @@ -1,31 +0,0 @@ -# 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-apps/fileutils/fileutils-4.0.36-r1.ebuild,v 1.2 2001/01/31 20:49:07 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" - -DEPEND="virtual/glibc" - -src_compile() { - #we are waiting for GNU fileutils 4.0.30 which will become standard in Gentoo 1.0 - #until then, we wait. - try ./configure --prefix=/usr - try make ${MAKEOPTS} -} - -src_install() { - dodoc COPYING NEWS README* THANKS TODO ChangeLog ChangeLog-1997 AUTHORS - make prefix=${D}/usr install - cd ${D} - dodir bin - mv usr/bin/* bin - cd usr/bin - ln -s ../../bin/* . - rm -rf usr/lib -} - diff --git a/sys-apps/fileutils/fileutils-4.0.36-r2.ebuild b/sys-apps/fileutils/fileutils-4.0.36-r2.ebuild deleted file mode 100644 index efcb064a6980..000000000000 --- a/sys-apps/fileutils/fileutils-4.0.36-r2.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# 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-apps/fileutils/fileutils-4.0.36-r2.ebuild,v 1.1 2001/02/07 15:51:27 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" - -DEPEND="virtual/glibc - >=sys-devel/gettext-0.10.35-r2" - -RDEPEND="virtual/glibc" - -src_compile() { - - try ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --bindir=/bin - try make ${MAKEOPTS} -} - -src_install() { - - make prefix=${D}/usr mandir=${D}/usr/share/man infodir=${D}/usr/share/info bindir=${D}/bin install - - cd ${D} - dodir /usr/bin - rm -rf usr/lib - cd usr/bin - ln -s ../../bin/* . - - - cd ${S} - dodoc COPYING NEWS README* THANKS TODO ChangeLog ChangeLog-1997 AUTHORS - -} - diff --git a/sys-apps/fileutils/fileutils-4.0.36.ebuild b/sys-apps/fileutils/fileutils-4.0.36.ebuild deleted file mode 100644 index c6c53760b4cd..000000000000 --- a/sys-apps/fileutils/fileutils-4.0.36.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# 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-apps/fileutils/fileutils-4.0.36.ebuild,v 1.3 2001/01/18 20:17:56 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" - -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - #we are waiting for GNU fileutils 4.0.30 which will become standard in Gentoo 1.0 - #until then, we wait. - try ./configure --prefix=/usr - try make ${MAKEOPTS} -} - -src_install() { - dodoc COPYING NEWS README* THANKS TODO ChangeLog ChangeLog-1997 AUTHORS - make prefix=${D}/usr install - cd ${D} - mv usr/bin . - rm -rf usr/lib -} - diff --git a/sys-apps/findutils/files/digest-findutils-4.1-r1 b/sys-apps/findutils/files/digest-findutils-4.1-r1 deleted file mode 100644 index d959da1b7872..000000000000 --- a/sys-apps/findutils/files/digest-findutils-4.1-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 3ea8fe58ef5386da75f6c707713aa059 findutils-4.1.tar.gz diff --git a/sys-apps/findutils/files/digest-findutils-4.1-r3 b/sys-apps/findutils/files/digest-findutils-4.1-r3 deleted file mode 100644 index d959da1b7872..000000000000 --- a/sys-apps/findutils/files/digest-findutils-4.1-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 3ea8fe58ef5386da75f6c707713aa059 findutils-4.1.tar.gz diff --git a/sys-apps/findutils/files/digest-findutils-4.1-r4 b/sys-apps/findutils/files/digest-findutils-4.1-r4 deleted file mode 100644 index d959da1b7872..000000000000 --- a/sys-apps/findutils/files/digest-findutils-4.1-r4 +++ /dev/null @@ -1 +0,0 @@ -MD5 3ea8fe58ef5386da75f6c707713aa059 findutils-4.1.tar.gz diff --git a/sys-apps/findutils/findutils-4.1-r2.ebuild b/sys-apps/findutils/findutils-4.1-r2.ebuild deleted file mode 100644 index ccf44934d411..000000000000 --- a/sys-apps/findutils/findutils-4.1-r2.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# 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-apps/findutils/findutils-4.1-r2.ebuild,v 1.1 2000/12/05 23:53:29 drobbins Exp $ - -P=findutils-4.1 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU utilities to find files" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/findutils/${A} - ftp://prep.ai.mit.edu/gnu/findutils/${A}" -HOMEPAGE="http://www.gnu.org/software/findutils/findutils.html" - -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - # do not use pmake recursive - try make LOCATE_DB=/var/state/locatedb \ - libexecdir=/usr/libexec/find $MAKEOPTS -} - -src_unpack() { - unpack ${A} - einfo "Applying Patch..." - #using sed to apply minor patches to files - cd ${S}/find - mv fstype.c fstype.c.orig - sed -e "33d" -e "34d" fstype.c.orig > fstype.c - mv parser.c parser.c.orig - sed -e "55d" parser.c.orig > parser.c - mv pred.c pred.c.orig - sed -e '29i\' -e '#define FNM_CASEFOLD (1<<4)' pred.c.orig > pred.c - cd ${S}/lib - mv nextelem.c nextelem.c.orig - sed -e "35d" nextelem.c.orig > nextelem.c - cd ${S}/xargs - mv xargs.c xargs.c.orig - sed -e "63d" -e "64d" xargs.c.orig > xargs.c -} - -src_install() { - cd ${S} - try make prefix=${D}/usr libexecdir=${D}/usr/libexec/find \ - LOCATE_DB=${D}/var/state/locatedb install - dosed "s:TMPDIR=/usr/tmp:TMPDIR=/tmp:" usr/bin/updatedb - dodoc COPYING NEWS README TODO ChangeLog - rm -fr ${D}/usr/var -} - diff --git a/sys-apps/findutils/findutils-4.1-r3.ebuild b/sys-apps/findutils/findutils-4.1-r3.ebuild deleted file mode 100644 index 3630cec10f56..000000000000 --- a/sys-apps/findutils/findutils-4.1-r3.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# 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-apps/findutils/findutils-4.1-r3.ebuild,v 1.3 2001/02/27 12:11:44 achim Exp $ - -P=findutils-4.1 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU utilities to find files" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/findutils/${A} - ftp://prep.ai.mit.edu/gnu/findutils/${A}" -HOMEPAGE="http://www.gnu.org/software/findutils/findutils.html" - -DEPEND="virtual/glibc" -RDEPEND="virtual/glibc" - - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - # do not use pmake recursive - try make LOCATE_DB=/var/lib/locatedb \ - libexecdir=/usr/lib/find $MAKEOPTS -} - -src_unpack() { - unpack ${A} - einfo "Applying Patch..." - #using sed to apply minor patches to files - cd ${S}/find - mv fstype.c fstype.c.orig - sed -e "33d" -e "34d" fstype.c.orig > fstype.c - mv parser.c parser.c.orig - sed -e "55d" parser.c.orig > parser.c - mv pred.c pred.c.orig - sed -e '29i\' -e '#define FNM_CASEFOLD (1<<4)' pred.c.orig > pred.c - cd ${S}/lib - mv nextelem.c nextelem.c.orig - sed -e "35d" nextelem.c.orig > nextelem.c - cd ${S}/xargs - mv xargs.c xargs.c.orig - sed -e "63d" -e "64d" xargs.c.orig > xargs.c -} - -src_install() { - cd ${S} - try make prefix=${D}/usr libexecdir=${D}/usr/lib/find \ - LOCATE_DB=${D}/var/lib/locatedb install - dosed "s:TMPDIR=/usr/tmp:TMPDIR=/tmp:" usr/bin/updatedb - dodoc COPYING NEWS README TODO ChangeLog - rm -fr ${D}/usr/var -} - diff --git a/sys-apps/findutils/findutils-4.1-r4.ebuild b/sys-apps/findutils/findutils-4.1-r4.ebuild deleted file mode 100644 index 3285f57e76db..000000000000 --- a/sys-apps/findutils/findutils-4.1-r4.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# 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-apps/findutils/findutils-4.1-r4.ebuild,v 1.1 2001/02/07 15:51:27 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU utilities to find files" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/findutils/${A} - ftp://prep.ai.mit.edu/gnu/findutils/${A}" -HOMEPAGE="http://www.gnu.org/software/findutils/findutils.html" - -DEPEND="virtual/glibc" - -src_unpack() { - - unpack ${A} - echo "Applying Patch..." - #using sed to apply minor patches to files - cd ${S} - - cd find - cp fstype.c fstype.c.orig - sed -e "33d" -e "34d" fstype.c.orig > fstype.c - cp parser.c parser.c.orig - sed -e "55d" parser.c.orig > parser.c - cp pred.c pred.c.orig - sed -e '29i\' -e '#define FNM_CASEFOLD (1<<4)' pred.c.orig > pred.c - cd ${S}/lib - cp nextelem.c nextelem.c.orig - sed -e "35d" nextelem.c.orig > nextelem.c - cd ${S}/xargs - cp xargs.c xargs.c.orig - sed -e "63d" -e "64d" xargs.c.orig > xargs.c -} - -src_compile() { - - try ./configure --host=${CHOST} --prefix=/usr - - # do not use pmake recursive - try make LOCATE_DB=/var/lib/misc/locatedb \ - libexecdir=/usr/lib/find $MAKEOPTS -} - -src_install() { - - try make prefix=${D}/usr mandir=${D}/usr/share/man infodir=${D}/usr/share/info libexecdir=${D}/usr/lib/find \ - LOCATE_DB=${D}/var/lib/misc/locatedb install - dosed "s:TMPDIR=/usr/tmp:TMPDIR=/tmp:" usr/bin/updatedb - - rm -fr ${D}/usr/var - dodoc COPYING NEWS README TODO ChangeLog - -} - diff --git a/sys-apps/gawk/files/digest-gawk-3.0.6 b/sys-apps/gawk/files/digest-gawk-3.0.6 deleted file mode 100644 index 55f7d10d4a37..000000000000 --- a/sys-apps/gawk/files/digest-gawk-3.0.6 +++ /dev/null @@ -1 +0,0 @@ -MD5 b5ba21c033f5a9737455458d94954609 gawk-3.0.6.tar.gz diff --git a/sys-apps/gawk/files/digest-gawk-3.0.6-r1 b/sys-apps/gawk/files/digest-gawk-3.0.6-r1 deleted file mode 100644 index 55f7d10d4a37..000000000000 --- a/sys-apps/gawk/files/digest-gawk-3.0.6-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 b5ba21c033f5a9737455458d94954609 gawk-3.0.6.tar.gz diff --git a/sys-apps/gawk/files/digest-gawk-3.0.6-r2 b/sys-apps/gawk/files/digest-gawk-3.0.6-r2 deleted file mode 100644 index 55f7d10d4a37..000000000000 --- a/sys-apps/gawk/files/digest-gawk-3.0.6-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 b5ba21c033f5a9737455458d94954609 gawk-3.0.6.tar.gz diff --git a/sys-apps/gawk/gawk-3.0.6-r1.ebuild b/sys-apps/gawk/gawk-3.0.6-r1.ebuild deleted file mode 100644 index 5c0916defadf..000000000000 --- a/sys-apps/gawk/gawk-3.0.6-r1.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# 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-apps/gawk/gawk-3.0.6-r1.ebuild,v 1.3 2001/01/31 20:49:07 achim Exp $ - -P=gawk-3.0.6 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU awk pattern-matching language" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/gawk/${A} - ftp://prep.ai.mit.edu/gnu/gawk/${A}" -HOMEPAGE="http://www.gnu.org/software/gawk/gawk.html" -DEPEND="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --libexecdir=/usr/lib/awk --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr libexecdir=${D}/usr/lib/awk install -# rm -rf ${S}/usr/lib - dodoc ChangeLog ACKNOWLEDGMENT COPYING FUTURES - dodoc LIMITATIONS NEWS PROBLEMS README - docinto README_d - dodoc README_d/* - docinto atari - dodoc atari/ChangeLog atari/README.1st - docinto awklib - dodoc awklib/ChangeLog - docinto pc - dodoc pc/ChangeLog - docinto posix - dodoc posix/ChangeLog - -} - - - diff --git a/sys-apps/gawk/gawk-3.0.6-r2.ebuild b/sys-apps/gawk/gawk-3.0.6-r2.ebuild deleted file mode 100644 index 664493c10728..000000000000 --- a/sys-apps/gawk/gawk-3.0.6-r2.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# 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-apps/gawk/gawk-3.0.6-r2.ebuild,v 1.2 2001/02/15 18:17:31 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU awk pattern-matching language" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/gawk/${A} - ftp://prep.ai.mit.edu/gnu/gawk/${A}" -HOMEPAGE="http://www.gnu.org/software/gawk/gawk.html" -DEPEND="virtual/glibc" - -src_compile() { - - try ./configure --prefix=/usr --libexecdir=/usr/lib/awk --mandir=/usr/share/man --infodir=/usr/share/info --host=${CHOST} - try make ${MAKEOPTS} - -} - -src_install() { - - try make prefix=${D}/usr mandir=${D}/usr/share/man/man1 infodir=${D}/usr/share/info libexecdir=${D}/usr/lib/awk install - dosym gawk.1.gz /usr/share/man/man1/awk.1.gz - dodoc ChangeLog ACKNOWLEDGMENT COPYING FUTURES - dodoc LIMITATIONS NEWS PROBLEMS README - docinto README_d - dodoc README_d/* - docinto atari - dodoc atari/ChangeLog atari/README.1st - docinto awklib - dodoc awklib/ChangeLog - docinto pc - dodoc pc/ChangeLog - docinto posix - dodoc posix/ChangeLog - -} - - - diff --git a/sys-apps/gawk/gawk-3.0.6.ebuild b/sys-apps/gawk/gawk-3.0.6.ebuild deleted file mode 100644 index 9bd2cc44ecca..000000000000 --- a/sys-apps/gawk/gawk-3.0.6.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# 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-apps/gawk/gawk-3.0.6.ebuild,v 1.4 2000/11/30 23:14:33 achim Exp $ - -P=gawk-3.0.6 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU awk pattern-matching language" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/gawk/${A} - ftp://prep.ai.mit.edu/gnu/gawk/${A}" -HOMEPAGE="http://www.gnu.org/software/gawk/gawk.html" -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - rm -rf ${S}/usr/lib - dodoc ChangeLog ACKNOWLEDGMENT COPYING FUTURES - dodoc LIMITATIONS NEWS PROBLEMS README - docinto README_d - dodoc README_d/* - docinto atari - dodoc atari/ChangeLog atari/README.1st - docinto awklib - dodoc awklib/ChangeLog - docinto pc - dodoc pc/ChangeLog - docinto posix - dodoc posix/ChangeLog - -} - - - diff --git a/sys-apps/gluelog/gluelog-1.0-r1.ebuild b/sys-apps/gluelog/gluelog-1.0-r1.ebuild deleted file mode 100644 index 04c1b5d91052..000000000000 --- a/sys-apps/gluelog/gluelog-1.0-r1.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# 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-apps/gluelog/gluelog-1.0-r1.ebuild,v 1.3 2001/01/13 20:07:52 achim Exp $ - -S=${WORKDIR}/${P} -DESCRIPTION="Pipe and socket fittings for the system and kernel logs" -SRC_URI="" - -src_compile() { - mkdir ${S} - cd ${FILESDIR} - gcc ${CFLAGS} gluelog.c -o ${S}/gluelog - gcc ${CFLAGS} glueklog.c -o ${S}/glueklog -} - -src_unpack() { - echo -} - -src_install() { - dodir /usr/sbin - dosbin ${S}/gluelog ${S}/glueklog - exeopts -m0750 -g wheel - dodir /var/log - local x - for x in syslog klog - do - exeinto /var/lib/supervise/services/${x} - newexe ${FILESDIR}/${x}-run run - install -d -m0750 -o daemon -g wheel ${D}/var/log/${x}.d - exeinto /etc/rc.d/init.d - doexe ${FILESDIR}/svc-${x} - done -} - diff --git a/sys-apps/grep/files/digest-grep-2.4.2-r1 b/sys-apps/grep/files/digest-grep-2.4.2-r1 deleted file mode 100644 index 10f2f727a071..000000000000 --- a/sys-apps/grep/files/digest-grep-2.4.2-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 8ec9a2e875cd3aaa89896a8f39249f58 grep-2.4.2.tar.gz diff --git a/sys-apps/grep/files/digest-grep-2.4.2-r2 b/sys-apps/grep/files/digest-grep-2.4.2-r2 deleted file mode 100644 index 10f2f727a071..000000000000 --- a/sys-apps/grep/files/digest-grep-2.4.2-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 8ec9a2e875cd3aaa89896a8f39249f58 grep-2.4.2.tar.gz diff --git a/sys-apps/grep/grep-2.4.2-r1.ebuild b/sys-apps/grep/grep-2.4.2-r1.ebuild deleted file mode 100644 index d19e67be39ef..000000000000 --- a/sys-apps/grep/grep-2.4.2-r1.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# 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-apps/grep/grep-2.4.2-r1.ebuild,v 1.7 2001/01/31 20:49:07 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="virtual/glibc" -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - dodoc AUTHORS COPYING ChangeLog NEWS README THANKS TODO -} - - - diff --git a/sys-apps/grep/grep-2.4.2-r2.ebuild b/sys-apps/grep/grep-2.4.2-r2.ebuild deleted file mode 100644 index d07ef91970c1..000000000000 --- a/sys-apps/grep/grep-2.4.2-r2.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# 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-apps/grep/grep-2.4.2-r2.ebuild,v 1.1 2001/02/07 15:51:27 achim Exp $ - -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="virtual/glibc - >=sys-devel/gettext-0.10.35-r2" - -RDEPEND="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - - try make prefix=${D}/usr mandir=${D}/usr/share/man infodir=${D}/usr/share/info install - - dodoc AUTHORS COPYING ChangeLog NEWS README THANKS TODO - -} - - - diff --git a/sys-apps/groff/files/digest-groff-1.16.1 b/sys-apps/groff/files/digest-groff-1.16.1 deleted file mode 100644 index a63bf91c1ed9..000000000000 --- a/sys-apps/groff/files/digest-groff-1.16.1 +++ /dev/null @@ -1 +0,0 @@ -MD5 f5dfb985bd890fd6dcd95b138935a9ad groff-1.16.1.tar.gz diff --git a/sys-apps/groff/groff-1.16.1.ebuild b/sys-apps/groff/groff-1.16.1.ebuild deleted file mode 100644 index efa25f27d313..000000000000 --- a/sys-apps/groff/groff-1.16.1.ebuild +++ /dev/null @@ -1,42 +0,0 @@ -# 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-apps/groff/groff-1.16.1.ebuild,v 1.6 2001/01/31 20:49:07 achim Exp $ - -P=groff-1.16.1 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Text formatter used for man pages" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/groff/${A} - ftp://prep.ai.mit.edu/gnu/groff/${A}" -HOMEPAGE="http://www.gnu.org/software/groff/groff.html" - -DEPEND="virtual/glibc - >=sys-devel/gcc-2.95.2" - -RDEPEND="$DEPEND - sys-devel/perl - sys-apps/bash" - - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - cd ${S}/tmac -# mv Makefile.sub Makefile.sub.orig -# sed -e "s/all: stamp-strip stamp-wrap/all: stamp-strip/" Makefile.sub.orig > Makefile.sub - #fixed some things with the build process using good 'ol sed - cd ${S} - # pmake does not work ! - try make -} - -src_install() { - into /usr - dodoc NEWS PROBLEMS PROJECTS README TODO VERSION \ - BUG-REPORT COPYING ChangeLog FDL MORE.STUFF \ - REVISION - try make prefix=${D}/usr install - -} - - diff --git a/sys-apps/grub/files/digest-grub-0.5.96.1-r1 b/sys-apps/grub/files/digest-grub-0.5.96.1-r1 deleted file mode 100644 index 1c025eb54f63..000000000000 --- a/sys-apps/grub/files/digest-grub-0.5.96.1-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 3c078fa58deaf7ea3bdf3135b3b4e975 grub-0.5.96.1.tar.gz diff --git a/sys-apps/grub/grub-0.5.96.1-r1.ebuild b/sys-apps/grub/grub-0.5.96.1-r1.ebuild deleted file mode 100644 index 7db99b5ee924..000000000000 --- a/sys-apps/grub/grub-0.5.96.1-r1.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# 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-apps/grub/grub-0.5.96.1-r1.ebuild,v 1.2 2000/11/30 23:14:33 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU GRUB boot loader" -SRC_URI="ftp://alpha.gnu.org/gnu/grub/${A}" -HOMEPAGE="http://www.gnu.org/software/grub" -DEPEND=">=sys-libs/gpm-1.19.3" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - cd ${S} - dodir /boot/boot/grub - cd ${D}/usr/share/grub/i386-pc - cp stage1 stage2 *stage1_5 ${D}/boot/boot/grub - dodoc AUTHORS BUGS COPYING ChangeLog NEWS README THANKS TODO -} - - - diff --git a/sys-apps/gzip/files/digest-gzip-1.2.4a-r1 b/sys-apps/gzip/files/digest-gzip-1.2.4a-r1 deleted file mode 100644 index 60ae475bc42e..000000000000 --- a/sys-apps/gzip/files/digest-gzip-1.2.4a-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 39053e044b18ecd0627f80fbe7cfeaad gzip-1.2.4a.tar.gz diff --git a/sys-apps/gzip/files/digest-gzip-1.2.4a-r2 b/sys-apps/gzip/files/digest-gzip-1.2.4a-r2 deleted file mode 100644 index 60ae475bc42e..000000000000 --- a/sys-apps/gzip/files/digest-gzip-1.2.4a-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 39053e044b18ecd0627f80fbe7cfeaad gzip-1.2.4a.tar.gz diff --git a/sys-apps/gzip/gzip-1.2.4a-r1.ebuild b/sys-apps/gzip/gzip-1.2.4a-r1.ebuild deleted file mode 100644 index 1a7df3b1fd26..000000000000 --- a/sys-apps/gzip/gzip-1.2.4a-r1.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# 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-apps/gzip/gzip-1.2.4a-r1.ebuild,v 1.8 2001/01/31 20:49:07 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="virtual/glibc" -RDEPEND="virtual/glibc - sys-apps/bash" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr --exec-prefix=/ - try pmake -} - -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 - cd ${D}/usr/man/man1 - - for i in gzexe gzip zcat zcmp zdiff zforce \ - zgrep zmore znew - do - rm ${i}.1 - ln -s gunzip.1.gz ${i}.1.gz - done - cd ${S} - rm -rf ${D}/usr/lib - dodoc ChangeLog COPYING NEWS README THANKS TODO - docinto txt - dodoc algorithm.doc gzip.doc -} - - - - diff --git a/sys-apps/gzip/gzip-1.2.4a-r2.ebuild b/sys-apps/gzip/gzip-1.2.4a-r2.ebuild deleted file mode 100644 index 1269271f6f87..000000000000 --- a/sys-apps/gzip/gzip-1.2.4a-r2.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# 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-apps/gzip/gzip-1.2.4a-r2.ebuild,v 1.1 2001/02/07 15:51:27 achim Exp $ - -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="virtual/glibc" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr --exec-prefix=/ \ - --mandir=/usr/share/man --infodir=/usr/share/info - try pmake -} - -src_install() { - - dodir /usr/bin /usr/share/man/man1 - try make prefix=${D}/usr exec_prefix=${D}/ mandir=${D}/usr/share/man/man1 infodir=${D}/usr/share/info 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 - - cd ${D}/usr/share/man/man1 - - for i in gzexe gzip zcat zcmp zdiff zforce \ - zgrep zmore znew - do - rm ${i}.1 - ln -s gunzip.1.gz ${i}.1.gz - done - - cd ${S} - rm -rf ${D}/usr/man ${D}/usr/lib - - dodoc ChangeLog COPYING NEWS README THANKS TODO - docinto txt - dodoc algorithm.doc gzip.doc -} - - - - diff --git a/sys-apps/hdparm/files/digest-hdparm-3.9-r2 b/sys-apps/hdparm/files/digest-hdparm-3.9-r2 deleted file mode 100644 index 5234b2f133f6..000000000000 --- a/sys-apps/hdparm/files/digest-hdparm-3.9-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 e0acf444f8d2fff2cb83cf080e1115e1 hdparm-3.9.tar.gz diff --git a/sys-apps/hdparm/hdparm-3.9-r2.ebuild b/sys-apps/hdparm/hdparm-3.9-r2.ebuild deleted file mode 100644 index 7f680b13b64f..000000000000 --- a/sys-apps/hdparm/hdparm-3.9-r2.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# 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-apps/hdparm/hdparm-3.9-r2.ebuild,v 1.3 2000/12/01 21:58:45 achim Exp $ - -P=hdparm-3.9 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Utility to change hard drive performance parameters" -SRC_URI="http://metalab.unc.edu/pub/Linux/system/hardware/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - try pmake all -} - -src_unpack() { - unpack ${A} - cd ${S} - mv Makefile Makefile.orig - sed -e "s/-O2/${CFLAGS}/" -e "s:-s::" \ - Makefile.orig > Makefile - mv hdparm.c hdparm.orig - sed -e "s:#include <string\.h>::" hdparm.orig > hdparm.c -} - -src_install() { - into /usr - dosbin hdparm - doman hdparm.8 - dodoc hdparm-*.lsm Changelog -} - - diff --git a/sys-apps/ipchains/files/digest-ipchains-1.3.10 b/sys-apps/ipchains/files/digest-ipchains-1.3.10 deleted file mode 100644 index f06ae7de40fd..000000000000 --- a/sys-apps/ipchains/files/digest-ipchains-1.3.10 +++ /dev/null @@ -1 +0,0 @@ -MD5 44b6df672a6e7bce8902dc67aef6b12a ipchains-1.3.10.tar.gz diff --git a/sys-apps/ipchains/ipchains-1.3.10.ebuild b/sys-apps/ipchains/ipchains-1.3.10.ebuild deleted file mode 100644 index a55bc9fd4648..000000000000 --- a/sys-apps/ipchains/ipchains-1.3.10.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# 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-apps/ipchains/ipchains-1.3.10.ebuild,v 1.2 2000/11/30 23:14:33 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="2.2 kernel equivalent of ipfwadm" -SRC_URI="http://netfilter.kernelnotes.org/ipchains/${A}" -HOMEPAGE="http://netfilter.filewatcher.org/ipchains/" - -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - try make clean - try make ${MAKEOPTS} all -} - -src_unpack() { - - unpack ${A} - cd ${S} - mv Makefile Makefile.orig - sed -e "s/= -g -O/= ${CFLAGS}/" Makefile.orig > Makefile - cd ${S}/libipfwc - mv Makefile Makefile.orig - sed -e "s/= -g -O/= ${CFLAGS}/" Makefile.orig > Makefile -} - -src_install() { - into / - dosbin ipchains - doman ipfw.4 ipchains.8 - dodoc COPYING README - docinto ps - dodoc ipchains-quickref.ps -} - - diff --git a/sys-apps/iproute2/files/digest-iproute2-2.2.4 b/sys-apps/iproute2/files/digest-iproute2-2.2.4 deleted file mode 100644 index 4bb3a63d1bcb..000000000000 --- a/sys-apps/iproute2/files/digest-iproute2-2.2.4 +++ /dev/null @@ -1 +0,0 @@ -MD5 70ef05a56f32f73a1ef67ef40d35c37e iproute2-2.2.4-now-ss001007.tar.gz diff --git a/sys-apps/iproute2/files/digest-iproute2-2.2.4-r1 b/sys-apps/iproute2/files/digest-iproute2-2.2.4-r1 deleted file mode 100644 index 4bb3a63d1bcb..000000000000 --- a/sys-apps/iproute2/files/digest-iproute2-2.2.4-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 70ef05a56f32f73a1ef67ef40d35c37e iproute2-2.2.4-now-ss001007.tar.gz diff --git a/sys-apps/iptables/files/digest-iptables-1.1.2 b/sys-apps/iptables/files/digest-iptables-1.1.2 deleted file mode 100644 index e4eea023d1b4..000000000000 --- a/sys-apps/iptables/files/digest-iptables-1.1.2 +++ /dev/null @@ -1 +0,0 @@ -MD5 7c98763fae835bba08284559e0125dfa iptables-1.1.2.tar.bz2 diff --git a/sys-apps/iptables/files/digest-iptables-1.2 b/sys-apps/iptables/files/digest-iptables-1.2 deleted file mode 100644 index 9b1cfcc198d4..000000000000 --- a/sys-apps/iptables/files/digest-iptables-1.2 +++ /dev/null @@ -1 +0,0 @@ -MD5 8a6ae3a22b4e402e251150a37f3400ca iptables-1.2.tar.bz2 diff --git a/sys-apps/iptables/files/digest-iptables-1.2-r1 b/sys-apps/iptables/files/digest-iptables-1.2-r1 deleted file mode 100644 index 9b1cfcc198d4..000000000000 --- a/sys-apps/iptables/files/digest-iptables-1.2-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 8a6ae3a22b4e402e251150a37f3400ca iptables-1.2.tar.bz2 diff --git a/sys-apps/isapnptools/files/digest-isapnptools-1.23 b/sys-apps/isapnptools/files/digest-isapnptools-1.23 deleted file mode 100644 index 9c4e0abccabf..000000000000 --- a/sys-apps/isapnptools/files/digest-isapnptools-1.23 +++ /dev/null @@ -1 +0,0 @@ -MD5 6e365c7c7dabda6e4ef64b0630bdb28e isapnptools-1.23.tgz diff --git a/sys-apps/isapnptools/isapnptools-1.23.ebuild b/sys-apps/isapnptools/isapnptools-1.23.ebuild deleted file mode 100644 index b7f5314cda24..000000000000 --- a/sys-apps/isapnptools/isapnptools-1.23.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# 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-apps/isapnptools/isapnptools-1.23.ebuild,v 1.3 2000/11/30 23:14:33 achim Exp $ - -P=isapnptools-1.23 -A=${P}.tgz -S=${WORKDIR}/${P} -DESCRIPTION="Tools for configuring ISA PnP devices" -SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/hardware/${A}" -HOMEPAGE="http://www.roestock.demon.co.uk/isapnptools/" - -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_unpack() { - unpack ${A} - cd ${S}/src - cp pnpdump_main.c pnpdump_main.c.orig - sed -e "s/^static FILE\* o_file.*//" \ - -e "s/o_file/stdout/g" \ - -e "s/stdout_name/o_file_name/g" pnpdump_main.c.orig > pnpdump_main.c -# cp Makefile Makefile.orig -# sed -e "s:-O2:${CFLAGS}:" Makefile.orig > Makefile - -} - -src_install() { - cd ${S} - dodir /usr/man/man5 - dodir /usr/man/man8 - try make DESTDIR=${D} install - dodoc AUTHORS ChangeLog COPYING README NEWS - docinto txt - # Small fix - dodoc doc/README* doc/*.txt test/*.txt - dodoc etc/isapnp.* -} - diff --git a/sys-apps/less/files/digest-less-358-r1 b/sys-apps/less/files/digest-less-358-r1 deleted file mode 100644 index 01ad0a7d8e5e..000000000000 --- a/sys-apps/less/files/digest-less-358-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 692a94060a50dd35a4d65176cb899444 less-358.tar.gz diff --git a/sys-apps/less/less-358-r1.ebuild b/sys-apps/less/less-358-r1.ebuild deleted file mode 100644 index 12d084e95967..000000000000 --- a/sys-apps/less/less-358-r1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# 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-apps/less/less-358-r1.ebuild,v 1.6 2000/11/30 23:14:33 achim Exp $ - -P=less-358 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Excellent text file viewer" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/less/${A} - ftp://ftp.gnu.org/pub/gnu/less/${A}" -HOMEPAGE="http://www.gnu.org/software/less/less.html" - -DEPEND=">=sys-libs/gpm-1.19.3" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - try pmake -} - -src_install() { - cd ${S} - into /usr - dobin less lessecho lesskey - cp lesskey.nro lesskey.1 - cp less.nro less.1 - doman *.1 - dodoc COPYING NEWS README LICENSE -} - - - diff --git a/sys-apps/lilo/files/digest-lilo-21.6 b/sys-apps/lilo/files/digest-lilo-21.6 deleted file mode 100644 index 755082b10d13..000000000000 --- a/sys-apps/lilo/files/digest-lilo-21.6 +++ /dev/null @@ -1 +0,0 @@ -MD5 796a43b6dfd488e36fcbd84719f8ba16 lilo-21.6.tar.gz diff --git a/sys-apps/lilo/files/digest-lilo-21.6-r1 b/sys-apps/lilo/files/digest-lilo-21.6-r1 deleted file mode 100644 index 755082b10d13..000000000000 --- a/sys-apps/lilo/files/digest-lilo-21.6-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 796a43b6dfd488e36fcbd84719f8ba16 lilo-21.6.tar.gz diff --git a/sys-apps/lilo/lilo-21.6-r1.ebuild b/sys-apps/lilo/lilo-21.6-r1.ebuild deleted file mode 100644 index 66a668abc3ae..000000000000 --- a/sys-apps/lilo/lilo-21.6-r1.ebuild +++ /dev/null @@ -1,76 +0,0 @@ -# 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-apps/lilo/lilo-21.6-r1.ebuild,v 1.1 2001/02/07 15:51:27 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Standard Linux boot loader" -SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/"${A} - -DEPEND="virtual/glibc - >=sys-devel/bin86-0.15.4-r1" - -RDEPEND="virtual/glibc" - -src_unpack() { - - unpack ${A} - cd ${S} - cp Makefile Makefile.orig - sed -e "s:-g:${CFLAGS}:" \ - Makefile.orig > Makefile - -} - -src_compile() { - - try pmake -} - -src_install() { - - into / - dosbin lilo - into /usr - dosbin keytab-lilo.pl - dodir /boot - insinto /boot - doins boot-text.b boot-menu.b chain.b os2_d.b - doman manPages/*.[5-8] - dodoc CHANGES COPYING INCOMPAT QuickInst README* -} - -pkg_preinst() { - - . ${ROOT}/etc/rc.d/config/functions - - if [ ! -L $ROOT/boot/boot.b -a -f $ROOT/boot/boot.b ] - then - einfo "Saving old boot.b..." - mv $ROOT/boot/boot.b $ROOT/boot/boot.old; - fi - - if [ ! -L $ROOT/boot/chain.b -a -f $ROOT/boot/chain.b ] - then - einfo "Saving old chain.b..." - mv $ROOT/boot/chain.b $ROOT/boot/chain.old; - fi - - if [ ! -L $ROOT/boot/os2_d.b -a -f $ROOT/boot/os2_d.b ] - then - einfo "Saving old os2_d.b..." - mv $ROOT/boot/os2_d.b $ROOT/boot/os2_d.old; - fi -} - -pkg_postinst() { - - . ${ROOT}/etc/rc.d/config/functions - - einfo "Activating boot-menu..." - ln -sf boot-menu.b $ROOT/boot/boot.b; - -} - - diff --git a/sys-apps/lilo/lilo-21.6.ebuild b/sys-apps/lilo/lilo-21.6.ebuild deleted file mode 100644 index 85be0e904f49..000000000000 --- a/sys-apps/lilo/lilo-21.6.ebuild +++ /dev/null @@ -1,62 +0,0 @@ -# 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-apps/lilo/lilo-21.6.ebuild,v 1.3 2000/11/30 23:14:33 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Standard Linux boot loader" -SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/boot/lilo/"${A} -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-devel/perl-5.6" - -src_compile() { - try pmake -} - -src_install() { - into / - dosbin lilo - into /usr - dosbin keytab-lilo.pl - dodir /boot - insinto /boot - doins boot-text.b boot-menu.b chain.b os2_d.b - doman manPages/*.[5-8] - dodoc CHANGES COPYING INCOMPAT QuickInst README* -} - -pkg_preinst() { - - . ${ROOT}/etc/rc.d/config/functions - - if [ ! -L $ROOT/boot/boot.b -a -f $ROOT/boot/boot.b ] - then - einfo "Saving old boot.b..." - mv $ROOT/boot/boot.b $ROOT/boot/boot.old; - fi - - if [ ! -L $ROOT/boot/chain.b -a -f $ROOT/boot/chain.b ] - then - einfo "Saving old chain.b..." - mv $ROOT/boot/chain.b $ROOT/boot/chain.old; - fi - - if [ ! -L $ROOT/boot/os2_d.b -a -f $ROOT/boot/os2_d.b ] - then - einfo "Saving old os2_d.b..." - mv $ROOT/boot/os2_d.b $ROOT/boot/os2_d.old; - fi -} - -pkg_postinst() { - - . ${ROOT}/etc/rc.d/config/functions - - einfo "Activating boot-menu..." - ln -sf boot-menu.b $ROOT/boot/boot.b; - -} - - diff --git a/sys-apps/man-pages/files/digest-man-pages-1.31 b/sys-apps/man-pages/files/digest-man-pages-1.31 deleted file mode 100644 index b0dd48a859be..000000000000 --- a/sys-apps/man-pages/files/digest-man-pages-1.31 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 3536efbc1d5c5ab38de66771eab723c3 man-pages-1.31.tar.gz -MD5 17135e48a2813766e2db94ccb7339168 netman-20000610.tgz diff --git a/sys-apps/man-pages/man-pages-1.31.ebuild b/sys-apps/man-pages/man-pages-1.31.ebuild deleted file mode 100644 index d896e03a1664..000000000000 --- a/sys-apps/man-pages/man-pages-1.31.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# 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-apps/man-pages/man-pages-1.31.ebuild,v 1.3 2000/12/13 11:37:56 achim Exp $ - -P=man-pages-1.31 -A="${P}.tar.gz netman-20000610.tgz" -S=${WORKDIR}/${P} -DESCRIPTION="A somewhat comprehensive collection of Linux man pages" - -SRC_URI="ftp://ftp.kernel.org/pub/linux/docs/manpages/man-pages-1.31.tar.gz - ftp://ftp.de.kernel.org/pub/linux/docs/manpages/man-pages-1.31.tar.gz - ftp://ftp.uk.kernel.org/pub/linux/docs/manpages/man-pages-1.31.tar.gz - ftp://ftp.suse.com/pub/people/ak/netman/netman-20000610.tgz" - -DEPEND="" - -src_compile() { - echo -} - -src_unpack() { - unpack ${P}.tar.gz - cd ${S} - unpack netman-20000610.tgz - tar xzf ${O}/files/man2.tar.gz - for x in 2 3 7 - do - mv netman/*.$x man$x - done -} - -src_install() { - for x in 1 2 3 4 5 6 7 8 - do - doman man$x/*.[1-9] - done - dodoc man-pages-1.31.Announce README - docinto netman - dodoc netman/FIXME netman/README -} - - - - - - - - diff --git a/sys-apps/man/files/digest-man-1.5.1h-r1 b/sys-apps/man/files/digest-man-1.5.1h-r1 deleted file mode 100644 index dee8b0af1b3c..000000000000 --- a/sys-apps/man/files/digest-man-1.5.1h-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 a5399facb73a2fd17680e7db9809c282 man-1.5h1.tar.gz diff --git a/sys-apps/man/man-1.5.1h-r1.ebuild b/sys-apps/man/man-1.5.1h-r1.ebuild deleted file mode 100644 index f6c33613bdc1..000000000000 --- a/sys-apps/man/man-1.5.1h-r1.ebuild +++ /dev/null @@ -1,61 +0,0 @@ -# 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-apps/man/man-1.5.1h-r1.ebuild,v 1.5 2000/11/30 23:14:33 achim Exp $ - -P=man-1.5h1 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Standard commands to read man pages" -SRC_URI="ftp://ftp.win.tue.nl/pub/linux-local/utils/man/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - try ./configure +sgid +fsstnd +lang all - for FOOF in src man2html - do - try pmake ${FOOF}/Makefile MANCONFIG=/etc/man.conf - cd ${S}/${FOOF} - cp Makefile Makefile.orig - sed -e "s/gcc -O/gcc ${CFLAGS}/" Makefile.orig > Makefile - cd ${S} - done - try make -} - -src_unpacks() { - unpack ${A} - cd ${S} - cp configure configure.orig - sed -e 's!/bin:/usr/bin:/usr/ucb:/usr/local/bin:$PATH!/bin /usr/bin /usr/ucb /usr/local/bin $PATH!' configure.orig > configure -} - -src_install() { - cd ${S}/src - into /usr - dodir /usr/bin - exeopts -s -m 2555 -o root -g man - exeinto /usr/bin - doexe man - #chmod +x apropos whatis try makewhatis - dobin apropos whatis - dosbin try makewhatis - insinto /etc - doins man.conf - cd ${S}/man2html - dobin man2html - doman man2html.1 - dodir /usr/man - cd ${S}/man - cp Makefile Makefile.orig - echo "BINROOTDIR=${D}" > Makefile - cat Makefile.orig >> Makefile - try make installsubdirs - cd ${S} - dodoc COPYING LSM README* TODO - -} - - diff --git a/sys-apps/modutils/files/digest-modutils-2.3.22 b/sys-apps/modutils/files/digest-modutils-2.3.22 deleted file mode 100644 index 7a83af253d3b..000000000000 --- a/sys-apps/modutils/files/digest-modutils-2.3.22 +++ /dev/null @@ -1 +0,0 @@ -MD5 e52df20711457cfe7ee102385d309572 modutils-2.3.22.tar.bz2 diff --git a/sys-apps/modutils/files/digest-modutils-2.3.24 b/sys-apps/modutils/files/digest-modutils-2.3.24 deleted file mode 100644 index 4c4830f69ab2..000000000000 --- a/sys-apps/modutils/files/digest-modutils-2.3.24 +++ /dev/null @@ -1 +0,0 @@ -MD5 983a06ea18e91c0f11e1f120567db3f7 modutils-2.3.24.tar.bz2 diff --git a/sys-apps/modutils/files/digest-modutils-2.4.0 b/sys-apps/modutils/files/digest-modutils-2.4.0 deleted file mode 100644 index 438ecc42719a..000000000000 --- a/sys-apps/modutils/files/digest-modutils-2.4.0 +++ /dev/null @@ -1 +0,0 @@ -MD5 42c8a105e8cb9beaaaafe68137d5c69d modutils-2.4.0.tar.bz2 diff --git a/sys-apps/modutils/modutils-2.3.22.ebuild b/sys-apps/modutils/modutils-2.3.22.ebuild deleted file mode 100644 index 500ce0976269..000000000000 --- a/sys-apps/modutils/modutils-2.3.22.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# 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-apps/modutils/modutils-2.3.22.ebuild,v 1.1 2000/12/12 22:03:01 achim Exp $ - -A=${P}.tar.bz2 -S=${WORKDIR}/${P} -DESCRIPTION="Standard kernel module utilities" -SRC_URI="http://www.kernel.org/pub/linux/utils/kernel/modutils/v2.3/${A} - ftp://ftp.ocs.com.au/pub/modutils/v2.3/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - try ./configure --prefix=/ --host=${CHOST} --disable-strip - try make ${MAKEOPTS} -} - -src_install() { - cd ${S} - dodir /sbin - dodir /usr/man/man1 - dodir /usr/man/man8 - dodir /usr/man/man5 - dodir /usr/man/man2 - try make prefix=${D} mandir=${D}/usr/man install - dodoc COPYING CREDITS ChangeLog NEWS README TODO -} - - - - diff --git a/sys-apps/modutils/modutils-2.3.24.ebuild b/sys-apps/modutils/modutils-2.3.24.ebuild deleted file mode 100644 index 8fa0b306d990..000000000000 --- a/sys-apps/modutils/modutils-2.3.24.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# 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-apps/modutils/modutils-2.3.24.ebuild,v 1.1 2001/01/02 03:54:39 drobbins Exp $ - -A=${P}.tar.bz2 -S=${WORKDIR}/${P} -DESCRIPTION="Standard kernel module utilities" -SRC_URI="http://www.kernel.org/pub/linux/utils/kernel/modutils/v2.3/${A} - ftp://ftp.ocs.com.au/pub/modutils/v2.3/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - try ./configure --prefix=/ --host=${CHOST} --disable-strip - try make ${MAKEOPTS} -} - -src_install() { - cd ${S} - dodir /sbin - dodir /usr/man/man1 - dodir /usr/man/man8 - dodir /usr/man/man5 - dodir /usr/man/man2 - try make prefix=${D} mandir=${D}/usr/man install - dodoc COPYING CREDITS ChangeLog NEWS README TODO -} - - - - diff --git a/sys-apps/modutils/modutils-2.4.0.ebuild b/sys-apps/modutils/modutils-2.4.0.ebuild deleted file mode 100644 index 23b45b7dbe58..000000000000 --- a/sys-apps/modutils/modutils-2.4.0.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# 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-apps/modutils/modutils-2.4.0.ebuild,v 1.1 2001/01/08 10:19:41 achim Exp $ - -A=${P}.tar.bz2 -S=${WORKDIR}/${P} -DESCRIPTION="Standard kernel module utilities" -SRC_URI="http://www.kernel.org/pub/linux/utils/kernel/modutils/v2.4/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - try ./configure --prefix=/ --host=${CHOST} --disable-strip - try make ${MAKEOPTS} -} - -src_install() { - cd ${S} - dodir /sbin - dodir /usr/man/man1 - dodir /usr/man/man8 - dodir /usr/man/man5 - dodir /usr/man/man2 - try make prefix=${D} mandir=${D}/usr/man install - dodoc COPYING CREDITS ChangeLog NEWS README TODO -} - - - - diff --git a/sys-apps/most/files/digest-most-4.9.0-r1 b/sys-apps/most/files/digest-most-4.9.0-r1 deleted file mode 100644 index 6572157e20c5..000000000000 --- a/sys-apps/most/files/digest-most-4.9.0-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 e2b80cda82f022100282e06918606c85 most-4.9.0.tar.gz diff --git a/sys-apps/most/most-4.9.0-r1.ebuild b/sys-apps/most/most-4.9.0-r1.ebuild deleted file mode 100644 index f09166085bdb..000000000000 --- a/sys-apps/most/most-4.9.0-r1.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# 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-apps/most/most-4.9.0-r1.ebuild,v 1.6 2000/11/30 23:14:34 achim Exp $ - -P=most-4.9.0 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="An extremely excellent text file reader" -SRC_URI="ftp://space.mit.edu/pub/davis/most/${A}" - -DEPEND=">=sys-libs/slang-1.4.2" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - #*possible* (not definite) pmake problems, let's not risk it. - # do not use pmake recursive - try make ${MAKEOPTS} -} - -src_install() { - into /usr - dobin src/objs/most - doman most.1 - dodoc COPYING COPYRIGHT README changes.txt - docinto txt - dodoc default.rc lesskeys.rc most-fun.txt -} - - diff --git a/sys-apps/net-tools/files/digest-net-tools-1.57-r1 b/sys-apps/net-tools/files/digest-net-tools-1.57-r1 deleted file mode 100644 index 2d1ef7578391..000000000000 --- a/sys-apps/net-tools/files/digest-net-tools-1.57-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 5323c275b70e29ed13ea9db086f0c74c net-tools-1.57.tar.bz2 diff --git a/sys-apps/net-tools/files/digest-net-tools-1.57-r2 b/sys-apps/net-tools/files/digest-net-tools-1.57-r2 deleted file mode 100644 index 2d1ef7578391..000000000000 --- a/sys-apps/net-tools/files/digest-net-tools-1.57-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 5323c275b70e29ed13ea9db086f0c74c net-tools-1.57.tar.bz2 diff --git a/sys-apps/net-tools/net-tools-1.57-r1.ebuild b/sys-apps/net-tools/net-tools-1.57-r1.ebuild deleted file mode 100644 index 7da73b294973..000000000000 --- a/sys-apps/net-tools/net-tools-1.57-r1.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# 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-apps/net-tools/net-tools-1.57-r1.ebuild,v 1.9 2001/02/03 20:10:31 achim Exp $ - -P=net-tools-1.57 -A=${P}.tar.bz2 -S=${WORKDIR}/${P} -DESCRIPTION="standard Linux network tools" -SRC_URI="http://www.tazenda.demon.co.uk/phil/net-tools/${A}" -DEPEND="virtual/glibc - sys-devel/gettext" - -src_compile() { - try make ${MAKEOPTS} - cd po - try make ${MAKEOPTS} - -} - -src_unpack() { - unpack ${A} - cd ${S} - cp ${O}/files/config.h . - cp ${O}/files/config.make . - mv Makefile Makefile.orig - sed -e "s/-O2 -Wall -g/${CFLAGS}/" Makefile.orig > Makefile -} - -src_install() { - try make BASEDIR=${D} install - mv ${D}/bin/* ${D}/sbin - for i in hostname domainname netstat dnsdomainname ypdomainname nisdomainname - do - mv ${D}/sbin/${i} ${D}/bin - done - dodoc COPYING README README.ipv6 TODO -} - - - diff --git a/sys-apps/net-tools/net-tools-1.57-r2.ebuild b/sys-apps/net-tools/net-tools-1.57-r2.ebuild deleted file mode 100644 index 8bde93b17bbf..000000000000 --- a/sys-apps/net-tools/net-tools-1.57-r2.ebuild +++ /dev/null @@ -1,51 +0,0 @@ -# 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-apps/net-tools/net-tools-1.57-r2.ebuild,v 1.2 2001/02/07 18:22:18 achim Exp $ - -P=net-tools-1.57 -A=${P}.tar.bz2 -S=${WORKDIR}/${P} -DESCRIPTION="standard Linux network tools" -SRC_URI="http://www.tazenda.demon.co.uk/phil/net-tools/${A}" - -DEPEND="virtual/glibc - sys-devel/gettext" -RDEPEND="virtual/glibc" - -src_unpack() { - - unpack ${A} - cd ${S} - cp ${FILESDIR}/config.h . - cp ${FILESDIR}/config.make . - cp Makefile Makefile.orig - sed -e "s/-O2 -Wall -g/${CFLAGS}/" Makefile.orig > Makefile - cd man - cp Makefile Makefile.orig - sed -e "s:/usr/man:/usr/share/man:" Makefile.orig > Makefile - -} - -src_compile() { - - try make ${MAKEOPTS} - cd po - try make ${MAKEOPTS} - -} - -src_install() { - - try make BASEDIR=${D} install - mv ${D}/bin/* ${D}/sbin - for i in hostname domainname netstat dnsdomainname ypdomainname nisdomainname - do - mv ${D}/sbin/${i} ${D}/bin - done - - dodoc COPYING README README.ipv6 TODO -} - - - diff --git a/sys-apps/netkit-base/files/digest-netkit-base-0.17-r1 b/sys-apps/netkit-base/files/digest-netkit-base-0.17-r1 deleted file mode 100644 index 8f379421bf7a..000000000000 --- a/sys-apps/netkit-base/files/digest-netkit-base-0.17-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 1f0193358e92559ec0f598b09ccbc0ec netkit-base-0.17.tar.gz diff --git a/sys-apps/netkit-base/netkit-base-0.17-r1.ebuild b/sys-apps/netkit-base/netkit-base-0.17-r1.ebuild deleted file mode 100644 index d181cefc55e6..000000000000 --- a/sys-apps/netkit-base/netkit-base-0.17-r1.ebuild +++ /dev/null @@ -1,35 +0,0 @@ -# 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-apps/netkit-base/netkit-base-0.17-r1.ebuild,v 1.6 2001/02/03 20:10:31 achim Exp $ - -P=netkit-base-0.17 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Standard linux net thingees -- inetd, ping" -SRC_URI="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/${A}" -DEPEND="virtual/glibc" - -src_compile() { - - try ./configure - mv MCONFIG MCONFIG.orig - sed -e "s/-pipe -O2/${CFLAGS}/" MCONFIG.orig > MCONFIG - - try make ${MAKEOPTS} -} - - -src_install() { - into / - dobin ping/ping - into /usr - dosbin inetd/inetd - doman inetd/inetd.8 inetd/daemon.3 ping/ping.8 - dodoc BUGS ChangeLog README - docinto samples - dodoc etc.sample/* -} - - - diff --git a/sys-apps/procps/files/digest-procps-2.0.6 b/sys-apps/procps/files/digest-procps-2.0.6 deleted file mode 100644 index 765fe621dd40..000000000000 --- a/sys-apps/procps/files/digest-procps-2.0.6 +++ /dev/null @@ -1 +0,0 @@ -MD5 2e6e156f0791b0e209d05aaf7204a219 procps-2.0.6.tar.gz diff --git a/sys-apps/procps/files/digest-procps-2.0.7-r1 b/sys-apps/procps/files/digest-procps-2.0.7-r1 deleted file mode 100644 index 47a95728f6a2..000000000000 --- a/sys-apps/procps/files/digest-procps-2.0.7-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 bd8d68a9fd0c3f37365f924e75009c8a procps-2.0.7.tar.gz diff --git a/sys-apps/procps/files/digest-procps-2.0.7-r2 b/sys-apps/procps/files/digest-procps-2.0.7-r2 deleted file mode 100644 index 47a95728f6a2..000000000000 --- a/sys-apps/procps/files/digest-procps-2.0.7-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 bd8d68a9fd0c3f37365f924e75009c8a procps-2.0.7.tar.gz diff --git a/sys-apps/procps/procps-2.0.6.ebuild b/sys-apps/procps/procps-2.0.6.ebuild deleted file mode 100644 index 60d5076b4109..000000000000 --- a/sys-apps/procps/procps-2.0.6.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# 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-apps/procps/procps-2.0.6.ebuild,v 1.1 2001/02/19 17:43:15 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Standard informational utilities and process-handling tools" -SRC_URI="ftp://people.redhat.com/johnsonm/procps/${A}" -DEPEND=">=sys-libs/ncurses-5.2-r2 - sys-libs/getext" -DEPEND=">=sys-libs/ncurses-5.2-r2" - -src_unpack() { - - unpack ${A} - - cd ${S} - patch -p0 < ${FILESDIR}/${P}.dif - - mv Makefile Makefile.orig - sed -e "s/-O3/${CFLAGS}/" -e 's/all: config/all: /' \ - -e "s:--strip::" Makefile.orig > Makefile - - cd ${S}/ps - mv Makefile Makefile.orig - sed -e "s/-O2/${CFLAGS}/" -e "s:--strip::" Makefile.orig > Makefile - - cd ${S}/proc - mv Makefile Makefile.orig - sed -e "s/-O2/${CFLAGS}/" -e "s:--strip::" Makefile.orig > Makefile - -} - -src_compile() { - try make ${MAKEOPTS} -} - -src_install() { - - dodir /usr/bin - dodir /sbin - dodir /usr/X11R6/bin - dodir /usr/share/man/man{1,5,8} - dodir /lib - dodir /bin - try make DESTDIR=${D} MANDIR=/usr/share/man install - - preplib / - dodoc BUGS COPYING COPYING.LIB NEWS TODO - docinto proc - dodoc proc/COPYING - docinto ps - dodoc ps/COPYING ps/HACKING -} - - - diff --git a/sys-apps/procps/procps-2.0.7-r1.ebuild b/sys-apps/procps/procps-2.0.7-r1.ebuild deleted file mode 100644 index 32c240deae20..000000000000 --- a/sys-apps/procps/procps-2.0.7-r1.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# 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-apps/procps/procps-2.0.7-r1.ebuild,v 1.5 2000/12/08 17:21:49 achim Exp $ - -P=procps-2.0.7 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Standard informational utilities and process-handling tools" -SRC_URI="ftp://people.redhat.com/johnsonm/procps/${A}" -DEPEND=">=sys-libs/gpm-1.13.9" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - try make ${MAKEOPTS} -} - -src_unpack() { - unpack ${A} - cd ${S} - mv Makefile Makefile.orig - sed -e "s/-O3/${CFLAGS}/" -e 's/all: config/all: /' \ - -e "s:--strip::" Makefile.orig > Makefile - mv watch.c watch.c.orig - sed -e "s/<ncurses.h>/<NEW>/" -e "s/<signal.h>/<ncurses.h>/" -e "s/<NEW>/<signal.h>/" watch.c.orig >watch.c - cd ${S}/ps - mv Makefile Makefile.orig - sed -e "s/-O2/${CFLAGS}/" -e "s:--strip::" Makefile.orig > Makefile - cd ${S}/proc - mv Makefile Makefile.orig - sed -e "s/-O2/${CFLAGS}/" -e "s:--strip::" Makefile.orig > Makefile -} - -src_install() { - into /usr - dodir /usr/bin - dodir /sbin - dodir /usr/X11R6/bin - dodir /usr/man/man1 - dodir /usr/man/man8 - dodir /usr/man/man5 - dodir /lib - dodir /bin - try make DESTDIR=${D} install - preplib / - dodoc BUGS COPYING COPYING.LIB NEWS TODO - docinto proc - dodoc proc/COPYING - docinto ps - dodoc ps/COPYING ps/HACKING -} - - - diff --git a/sys-apps/procps/procps-2.0.7-r2.ebuild b/sys-apps/procps/procps-2.0.7-r2.ebuild deleted file mode 100644 index 3c07e38b6b1b..000000000000 --- a/sys-apps/procps/procps-2.0.7-r2.ebuild +++ /dev/null @@ -1,60 +0,0 @@ -# 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-apps/procps/procps-2.0.7-r2.ebuild,v 1.2 2001/02/07 20:42:54 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Standard informational utilities and process-handling tools" -SRC_URI="ftp://people.redhat.com/johnsonm/procps/${A}" -DEPEND=">=sys-libs/ncurses-5.2-r2 - sys-libs/getext" -DEPEND=">=sys-libs/ncurses-5.2-r2" - -src_unpack() { - - unpack ${A} - - cd ${S} - - mv Makefile Makefile.orig - sed -e "s/-O3/${CFLAGS}/" -e 's/all: config/all: /' \ - -e "s:--strip::" Makefile.orig > Makefile - - mv watch.c watch.c.orig - sed -e "s/<ncurses.h>/<NEW>/" -e "s/<signal.h>/<ncurses.h>/" -e "s/<NEW>/<signal.h>/" watch.c.orig >watch.c - - cd ${S}/ps - mv Makefile Makefile.orig - sed -e "s/-O2/${CFLAGS}/" -e "s:--strip::" Makefile.orig > Makefile - - cd ${S}/proc - mv Makefile Makefile.orig - sed -e "s/-O2/${CFLAGS}/" -e "s:--strip::" Makefile.orig > Makefile - -} - -src_compile() { - try make ${MAKEOPTS} -} - -src_install() { - - dodir /usr/bin - dodir /sbin - dodir /usr/X11R6/bin - dodir /usr/share/man/man{1,5,8} - dodir /lib - dodir /bin - try make DESTDIR=${D} MANDIR=/usr/share/man install - - preplib / - dodoc BUGS COPYING COPYING.LIB NEWS TODO - docinto proc - dodoc proc/COPYING - docinto ps - dodoc ps/COPYING ps/HACKING -} - - - diff --git a/sys-apps/psmisc/files/digest-psmisc-19-r1 b/sys-apps/psmisc/files/digest-psmisc-19-r1 deleted file mode 100644 index f5049b5a2da9..000000000000 --- a/sys-apps/psmisc/files/digest-psmisc-19-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 1d56ac6c32b657fdf8f780084b095932 psmisc-19.tar.gz diff --git a/sys-apps/psmisc/psmisc-19-r1.ebuild b/sys-apps/psmisc/psmisc-19-r1.ebuild deleted file mode 100644 index 889bbc09ed81..000000000000 --- a/sys-apps/psmisc/psmisc-19-r1.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# 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-apps/psmisc/psmisc-19-r1.ebuild,v 1.4 2000/11/30 23:14:34 achim Exp $ - -#from Debian ;) - -P=psmisc-19 -A=${P}.tar.gz -S=${WORKDIR}/psmisc -DESCRIPTION="Handy process-related utilities from Debian" -SRC_URI="ftp://lrcftp.epfl.ch/pub/linux/local/psmisc/"${A} -DEPEND=">=sys-libs/gpm-1.19.3" - -src_compile() { - try pmake -} - -src_unpack() { - unpack ${A} - cd ${S} - cp Makefile Makefile.orig - sed -e "s/-ltermcap/-lncurses/g" -e "s/-O/${CFLAGS}/" Makefile.orig > Makefile -} - -src_install() { - into / - dobin fuser - into /usr - dobin killall pstree - dosym killall /usr/bin/pidof - doman *.1 - dodoc CHANGES COPYING README VERSION psmisc-19.lsm -} - - diff --git a/sys-apps/raidtools/files/digest-raidtools-0.90-r1 b/sys-apps/raidtools/files/digest-raidtools-0.90-r1 deleted file mode 100644 index 9403b1ecfd52..000000000000 --- a/sys-apps/raidtools/files/digest-raidtools-0.90-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 c6fd4456671a1ed8d3ff71a48b6e1d9c raidtools-dangerous-0.90-20000116.tar.gz diff --git a/sys-apps/raidtools/raidtools-0.90-r1.ebuild b/sys-apps/raidtools/raidtools-0.90-r1.ebuild deleted file mode 100644 index 8f15f315aefd..000000000000 --- a/sys-apps/raidtools/raidtools-0.90-r1.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# 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-apps/raidtools/raidtools-0.90-r1.ebuild,v 1.7 2001/01/31 20:49:07 achim Exp $ - -P=raidtools-0.90-1 -A=raidtools-dangerous-0.90-20000116.tar.gz -S=${WORKDIR}/raidtools-0.90 -DESCRIPTION="Linux RAID 0/1/4/5 utilities" -SRC_URI="http://people.redhat.com/mingo/raid-patches/"${A} -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - try ./configure - cp Makefile Makefile.orig - sed -e "s/-O2//" -e "s/-g//" Makefile.orig > Makefile - try pmake -} - -src_install() { - into / - dosbin mkraid raidstart mkpv - for x in raidstop raidhotadd raidhotremove raidsetfaulty - do - dosym raidstart /sbin/${x} - done - dosym mkraid /sbin/raid0run - doman *.8 *.5 - dodoc COPYING README - docinto txt - dodoc Software-RAID.HOWTO/Software-RAID.HOWTO.txt - docinto html - dodoc Software-RAID.HOWTO/Software-RAID.HOWTO.html - docinto sgml - dodoc Software-RAID.HOWTO/Software-RAID.HOWTO.sgml - - docinto config - dodoc *.sample - - dodir /dev - for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - do - mknod -m 0600 ${D}/dev/md$i b 9 $i - done - -} - diff --git a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25 b/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25 deleted file mode 100644 index 7c3e08791fb4..000000000000 --- a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25 +++ /dev/null @@ -1 +0,0 @@ -MD5 155721ba311a1967acb093b8c9b46ba1 reiserfs-utils-3.6.25.tar.gz diff --git a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r1 b/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r1 deleted file mode 100644 index d61bfde7772a..000000000000 --- a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r1 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 155721ba311a1967acb093b8c9b46ba1 reiserfs-utils-3.6.25.tar.gz -MD5 7f74cacb37eb2351a09fbdc0657fd7fc reiserfsprogs-3.x.0a.tar.gz diff --git a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r2 b/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r2 deleted file mode 100644 index d61bfde7772a..000000000000 --- a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r2 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 155721ba311a1967acb093b8c9b46ba1 reiserfs-utils-3.6.25.tar.gz -MD5 7f74cacb37eb2351a09fbdc0657fd7fc reiserfsprogs-3.x.0a.tar.gz diff --git a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r3 b/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r3 deleted file mode 100644 index 203183cf09bc..000000000000 --- a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r3 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 155721ba311a1967acb093b8c9b46ba1 reiserfs-utils-3.6.25.tar.gz -MD5 b7713712caff3a9e04050c0f237d8cab reiserfsprogs-3.x.0d.tar.gz diff --git a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r4 b/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r4 deleted file mode 100644 index 8efd220cf2bc..000000000000 --- a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r4 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 155721ba311a1967acb093b8c9b46ba1 reiserfs-utils-3.6.25.tar.gz -MD5 20fc402694ba796b587fe5d14f6ca365 reiserfsprogs-3.x.0f.tar.gz diff --git a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r5 b/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r5 deleted file mode 100644 index 76ec362bf324..000000000000 --- a/sys-apps/reiserfs-utils/files/digest-reiserfs-utils-3.6.25-r5 +++ /dev/null @@ -1 +0,0 @@ -MD5 48e4c6c7ea0b7a4199e9c3310bbf19ce reiserfsprogs-3.x.0j.tar.gz diff --git a/sys-apps/reiserfs-utils/reiserfs-utils-3.6.25.ebuild b/sys-apps/reiserfs-utils/reiserfs-utils-3.6.25.ebuild deleted file mode 100644 index bdb8331f7811..000000000000 --- a/sys-apps/reiserfs-utils/reiserfs-utils-3.6.25.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 1999-2000 Gentoo Technologies, Inc. -# Distributed under the terms of the GNU General Public License, v2 or later -# Author Your Name <your email> -# $Header: /var/cvsroot/gentoo-x86/sys-apps/reiserfs-utils/reiserfs-utils-3.6.25.ebuild,v 1.1 2001/01/19 00:59:12 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Reiserfs Utilities" -SRC_URI="ftp://ftp.namesys.com/pub/reiserfsprogs/${A}" -HOMEPAGE="http://" - -src_unpack() { - unpack ${A} - cd ${S} - cp Makefile Makefile.orig - sed -e "s:-O2:${CFLAGS}:" Makefile.orig > Makefile -} - -src_compile() { - - cd ${S} - try make - -} - -src_install () { - - cd ${S} - dodir /sbin - dodir /usr/man/man8 - try make SBIN=${D}sbin MANDIR=${D}usr/man/man8 install - dodoc README - - -} - diff --git a/sys-apps/sed/files/digest-sed-3.02.80 b/sys-apps/sed/files/digest-sed-3.02.80 deleted file mode 100644 index c2922128b256..000000000000 --- a/sys-apps/sed/files/digest-sed-3.02.80 +++ /dev/null @@ -1 +0,0 @@ -MD5 3bf4f42bc0a5f9345a7586a73be3df79 sed-3.02.80.tar.gz diff --git a/sys-apps/sed/files/digest-sed-3.02.80-r1 b/sys-apps/sed/files/digest-sed-3.02.80-r1 deleted file mode 100644 index c2922128b256..000000000000 --- a/sys-apps/sed/files/digest-sed-3.02.80-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 3bf4f42bc0a5f9345a7586a73be3df79 sed-3.02.80.tar.gz diff --git a/sys-apps/sed/sed-3.02.80-r1.ebuild b/sys-apps/sed/sed-3.02.80-r1.ebuild deleted file mode 100644 index ed0374679f4c..000000000000 --- a/sys-apps/sed/sed-3.02.80-r1.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# 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-apps/sed/sed-3.02.80-r1.ebuild,v 1.1 2001/02/07 15:51:28 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="virtual/glibc - >=sys-devel/gettext-0.10.35-r2" - -RDEPEND="virtual/glibc" - -src_compile() { - - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - - doinfo doc/sed.info - doman doc/sed.1 - - into / - dobin sed/sed - dodir /usr/bin - dosym /bin/sed /usr/bin/sed - - dodoc COPYING NEWS README* THANKS TODO AUTHORS BUGS ANNOUNCE -} - diff --git a/sys-apps/sed/sed-3.02.80.ebuild b/sys-apps/sed/sed-3.02.80.ebuild deleted file mode 100644 index 5b8281ddef4b..000000000000 --- a/sys-apps/sed/sed-3.02.80.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# 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-apps/sed/sed-3.02.80.ebuild,v 1.7 2001/01/31 20:49:07 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="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - into /usr - doinfo doc/sed.info - doman doc/sed.1 - into / - dobin sed/sed - dodir /usr/bin - dosym /bin/sed /usr/bin/sed - dodoc COPYING NEWS README* THANKS TODO AUTHORS BUGS ANNOUNCE -} - diff --git a/sys-apps/setserial/files/digest-setserial-2.17-r1 b/sys-apps/setserial/files/digest-setserial-2.17-r1 deleted file mode 100644 index 302a3bdbd781..000000000000 --- a/sys-apps/setserial/files/digest-setserial-2.17-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 c4867d72c41564318e0107745eb7a0f2 setserial-2.17.tar.gz diff --git a/sys-apps/setserial/setserial-2.17-r1.ebuild b/sys-apps/setserial/setserial-2.17-r1.ebuild deleted file mode 100644 index cd5974f82ed7..000000000000 --- a/sys-apps/setserial/setserial-2.17-r1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# 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-apps/setserial/setserial-2.17-r1.ebuild,v 1.7 2000/12/24 09:55:16 achim Exp $ - -P=setserial-2.17 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Configure your serial ports with it" -SRC_URI="ftp://tsx-11.mit.edu/pub/linux/sources/sbin/${A} - ftp://ftp.sunsite.org.uk/Mirrors/tsx-11.mit.edu/pub/linux/sources/sbin/${A}" -DEPEND="sys-apps/groff - >=sys-libs/glibc-2.1.3" - -src_compile() { - try ./configure - try pmake -} - -src_install() { - into / - dobin setserial - into /usr - doman setserial.8 - dodoc README - docinto txt - dodoc Documentation/* - insinto /etc - doins serial.conf -} - - diff --git a/sys-apps/sh-utils/files/digest-sh-utils-2.0j-r1 b/sys-apps/sh-utils/files/digest-sh-utils-2.0j-r1 deleted file mode 100644 index bc4f2b097953..000000000000 --- a/sys-apps/sh-utils/files/digest-sh-utils-2.0j-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 82087d6cc313189c312a0cf8ef875a2c sh-utils-2.0j.tar.gz diff --git a/sys-apps/sh-utils/files/digest-sh-utils-2.0j-r2 b/sys-apps/sh-utils/files/digest-sh-utils-2.0j-r2 deleted file mode 100644 index bc4f2b097953..000000000000 --- a/sys-apps/sh-utils/files/digest-sh-utils-2.0j-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 82087d6cc313189c312a0cf8ef875a2c sh-utils-2.0j.tar.gz diff --git a/sys-apps/sh-utils/sh-utils-2.0j-r1.ebuild b/sys-apps/sh-utils/sh-utils-2.0j-r1.ebuild deleted file mode 100644 index 26a5a04cd271..000000000000 --- a/sys-apps/sh-utils/sh-utils-2.0j-r1.ebuild +++ /dev/null @@ -1,43 +0,0 @@ - -# 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-apps/sh-utils/sh-utils-2.0j-r1.ebuild,v 1.9 2001/01/31 20:49:07 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="virtual/glibc" -RDEPEND="virtual/glibc - sys-apps/bash" - -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 - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - rm -rf ${D}/usr/lib - dodir /bin - cd ${D}/usr/bin - # We must use hostname from net-base - rm hostname - mv date echo false pwd stty su true uname ${D}/bin - dodoc AUTHORS COPYING ChangeLog ChangeLog.0 \ - NEWS README THANKS TODO -} - - - diff --git a/sys-apps/sh-utils/sh-utils-2.0j-r2.ebuild b/sys-apps/sh-utils/sh-utils-2.0j-r2.ebuild deleted file mode 100644 index 91711e7d9a52..000000000000 --- a/sys-apps/sh-utils/sh-utils-2.0j-r2.ebuild +++ /dev/null @@ -1,48 +0,0 @@ - -# 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-apps/sh-utils/sh-utils-2.0j-r2.ebuild,v 1.1 2001/02/07 15:51:28 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Your standard GNU shell utilities" -SRC_URI="ftp://alpha.gnu.org/gnu/fetish/${A}" - -DEPEND="virtual/glibc - >=sys-devel/gettext-0.10.35-r2" - -DEPEND="virtual/glibc" - -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() { - - try CFLAGS=\"${CFLAGS}\" ./configure --host=${CHOST} --build=${CHOST} \ - --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info \ - --without-included-regex - try make ${MAKEOPTS} -} - -src_install() { - - try make prefix=${D}/usr mandir=${D}/usr/share/man infodir=${D}/usr/share/info install - rm -rf ${D}/usr/lib - dodir /bin - cd ${D}/usr/bin - # We must use hostname from net-base - rm hostname - mv date echo false pwd stty su true uname ${D}/bin - - cd ${S} - dodoc AUTHORS COPYING ChangeLog ChangeLog.0 \ - NEWS README THANKS TODO -} - - - diff --git a/sys-apps/shadow/files/digest-shadow-20000902-r1 b/sys-apps/shadow/files/digest-shadow-20000902-r1 deleted file mode 100644 index d3297a795ea5..000000000000 --- a/sys-apps/shadow/files/digest-shadow-20000902-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 23898244ab8d1358008ed68a26f9fe43 shadow-20000902.tar.gz diff --git a/sys-apps/shadow/files/digest-shadow-20001016 b/sys-apps/shadow/files/digest-shadow-20001016 deleted file mode 100644 index fd82258cf572..000000000000 --- a/sys-apps/shadow/files/digest-shadow-20001016 +++ /dev/null @@ -1 +0,0 @@ -MD5 588d1de9d58c35cd00fa782688e1f26d shadow-20001016.tar.gz diff --git a/sys-apps/shadow/files/digest-shadow-20001016-r1 b/sys-apps/shadow/files/digest-shadow-20001016-r1 deleted file mode 100644 index fd82258cf572..000000000000 --- a/sys-apps/shadow/files/digest-shadow-20001016-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 588d1de9d58c35cd00fa782688e1f26d shadow-20001016.tar.gz diff --git a/sys-apps/shadow/files/digest-shadow-20001016-r2 b/sys-apps/shadow/files/digest-shadow-20001016-r2 deleted file mode 100644 index fd82258cf572..000000000000 --- a/sys-apps/shadow/files/digest-shadow-20001016-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 588d1de9d58c35cd00fa782688e1f26d shadow-20001016.tar.gz diff --git a/sys-apps/shadow/shadow-20000902-r1.ebuild b/sys-apps/shadow/shadow-20000902-r1.ebuild deleted file mode 100644 index 9b86b3de8a41..000000000000 --- a/sys-apps/shadow/shadow-20000902-r1.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# 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-apps/shadow/shadow-20000902-r1.ebuild,v 1.2 2000/12/12 19:15:34 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Utilities to deal with user accounts" -SRC_URI="http://www1.itnet.pl/amelektr/linux/shadow/${A} - ftp://piast.t19.ds.pwr.wroc.pl/pub/linux/shadow/${A}" -DEPEND=">=sys-libs/pam-0.72" - -src_compile() { - try ./configure --disable-desrpc --with-libcrypt \ - --with-libcrack --with-libpam --disable-shared --host=${CHOST} - # Parallel make fails sometimes - try make LDFLAGS=\"\" -} - -src_install() { - cd ${S} - try make install prefix=${D}/usr exec_prefix=${D} - mv ${D}/lib ${D}/usr - dosed "s:/lib:/usr/lib:" /usr/lib/libshadow.la - cd ${D}/usr/sbin - ln -s useradd ${D}/usr/sbin/adduser - dodir /etc - cp ${O}/files/login.defs ${D}/etc - - dodir /etc/default - cp ${O}/files/useradd ${D}/etc/default - chmod 0600 ${D}/etc/default/useradd - dodir /etc/skel - cd ${S}/etc - cp shells shells.orig - echo "# /etc/shells: valid login shells" > shells - echo "/bin/sh" >> shells - echo "/bin/bash" >> shells - echo "/bin/tcsh" >> shells - echo "/bin/esh" >> shells - echo "/bin/ksh" >> shells - echo "/bin/zsh" >> shells - echo "/bin/sash" >> shells - insinto /etc - doins limits shells - insopts -m0600 - doins suauth login.access - doins ${S}/debian/securetty - cd ${S}/doc - dodoc ANNOUNCE CHANGES INSTALL LICENSE README WISHLIST - docinto txt - dodoc HOWTO LSM README.* *.txt - -} - - - diff --git a/sys-apps/shadow/shadow-20001016-r1.ebuild b/sys-apps/shadow/shadow-20001016-r1.ebuild deleted file mode 100644 index 34ae5322eda7..000000000000 --- a/sys-apps/shadow/shadow-20001016-r1.ebuild +++ /dev/null @@ -1,65 +0,0 @@ -# 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-apps/shadow/shadow-20001016-r1.ebuild,v 1.1 2001/01/30 22:26:53 drobbins Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Utilities to deal with user accounts" -SRC_URI="ftp://ftp.pld.org.pl/software/shadow/${A}" - -DEPEND=">=sys-libs/pam-0.72" - -src_unpack() { - unpack ${A} - cd ${S}/src - patch -p0 < ${FILESDIR}/useradd.diff -} - -src_compile() { - try ./configure --disable-desrpc --with-libcrypt \ - --with-libcrack --with-libpam --host=${CHOST} - # Parallel make fails sometimes - try make LDFLAGS=\"\" -} - -src_install() { - cd ${S} - try make install prefix=${D}/usr mandir=${D}/usr/man exec_prefix=${D} - #add "vigr" symbolic link - dosym vipw /usr/sbin/vigr - mv ${D}/lib ${D}/usr - dosed "s:/lib:/usr/lib:" /usr/lib/libshadow.la - cd ${D}/usr/sbin - ln -s useradd ${D}/usr/sbin/adduser - dodir /etc - cp ${O}/files/login.defs ${D}/etc - - dodir /etc/default - cp ${O}/files/useradd ${D}/etc/default - chmod 0600 ${D}/etc/default/useradd - dodir /etc/skel - cd ${S}/etc - cp shells shells.orig - echo "# /etc/shells: valid login shells" > shells - echo "/bin/sh" >> shells - echo "/bin/bash" >> shells - echo "/bin/tcsh" >> shells - echo "/bin/esh" >> shells - echo "/bin/ksh" >> shells - echo "/bin/zsh" >> shells - echo "/bin/sash" >> shells - insinto /etc - doins limits shells - insopts -m0600 - doins suauth login.access - doins ${S}/debian/securetty - cd ${S}/doc - dodoc ANNOUNCE CHANGES INSTALL LICENSE README WISHLIST - docinto txt - dodoc HOWTO LSM README.* *.txt - -} - - - diff --git a/sys-apps/shadow/shadow-20001016-r2.ebuild b/sys-apps/shadow/shadow-20001016-r2.ebuild deleted file mode 100644 index 937ccde09d21..000000000000 --- a/sys-apps/shadow/shadow-20001016-r2.ebuild +++ /dev/null @@ -1,83 +0,0 @@ -# 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-apps/shadow/shadow-20001016-r2.ebuild,v 1.3 2001/04/18 03:06:29 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Utilities to deal with user accounts" -SRC_URI="ftp://ftp.pld.org.pl/software/shadow/${A}" - -DEPEND=">=sys-libs/pam-0.73 - sys-devel/gettext" - -RDEPEND=">=sys-libs/pam-0.73" - -src_unpack() { - - unpack ${A} - cd ${S}/src - patch -p0 < ${FILESDIR}/useradd.diff - -} - -src_compile() { - - try ./configure --disable-desrpc --with-libcrypt \ - --with-libcrack --with-libpam --host=${CHOST} - # Parallel make fails sometimes - try make LDFLAGS=\"\" - -} - -src_install() { - - try make install prefix=${D}/usr mandir=${D}/usr/share/man exec_prefix=${D} - - #add "vigr" symbolic link - dosym vipw /usr/sbin/vigr - - mv ${D}/lib ${D}/usr - dosed "s:/lib:/usr/lib:" /usr/lib/libshadow.la - cd ${D}/usr/sbin - ln -s useradd ${D}/usr/sbin/adduser - - dodir /etc - cp ${FILESDIR}/login.defs ${D}/etc - - dodir /etc/default - cp ${FILESDIR}/useradd ${D}/etc/default - chmod 0600 ${D}/etc/default/useradd - dodir /etc/skel - cd ${S}/etc - cp shells shells.orig - echo "# /etc/shells: valid login shells" > shells - echo "/bin/sh" >> shells - echo "/bin/bash" >> shells - echo "/bin/tcsh" >> shells - echo "/bin/esh" >> shells - echo "/bin/ksh" >> shells - echo "/bin/zsh" >> shells - echo "/bin/sash" >> shells - insinto /etc - doins limits shells - insopts -m0600 - doins suauth login.access - doins ${S}/debian/securetty - - cd ${FILESDIR} - insinto /etc/pam.d - insopts -m0644 - doins shadow - newins shadow groupadd - newins shadow useradd - - cd ${S}/doc - dodoc ANNOUNCE CHANGES INSTALL LICENSE README WISHLIST - docinto txt - dodoc HOWTO LSM README.* *.txt - -} - - - diff --git a/sys-apps/sharutils/files/digest-sharutils-4.2.1-r1 b/sys-apps/sharutils/files/digest-sharutils-4.2.1-r1 deleted file mode 100644 index f5f03b27c116..000000000000 --- a/sys-apps/sharutils/files/digest-sharutils-4.2.1-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 b8ba1d409f07edcb335ff72a27bd9828 sharutils-4.2.1.tar.gz diff --git a/sys-apps/sharutils/files/digest-sharutils-4.2.1-r2 b/sys-apps/sharutils/files/digest-sharutils-4.2.1-r2 deleted file mode 100644 index f5f03b27c116..000000000000 --- a/sys-apps/sharutils/files/digest-sharutils-4.2.1-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 b8ba1d409f07edcb335ff72a27bd9828 sharutils-4.2.1.tar.gz diff --git a/sys-apps/sharutils/sharutils-4.2.1-r1.ebuild b/sys-apps/sharutils/sharutils-4.2.1-r1.ebuild deleted file mode 100644 index bfc3ed3a444e..000000000000 --- a/sys-apps/sharutils/sharutils-4.2.1-r1.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# 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-apps/sharutils/sharutils-4.2.1-r1.ebuild,v 1.5 2000/11/30 23:14:34 achim Exp $ - -P=sharutils-4.2.1 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Tools to deal with shar archives" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/sharutils/${A} - ftp://prep.ai.mit.edu/gnu/sharutils/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - try make ${MAKEOPTS} localedir=/usr/share/locale -} - -src_unpack() { - unpack ${A} - cd ${S}/po - mv nl.po nl.po.orig - sed -e 's/aangemaakt/aangemaakt\\n/' nl.po.orig > nl.po - mv pt.po pt.po.orig - sed -e 's/de %dk/de %dk\\n/' pt.po.orig > pt.po -} - -src_install() { - cd ${S} - try make prefix=${D}/usr localedir=${D}/usr/share/locale install - doman doc/*.[15] - rm -rf ${D}/usr/lib - cd ${S} - dodoc AUTHORS BACKLOG COPYING ChangeLog ChangeLog.OLD \ - NEWS README README.OLD THANKS TODO -} - - diff --git a/sys-apps/sharutils/sharutils-4.2.1-r2.ebuild b/sys-apps/sharutils/sharutils-4.2.1-r2.ebuild deleted file mode 100644 index 67d749aaed75..000000000000 --- a/sys-apps/sharutils/sharutils-4.2.1-r2.ebuild +++ /dev/null @@ -1,46 +0,0 @@ -# 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-apps/sharutils/sharutils-4.2.1-r2.ebuild,v 1.3 2001/01/31 20:49:07 achim Exp $ - -P=sharutils-4.2.1 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Tools to deal with shar archives" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/sharutils/${A} - ftp://prep.ai.mit.edu/gnu/sharutils/${A}" -DEPEND="virtual/glibc - >=sys-devel/gettext-0.10.35" -RDEPEND="virtual/glibc - sys-apps/bash" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - try make ${MAKEOPTS} localedir=/usr/share/locale -} - -src_unpack() { - unpack ${A} - cd ${S}/po - mv nl.po nl.po.orig - sed -e 's/aangemaakt/aangemaakt\\n/' nl.po.orig > nl.po - mv pt.po pt.po.orig - sed -e 's/de %dk/de %dk\\n/' pt.po.orig > pt.po -} - -src_install() { - cd ${S} - try make prefix=${D}/usr localedir=${D}/usr/share/locale install - doman doc/*.[15] - cd ${D}/usr/share/locale - for i in *. - do - rm -rf ${i} - done - rm -rf ${D}/usr/lib - cd ${S} - dodoc AUTHORS BACKLOG COPYING ChangeLog ChangeLog.OLD \ - NEWS README README.OLD THANKS TODO -} - - diff --git a/sys-apps/shtool/files/digest-shtool-1.5.1-r1 b/sys-apps/shtool/files/digest-shtool-1.5.1-r1 deleted file mode 100644 index d4a9449e13e5..000000000000 --- a/sys-apps/shtool/files/digest-shtool-1.5.1-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 9f8400d527b7613127db2478299679f6 shtool-1.5.1.tar.gz diff --git a/sys-apps/shtool/shtool-1.5.1-r1.ebuild b/sys-apps/shtool/shtool-1.5.1-r1.ebuild deleted file mode 100644 index b840363d1203..000000000000 --- a/sys-apps/shtool/shtool-1.5.1-r1.ebuild +++ /dev/null @@ -1,31 +0,0 @@ -# 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-apps/shtool/shtool-1.5.1-r1.ebuild,v 1.6 2001/02/20 03:42:24 pete Exp $ - -A=shtool-1.5.1.tar.gz -S=${WORKDIR}/shtool-1.5.1 -DESCRIPTION="A compilation of small but very stable and portable shell scripts into a single shell tool" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/shtool/${A} - ftp://ftp.gnu.org/gnu/shtool/${A}" -HOMEPAGE="http://www.gnu.org/software/shtool/shtool.html" -DEPEND="" -RDEPEND=">=sys-apps/bash-2.04 - >=sys-devel/perl-5.6" - - -src_compile() { - - cd ${S} - try ./configure --prefix=/usr --host=${CHOST} - try pmake - -} - -src_install () { - - cd ${S} - try make prefix=${D}/usr install - dodoc AUTHORS ChangeLog COPYING README THANKS VERSION -} - diff --git a/sys-apps/star/files/digest-star-1.3_alpha8 b/sys-apps/star/files/digest-star-1.3_alpha8 deleted file mode 100644 index 1e961cb5c5e7..000000000000 --- a/sys-apps/star/files/digest-star-1.3_alpha8 +++ /dev/null @@ -1 +0,0 @@ -MD5 9284110e755eeac4e94a6eb73af41b6c star-1.3a8.tar.gz diff --git a/sys-apps/star/files/digest-star-1.3_alpha8-r1 b/sys-apps/star/files/digest-star-1.3_alpha8-r1 deleted file mode 100644 index 1e961cb5c5e7..000000000000 --- a/sys-apps/star/files/digest-star-1.3_alpha8-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 9284110e755eeac4e94a6eb73af41b6c star-1.3a8.tar.gz diff --git a/sys-apps/star/star-1.3_alpha8-r1.ebuild b/sys-apps/star/star-1.3_alpha8-r1.ebuild deleted file mode 100644 index e5d359d1bdf9..000000000000 --- a/sys-apps/star/star-1.3_alpha8-r1.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# 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-apps/star/star-1.3_alpha8-r1.ebuild,v 1.1 2001/02/07 15:51:28 achim Exp $ - -A=star-1.3a8.tar.gz -S=${WORKDIR}/star-1.3 - -DESCRIPTION="Includes star, an enhanced (world\'s fastest) tar, as well as enhanced mt/rmt" -SRC_URI="ftp://ftp.fokus.gmd.de/pub/unix/star/alpha/${A}" -HOMEPAGE="http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/star.html" -DEPEND="virtual/glibc" - -src_unpack() { - - unpack ${A} - cd ${S}/DEFAULTS - cp Defaults.linux Defaults.linux.orig - sed -e 's:/opt/schily:/usr:g' -e 's:bin:root:g' Defaults.linux.orig > Defaults.linux -} - -src_compile() { - - try make COPTX=\"${CFLAGS}\" - -} - -src_install() { - - try make install INS_BASE=${D}/usr - insinto /etc/default - newins ${S}/rmt/rmt.dfl rmt - dodoc BUILD COPYING Changelog AN-1.* README README.* PORTING TODO - rm ${D}/usr/man/man1/match* - dodir /usr/share/ - mv ${D}/usr/man/ ${D}/usr/share - cd ${D}/usr/bin - rm smt ustar - ln -s star ustar - ln -s mt smt -} - - diff --git a/sys-apps/star/star-1.3_alpha8.ebuild b/sys-apps/star/star-1.3_alpha8.ebuild deleted file mode 100644 index 772bae80bdeb..000000000000 --- a/sys-apps/star/star-1.3_alpha8.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# 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-apps/star/star-1.3_alpha8.ebuild,v 1.2 2001/01/31 20:49:07 achim Exp $ - -A=star-1.3a8.tar.gz -S=${WORKDIR}/star-1.3 - -DESCRIPTION="Includes star, an enhanced (world\'s fastest) tar, as well as enhanced mt/rmt" -SRC_URI="ftp://ftp.fokus.gmd.de/pub/unix/star/alpha/${A}" -HOMEPAGE="http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/star.html" -DEPEND="virtual/glibc" - -src_unpack() { - unpack ${A} - cd ${S}/DEFAULTS - cp Defaults.linux Defaults.linux.orig - sed -e 's:/opt/schily:/usr:g' -e 's:bin:root:g' Defaults.linux.orig > Defaults.linux -} - -src_compile() { - cd ${S} - try ./Gmake.linux -} - -src_install() { - cd ${S} - try make install INS_BASE=${D}/usr - insinto /etc/default - newins ${S}/rmt/rmt.dfl rmt - dodoc BUILD COPYING Changelog AN-1.* README README.* PORTING TODO - rm ${D}/usr/man/man1/match* - cd ${S}/usr/bin - rm smt ustar - ln -s star ustar - ln -s mt smt -} - - diff --git a/sys-apps/sysklogd/files/digest-sysklogd-1.4 b/sys-apps/sysklogd/files/digest-sysklogd-1.4 deleted file mode 100644 index 648e989dc602..000000000000 --- a/sys-apps/sysklogd/files/digest-sysklogd-1.4 +++ /dev/null @@ -1 +0,0 @@ -MD5 010dec0e12ba7226ba3dbce962190a20 sysklogd-1.4.tar.gz diff --git a/sys-apps/sysklogd/files/digest-sysklogd-1.4-r1 b/sys-apps/sysklogd/files/digest-sysklogd-1.4-r1 deleted file mode 100644 index 648e989dc602..000000000000 --- a/sys-apps/sysklogd/files/digest-sysklogd-1.4-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 010dec0e12ba7226ba3dbce962190a20 sysklogd-1.4.tar.gz diff --git a/sys-apps/sysklogd/sysklogd-1.4-r1.ebuild b/sys-apps/sysklogd/sysklogd-1.4-r1.ebuild deleted file mode 100644 index dba30344aeec..000000000000 --- a/sys-apps/sysklogd/sysklogd-1.4-r1.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 1999-2000 Gentoo Technologies, Inc. -# Distributed under the terms of the GNU General Public License, v2 or later -# Author Daniel Robbins <achim@gentoo.org> -# $Header: /var/cvsroot/gentoo-x86/sys-apps/sysklogd/sysklogd-1.4-r1.ebuild,v 1.1 2001/01/09 23:05:39 drobbins Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="standard log daemons" -SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/daemons/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04 - >=sys-devel/perl-5.6" - -src_compile() { - try pmake LDFLAGS=\"\" -} - -src_unpack() { - unpack ${A} - cd ${S} - mv Makefile Makefile.orig - sed -e "s/-O3/${CFLAGS}/" Makefile.orig > Makefile -} - -src_install() { - into /usr - dosbin syslogd klogd ${FILESDIR}/syslogd-listfiles - doman *.[1-9] ${FILESDIR}/syslogd-listfiles.8 - dodir /etc/cron.daily - cp ${O}/files/syslog ${D}/etc/cron.daily - dodoc ANNOUNCE CHANGES COPYING MANIFEST NEWS README.1st README.linux - exeinto /etc/rc.d/init.d - exeopts -m0750 -g wheel - doexe ${FILESDIR}/sysklogd -} - - diff --git a/sys-apps/sysklogd/sysklogd-1.4.ebuild b/sys-apps/sysklogd/sysklogd-1.4.ebuild deleted file mode 100644 index 45f938fb8d0c..000000000000 --- a/sys-apps/sysklogd/sysklogd-1.4.ebuild +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 1999-2000 Gentoo Technologies, Inc. -# Distributed under the terms of the GNU General Public License, v2 or later -# Author Daniel Robbins <achim@gentoo.org> -# $Header: /var/cvsroot/gentoo-x86/sys-apps/sysklogd/sysklogd-1.4.ebuild,v 1.2 2000/11/30 23:14:35 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="standard log daemons" -SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/daemons/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04 - >=sys-devel/perl-5.6" - -src_compile() { - try pmake LDFLAGS=\"\" -} - -src_unpack() { - unpack ${A} - cd ${S} - mv Makefile Makefile.orig - sed -e "s/-O3/${CFLAGS}/" Makefile.orig > Makefile -} - -src_install() { - into /usr - dosbin syslogd klogd ${FILESDIR}/syslogd-listfiles - doman *.[1-9] ${FILESDIR}/syslogd-listfiles.8 - dodir /etc/cron.daily - cp ${O}/files/syslog ${D}/etc/cron.daily - dodoc ANNOUNCE CHANGES COPYING MANIFEST NEWS README.1st README.linux -} - - diff --git a/sys-apps/sysvinit/files/digest-sysvinit-2.78-r1 b/sys-apps/sysvinit/files/digest-sysvinit-2.78-r1 deleted file mode 100644 index 762e3231d98c..000000000000 --- a/sys-apps/sysvinit/files/digest-sysvinit-2.78-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 cf40920a0423b05479504d79c0bd70ea sysvinit-2.78.tar.gz diff --git a/sys-apps/sysvinit/sysvinit-2.78-r1.ebuild b/sys-apps/sysvinit/sysvinit-2.78-r1.ebuild deleted file mode 100644 index 2553242a2050..000000000000 --- a/sys-apps/sysvinit/sysvinit-2.78-r1.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2000 Gentoo Technologies, Inc. -# Distributed under the terms of the GNU General Public License, v2 or later -# Author Daniel robbins <achim@gentoo.org> -# $Header: /var/cvsroot/gentoo-x86/sys-apps/sysvinit/sysvinit-2.78-r1.ebuild,v 1.4 2000/11/30 23:14:35 achim Exp $ - -P="sysvinit-2.78" -A=${P}.tar.gz -S=${WORKDIR}/sysvinit-2.78 -DESCRIPTION="System initialization schtuff" -SRC_URI="ftp://metalab.unc.edu/pub/Linux/system/daemons/init/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - cd ${S}/src - try pmake LDFLAGS=\"\" - cd ${S}/contrib - gcc start-stop-daemon.c -o start-stop-daemon -} - -src_unpack() { - unpack ${A} - cd ${S}/src - mv Makefile Makefile.orig - sed -e "s/-O2/${CFLAGS}/" Makefile.orig > Makefile -} - -src_install() { - cd ${S}/src - into / - dosbin halt init killall5 runlevel shutdown sulogin - dobin last mesg utmpdump wall - dosym killall5 /sbin/pidof - dosym halt /sbin/reboot - cd ${S}/contrib - dosbin start-stop-daemon - into /usr - cd ${S}/man - doman *.[1-9] - - cd ${S} - dodoc README doc/* contrib/start-stop-daemon.README - -} - - diff --git a/sys-apps/tar/files/digest-tar-1.13.18 b/sys-apps/tar/files/digest-tar-1.13.18 deleted file mode 100644 index 49952d6234f7..000000000000 --- a/sys-apps/tar/files/digest-tar-1.13.18 +++ /dev/null @@ -1 +0,0 @@ -MD5 fd76b10a8e57cb944f0b2c9cb8bf742b tar-1.13.18.tar.gz diff --git a/sys-apps/tar/files/digest-tar-1.13.18-r1 b/sys-apps/tar/files/digest-tar-1.13.18-r1 deleted file mode 100644 index 49952d6234f7..000000000000 --- a/sys-apps/tar/files/digest-tar-1.13.18-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 fd76b10a8e57cb944f0b2c9cb8bf742b tar-1.13.18.tar.gz diff --git a/sys-apps/tar/files/digest-tar-1.13.18-r2 b/sys-apps/tar/files/digest-tar-1.13.18-r2 deleted file mode 100644 index 49952d6234f7..000000000000 --- a/sys-apps/tar/files/digest-tar-1.13.18-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 fd76b10a8e57cb944f0b2c9cb8bf742b tar-1.13.18.tar.gz diff --git a/sys-apps/tar/files/digest-tar-1.13.18-r3 b/sys-apps/tar/files/digest-tar-1.13.18-r3 deleted file mode 100644 index 49952d6234f7..000000000000 --- a/sys-apps/tar/files/digest-tar-1.13.18-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 fd76b10a8e57cb944f0b2c9cb8bf742b tar-1.13.18.tar.gz diff --git a/sys-apps/tar/tar-1.13.18-r1.ebuild b/sys-apps/tar/tar-1.13.18-r1.ebuild deleted file mode 100644 index bbbaec3312d3..000000000000 --- a/sys-apps/tar/tar-1.13.18-r1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# 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-apps/tar/tar-1.13.18-r1.ebuild,v 1.2 2001/01/31 20:49:07 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="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --libexecdir=/usr/libexec/misc --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - cd ${S} - try make DESTDIR=${D} install - dodir /bin - mv ${D}/usr/bin/tar ${D}/bin/tar - dodoc AUTHORS ChangeLog* COPYING NEWS README* PORTS THANKS - - #we're using Schilly's enhanced rmt command included with star - rm -rf ${D}/usr/libexec/misc - rm -rf ${D}/usr/libexec - -} - - diff --git a/sys-apps/tar/tar-1.13.18-r2.ebuild b/sys-apps/tar/tar-1.13.18-r2.ebuild deleted file mode 100644 index b343d3d85343..000000000000 --- a/sys-apps/tar/tar-1.13.18-r2.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# 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-apps/tar/tar-1.13.18-r2.ebuild,v 1.2 2001/02/07 19:32:05 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="virtual/glibc - >=sys-devel/gettext-0.10.35-r2" - -RDEPEND="virtual/glibc - sys-apps/star" - -src_compile() { - - try ./configure --prefix=/usr --bindir=/bin --libexecdir=/usr/lib/misc --infodir=/usr/share/info --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - - try make DESTDIR=${D} install - dodoc AUTHORS ChangeLog* COPYING NEWS README* PORTS THANKS - - #we're using Schilly's enhanced rmt command included with star - rm -rf ${D}/usr/lib - - -} - - diff --git a/sys-apps/tar/tar-1.13.18-r3.ebuild b/sys-apps/tar/tar-1.13.18-r3.ebuild deleted file mode 100644 index 73031d5ace63..000000000000 --- a/sys-apps/tar/tar-1.13.18-r3.ebuild +++ /dev/null @@ -1,53 +0,0 @@ -# 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-apps/tar/tar-1.13.18-r3.ebuild,v 1.1 2001/02/27 16:57:10 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="virtual/glibc - nls? ( sys-devel/gettext-0.10.35 )" - -RDEPEND="virtual/glibc - sys-apps/star" - -src_compile() { - - local myconf - if [ -z "`use nls`" ] - then - myconf="--disable-nls" - fi - try ./configure --prefix=/usr --bindir=/bin --libexecdir=/usr/lib/misc \ - --infodir=/usr/share/info --host=${CHOST} ${myconf} - - if [ -z "`use static`" ] - then - try make ${MAKEOPTS} - else - try make ${MAKEOPTS} LDFLAGS=-static - fi -} - -src_install() { - - try make DESTDIR=${D} install - - if [ -z "`use build`" ] - then - dodoc AUTHORS ChangeLog* COPYING NEWS README* PORTS THANKS - - #we're using Schilly's enhanced rmt command included with star - rm -rf ${D}/usr/lib - else - rm -rf ${D}/usr/share/info - fi - -} - - diff --git a/sys-apps/tcp-wrappers/files/digest-tcp-wrappers-7.6-r1 b/sys-apps/tcp-wrappers/files/digest-tcp-wrappers-7.6-r1 deleted file mode 100644 index 61c8414280b9..000000000000 --- a/sys-apps/tcp-wrappers/files/digest-tcp-wrappers-7.6-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 e6fa25f71226d090f34de3f6b122fb5a tcp_wrappers_7.6.tar.gz diff --git a/sys-apps/tcp-wrappers/files/tcp_wrappers_7.6.patch b/sys-apps/tcp-wrappers/files/tcp_wrappers_7.6.patch deleted file mode 100644 index e5241b10ae47..000000000000 --- a/sys-apps/tcp-wrappers/files/tcp_wrappers_7.6.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -u -2 -r tcp_wrappers_7.6.orig/Makefile tcp_wrappers_7.6/Makefile ---- tcp_wrappers_7.6.orig/Makefile Fri Mar 21 19:27:21 1997 -+++ tcp_wrappers_7.6/Makefile Sun May 7 16:16:06 2000 -@@ -45,5 +45,5 @@ - # - # SysV.4 Solaris 2.x OSF AIX --#REAL_DAEMON_DIR=/usr/sbin -+REAL_DAEMON_DIR=/usr/sbin - # - # BSD 4.4 -diff -u -2 -r tcp_wrappers_7.6.orig/percent_m.c tcp_wrappers_7.6/percent_m.c ---- tcp_wrappers_7.6.orig/percent_m.c Wed Dec 28 17:42:37 1994 -+++ tcp_wrappers_7.6/percent_m.c Sun May 7 16:16:17 2000 -@@ -14,8 +14,8 @@ - - extern int errno; --#ifndef SYS_ERRLIST_DEFINED -+/*#ifndef SYS_ERRLIST_DEFINED - extern char *sys_errlist[]; - extern int sys_nerr; --#endif -+#endif*/ - - #include "mystdarg.h" diff --git a/sys-apps/tcp-wrappers/tcp-wrappers-7.6-r1.ebuild b/sys-apps/tcp-wrappers/tcp-wrappers-7.6-r1.ebuild deleted file mode 100644 index b2a3e3009b23..000000000000 --- a/sys-apps/tcp-wrappers/tcp-wrappers-7.6-r1.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# 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-apps/tcp-wrappers/tcp-wrappers-7.6-r1.ebuild,v 1.4 2000/11/30 23:14:35 achim Exp $ - -P=tcp-wrappers-7.6 -A=tcp_wrappers_7.6.tar.gz -A0="tcp_wrappers_7.6.patch" -S=${WORKDIR}/tcp_wrappers_7.6 -DESCRIPTION="tcp wrappers" -SRC_URI="ftp://ftp.porcupine.org/pub/security/${A}" - -DEPEND=">=sys-libs/glibc-2.1.3" - -src_unpack() { - unpack ${A} - cd ${S}/ - patch -p1 < ${O}/files/${A0} - cp Makefile Makefile.orig - sed -e "s/-O/${CFLAGS}/" \ - -e "s:AUX_OBJ=.*:AUX_OBJ= \\\:" Makefile.orig > Makefile -} - -src_compile() { - try make ${MAKEOPTS} REAL_DAEMON_DIR=/usr/sbin linux -} - -src_install() { - into /usr - mkdir -p ${D}/usr/sbin - for i in tcpd tcpdchk tcpdmatch safe_finger try-from; - do - dosbin ${i} - done - doman *.[358] - dolib.a libwrap.a - insinto /usr/include - doins tcpd.h - dodoc BLURB CHANGES DISCLAIMER README* -} - - - - - diff --git a/sys-apps/texinfo/files/digest-texinfo-4.0-r1 b/sys-apps/texinfo/files/digest-texinfo-4.0-r1 deleted file mode 100644 index e8ea05ce1330..000000000000 --- a/sys-apps/texinfo/files/digest-texinfo-4.0-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 070493baeb2c277c34575b0df4e2baf1 texinfo-4.0.tar.gz diff --git a/sys-apps/texinfo/texinfo-4.0-r1.ebuild b/sys-apps/texinfo/texinfo-4.0-r1.ebuild deleted file mode 100644 index 4209c31a0d53..000000000000 --- a/sys-apps/texinfo/texinfo-4.0-r1.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# 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-apps/texinfo/texinfo-4.0-r1.ebuild,v 1.6 2001/01/31 20:49:07 achim Exp $ - -P=texinfo-4.0 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="The GNU info program and utilities" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/texinfo/${A} - ftp://ftp.gnu.org/pub/gnu/texinfo/${A}" -DEPEND=">=sys-libs/gpm-1.19.3" -RDEPEND="$DEPEND - sys-apps/bash" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - try make ${MAKEOPTS} -} - -src_install() { - cd ${S} - try make DESTDIR=${D} infodir=${D}/usr/info install - cp ${O}/files/mkinfodir ${D}/usr/bin - cd ${D}/usr/info - mv texinfo texinfo.info - for i in texinfo-* - do - mv ${i} texinfo.info-${i#texinfo-*} - done - cd ${S} - dodoc AUTHORS ChangeLog COPYING INTRODUCTION NEWS README TODO - docinto info - dodoc info/README - docinto makeinfo - dodoc makeinfo/README -} - - - - - - diff --git a/sys-apps/textutils/files/digest-textutils-2.0.10 b/sys-apps/textutils/files/digest-textutils-2.0.10 deleted file mode 100644 index 1c652739479f..000000000000 --- a/sys-apps/textutils/files/digest-textutils-2.0.10 +++ /dev/null @@ -1 +0,0 @@ -MD5 420a7cd54d4ce4b44c412af1318f7c83 textutils-2.0.10.tar.gz diff --git a/sys-apps/textutils/files/digest-textutils-2.0.10-r1 b/sys-apps/textutils/files/digest-textutils-2.0.10-r1 deleted file mode 100644 index 1c652739479f..000000000000 --- a/sys-apps/textutils/files/digest-textutils-2.0.10-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 420a7cd54d4ce4b44c412af1318f7c83 textutils-2.0.10.tar.gz diff --git a/sys-apps/textutils/files/digest-textutils-2.0.9 b/sys-apps/textutils/files/digest-textutils-2.0.9 deleted file mode 100644 index 0b87ab6cd6f4..000000000000 --- a/sys-apps/textutils/files/digest-textutils-2.0.9 +++ /dev/null @@ -1 +0,0 @@ -MD5 f7db485089caa8717fd2596d3389dc73 textutils-2.0.9.tar.gz diff --git a/sys-apps/textutils/textutils-2.0.10-r1.ebuild b/sys-apps/textutils/textutils-2.0.10-r1.ebuild deleted file mode 100644 index 6848027bfda9..000000000000 --- a/sys-apps/textutils/textutils-2.0.10-r1.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# 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-apps/textutils/textutils-2.0.10-r1.ebuild,v 1.1 2001/02/07 15:51:28 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Standard GNU text utilities" -SRC_URI="ftp://alpha.gnu.org/gnu/fetish/${A}" - -DEPEND="virtual/glibc - >=sys-devel/gettext-0.10.35-r2" - -RDEPEND="virtual/glibc" - -src_compile() { - - try ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --host=${CHOST} --build=${CHOST} \ - --without-included-regex - try make ${MAKEOPTS} -} - -src_install() { - - try make prefix=${D}/usr mandir=${D}/usr/share/man infodir=${D}/usr/share/info install - dodir /bin - dosym /usr/bin/cat /bin/cat - rmdir ${D}/usr/lib - - dodoc AUTHORS COPYING ChangeLog NEWS README* THANKS TODO - -} - - - - diff --git a/sys-apps/textutils/textutils-2.0.10.ebuild b/sys-apps/textutils/textutils-2.0.10.ebuild deleted file mode 100644 index ce9a3b1e1124..000000000000 --- a/sys-apps/textutils/textutils-2.0.10.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# 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-apps/textutils/textutils-2.0.10.ebuild,v 1.4 2001/01/31 20:49:07 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} - -DESCRIPTION="Standard GNU text utilities" -SRC_URI="ftp://alpha.gnu.org/gnu/fetish/${A}" -DEPEND="virtual/glibc" - -src_compile() { - echo $S $WORKDIR `pwd` - try ./configure --prefix=/usr --host=${CHOST} \ - --without-included-regex - try make ${MAKEOPTS} -} - -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 - dodoc AUTHORS COPYING ChangeLog NEWS README* THANKS TODO - dodir /bin - dosym /usr/bin/cat /bin/cat - rmdir ${D}/usr/lib -} - - - - diff --git a/sys-apps/ucspi-tcp/files/digest-ucspi-tcp-0.88 b/sys-apps/ucspi-tcp/files/digest-ucspi-tcp-0.88 deleted file mode 100644 index dff71968e096..000000000000 --- a/sys-apps/ucspi-tcp/files/digest-ucspi-tcp-0.88 +++ /dev/null @@ -1 +0,0 @@ -MD5 39b619147db54687c4a583a7a94c9163 ucspi-tcp-0.88.tar.gz diff --git a/sys-apps/ucspi-tcp/ucspi-tcp-0.88.ebuild b/sys-apps/ucspi-tcp/ucspi-tcp-0.88.ebuild deleted file mode 100644 index 6f96e57beeef..000000000000 --- a/sys-apps/ucspi-tcp/ucspi-tcp-0.88.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# 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-apps/ucspi-tcp/ucspi-tcp-0.88.ebuild,v 1.3 2000/11/30 23:14:35 achim Exp $ - -DESCRIPTION="Collection of tools for managing UNIX services" -SRC_URI="http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz" -HOMEPAGE="http://cr.yp.to/ucspi-tcp/" -S=${WORKDIR}/${P} -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_unpack() { - - unpack ucspi-tcp-0.88.tar.gz - cd ${S} - echo "gcc ${CFLAGS}" > conf-cc - echo "gcc" > conf-ld - echo "/usr/" > conf-home -} - -src_compile() { - cd ${S} - try pmake -} - -src_install() { - cd ${S} - into /usr - for i in tcpserver tcprules tcprulescheck argv0 recordio tcpclient *\@ tcpcat mconnect mconnect-io addcr delcr fixcrio rblsmtpd - do - dobin $i - done - dodoc CHANGES FILES README SYSDEPS TARGETS TODO VERSION -} - - - diff --git a/sys-apps/util-linux/files/digest-util-linux-2.10q b/sys-apps/util-linux/files/digest-util-linux-2.10q deleted file mode 100644 index bdcd5068c5a5..000000000000 --- a/sys-apps/util-linux/files/digest-util-linux-2.10q +++ /dev/null @@ -1 +0,0 @@ -MD5 d17838e34cbe2673ed6b8747b10964ce util-linux-2.10q.tar.bz2 diff --git a/sys-apps/util-linux/files/digest-util-linux-2.10q-r1 b/sys-apps/util-linux/files/digest-util-linux-2.10q-r1 deleted file mode 100644 index bdcd5068c5a5..000000000000 --- a/sys-apps/util-linux/files/digest-util-linux-2.10q-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 d17838e34cbe2673ed6b8747b10964ce util-linux-2.10q.tar.bz2 diff --git a/sys-apps/util-linux/files/util-linux-2.10o.int.patch b/sys-apps/util-linux/files/util-linux-2.10o.int.patch deleted file mode 100644 index dd79a1389b7a..000000000000 --- a/sys-apps/util-linux/files/util-linux-2.10o.int.patch +++ /dev/null @@ -1,785 +0,0 @@ -diff -urN util-linux-2.10o/MCONFIG util-linux-2.10o.int2/MCONFIG ---- util-linux-2.10o/MCONFIG Fri Aug 11 23:21:53 2000 -+++ util-linux-2.10o.int2/MCONFIG Mon Sep 25 11:44:06 2000 -@@ -16,7 +16,7 @@ - # If HAVE_PAM is set to "yes", then login, chfn, chsh, and newgrp - # will use PAM for authentication. Additionally, passwd will not be - # installed as it is not PAM aware. --HAVE_PAM=no -+HAVE_PAM=yes - - # If HAVE_SHADOW is set to "yes", then login, chfn, chsh, newgrp, passwd, - # and vipw will not be built or installed from the login-utils -diff -urN util-linux-2.10o/mount/Makefile util-linux-2.10o.int2/mount/Makefile ---- util-linux-2.10o/mount/Makefile Fri Aug 11 20:58:54 2000 -+++ util-linux-2.10o.int2/mount/Makefile Mon Sep 25 11:44:06 2000 -@@ -28,7 +28,7 @@ - GEN_FILES = nfsmount.h nfsmount_xdr.c nfsmount_clnt.c - - # comment these out if you are not compiling in loop support --LO_OBJS=lomount.o -+LO_OBJS=lomount.o rmd160.o - - all: $(PROGS) - -@@ -59,7 +59,7 @@ - losetup.o: lomount.c - $(COMPILE) -DMAIN lomount.c -o $@ - --losetup: losetup.o -+losetup: losetup.o rmd160.o - $(LINK) $^ -o $@ - - mount.o umount.o nfsmount.o losetup.o fstab.o realpath.o sundries.o: sundries.h -diff -urN util-linux-2.10o/mount/lomount.c util-linux-2.10o.int2/mount/lomount.c ---- util-linux-2.10o/mount/lomount.c Sat Aug 5 17:52:28 2000 -+++ util-linux-2.10o.int2/mount/lomount.c Mon Sep 25 11:44:34 2000 -@@ -27,6 +27,7 @@ - - #include "loop.h" - #include "lomount.h" -+#include "rmd160.h" - #include "nls.h" - - extern int verbose; -@@ -37,12 +38,22 @@ - struct crypt_type_struct { - int id; - char *name; -+ int keylength; - } crypt_type_tbl[] = { -- { LO_CRYPT_NONE, "no" }, -- { LO_CRYPT_NONE, "none" }, -- { LO_CRYPT_XOR, "xor" }, -- { LO_CRYPT_DES, "DES" }, -- { -1, NULL } -+ { LO_CRYPT_NONE, "no",0 }, -+ { LO_CRYPT_NONE, "none",0 }, -+ { LO_CRYPT_XOR, "xor",0 }, -+ { LO_CRYPT_DES, "DES",8 }, -+ { LO_CRYPT_FISH2, "twofish",20 }, -+ { LO_CRYPT_BLOW, "blowfish",20 }, -+ { LO_CRYPT_CAST128, "cast128", 16}, -+ { LO_CRYPT_SERPENT, "serpent", 16}, -+ { LO_CRYPT_MARS, "mars",16 }, -+ { LO_CRYPT_RC6, "rc6",16 }, -+ { LO_CRYPT_DES_EDE3, "DES_EDE3",24}, -+ { LO_CRYPT_DFC, "dfc",16 }, -+ { LO_CRYPT_IDEA, "idea",16}, -+ { -1, NULL,0 } - }; - - static int -@@ -167,12 +178,18 @@ - return 0; - } - -+#define HASHLENGTH 20 -+#define PASSWDBUFFLEN 130 /* getpass returns only max. 128 bytes, see man getpass */ -+ - int - set_loop (const char *device, const char *file, int offset, - const char *encryption, int *loopro) { - struct loop_info loopinfo; - int fd, ffd, mode, i; -+ int keylength; - char *pass; -+ char keybits[2*HASHLENGTH]; -+ char passwdbuff[PASSWDBUFFLEN]; - - mode = (*loopro ? O_RDONLY : O_RDWR); - if ((ffd = open (file, mode)) < 0) { -@@ -224,6 +241,7 @@ - loopinfo.lo_encrypt_key_size = strlen(loopinfo.lo_encrypt_key); - break; - case LO_CRYPT_DES: -+ printf(_("WARNING: Use of DES is depreciated.\n")); - pass = getpass (_("Password: ")); - strncpy (loopinfo.lo_encrypt_key, pass, 8); - loopinfo.lo_encrypt_key[8] = 0; -@@ -240,6 +258,30 @@ - return 1; - } - break; -+ case LO_CRYPT_FISH2: -+ case LO_CRYPT_BLOW: -+ case LO_CRYPT_IDEA: -+ case LO_CRYPT_CAST128: -+ case LO_CRYPT_SERPENT: -+ case LO_CRYPT_MARS: -+ case LO_CRYPT_RC6: -+ case LO_CRYPT_DES_EDE3: -+ case LO_CRYPT_DFC: -+ pass = getpass("Password :"); -+ strncpy(passwdbuff+1,pass,PASSWDBUFFLEN-1); -+ passwdbuff[0] = 'A'; -+ rmd160_hash_buffer(keybits,pass,strlen(pass)); -+ rmd160_hash_buffer(keybits+HASHLENGTH,passwdbuff,strlen(pass)+1); -+ memcpy((char*)loopinfo.lo_encrypt_key,keybits,2*HASHLENGTH); -+ keylength=0; -+ for(i=0; crypt_type_tbl[i].id != -1; i++){ -+ if(loopinfo.lo_encrypt_type == crypt_type_tbl[i].id){ -+ keylength = crypt_type_tbl[i].keylength; -+ break; -+ } -+ } -+ loopinfo.lo_encrypt_key_size=keylength; -+ break; - default: - fprintf (stderr, - _("Don't know how to get key for encryption system %d\n"), -@@ -324,11 +366,18 @@ - - static void - usage(void) { -+ struct crypt_type_struct *c; - fprintf(stderr, _("usage:\n\ - %s loop_device # give info\n\ - %s -d loop_device # delete\n\ - %s [ -e encryption ] [ -o offset ] loop_device file # setup\n"), - progname, progname, progname); -+ fprintf(stderr, " where encryption is one of:\n"); -+ c = &crypt_type_tbl[0]; -+ while(c->name) { -+ fprintf(stderr, " %s\n", c->name); -+ c++; -+ } - exit(1); - } - -diff -urN util-linux-2.10o/mount/losetup.8 util-linux-2.10o.int2/mount/losetup.8 ---- util-linux-2.10o/mount/losetup.8 Fri Aug 11 13:11:30 2000 -+++ util-linux-2.10o.int2/mount/losetup.8 Mon Sep 25 11:44:06 2000 -@@ -36,11 +36,47 @@ - .PD 0 - .IP \fBXOR\fP - use a simple XOR encryption. -+.IP \fBBlowfish\fP -+use Blowfish encryption. Blowfish encryption is only available if you -+are using the international kernel and Blowfish encryption has been -+enabled in the Crypto API. -+.IP \fBTwofish\fP -+use Twofish encryption. Twofish encryption is only available if you -+are using the international kernel and Twofish encryption has been -+enabled in the Crypto API. -+.IP \fBCAST\fP -+use CAST encryption. CAST encryption is only available if you -+are using the international kernel and CAST encryption has been -+enabled in the Crypto API. - .IP \fBDES\fP - use DES encryption. DES encryption is only available if the optional - DES package has been added to the kernel. DES encryption uses an additional - start value that is used to protect passwords against dictionary --attacks. -+attacks. Use of DES is deprecated. -+.IP \fBDFC\fP -+use DFC encryption. DFC encryption is only available if you -+are using the international kernel and DFC encryption has been -+enabled in the Crypto API. -+.IP \fBIDEA\fP -+use IDEA encryption. IDEA encryption is only available if you -+are using the international kernel and IDEA encryption has been -+enabled in the Crypto API. -+.IP \fBMARS\fP -+use MARS encryption. MARS encryption is only available if you -+are using the international kernel and MARS encryption has been -+enabled in the Crypto API. -+.IP \fBRC5\fP -+use RC5 encryption. RC5 encryption is only available if you -+are using the international kernel and RC5 encryption has been -+enabled in the Crypto API. -+.IP \fBRC6\fP -+use RC6 encryption. RC6 encryption is only available if you -+are using the international kernel and RC6 encryption has been -+enabled in the Crypto API. -+.IP \fBSerpent\fP -+use Serpent encryption. Serpent encryption is only available if you -+are using the international kernel and Serpent encryption has been -+enabled in the Crypto API. - .PD - .RE - .IP "\fB\-o \fIoffset\fP" -@@ -58,6 +94,7 @@ - .SH FILES - .nf - /dev/loop0,/dev/loop1,... loop devices (major=7) -+/proc/cipher/* available ciphers - .fi - .SH EXAMPLE - If you are using the loadable module you must have the module loaded -@@ -69,9 +106,8 @@ - .nf - .IP - dd if=/dev/zero of=/file bs=1k count=100 --losetup -e des /dev/loop0 /file --Password: --Init (up to 16 hex digits): -+losetup -e blowfish /dev/loop0 /file -+Password : - mkfs -t ext2 /dev/loop0 100 - mount -t ext2 /dev/loop0 /mnt - ... -@@ -85,8 +121,12 @@ - # rmmod loop - .LP - .fi --.SH RESTRICTION --DES encryption is painfully slow. On the other hand, XOR is terribly weak. -+.SH RESTRICTIONS -+DES encryption is painfully slow. On the other hand, XOR is terribly -+weak. Both are insecure nowadays. Some ciphers require a licence for -+you to be allowed to use them. -+.SH BUGS -+CAST, DES, RC5 and Twofish are currently broken and cannot be used. - .SH AUTHORS - .nf - Original version: Theodore Ts'o <tytso@athena.mit.edu> -diff -urN util-linux-2.10o/mount/rmd160.c util-linux-2.10o.int2/mount/rmd160.c ---- util-linux-2.10o/mount/rmd160.c Thu Jan 1 01:00:00 1970 -+++ util-linux-2.10o.int2/mount/rmd160.c Mon Sep 25 11:46:06 2000 -@@ -0,0 +1,532 @@ -+/* rmd160.c - RIPE-MD160 -+ * Copyright (C) 1998 Free Software Foundation, Inc. -+ */ -+ -+/* This file was part of GnuPG. Modified for use within the Linux -+ * mount utility by Marc Mutz <Marc@Mutz.com>. None of this code is -+ * by myself. I just removed everything that you don't need when all -+ * you want to do is to use rmd160_hash_buffer(). -+ * My comments are marked with (mm). */ -+ -+/* GnuPG 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 of the License, or -+ * (at your option) any later version. -+ * -+ * GnuPG 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 program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ -+ -+#include <string.h> /* (mm) for memcpy */ -+#include <endian.h> /* (mm) for BIG_ENDIAN and BYTE_ORDER */ -+#include "rmd160.h" -+ -+/* (mm) these are used by the original GnuPG file. In order to modify -+ * that file not too much, we keep the notations. maybe it would be -+ * better to include linux/types.h and typedef __u32 to u32 and __u8 -+ * to byte? */ -+typedef unsigned int u32; /* taken from e.g. util-linux's minix.h */ -+typedef unsigned char byte; -+ -+typedef struct { -+ u32 h0,h1,h2,h3,h4; -+ u32 nblocks; -+ byte buf[64]; -+ int count; -+} RMD160_CONTEXT; -+ -+/**************** -+ * Rotate a 32 bit integer by n bytes -+ */ -+#if defined(__GNUC__) && defined(__i386__) -+static inline u32 -+rol( u32 x, int n) -+{ -+ __asm__("roll %%cl,%0" -+ :"=r" (x) -+ :"0" (x),"c" (n)); -+ return x; -+} -+#else -+ #define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) ) -+#endif -+ -+/********************************* -+ * RIPEMD-160 is not patented, see (as of 25.10.97) -+ * http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html -+ * Note that the code uses Little Endian byteorder, which is good for -+ * 386 etc, but we must add some conversion when used on a big endian box. -+ * -+ * -+ * Pseudo-code for RIPEMD-160 -+ * -+ * RIPEMD-160 is an iterative hash function that operates on 32-bit words. -+ * The round function takes as input a 5-word chaining variable and a 16-word -+ * message block and maps this to a new chaining variable. All operations are -+ * defined on 32-bit words. Padding is identical to that of MD4. -+ * -+ * -+ * RIPEMD-160: definitions -+ * -+ * -+ * nonlinear functions at bit level: exor, mux, -, mux, - -+ * -+ * f(j, x, y, z) = x XOR y XOR z (0 <= j <= 15) -+ * f(j, x, y, z) = (x AND y) OR (NOT(x) AND z) (16 <= j <= 31) -+ * f(j, x, y, z) = (x OR NOT(y)) XOR z (32 <= j <= 47) -+ * f(j, x, y, z) = (x AND z) OR (y AND NOT(z)) (48 <= j <= 63) -+ * f(j, x, y, z) = x XOR (y OR NOT(z)) (64 <= j <= 79) -+ * -+ * -+ * added constants (hexadecimal) -+ * -+ * K(j) = 0x00000000 (0 <= j <= 15) -+ * K(j) = 0x5A827999 (16 <= j <= 31) int(2**30 x sqrt(2)) -+ * K(j) = 0x6ED9EBA1 (32 <= j <= 47) int(2**30 x sqrt(3)) -+ * K(j) = 0x8F1BBCDC (48 <= j <= 63) int(2**30 x sqrt(5)) -+ * K(j) = 0xA953FD4E (64 <= j <= 79) int(2**30 x sqrt(7)) -+ * K'(j) = 0x50A28BE6 (0 <= j <= 15) int(2**30 x cbrt(2)) -+ * K'(j) = 0x5C4DD124 (16 <= j <= 31) int(2**30 x cbrt(3)) -+ * K'(j) = 0x6D703EF3 (32 <= j <= 47) int(2**30 x cbrt(5)) -+ * K'(j) = 0x7A6D76E9 (48 <= j <= 63) int(2**30 x cbrt(7)) -+ * K'(j) = 0x00000000 (64 <= j <= 79) -+ * -+ * -+ * selection of message word -+ * -+ * r(j) = j (0 <= j <= 15) -+ * r(16..31) = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8 -+ * r(32..47) = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12 -+ * r(48..63) = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2 -+ * r(64..79) = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 -+ * r0(0..15) = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12 -+ * r0(16..31)= 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2 -+ * r0(32..47)= 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13 -+ * r0(48..63)= 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14 -+ * r0(64..79)= 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 -+ * -+ * -+ * amount for rotate left (rol) -+ * -+ * s(0..15) = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8 -+ * s(16..31) = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12 -+ * s(32..47) = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5 -+ * s(48..63) = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12 -+ * s(64..79) = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 -+ * s'(0..15) = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6 -+ * s'(16..31)= 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11 -+ * s'(32..47)= 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5 -+ * s'(48..63)= 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8 -+ * s'(64..79)= 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 -+ * -+ * -+ * initial value (hexadecimal) -+ * -+ * h0 = 0x67452301; h1 = 0xEFCDAB89; h2 = 0x98BADCFE; h3 = 0x10325476; -+ * h4 = 0xC3D2E1F0; -+ * -+ * -+ * RIPEMD-160: pseudo-code -+ * -+ * It is assumed that the message after padding consists of t 16-word blocks -+ * that will be denoted with X[i][j], with 0 <= i <= t-1 and 0 <= j <= 15. -+ * The symbol [+] denotes addition modulo 2**32 and rol_s denotes cyclic left -+ * shift (rotate) over s positions. -+ * -+ * -+ * for i := 0 to t-1 { -+ * A := h0; B := h1; C := h2; D = h3; E = h4; -+ * A' := h0; B' := h1; C' := h2; D' = h3; E' = h4; -+ * for j := 0 to 79 { -+ * T := rol_s(j)(A [+] f(j, B, C, D) [+] X[i][r(j)] [+] K(j)) [+] E; -+ * A := E; E := D; D := rol_10(C); C := B; B := T; -+ * T := rol_s'(j)(A' [+] f(79-j, B', C', D') [+] X[i][r'(j)] -+ [+] K'(j)) [+] E'; -+ * A' := E'; E' := D'; D' := rol_10(C'); C' := B'; B' := T; -+ * } -+ * T := h1 [+] C [+] D'; h1 := h2 [+] D [+] E'; h2 := h3 [+] E [+] A'; -+ * h3 := h4 [+] A [+] B'; h4 := h0 [+] B [+] C'; h0 := T; -+ * } -+ */ -+ -+/* Some examples: -+ * "" 9c1185a5c5e9fc54612808977ee8f548b2258d31 -+ * "a" 0bdc9d2d256b3ee9daae347be6f4dc835a467ffe -+ * "abc" 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc -+ * "message digest" 5d0689ef49d2fae572b881b123a85ffa21595f36 -+ * "a...z" f71c27109c692c1b56bbdceb5b9d2865b3708dbc -+ * "abcdbcde...nopq" 12a053384a9c0c88e405a06c27dcf49ada62eb2b -+ * "A...Za...z0...9" b0e20b6e3116640286ed3a87a5713079b21f5189 -+ * 8 times "1234567890" 9b752e45573d4b39f4dbd3323cab82bf63326bfb -+ * 1 million times "a" 52783243c1697bdbe16d37f97f68f08325dc1528 -+ */ -+ -+ -+static void -+rmd160_init( RMD160_CONTEXT *hd ) -+{ -+ hd->h0 = 0x67452301; -+ hd->h1 = 0xEFCDAB89; -+ hd->h2 = 0x98BADCFE; -+ hd->h3 = 0x10325476; -+ hd->h4 = 0xC3D2E1F0; -+ hd->nblocks = 0; -+ hd->count = 0; -+} -+ -+ -+ -+/**************** -+ * Transform the message X which consists of 16 32-bit-words -+ */ -+static void -+transform( RMD160_CONTEXT *hd, byte *data ) -+{ -+ u32 a,b,c,d,e,aa,bb,cc,dd,ee,t; -+ #if BYTE_ORDER == BIG_ENDIAN -+ u32 x[16]; -+ { int i; -+ byte *p2, *p1; -+ for(i=0, p1=data, p2=(byte*)x; i < 16; i++, p2 += 4 ) { -+ p2[3] = *p1++; -+ p2[2] = *p1++; -+ p2[1] = *p1++; -+ p2[0] = *p1++; -+ } -+ } -+ #else -+ #if 0 -+ u32 *x =(u32*)data; -+ #else -+ /* this version is better because it is always aligned; -+ * The performance penalty on a 586-100 is about 6% which -+ * is acceptable - because the data is more local it might -+ * also be possible that this is faster on some machines. -+ * This function (when compiled with -02 on gcc 2.7.2) -+ * executes on a 586-100 (39.73 bogomips) at about 1900kb/sec; -+ * [measured with a 4MB data and "gpgm --print-md rmd160"] */ -+ u32 x[16]; -+ memcpy( x, data, 64 ); -+ #endif -+ #endif -+ -+ -+#define K0 0x00000000 -+#define K1 0x5A827999 -+#define K2 0x6ED9EBA1 -+#define K3 0x8F1BBCDC -+#define K4 0xA953FD4E -+#define KK0 0x50A28BE6 -+#define KK1 0x5C4DD124 -+#define KK2 0x6D703EF3 -+#define KK3 0x7A6D76E9 -+#define KK4 0x00000000 -+#define F0(x,y,z) ( (x) ^ (y) ^ (z) ) -+#define F1(x,y,z) ( ((x) & (y)) | (~(x) & (z)) ) -+#define F2(x,y,z) ( ((x) | ~(y)) ^ (z) ) -+#define F3(x,y,z) ( ((x) & (z)) | ((y) & ~(z)) ) -+#define F4(x,y,z) ( (x) ^ ((y) | ~(z)) ) -+#define R(a,b,c,d,e,f,k,r,s) do { t = a + f(b,c,d) + k + x[r]; \ -+ a = rol(t,s) + e; \ -+ c = rol(c,10); \ -+ } while(0) -+ -+ /* left lane */ -+ a = hd->h0; -+ b = hd->h1; -+ c = hd->h2; -+ d = hd->h3; -+ e = hd->h4; -+ R( a, b, c, d, e, F0, K0, 0, 11 ); -+ R( e, a, b, c, d, F0, K0, 1, 14 ); -+ R( d, e, a, b, c, F0, K0, 2, 15 ); -+ R( c, d, e, a, b, F0, K0, 3, 12 ); -+ R( b, c, d, e, a, F0, K0, 4, 5 ); -+ R( a, b, c, d, e, F0, K0, 5, 8 ); -+ R( e, a, b, c, d, F0, K0, 6, 7 ); -+ R( d, e, a, b, c, F0, K0, 7, 9 ); -+ R( c, d, e, a, b, F0, K0, 8, 11 ); -+ R( b, c, d, e, a, F0, K0, 9, 13 ); -+ R( a, b, c, d, e, F0, K0, 10, 14 ); -+ R( e, a, b, c, d, F0, K0, 11, 15 ); -+ R( d, e, a, b, c, F0, K0, 12, 6 ); -+ R( c, d, e, a, b, F0, K0, 13, 7 ); -+ R( b, c, d, e, a, F0, K0, 14, 9 ); -+ R( a, b, c, d, e, F0, K0, 15, 8 ); -+ R( e, a, b, c, d, F1, K1, 7, 7 ); -+ R( d, e, a, b, c, F1, K1, 4, 6 ); -+ R( c, d, e, a, b, F1, K1, 13, 8 ); -+ R( b, c, d, e, a, F1, K1, 1, 13 ); -+ R( a, b, c, d, e, F1, K1, 10, 11 ); -+ R( e, a, b, c, d, F1, K1, 6, 9 ); -+ R( d, e, a, b, c, F1, K1, 15, 7 ); -+ R( c, d, e, a, b, F1, K1, 3, 15 ); -+ R( b, c, d, e, a, F1, K1, 12, 7 ); -+ R( a, b, c, d, e, F1, K1, 0, 12 ); -+ R( e, a, b, c, d, F1, K1, 9, 15 ); -+ R( d, e, a, b, c, F1, K1, 5, 9 ); -+ R( c, d, e, a, b, F1, K1, 2, 11 ); -+ R( b, c, d, e, a, F1, K1, 14, 7 ); -+ R( a, b, c, d, e, F1, K1, 11, 13 ); -+ R( e, a, b, c, d, F1, K1, 8, 12 ); -+ R( d, e, a, b, c, F2, K2, 3, 11 ); -+ R( c, d, e, a, b, F2, K2, 10, 13 ); -+ R( b, c, d, e, a, F2, K2, 14, 6 ); -+ R( a, b, c, d, e, F2, K2, 4, 7 ); -+ R( e, a, b, c, d, F2, K2, 9, 14 ); -+ R( d, e, a, b, c, F2, K2, 15, 9 ); -+ R( c, d, e, a, b, F2, K2, 8, 13 ); -+ R( b, c, d, e, a, F2, K2, 1, 15 ); -+ R( a, b, c, d, e, F2, K2, 2, 14 ); -+ R( e, a, b, c, d, F2, K2, 7, 8 ); -+ R( d, e, a, b, c, F2, K2, 0, 13 ); -+ R( c, d, e, a, b, F2, K2, 6, 6 ); -+ R( b, c, d, e, a, F2, K2, 13, 5 ); -+ R( a, b, c, d, e, F2, K2, 11, 12 ); -+ R( e, a, b, c, d, F2, K2, 5, 7 ); -+ R( d, e, a, b, c, F2, K2, 12, 5 ); -+ R( c, d, e, a, b, F3, K3, 1, 11 ); -+ R( b, c, d, e, a, F3, K3, 9, 12 ); -+ R( a, b, c, d, e, F3, K3, 11, 14 ); -+ R( e, a, b, c, d, F3, K3, 10, 15 ); -+ R( d, e, a, b, c, F3, K3, 0, 14 ); -+ R( c, d, e, a, b, F3, K3, 8, 15 ); -+ R( b, c, d, e, a, F3, K3, 12, 9 ); -+ R( a, b, c, d, e, F3, K3, 4, 8 ); -+ R( e, a, b, c, d, F3, K3, 13, 9 ); -+ R( d, e, a, b, c, F3, K3, 3, 14 ); -+ R( c, d, e, a, b, F3, K3, 7, 5 ); -+ R( b, c, d, e, a, F3, K3, 15, 6 ); -+ R( a, b, c, d, e, F3, K3, 14, 8 ); -+ R( e, a, b, c, d, F3, K3, 5, 6 ); -+ R( d, e, a, b, c, F3, K3, 6, 5 ); -+ R( c, d, e, a, b, F3, K3, 2, 12 ); -+ R( b, c, d, e, a, F4, K4, 4, 9 ); -+ R( a, b, c, d, e, F4, K4, 0, 15 ); -+ R( e, a, b, c, d, F4, K4, 5, 5 ); -+ R( d, e, a, b, c, F4, K4, 9, 11 ); -+ R( c, d, e, a, b, F4, K4, 7, 6 ); -+ R( b, c, d, e, a, F4, K4, 12, 8 ); -+ R( a, b, c, d, e, F4, K4, 2, 13 ); -+ R( e, a, b, c, d, F4, K4, 10, 12 ); -+ R( d, e, a, b, c, F4, K4, 14, 5 ); -+ R( c, d, e, a, b, F4, K4, 1, 12 ); -+ R( b, c, d, e, a, F4, K4, 3, 13 ); -+ R( a, b, c, d, e, F4, K4, 8, 14 ); -+ R( e, a, b, c, d, F4, K4, 11, 11 ); -+ R( d, e, a, b, c, F4, K4, 6, 8 ); -+ R( c, d, e, a, b, F4, K4, 15, 5 ); -+ R( b, c, d, e, a, F4, K4, 13, 6 ); -+ -+ aa = a; bb = b; cc = c; dd = d; ee = e; -+ -+ /* right lane */ -+ a = hd->h0; -+ b = hd->h1; -+ c = hd->h2; -+ d = hd->h3; -+ e = hd->h4; -+ R( a, b, c, d, e, F4, KK0, 5, 8); -+ R( e, a, b, c, d, F4, KK0, 14, 9); -+ R( d, e, a, b, c, F4, KK0, 7, 9); -+ R( c, d, e, a, b, F4, KK0, 0, 11); -+ R( b, c, d, e, a, F4, KK0, 9, 13); -+ R( a, b, c, d, e, F4, KK0, 2, 15); -+ R( e, a, b, c, d, F4, KK0, 11, 15); -+ R( d, e, a, b, c, F4, KK0, 4, 5); -+ R( c, d, e, a, b, F4, KK0, 13, 7); -+ R( b, c, d, e, a, F4, KK0, 6, 7); -+ R( a, b, c, d, e, F4, KK0, 15, 8); -+ R( e, a, b, c, d, F4, KK0, 8, 11); -+ R( d, e, a, b, c, F4, KK0, 1, 14); -+ R( c, d, e, a, b, F4, KK0, 10, 14); -+ R( b, c, d, e, a, F4, KK0, 3, 12); -+ R( a, b, c, d, e, F4, KK0, 12, 6); -+ R( e, a, b, c, d, F3, KK1, 6, 9); -+ R( d, e, a, b, c, F3, KK1, 11, 13); -+ R( c, d, e, a, b, F3, KK1, 3, 15); -+ R( b, c, d, e, a, F3, KK1, 7, 7); -+ R( a, b, c, d, e, F3, KK1, 0, 12); -+ R( e, a, b, c, d, F3, KK1, 13, 8); -+ R( d, e, a, b, c, F3, KK1, 5, 9); -+ R( c, d, e, a, b, F3, KK1, 10, 11); -+ R( b, c, d, e, a, F3, KK1, 14, 7); -+ R( a, b, c, d, e, F3, KK1, 15, 7); -+ R( e, a, b, c, d, F3, KK1, 8, 12); -+ R( d, e, a, b, c, F3, KK1, 12, 7); -+ R( c, d, e, a, b, F3, KK1, 4, 6); -+ R( b, c, d, e, a, F3, KK1, 9, 15); -+ R( a, b, c, d, e, F3, KK1, 1, 13); -+ R( e, a, b, c, d, F3, KK1, 2, 11); -+ R( d, e, a, b, c, F2, KK2, 15, 9); -+ R( c, d, e, a, b, F2, KK2, 5, 7); -+ R( b, c, d, e, a, F2, KK2, 1, 15); -+ R( a, b, c, d, e, F2, KK2, 3, 11); -+ R( e, a, b, c, d, F2, KK2, 7, 8); -+ R( d, e, a, b, c, F2, KK2, 14, 6); -+ R( c, d, e, a, b, F2, KK2, 6, 6); -+ R( b, c, d, e, a, F2, KK2, 9, 14); -+ R( a, b, c, d, e, F2, KK2, 11, 12); -+ R( e, a, b, c, d, F2, KK2, 8, 13); -+ R( d, e, a, b, c, F2, KK2, 12, 5); -+ R( c, d, e, a, b, F2, KK2, 2, 14); -+ R( b, c, d, e, a, F2, KK2, 10, 13); -+ R( a, b, c, d, e, F2, KK2, 0, 13); -+ R( e, a, b, c, d, F2, KK2, 4, 7); -+ R( d, e, a, b, c, F2, KK2, 13, 5); -+ R( c, d, e, a, b, F1, KK3, 8, 15); -+ R( b, c, d, e, a, F1, KK3, 6, 5); -+ R( a, b, c, d, e, F1, KK3, 4, 8); -+ R( e, a, b, c, d, F1, KK3, 1, 11); -+ R( d, e, a, b, c, F1, KK3, 3, 14); -+ R( c, d, e, a, b, F1, KK3, 11, 14); -+ R( b, c, d, e, a, F1, KK3, 15, 6); -+ R( a, b, c, d, e, F1, KK3, 0, 14); -+ R( e, a, b, c, d, F1, KK3, 5, 6); -+ R( d, e, a, b, c, F1, KK3, 12, 9); -+ R( c, d, e, a, b, F1, KK3, 2, 12); -+ R( b, c, d, e, a, F1, KK3, 13, 9); -+ R( a, b, c, d, e, F1, KK3, 9, 12); -+ R( e, a, b, c, d, F1, KK3, 7, 5); -+ R( d, e, a, b, c, F1, KK3, 10, 15); -+ R( c, d, e, a, b, F1, KK3, 14, 8); -+ R( b, c, d, e, a, F0, KK4, 12, 8); -+ R( a, b, c, d, e, F0, KK4, 15, 5); -+ R( e, a, b, c, d, F0, KK4, 10, 12); -+ R( d, e, a, b, c, F0, KK4, 4, 9); -+ R( c, d, e, a, b, F0, KK4, 1, 12); -+ R( b, c, d, e, a, F0, KK4, 5, 5); -+ R( a, b, c, d, e, F0, KK4, 8, 14); -+ R( e, a, b, c, d, F0, KK4, 7, 6); -+ R( d, e, a, b, c, F0, KK4, 6, 8); -+ R( c, d, e, a, b, F0, KK4, 2, 13); -+ R( b, c, d, e, a, F0, KK4, 13, 6); -+ R( a, b, c, d, e, F0, KK4, 14, 5); -+ R( e, a, b, c, d, F0, KK4, 0, 15); -+ R( d, e, a, b, c, F0, KK4, 3, 13); -+ R( c, d, e, a, b, F0, KK4, 9, 11); -+ R( b, c, d, e, a, F0, KK4, 11, 11); -+ -+ -+ t = hd->h1 + d + cc; -+ hd->h1 = hd->h2 + e + dd; -+ hd->h2 = hd->h3 + a + ee; -+ hd->h3 = hd->h4 + b + aa; -+ hd->h4 = hd->h0 + c + bb; -+ hd->h0 = t; -+} -+ -+ -+/* Update the message digest with the contents -+ * of INBUF with length INLEN. -+ */ -+static void -+rmd160_write( RMD160_CONTEXT *hd, byte *inbuf, size_t inlen) -+{ -+ if( hd->count == 64 ) { /* flush the buffer */ -+ transform( hd, hd->buf ); -+ hd->count = 0; -+ hd->nblocks++; -+ } -+ if( !inbuf ) -+ return; -+ if( hd->count ) { -+ for( ; inlen && hd->count < 64; inlen-- ) -+ hd->buf[hd->count++] = *inbuf++; -+ rmd160_write( hd, NULL, 0 ); -+ if( !inlen ) -+ return; -+ } -+ -+ while( inlen >= 64 ) { -+ transform( hd, inbuf ); -+ hd->count = 0; -+ hd->nblocks++; -+ inlen -= 64; -+ inbuf += 64; -+ } -+ for( ; inlen && hd->count < 64; inlen-- ) -+ hd->buf[hd->count++] = *inbuf++; -+} -+ -+/* The routine terminates the computation -+ */ -+ -+static void -+rmd160_final( RMD160_CONTEXT *hd ) -+{ -+ u32 t, msb, lsb; -+ byte *p; -+ -+ rmd160_write(hd, NULL, 0); /* flush */; -+ -+ msb = 0; -+ t = hd->nblocks; -+ if( (lsb = t << 6) < t ) /* multiply by 64 to make a byte count */ -+ msb++; -+ msb += t >> 26; -+ t = lsb; -+ if( (lsb = t + hd->count) < t ) /* add the count */ -+ msb++; -+ t = lsb; -+ if( (lsb = t << 3) < t ) /* multiply by 8 to make a bit count */ -+ msb++; -+ msb += t >> 29; -+ -+ if( hd->count < 56 ) { /* enough room */ -+ hd->buf[hd->count++] = 0x80; /* pad */ -+ while( hd->count < 56 ) -+ hd->buf[hd->count++] = 0; /* pad */ -+ } -+ else { /* need one extra block */ -+ hd->buf[hd->count++] = 0x80; /* pad character */ -+ while( hd->count < 64 ) -+ hd->buf[hd->count++] = 0; -+ rmd160_write(hd, NULL, 0); /* flush */; -+ memset(hd->buf, 0, 56 ); /* fill next block with zeroes */ -+ } -+ /* append the 64 bit count */ -+ hd->buf[56] = lsb ; -+ hd->buf[57] = lsb >> 8; -+ hd->buf[58] = lsb >> 16; -+ hd->buf[59] = lsb >> 24; -+ hd->buf[60] = msb ; -+ hd->buf[61] = msb >> 8; -+ hd->buf[62] = msb >> 16; -+ hd->buf[63] = msb >> 24; -+ transform( hd, hd->buf ); -+ -+ p = hd->buf; -+ #if BYTE_ORDER == BIG_ENDIAN -+ #define X(a) do { *p++ = hd->h##a ; *p++ = hd->h##a >> 8; \ -+ *p++ = hd->h##a >> 16; *p++ = hd->h##a >> 24; } while(0) -+ #else /* little endian */ -+ #define X(a) do { *(u32*)p = hd->h##a ; p += 4; } while(0) -+ #endif -+ X(0); -+ X(1); -+ X(2); -+ X(3); -+ X(4); -+ #undef X -+} -+ -+/**************** -+ * Shortcut functions which puts the hash value of the supplied buffer -+ * into outbuf which must have a size of 20 bytes. -+ */ -+void -+rmd160_hash_buffer( char *outbuf, const char *buffer, size_t length ) -+{ -+ RMD160_CONTEXT hd; -+ -+ rmd160_init( &hd ); -+ rmd160_write( &hd, (byte*)buffer, length ); -+ rmd160_final( &hd ); -+ memcpy( outbuf, hd.buf, 20 ); -+} -diff -urN util-linux-2.10o/mount/rmd160.h util-linux-2.10o.int2/mount/rmd160.h ---- util-linux-2.10o/mount/rmd160.h Thu Jan 1 01:00:00 1970 -+++ util-linux-2.10o.int2/mount/rmd160.h Mon Sep 25 11:46:18 2000 -@@ -0,0 +1,9 @@ -+#ifndef RMD160_H -+#define RMD160_H -+ -+void -+rmd160_hash_buffer( char *outbuf, const char *buffer, size_t length ); -+ -+#endif /*RMD160_H*/ -+ -+ diff --git a/sys-apps/util-linux/util-linux-2.10q-r1.ebuild b/sys-apps/util-linux/util-linux-2.10q-r1.ebuild deleted file mode 100644 index aa4af2b33768..000000000000 --- a/sys-apps/util-linux/util-linux-2.10q-r1.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# 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-apps/util-linux/util-linux-2.10q-r1.ebuild,v 1.2 2001/02/10 11:17:25 achim Exp $ - -S=${WORKDIR}/${P} -DESCRIPTION="Various useful Linux utilities" -SRC_URI="ftp://ftp.de.kernel.org/pub/linux/utils/util-linux/${P}.tar.bz2" -DEPEND=">=sys-libs/ncurses-5.2-r2" - - -RDEPEND="$DEPEND - sys-devel/perl" - -src_unpack() { - - unpack ${P}.tar.bz2 - cd ${S} - cp MCONFIG MCONFIG.orig - sed -e "s:-pipe -O2 -m486 -fomit-frame-pointer:${CFLAGS}:" \ - -e "s:CPU=.*:CPU=${CHOST%%-*}:" \ - -e "s:HAVE_PAM=no:HAVE_PAM=yes:" \ - -e "s:HAVE_SLN=no:HAVE_SLN=yes:" \ - -e "s:HAVE_TSORT=no:HAVE_TSORT=yes:" \ - -e "s:usr/man:usr/share/man:" \ - -e "s:usr/info:usr/share/info:" \ - MCONFIG.orig > MCONFIG.orig2 - if [ "`use simpleinit`" ] - then - sed -e "s:HAVE_SYSVINIT=yes:HAVE_SYSVINIT=no:" \ - -e "s:HAVE_SYSVINIT_UTILS=yes:HAVE_SYSVINIT_UTILS=no:" \ - MCONFIG.orig2 > MCONFIG - else - mv MCONFIG.orig2 MCONFIG - fi - -} - -src_compile() { - - try ./configure - try make ${MAKEOPTS} LDFLAGS=\"\" -} - - -src_install() { - - try make DESTDIR=${D} install - - dodoc HISTORY MAINTAINER README VERSION - docinto licenses - dodoc licenses/* HISTORY - docinto examples - dodoc example.files/* -} - - diff --git a/sys-apps/util-linux/util-linux-2.10q.ebuild b/sys-apps/util-linux/util-linux-2.10q.ebuild deleted file mode 100644 index d85d9fb450e0..000000000000 --- a/sys-apps/util-linux/util-linux-2.10q.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# 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-apps/util-linux/util-linux-2.10q.ebuild,v 1.3 2000/11/30 23:14:35 achim Exp $ - - -S=${WORKDIR}/${P} -DESCRIPTION="Various useful Linux utilities" -SRC_URI="ftp://ftp.de.kernel.org/pub/linux/utils/util-linux/${P}.tar.bz2" -DEPEND=">=sys-libs/gpm-1.19.3 - >=sys-libs/slang-1.4.2" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04 - >=sys-devel/perl-5.6" - -src_compile() { - try ./configure - try make ${MAKEOPTS} LDFLAGS=\"\" -} - -src_unpack() { - unpack ${P}.tar.bz2 - cd ${S} -# patch -p1 < ${FILESDIR}/util-linux-2.10o* - cp MCONFIG MCONFIG.orig - sed -e "s/-pipe -O2 -m486 -fomit-frame-pointer/${CFLAGS}/" \ - -e "s/HAVE_PAM=no/HAVE_PAM=yes/" \ - -e "s/HAVE_SLN=no/HAVE_SLN=yes/" \ - -e "s/HAVE_TSORT=no/HAVE_TSORT=yes/" \ - -e "s/# HAVE_SLANG/HAVE_SLANG/" \ - -e "s/# SLANGFLAGS/SLANGSFLAGS/" \ - MCONFIG.orig > MCONFIG - -} - -src_install() { - cd ${S} - try make DESTDIR=${D} install - cd ${S} - dodoc HISTORY MAINTAINER README VERSION - docinto licenses - dodoc licenses/* HISTORY - docinto examples - dodoc example.files/* -} - - diff --git a/sys-apps/vcron/files/digest-vcron-3.0_p1-r1 b/sys-apps/vcron/files/digest-vcron-3.0_p1-r1 deleted file mode 100644 index 12da92affca3..000000000000 --- a/sys-apps/vcron/files/digest-vcron-3.0_p1-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 d9f12c3edfca4a4918b8d299cce5f2b4 cron3.0pl1.tar.gz diff --git a/sys-apps/vim-nogui/files/digest-vim-nogui-5.7-r2 b/sys-apps/vim-nogui/files/digest-vim-nogui-5.7-r2 deleted file mode 100644 index bd52e4ba82b9..000000000000 --- a/sys-apps/vim-nogui/files/digest-vim-nogui-5.7-r2 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 0b2bca69c7018a8777d8d5390e23d06e vim-5.7-src.tar.gz -MD5 b7d9cbc64479e26f52e2bc58d312bd84 vim-5.7-rt.tar.gz diff --git a/sys-apps/vim-nogui/vim-nogui-5.7-r2.ebuild b/sys-apps/vim-nogui/vim-nogui-5.7-r2.ebuild deleted file mode 100644 index 2c03fc421f57..000000000000 --- a/sys-apps/vim-nogui/vim-nogui-5.7-r2.ebuild +++ /dev/null @@ -1,35 +0,0 @@ -# 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-apps/vim-nogui/vim-nogui-5.7-r2.ebuild,v 1.3 2000/11/30 23:14:35 achim Exp $ - -A="vim-5.7-src.tar.gz vim-5.7-rt.tar.gz" -S=${WORKDIR}/vim-5.7 -DESCRIPTION="Handy vi-compatible editor" -SRC_URI="ftp://ftp.home.vim.org/pub/vim/unix/vim-5.7-src.tar.gz - ftp://ftp.home.vim.org/pub/vim/unix/vim-5.7-rt.tar.gz" -HOMEPAGE="http://www.vim.org" -DEPEND=">=sys-libs/gpm-1.19.3" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} \ - --enable-gui=no --without-x - # Parallel make does not work - try make -} - -src_install() { - try make prefix=${D}/usr STRIP=echo install - dodoc README* - - cd ${D}/usr/doc/vim-nogui-5.7-r2 - ln -s ../../share/vim/vim57/doc ${P} - - cd ${D}/usr/bin - ln -s vim vi - dosed "s:/usr/bin/nawk:/usr/bin/awk:" /usr/share/vim/vim57/tools/mve.awk -} - - - - diff --git a/sys-apps/watchpid/files/digest-watchpid-0.1 b/sys-apps/watchpid/files/digest-watchpid-0.1 deleted file mode 100644 index 54f3c64a1b1e..000000000000 --- a/sys-apps/watchpid/files/digest-watchpid-0.1 +++ /dev/null @@ -1 +0,0 @@ -MD5 954939f7ddf337d90ec9806abea0290b watchpid_0.1.tar.gz diff --git a/sys-apps/watchpid/watchpid-0.1.ebuild b/sys-apps/watchpid/watchpid-0.1.ebuild deleted file mode 100644 index 34ec74ac716c..000000000000 --- a/sys-apps/watchpid/watchpid-0.1.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# 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-apps/watchpid/watchpid-0.1.ebuild,v 1.2 2000/11/30 23:14:35 achim Exp $ - -A=watchpid_0.1.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Watches a process for termination" -SRC_URI="http://www.codepark.org/projects/utils/${A}" -HOMEPAGE="http://www.codepark.org" -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - cd ${S} - dodoc README AUTHORS COPYING NEWS -} - - - diff --git a/sys-apps/which/files/digest-which-2.12 b/sys-apps/which/files/digest-which-2.12 deleted file mode 100644 index fc5c9a3ba137..000000000000 --- a/sys-apps/which/files/digest-which-2.12 +++ /dev/null @@ -1 +0,0 @@ -MD5 8955df4fe35e29378a5eda31a61de39e which-2.12.tar.gz diff --git a/sys-apps/which/which-2.12.ebuild b/sys-apps/which/which-2.12.ebuild deleted file mode 100644 index ee0dc2371688..000000000000 --- a/sys-apps/which/which-2.12.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# 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-apps/which/which-2.12.ebuild,v 1.2 2000/11/30 23:14:35 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Prints out location of specified executables that are in your path" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/which/${A} - ftp://prep.ai.mit.edu/gnu/which/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - try ./configure --prefix=/usr - try make -} - -src_unpack() { - unpack ${A} - # cd ${S}/tilde - # cp shell.c shell.c.orig - # echo "#define NULL ( 0L )" > shell.c - # cat shell.c.orig >> shell.c -} - -src_install() { - into /usr - dobin which - doman which.1 - doinfo which.info - dodoc AUTHORS COPYING EXAMPLES NEWS README* -} - diff --git a/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r1 b/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r1 deleted file mode 100644 index 72aa49d63056..000000000000 --- a/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 5d1f4d5bab29d9e68dc8850b4cb90969 xinetd-2.1.8.8p3.tar.gz diff --git a/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r2 b/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r2 deleted file mode 100644 index 72aa49d63056..000000000000 --- a/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 5d1f4d5bab29d9e68dc8850b4cb90969 xinetd-2.1.8.8p3.tar.gz diff --git a/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r3 b/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r3 deleted file mode 100644 index 72aa49d63056..000000000000 --- a/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 5d1f4d5bab29d9e68dc8850b4cb90969 xinetd-2.1.8.8p3.tar.gz diff --git a/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r4 b/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r4 deleted file mode 100644 index 72aa49d63056..000000000000 --- a/sys-apps/xinetd/files/digest-xinetd-2.1.8.8_p3-r4 +++ /dev/null @@ -1 +0,0 @@ -MD5 5d1f4d5bab29d9e68dc8850b4cb90969 xinetd-2.1.8.8p3.tar.gz diff --git a/sys-apps/xinetd/xinetd-2.1.8.8_p3-r4.ebuild b/sys-apps/xinetd/xinetd-2.1.8.8_p3-r4.ebuild deleted file mode 100644 index c39ed3ba68eb..000000000000 --- a/sys-apps/xinetd/xinetd-2.1.8.8_p3-r4.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# 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-apps/xinetd/xinetd-2.1.8.8_p3-r4.ebuild,v 1.2 2001/01/13 20:07:52 achim Exp $ - -P=xinetd-2.1.8.8p3 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Replacement for inetd." -HOMEPAGE="http://www.xinetd.org" -SRC_URI="http://www.xinetd.org/${A}" -DEPEND=">=sys-libs/glibc-2.1.3" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04 - >=sys-devel/perl-5.6" - -src_compile() { - try ./configure --with-loadavg --with-libwrap --prefix=/usr --host=${CHOST} - # Parallel make does not work - try make - -} - -src_install() { - cd ${S} - try make prefix=${D}/usr install - dodoc CHANGELOG README COPYRIGHT - exeinto /etc/rc.d/init.d - doexe ${FILESDIR}/xinetd ${FILESDIR}/svc-xinetd - insinto /etc -# doins ${FILESDIR}/xinetd.conf - exeinto /var/lib/supervise/services/xinetd - newexe ${FILESDIR}/xinetd-run run -} - - - - diff --git a/sys-apps/yard/files/digest-yard-2.0 b/sys-apps/yard/files/digest-yard-2.0 deleted file mode 100644 index 41f5511082f8..000000000000 --- a/sys-apps/yard/files/digest-yard-2.0 +++ /dev/null @@ -1 +0,0 @@ -MD5 c2d115e0a12945b6057a30e2c47532ae yard-2.0.tar.gz diff --git a/sys-apps/yard/files/yard-2.0-doc-Makefile.in-gentoo.diff~ b/sys-apps/yard/files/yard-2.0-doc-Makefile.in-gentoo.diff~ deleted file mode 100644 index 7c6252d16287..000000000000 --- a/sys-apps/yard/files/yard-2.0-doc-Makefile.in-gentoo.diff~ +++ /dev/null @@ -1,16 +0,0 @@ ---- doc/Makefile.in~ Mon May 15 00:55:57 2000 -+++ doc/Makefile.in Sun Apr 8 18:06:05 2001 -@@ -55,10 +55,10 @@ - man: yard.8 - - install: -- $(INSTALL) --directory $(doc_dest) $(manfile_dest) -- $(INSTALL) --group=man --mode=444 yard.8 $(manfile_dest) -+ $(INSTALL) --directory $(DESTDIR)/$(doc_dest) $(DESTDIR)$(manfile_dest) -+ $(INSTALL) --group=man --mode=444 yard.8 $(DESTDIR)$(manfile_dest) - for i in $(MANPAGES);\ -- do $(LN) -f $(manfile_dest)/yard.8 $(manfile_dest)/$$i; done -+ do $(LN) -f yard.8 $(DESTDIR)/$(manfile_dest)/$$i; done - - clean: - $(RM) -f *.log *~ *.~ .*~ *.*.~ *.OLD *.ls \#* *.bak diff --git a/sys-apps/yard/yard-2.0.ebuild b/sys-apps/yard/yard-2.0.ebuild deleted file mode 100644 index f7c1afaec851..000000000000 --- a/sys-apps/yard/yard-2.0.ebuild +++ /dev/null @@ -1,46 +0,0 @@ -# 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-apps/yard/yard-2.0.ebuild,v 1.1 2001/04/08 16:42:20 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Yard is a suite of Perl scripts for creating rescue disks (also -called bootdisks) for Linux." -SRC_URI="http://www.croftj.net/~fawcett/yard/${A}" -HOMEPAGE="http://www.croftj.net/~fawcett/yard/" - -src_unpack() { - unpack ${A} - cd ${S} - cp ${FILESDIR}/configure . - #cp Makefile.in makefile.in.orig - patch -p0 < ${FILESDIR}/${P}-Makefile.in-gentoo.diff - patch -p0 < ${FILESDIR}/${P}-doc-Makefile.in-gentoo.diff - patch -p0 < ${FILESDIR}/${P}-extras-Makefile.in-gentoo.diff -} - -src_compile() { - - cd ${S} - try ./configure --prefix=/usr - try make - -} - -src_install () { - - cd ${S} - try make DESTDIR=${D} install customize - cd doc - docinto txt - dodoc *.txt Broken* - docinto html - dodoc *.html - docinto sgml - dodoc *.sgml - docinto print - gunzip *.ps.gz - dodoc *.ps -} - diff --git a/sys-build/bash/bash-2.04-r1.ebuild b/sys-build/bash/bash-2.04-r1.ebuild deleted file mode 100644 index c86fe16e5200..000000000000 --- a/sys-build/bash/bash-2.04-r1.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# 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.3 2001/02/15 18:17:31 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 deleted file mode 100644 index 2357c32167ec..000000000000 --- a/sys-build/bash/files/digest-bash-2.04-r1 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index bc58a366ca49..000000000000 --- a/sys-build/binutils/binutils-2.10.1.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# 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.2 2001/01/27 08:38:36 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 ${MAKEOPTS} -} - -src_install() { - try make prefix=${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 deleted file mode 100644 index ec81f98fe173..000000000000 --- a/sys-build/binutils/files/digest-binutils-2.10.1 +++ /dev/null @@ -1 +0,0 @@ -MD5 3e8be56825395a075a71e0b7e8da206a binutils-2.10.1.tar.gz diff --git a/sys-build/bison/bison-1.28-r1.ebuild b/sys-build/bison/bison-1.28-r1.ebuild deleted file mode 100644 index 19a20f43fc99..000000000000 --- a/sys-build/bison/bison-1.28-r1.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# 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/bison/bison-1.28-r1.ebuild,v 1.3 2001/02/15 18:17:31 achim Exp $ - -P=bison-1.28 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="A yacc-compatible parser generator" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/bison/${A} - ftp://prep.ai.mit.edu/gnu/bison/${A}" -HOMEPAGE="http://www.gnu.org/software/bison/bison.html" - - - -src_compile() { - try ./configure --prefix=/usr --datadir=/usr/share/bison --host=${CHOST} --disable-nls - try make ${MAKEOPTS} LDFLAGS=-static -} - -src_install() { - cd ${S} - try make prefix=${D}/usr datadir=${D}/usr/share/bison install - rm -rf ${D}/usr/man ${D}/usr/info -} - - diff --git a/sys-build/bison/files/digest-bison-1.28-r1 b/sys-build/bison/files/digest-bison-1.28-r1 deleted file mode 100644 index 31b82696c4c7..000000000000 --- a/sys-build/bison/files/digest-bison-1.28-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 4afb3989f2270043c47c3daa1fa7ffab bison-1.28.tar.gz diff --git a/sys-build/bzip2/bzip2-1.0.1.ebuild b/sys-build/bzip2/bzip2-1.0.1.ebuild deleted file mode 100644 index 0a19f51478c9..000000000000 --- a/sys-build/bzip2/bzip2-1.0.1.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# 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.2 2001/02/05 02:47:05 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 deleted file mode 100644 index 4a2d8e5861de..000000000000 --- a/sys-build/bzip2/files/digest-bzip2-1.0.1 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 82ac02793b56..000000000000 --- a/sys-build/debianutils/debianutils-1.13.3-r1.ebuild +++ /dev/null @@ -1,31 +0,0 @@ -# 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 deleted file mode 100644 index 30079b8cc3cd..000000000000 --- a/sys-build/debianutils/files/digest-debianutils-1.13.3-r1 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 97eb2af52ba2..000000000000 --- a/sys-build/diffutils/diffutils-2.7-r1.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# 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 deleted file mode 100644 index d4b1dc7fc3ff..000000000000 --- a/sys-build/diffutils/files/digest-diffutils-2.7-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 300d86a0566afee1c3756828f6c9538a diffutils-2.7.tar.gz diff --git a/sys-build/file/file-3.33.ebuild b/sys-build/file/file-3.33.ebuild deleted file mode 100644 index 69957b8100be..000000000000 --- a/sys-build/file/file-3.33.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# 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/file/file-3.33.ebuild,v 1.2 2001/02/15 18:17:31 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Program to identify a file's format by scanning binary data for patters" -#unfortunately, this ftp site doesn't support passive ftp -#maybe we can find an alternative for those behind firewalls, or mirror -#on cvs.gentoo.org -SRC_URI="ftp://ftp.astron.com/pub/file/${A}" - -src_compile() { - try ./configure --prefix=/usr --datadir=/etc --host=${CHOST} - try pmake LDFLAGS=-static -} - -src_install() { - into /usr - dobin file - insinto /etc - doins magic magic.mime -} - - - diff --git a/sys-build/file/files/digest-file-3.33 b/sys-build/file/files/digest-file-3.33 deleted file mode 100644 index 9a0e1f33e262..000000000000 --- a/sys-build/file/files/digest-file-3.33 +++ /dev/null @@ -1 +0,0 @@ -MD5 3b8e32ed3a79774bd92f0052fa07ca04 file-3.33.tar.gz diff --git a/sys-build/fileutils/files/digest-fileutils-4.0.36-r1 b/sys-build/fileutils/files/digest-fileutils-4.0.36-r1 deleted file mode 100644 index 44878ba266d7..000000000000 --- a/sys-build/fileutils/files/digest-fileutils-4.0.36-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 c603c20eedd5b964b1b429efe8103159 fileutils-4.0.36.tar.gz diff --git a/sys-build/fileutils/fileutils-4.0.36-r1.ebuild b/sys-build/fileutils/fileutils-4.0.36-r1.ebuild deleted file mode 100644 index af20ade0c866..000000000000 --- a/sys-build/fileutils/fileutils-4.0.36-r1.ebuild +++ /dev/null @@ -1,26 +0,0 @@ -# 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.36-r1.ebuild,v 1.2 2001/02/15 18:17:31 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 - dosym /bin/install /usr/bin/install -} - diff --git a/sys-build/findutils/files/digest-findutils-4.1-r3 b/sys-build/findutils/files/digest-findutils-4.1-r3 deleted file mode 100644 index d959da1b7872..000000000000 --- a/sys-build/findutils/files/digest-findutils-4.1-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 3ea8fe58ef5386da75f6c707713aa059 findutils-4.1.tar.gz diff --git a/sys-build/findutils/findutils-4.1-r3.ebuild b/sys-build/findutils/findutils-4.1-r3.ebuild deleted file mode 100644 index 4399f03b93eb..000000000000 --- a/sys-build/findutils/findutils-4.1-r3.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# 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/findutils/findutils-4.1-r3.ebuild,v 1.2 2001/02/15 18:17:31 achim Exp $ - -P=findutils-4.1 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU utilities to find files" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/findutils/${A} - ftp://prep.ai.mit.edu/gnu/findutils/${A}" -HOMEPAGE="http://www.gnu.org/software/findutils/findutils.html" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - # do not use pmake recursive - try make LOCATE_DB=/var/lib/locatedb \ - libexecdir=/usr/lib/find $MAKEOPTS LDFLAGS=-static -} - -src_unpack() { - unpack ${A} - einfo "Applying Patch..." - #using sed to apply minor patches to files - cd ${S}/find - mv fstype.c fstype.c.orig - sed -e "33d" -e "34d" fstype.c.orig > fstype.c - mv parser.c parser.c.orig - sed -e "55d" parser.c.orig > parser.c - mv pred.c pred.c.orig - sed -e '29i\' -e '#define FNM_CASEFOLD (1<<4)' pred.c.orig > pred.c - cd ${S}/lib - mv nextelem.c nextelem.c.orig - sed -e "35d" nextelem.c.orig > nextelem.c - cd ${S}/xargs - mv xargs.c xargs.c.orig - sed -e "63d" -e "64d" xargs.c.orig > xargs.c -} - -src_install() { - cd ${S} - try make prefix=${D}/usr libexecdir=${D}/usr/lib/find \ - LOCATE_DB=${D}/var/lib/locatedb install - dosed "s:TMPDIR=/usr/tmp:TMPDIR=/tmp:" usr/bin/updatedb - rm -fr ${D}/usr/var ${D}/usr/man ${D}/usr/info -} - diff --git a/sys-build/flex/files/digest-flex-2.5.4a-r1 b/sys-build/flex/files/digest-flex-2.5.4a-r1 deleted file mode 100644 index 832a6789f10a..000000000000 --- a/sys-build/flex/files/digest-flex-2.5.4a-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 bd8753d0b22e1f4ec87a553a73021adf flex-2.5.4a.tar.gz diff --git a/sys-build/flex/flex-2.5.4a-r1.ebuild b/sys-build/flex/flex-2.5.4a-r1.ebuild deleted file mode 100644 index 44c2c1a321f6..000000000000 --- a/sys-build/flex/flex-2.5.4a-r1.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# 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/flex/flex-2.5.4a-r1.ebuild,v 1.3 2001/02/15 18:17:31 achim Exp $ - -P=flex-2.5.4a -A=${P}.tar.gz -S=${WORKDIR}/flex-2.5.4 -DESCRIPTION="GNU lexical analyser generator" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/non-gnu/flex/${A} - ftp://prep.ai.mit.edu/non-gnu/flex/${A}" -HOMEPAGE="http://www.gnu.org/software/flex/flex.html" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} --disable-nls - try make ${MAKEOPTS} LDFLAGS=-static -} - -src_install() { - try make prefix=${D}/usr install - rm -rf ${D}/usr/man ${D}/usr/include ${D}/usr/lib -} - - diff --git a/sys-build/gawk/files/digest-gawk-3.0.6-r1 b/sys-build/gawk/files/digest-gawk-3.0.6-r1 deleted file mode 100644 index 55f7d10d4a37..000000000000 --- a/sys-build/gawk/files/digest-gawk-3.0.6-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 b5ba21c033f5a9737455458d94954609 gawk-3.0.6.tar.gz diff --git a/sys-build/gawk/gawk-3.0.6-r1.ebuild b/sys-build/gawk/gawk-3.0.6-r1.ebuild deleted file mode 100644 index a4d1063d949c..000000000000 --- a/sys-build/gawk/gawk-3.0.6-r1.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# 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/gawk/gawk-3.0.6-r1.ebuild,v 1.2 2001/02/15 18:17:31 achim Exp $ - -P=gawk-3.0.6 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU awk pattern-matching language" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/gawk/${A} - ftp://prep.ai.mit.edu/gnu/gawk/${A}" -HOMEPAGE="http://www.gnu.org/software/gawk/gawk.html" - -src_compile() { - try ./configure --prefix=/usr --libexecdir=/usr/lib/awk --host=${CHOST} - try make ${MAKEOPTS} LDFLAGS=-static -} - -src_install() { - - try make prefix=${D}/usr libexecdir=${D}/usr/lib/awk install - rm -rf ${D}/usr/man ${D}/usr/info - -} - - - diff --git a/sys-build/gcc/files/digest-gcc-2.95.2-r4 b/sys-build/gcc/files/digest-gcc-2.95.2-r4 deleted file mode 100644 index 8cbef92431a6..000000000000 --- a/sys-build/gcc/files/digest-gcc-2.95.2-r4 +++ /dev/null @@ -1,6 +0,0 @@ -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/digest-gcc-2.95.2.1 b/sys-build/gcc/files/digest-gcc-2.95.2.1 deleted file mode 100644 index 06cfc0edf8a6..000000000000 --- a/sys-build/gcc/files/digest-gcc-2.95.2.1 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 0e36957d734286e242e9697fd2806c4f gcc-2.95.2.tar.gz -MD5 e89e684a145a55d442b09436edef4427 gcc-2.95.2-2.95.2.1.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 Binary files differdeleted file mode 100644 index 034d06a0a335..000000000000 --- a/sys-build/gcc/files/gcc-2.95.2.dif.gz +++ /dev/null diff --git a/sys-build/gcc/files/gcc-accept-doublecolon.diff.gz b/sys-build/gcc/files/gcc-accept-doublecolon.diff.gz Binary files differdeleted file mode 100644 index ced5ee0bd788..000000000000 --- a/sys-build/gcc/files/gcc-accept-doublecolon.diff.gz +++ /dev/null diff --git a/sys-build/gcc/files/gcc-exception-fix.diff.gz b/sys-build/gcc/files/gcc-exception-fix.diff.gz Binary files differdeleted file mode 100644 index db8e6bce0898..000000000000 --- a/sys-build/gcc/files/gcc-exception-fix.diff.gz +++ /dev/null diff --git a/sys-build/gcc/files/gcc-glibc-2.2-compat.diff b/sys-build/gcc/files/gcc-glibc-2.2-compat.diff deleted file mode 100644 index 671311b716f7..000000000000 --- a/sys-build/gcc/files/gcc-glibc-2.2-compat.diff +++ /dev/null @@ -1,332 +0,0 @@ -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 deleted file mode 100644 index 58c960175128..000000000000 --- a/sys-build/gcc/files/gccinclude-glibc-2.2-compat.diff +++ /dev/null @@ -1,50 +0,0 @@ -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 deleted file mode 100644 index 7d57a99a2225..000000000000 --- a/sys-build/gcc/files/libioP.h +++ /dev/null @@ -1,657 +0,0 @@ -/* 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 deleted file mode 100644 index 85446cb5e974..000000000000 --- a/sys-build/gcc/gcc-2.95.2-r4.ebuild +++ /dev/null @@ -1,83 +0,0 @@ -# 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.3 2001/01/27 14:41:34 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} --enable-version-specific-runtime-libs \ - --host=${CHOST} --with-local-prefix=${T}/local \ - --disable-nls --enable-threads \ - --enable-languages=c,c++ - # Parallel build does not work - try make LDFLAGS=-static bootstrap - cd ${§}/texinfo/util - make texindex install-info -} - -src_install() { - - try make install prefix=${D}${T} mandir=${D}${T}/man - cd texinfo - dobin makeinfo/makeinfo util/texi2dvi util/install-info util/texindex - FULLPATH=${D}${T}/lib/gcc-lib/${CHOST}/${PV} - cd ${FULLPATH} - dodir /lib - dosym ${T}/lib/gcc-lib/${CHOST}/${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 deleted file mode 100644 index 7b9682289a38..000000000000 --- a/sys-build/glibc/files/digest-glibc-2.2.1 +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index 6a2f04810547..000000000000 --- a/sys-build/glibc/glibc-2.2.1.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# 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.4 2001/02/15 18:17:31 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" -PROVIDE="virtual/glibc" - -src_compile() { - - rm -rf buildhere - mkdir buildhere - cd buildhere - try ../configure --host=${CHOST} --without-cvs \ - --enable-add-ons=linuxthreads \ - --disable-profile --prefix=/usr \ - --libexecdir=/usr/lib/misc - --enable-kernel=2.4.0 \ - --with-headers=${ROOT}/usr/include - cp config.make config.orig - sed -e "s:^LIBGD =.*:LIBGD = no:" config.orig > config.make - 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 install_root=${D} install -C buildhere -# try make install_root=${D} localedata/install-locales -C buildhere - chmod 755 ${D}/usr/lib/misc/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 deleted file mode 100644 index 10f2f727a071..000000000000 --- a/sys-build/grep/files/digest-grep-2.4.2-r1 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index c888d02c940e..000000000000 --- a/sys-build/grep/grep-2.4.2-r1.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# 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.2 2001/01/27 22:04:24 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="virtual/glibc" -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} --disable-nls - try make LDFLAGS=-static ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - rm -rf ${D}/usr/man ${D}/usr/info -} - - - diff --git a/sys-build/gzip/files/digest-gzip-1.2.4a-r1 b/sys-build/gzip/files/digest-gzip-1.2.4a-r1 deleted file mode 100644 index 60ae475bc42e..000000000000 --- a/sys-build/gzip/files/digest-gzip-1.2.4a-r1 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index d3bf5e31b7c1..000000000000 --- a/sys-build/gzip/gzip-1.2.4a-r1.ebuild +++ /dev/null @@ -1,35 +0,0 @@ -# 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.2 2001/02/15 18:17:31 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" - -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 deleted file mode 100644 index 1445b8cf0490..000000000000 --- a/sys-build/make/files/digest-make-3.79.1-r1 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index a411e503384c..000000000000 --- a/sys-build/make/make-3.79.1-r1.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# 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.2 2001/02/15 18:17:32 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" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} --disable-nls - try make ${MAKEOPTS} LDFLAGS=-static -} - -src_install() { - - dobin make -} - - - diff --git a/sys-build/patch/files/digest-patch-2.5.4-r1 b/sys-build/patch/files/digest-patch-2.5.4-r1 deleted file mode 100644 index 528dd04a27b6..000000000000 --- a/sys-build/patch/files/digest-patch-2.5.4-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 ee5ae84d115f051d87fcaaef3b4ae782 patch-2.5.4.tar.gz diff --git a/sys-build/patch/patch-2.5.4-r1.ebuild b/sys-build/patch/patch-2.5.4-r1.ebuild deleted file mode 100644 index 71b6bb6e6618..000000000000 --- a/sys-build/patch/patch-2.5.4-r1.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# 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/patch/patch-2.5.4-r1.ebuild,v 1.2 2001/02/15 18:17:32 achim Exp $ - -P=patch-2.5.4 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Utility to apply diffs to files" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/patch/${A} - ftp://ftp.gnu.org/gnu/patch/${A}" -HOMEPAGE="http://www.gnu.org/software/patch/patch.html" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - try make ${MAKEOPTS} LDFLAGS=-static -} - -src_install() { - try make prefix=${D}/usr install - rm -rf ${D}/usr/man -} - - - diff --git a/sys-build/sed/files/digest-sed-3.02.80 b/sys-build/sed/files/digest-sed-3.02.80 deleted file mode 100644 index c2922128b256..000000000000 --- a/sys-build/sed/files/digest-sed-3.02.80 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 5f6e0c8e25cf..000000000000 --- a/sys-build/sed/sed-3.02.80.ebuild +++ /dev/null @@ -1,20 +0,0 @@ -# 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.2 2001/02/15 18:17:32 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Super-useful stream editor" -SRC_URI="ftp://alpha.gnu.org/pub/gnu/sed/${A}" - -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 deleted file mode 100644 index bc4f2b097953..000000000000 --- a/sys-build/sh-utils/files/digest-sh-utils-2.0j-r1 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index eacff1bee925..000000000000 --- a/sys-build/sh-utils/sh-utils-2.0j-r1.ebuild +++ /dev/null @@ -1,37 +0,0 @@ - -# 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.3 2001/02/15 18:17:32 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}" - -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} LDFLAGS=-static -} - -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 deleted file mode 100644 index d5edd17f12a5..000000000000 --- a/sys-build/spython/files/digest-spython-2.0-r1 +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index 6b0d4db091b0..000000000000 --- a/sys-build/spython/files/pfconfig.h +++ /dev/null @@ -1,17 +0,0 @@ -/* 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 deleted file mode 100644 index 9a1ee0306cce..000000000000 --- a/sys-build/spython/spython-2.0-r1.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# 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.2 2001/02/15 18:17:32 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/" - -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 deleted file mode 100644 index 49952d6234f7..000000000000 --- a/sys-build/tar/files/digest-tar-1.13.18-r1 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 90cebd4a9752..000000000000 --- a/sys-build/tar/tar-1.13.18-r1.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# 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.2 2001/02/15 18:17:32 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/" - -src_compile() { - try ./configure --prefix=/usr --libexecdir=/usr/lib/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 deleted file mode 100644 index 1c652739479f..000000000000 --- a/sys-build/textutils/files/digest-textutils-2.0.10 +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 1b1545f0f8d0..000000000000 --- a/sys-build/textutils/textutils-2.0.10.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# 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.2 2001/02/15 18:17:32 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} - -DESCRIPTION="Standard GNU text utilities" -SRC_URI="ftp://alpha.gnu.org/gnu/fetish/${A}" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} \ - --without-included-regex --disable-nls - try make ${MAKEOPTS} LDFLAGS=-static -} - - -src_install() { - 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 -} - - - - diff --git a/sys-devel/autoconf/autoconf-2.13-r1.ebuild b/sys-devel/autoconf/autoconf-2.13-r1.ebuild deleted file mode 100644 index 6ced079a2be9..000000000000 --- a/sys-devel/autoconf/autoconf-2.13-r1.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# 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-devel/autoconf/autoconf-2.13-r1.ebuild,v 1.6 2001/01/27 14:41:34 achim Exp $ - -P=autoconf-2.13 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Used to create autoconfiguration files" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/autoconf/${A} - ftp://prep.ai.mit.edu/gnu/autoconf/${A}" -HOMEPAGE="http://www.gnu.org/software/autoconf/autoconf.html" -DEPEND=">=sys-devel/perl-5.6" -RDEPEND=">=sys-apps/bash-2.04 - >=sys-devel/perl-5.6" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - dodoc COPYING AUTHORS ChangeLog.* NEWS README TODO -} - - diff --git a/sys-devel/autoconf/files/digest-autoconf-2.13-r1 b/sys-devel/autoconf/files/digest-autoconf-2.13-r1 deleted file mode 100644 index 8512dd0165f1..000000000000 --- a/sys-devel/autoconf/files/digest-autoconf-2.13-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 9de56d4a161a723228220b0f425dc711 autoconf-2.13.tar.gz diff --git a/sys-devel/automake/automake-1.4-r1.ebuild b/sys-devel/automake/automake-1.4-r1.ebuild deleted file mode 100644 index f9f93a3ae290..000000000000 --- a/sys-devel/automake/automake-1.4-r1.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# 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-devel/automake/automake-1.4-r1.ebuild,v 1.6 2001/01/27 14:41:34 achim Exp $ - -P=automake-1.4 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Used to generate Makefile.in from Makefile.am" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/automake/${A} - ftp://prep.ai.mit.edu/gnu/automake/${A}" -HOMEPAGE="http://www.gnu.org/software/automake/automake.html" -DEPEND=">=sys-devel/perl-5.6" -RDEPEND=">=sys-apps/bash-2.04 - >=sys-devel/perl-5.6" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - dodoc COPYING NEWS README THANKS TODO AUTHORS ChangeLog -} - - diff --git a/sys-devel/automake/automake-1.4d.ebuild b/sys-devel/automake/automake-1.4d.ebuild deleted file mode 100644 index e781040737ac..000000000000 --- a/sys-devel/automake/automake-1.4d.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# 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-devel/automake/automake-1.4d.ebuild,v 1.1 2001/02/18 01:29:18 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Used to generate Makefile.in from Makefile.am" -SRC_URI=" ftp://sourceware.cygnus.com/pub/automake/${A}" -HOMEPAGE="http://www.gnu.org/software/automake/automake.html" - -DEPEND="sys-devel/perl" - -src_compile() { - - try ./configure --prefix=/usr --infodir=/usr/share/info --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - - try make prefix=${D}/usr infodir=${D}/usr/share/info install - dodoc COPYING NEWS README THANKS TODO AUTHORS ChangeLog - -} - - diff --git a/sys-devel/automake/files/digest-automake-1.4-r1 b/sys-devel/automake/files/digest-automake-1.4-r1 deleted file mode 100644 index 68986486097c..000000000000 --- a/sys-devel/automake/files/digest-automake-1.4-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 1d483ffa4349bfc9ab8ae0de0c617c7b automake-1.4.tar.gz diff --git a/sys-devel/automake/files/digest-automake-1.4d b/sys-devel/automake/files/digest-automake-1.4d deleted file mode 100644 index 2ad4cf1cc40f..000000000000 --- a/sys-devel/automake/files/digest-automake-1.4d +++ /dev/null @@ -1 +0,0 @@ -MD5 8e53f422f9e83191f3a0f65e43cf6ab1 automake-1.4d.tar.gz diff --git a/sys-devel/bc/bc-1.06.ebuild b/sys-devel/bc/bc-1.06.ebuild deleted file mode 100644 index 785c3216ef5b..000000000000 --- a/sys-devel/bc/bc-1.06.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# 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-devel/bc/bc-1.06.ebuild,v 1.2 2000/11/30 23:15:06 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Handy console-based calculator utility" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/bc/${A} - ftp://prep.ai.mit.edu/pub/gnu/bc/${A}" -HOMEPAGE="http://www.gnu.org/software/bc/bc.html" -DEPEND=">=sys-libs/gpm-1.19.3 - >=sys-libs/readline-4.1" - -src_compile() { - try ./configure --with-readline --host=${CHOST} --prefix=/usr - try make ${MAKEOPTS} -} - -src_install() { - into /usr - doinfo doc/*.info - dobin bc/bc dc/dc - doman doc/*.1 - dodoc AUTHORS COPYING* FAQ NEWS README ChangeLog -} - - diff --git a/sys-devel/bc/files/digest-bc-1.06 b/sys-devel/bc/files/digest-bc-1.06 deleted file mode 100644 index 047b162263ea..000000000000 --- a/sys-devel/bc/files/digest-bc-1.06 +++ /dev/null @@ -1 +0,0 @@ -MD5 d44b5dddebd8a7a7309aea6c36fda117 bc-1.06.tar.gz diff --git a/sys-devel/bin86/bin86-0.15.4.ebuild b/sys-devel/bin86/bin86-0.15.4.ebuild deleted file mode 100644 index 38516031304f..000000000000 --- a/sys-devel/bin86/bin86-0.15.4.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# 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-devel/bin86/bin86-0.15.4.ebuild,v 1.3 2001/01/31 20:49:07 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/bin86 -DESCRIPTION="Assembler and loader used to create kernel bootsector" -SRC_URI="http://www.cix.co.uk/~mayday/${A}" -HOMEPAGE="http://www.cix.co.uk/~mayday/" -DEPEND="virtual/glibc" -RDEPEND="$DEPEND - >=sys-apps/bash-2.04" - -src_compile() { - try make ${MAKEOPTS} -} - -src_unpack() { - unpack ${A} - cd ${S} - cp Makefile Makefile.orig - sed -e "s/CFLAGS=-O2/CFLAGS=${CFLAGS}/" \ - -e "s:INSTALL_OPTS=-m 755 -s:INSTALL_OPTS=-m 755:" \ - Makefile.orig > Makefile -} - -src_install() { - dodir /usr/bin - dodir /usr/man/man1 - try make PREFIX=${D}/usr install - dodoc README README-0.4 ChangeLog - docinto as - dodoc as/COPYING as/TODO -} - - diff --git a/sys-devel/bin86/files/digest-bin86-0.15.4 b/sys-devel/bin86/files/digest-bin86-0.15.4 deleted file mode 100644 index 26a7c3731184..000000000000 --- a/sys-devel/bin86/files/digest-bin86-0.15.4 +++ /dev/null @@ -1 +0,0 @@ -MD5 8ac305eeb5cb0cb6ce90e7e30f7c11f0 bin86-0.15.4.tar.gz diff --git a/sys-devel/binutils/binutils-2.10.1-r1.ebuild b/sys-devel/binutils/binutils-2.10.1-r1.ebuild deleted file mode 100644 index 6f2aef665b3c..000000000000 --- a/sys-devel/binutils/binutils-2.10.1-r1.ebuild +++ /dev/null @@ -1,44 +0,0 @@ -# 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-devel/binutils/binutils-2.10.1-r1.ebuild,v 1.2 2001/02/07 18:22:18 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Tools necessary to build programs" -SRC_URI="ftp://ftp.gnu.org/gnu/binutils/${A}" - -DEPEND="virtual/glibc >=sys-devel/gettext-0.10.35-r2" -RDEPEND="virtual/glibc" -src_compile() { - - try ./configure --prefix=/usr --mandir=/usr/share/man --host=${CHOST} - try make ${MAKEOPTS} - -} - -src_install() { - - try make prefix=${D}/usr mandir=${D}/usr/share/man install - - dodoc COPYING* README - docinto bfd - dodoc bfd/ChangeLog* bfd/COPYING bfd/README bfd/PORTING bfd/TODO - docinto binutils - dodoc binutils/ChangeLog binutils/NEWS binutils/README - docinto gas - dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/COPYING \ - gas/NEWS gas/README* - docinto gprof - dodoc gprof/ChangeLog* gprof/NOTES gprof/TEST gprof/TODO - docinto ld - dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO - docinto libiberty - dodoc libiberty/ChangeLog* libiberty/COPYING.LIB libiberty/README - docinto opcodes - dodoc opcodes/ChangeLog* - -} - - - diff --git a/sys-devel/binutils/binutils-2.10.1.0.7.ebuild b/sys-devel/binutils/binutils-2.10.1.0.7.ebuild deleted file mode 100644 index 5563e9a0c636..000000000000 --- a/sys-devel/binutils/binutils-2.10.1.0.7.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# 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-devel/binutils/binutils-2.10.1.0.7.ebuild,v 1.1 2001/02/17 02:51:05 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Tools necessary to build programs" -SRC_URI="http://ftp.valinux.com/pub/support/hjl/binutils/${A}" -DEPEND="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - rm -rf ${D}/usr/share - dodoc COPYING* README - docinto bfd - dodoc bfd/ChangeLog* bfd/COPYING bfd/README bfd/PORTING bfd/TODO - docinto binutils - dodoc binutils/ChangeLog binutils/NEWS binutils/README - docinto gas - dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/COPYING \ - gas/NEWS gas/README* - docinto gprof - dodoc gprof/ChangeLog* gprof/NOTES gprof/TEST gprof/TODO - docinto ld - dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO - docinto libiberty - dodoc libiberty/ChangeLog* libiberty/COPYING.LIB libiberty/README - docinto opcodes - dodoc opcodes/ChangeLog* - -} - - - diff --git a/sys-devel/binutils/binutils-2.10.1.ebuild b/sys-devel/binutils/binutils-2.10.1.ebuild deleted file mode 100644 index f566409a7d66..000000000000 --- a/sys-devel/binutils/binutils-2.10.1.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# 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-devel/binutils/binutils-2.10.1.ebuild,v 1.5 2001/02/01 19:30:33 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Tools necessary to build programs" -SRC_URI="ftp://ftp.gnu.org/gnu/binutils/${A}" -DEPEND="virtual/glibc - virtual/flex" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - rm -rf ${D}/usr/share - dodoc COPYING* README - docinto bfd - dodoc bfd/ChangeLog* bfd/COPYING bfd/README bfd/PORTING bfd/TODO - docinto binutils - dodoc binutils/ChangeLog binutils/NEWS binutils/README - docinto gas - dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/COPYING \ - gas/NEWS gas/README* - docinto gprof - dodoc gprof/ChangeLog* gprof/NOTES gprof/TEST gprof/TODO - docinto ld - dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO - docinto libiberty - dodoc libiberty/ChangeLog* libiberty/COPYING.LIB libiberty/README - docinto opcodes - dodoc opcodes/ChangeLog* - -} - - - diff --git a/sys-devel/binutils/binutils-2.10.91.0.2.ebuild b/sys-devel/binutils/binutils-2.10.91.0.2.ebuild deleted file mode 100644 index a0254aabd2b9..000000000000 --- a/sys-devel/binutils/binutils-2.10.91.0.2.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# 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-devel/binutils/binutils-2.10.91.0.2.ebuild,v 1.2 2001/02/27 17:21:15 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Tools necessary to build programs" -SRC_URI="http://ftp.valinux.com/pub/support/hjl/binutils/${A}" -DEPEND="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --mandir=/usr/share/man --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr mandir=${D}/usr/share/man install - rm -rf ${D}/usr/share - dodoc COPYING* README - docinto bfd - dodoc bfd/ChangeLog* bfd/COPYING bfd/README bfd/PORTING bfd/TODO - docinto binutils - dodoc binutils/ChangeLog binutils/NEWS binutils/README - docinto gas - dodoc gas/ChangeLog* gas/CONTRIBUTORS gas/COPYING \ - gas/NEWS gas/README* - docinto gprof - dodoc gprof/ChangeLog* gprof/NOTES gprof/TEST gprof/TODO - docinto ld - dodoc ld/ChangeLog* ld/README ld/NEWS ld/TODO - docinto libiberty - dodoc libiberty/ChangeLog* libiberty/COPYING.LIB libiberty/README - docinto opcodes - dodoc opcodes/ChangeLog* - -} - - - diff --git a/sys-devel/binutils/files/digest-binutils-2.10.1 b/sys-devel/binutils/files/digest-binutils-2.10.1 deleted file mode 100644 index ec81f98fe173..000000000000 --- a/sys-devel/binutils/files/digest-binutils-2.10.1 +++ /dev/null @@ -1 +0,0 @@ -MD5 3e8be56825395a075a71e0b7e8da206a binutils-2.10.1.tar.gz diff --git a/sys-devel/binutils/files/digest-binutils-2.10.1-r1 b/sys-devel/binutils/files/digest-binutils-2.10.1-r1 deleted file mode 100644 index ec81f98fe173..000000000000 --- a/sys-devel/binutils/files/digest-binutils-2.10.1-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 3e8be56825395a075a71e0b7e8da206a binutils-2.10.1.tar.gz diff --git a/sys-devel/binutils/files/digest-binutils-2.10.1.0.7 b/sys-devel/binutils/files/digest-binutils-2.10.1.0.7 deleted file mode 100644 index 81c6500e9a8e..000000000000 --- a/sys-devel/binutils/files/digest-binutils-2.10.1.0.7 +++ /dev/null @@ -1 +0,0 @@ -MD5 f1b37a7ecac0cc057f94a4187d9b7b89 binutils-2.10.1.0.7.tar.gz diff --git a/sys-devel/binutils/files/digest-binutils-2.10.1.0.7-r1 b/sys-devel/binutils/files/digest-binutils-2.10.1.0.7-r1 deleted file mode 100644 index 81c6500e9a8e..000000000000 --- a/sys-devel/binutils/files/digest-binutils-2.10.1.0.7-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 f1b37a7ecac0cc057f94a4187d9b7b89 binutils-2.10.1.0.7.tar.gz diff --git a/sys-devel/binutils/files/digest-binutils-2.10.91.0.2 b/sys-devel/binutils/files/digest-binutils-2.10.91.0.2 deleted file mode 100644 index f21977d64c6e..000000000000 --- a/sys-devel/binutils/files/digest-binutils-2.10.91.0.2 +++ /dev/null @@ -1 +0,0 @@ -MD5 76a67983e1ce656681925cb2c7b2ba45 binutils-2.10.91.0.2.tar.gz diff --git a/sys-devel/bison/bison-1.28-r1.ebuild b/sys-devel/bison/bison-1.28-r1.ebuild deleted file mode 100644 index a6bea3336a11..000000000000 --- a/sys-devel/bison/bison-1.28-r1.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# 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-devel/bison/bison-1.28-r1.ebuild,v 1.9 2001/02/01 19:30:33 achim Exp $ - -P=bison-1.28 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="A yacc-compatible parser generator" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/bison/${A} - ftp://prep.ai.mit.edu/gnu/bison/${A}" -HOMEPAGE="http://www.gnu.org/software/bison/bison.html" - -PROVIDE="virtual/bison" -DEPEND="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --datadir=/usr/share/bison --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - cd ${S} - try make prefix=${D}/usr datadir=${D}/usr/share/bison install - dodoc COPYING AUTHORS NEWS ChangeLog README REFERENCES OChangeLog - docinto txt - dodoc doc/FAQ -} - - diff --git a/sys-devel/bison/bison-1.28-r2.ebuild b/sys-devel/bison/bison-1.28-r2.ebuild deleted file mode 100644 index e0389a19773d..000000000000 --- a/sys-devel/bison/bison-1.28-r2.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# 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-devel/bison/bison-1.28-r2.ebuild,v 1.1 2001/02/07 16:05:19 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="A yacc-compatible parser generator" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/bison/${A} - ftp://prep.ai.mit.edu/gnu/bison/${A}" -HOMEPAGE="http://www.gnu.org/software/bison/bison.html" - - -DEPEND="virtual/glibc - sys-devel/gettext" -RDEPEND="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --datadir=/usr/share/bison \ - --mandir=/usr/share/man --infodir=/usr/share/info --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - cd ${S} - try make prefix=${D}/usr datadir=${D}/usr/share/bison \ - mandir=${D}/usr/share/man infodir=${D}/usr/share/info install - - dodoc COPYING AUTHORS NEWS ChangeLog README REFERENCES OChangeLog - docinto txt - dodoc doc/FAQ -} - - diff --git a/sys-devel/bison/files/digest-bison-1.28-r1 b/sys-devel/bison/files/digest-bison-1.28-r1 deleted file mode 100644 index 31b82696c4c7..000000000000 --- a/sys-devel/bison/files/digest-bison-1.28-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 4afb3989f2270043c47c3daa1fa7ffab bison-1.28.tar.gz diff --git a/sys-devel/bison/files/digest-bison-1.28-r2 b/sys-devel/bison/files/digest-bison-1.28-r2 deleted file mode 100644 index 31b82696c4c7..000000000000 --- a/sys-devel/bison/files/digest-bison-1.28-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 4afb3989f2270043c47c3daa1fa7ffab bison-1.28.tar.gz diff --git a/sys-devel/flex/files/digest-flex-2.5.4a-r1 b/sys-devel/flex/files/digest-flex-2.5.4a-r1 deleted file mode 100644 index 832a6789f10a..000000000000 --- a/sys-devel/flex/files/digest-flex-2.5.4a-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 bd8753d0b22e1f4ec87a553a73021adf flex-2.5.4a.tar.gz diff --git a/sys-devel/flex/files/digest-flex-2.5.4a-r2 b/sys-devel/flex/files/digest-flex-2.5.4a-r2 deleted file mode 100644 index 832a6789f10a..000000000000 --- a/sys-devel/flex/files/digest-flex-2.5.4a-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 bd8753d0b22e1f4ec87a553a73021adf flex-2.5.4a.tar.gz diff --git a/sys-devel/flex/files/digest-flex-2.5.4a-r3 b/sys-devel/flex/files/digest-flex-2.5.4a-r3 deleted file mode 100644 index 832a6789f10a..000000000000 --- a/sys-devel/flex/files/digest-flex-2.5.4a-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 bd8753d0b22e1f4ec87a553a73021adf flex-2.5.4a.tar.gz diff --git a/sys-devel/gcc/files/digest-gcc-2.95.2-r4 b/sys-devel/gcc/files/digest-gcc-2.95.2-r4 deleted file mode 100644 index 8cbef92431a6..000000000000 --- a/sys-devel/gcc/files/digest-gcc-2.95.2-r4 +++ /dev/null @@ -1,6 +0,0 @@ -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-devel/gcc/files/digest-gcc-2.95.2.1 b/sys-devel/gcc/files/digest-gcc-2.95.2.1 deleted file mode 100644 index b210ffce4620..000000000000 --- a/sys-devel/gcc/files/digest-gcc-2.95.2.1 +++ /dev/null @@ -1,7 +0,0 @@ -MD5 0e36957d734286e242e9697fd2806c4f gcc-2.95.2.tar.gz -MD5 e89e684a145a55d442b09436edef4427 gcc-2.95.2-2.95.2.1.diff.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-devel/gcc/files/digest-gcc-2.95.2.1-r1 b/sys-devel/gcc/files/digest-gcc-2.95.2.1-r1 deleted file mode 100644 index b210ffce4620..000000000000 --- a/sys-devel/gcc/files/digest-gcc-2.95.2.1-r1 +++ /dev/null @@ -1,7 +0,0 @@ -MD5 0e36957d734286e242e9697fd2806c4f gcc-2.95.2.tar.gz -MD5 e89e684a145a55d442b09436edef4427 gcc-2.95.2-2.95.2.1.diff.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-devel/gcc/files/digest-gcc-2.96.20000731 b/sys-devel/gcc/files/digest-gcc-2.96.20000731 deleted file mode 100644 index 016e1c0625ff..000000000000 --- a/sys-devel/gcc/files/digest-gcc-2.96.20000731 +++ /dev/null @@ -1,6 +0,0 @@ -MD5 3da4f3d77b46c1f33ae25807aabe34fd gcc-2.96-20000731.tar.bz2 -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-devel/gcc/files/gcc-2.95.2.dif.gz b/sys-devel/gcc/files/gcc-2.95.2.dif.gz Binary files differdeleted file mode 100644 index 034d06a0a335..000000000000 --- a/sys-devel/gcc/files/gcc-2.95.2.dif.gz +++ /dev/null diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-Os-testcase.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-Os-testcase.patch deleted file mode 100644 index f9709f8ed9dc..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-Os-testcase.patch +++ /dev/null @@ -1,44 +0,0 @@ -2000-08-07 Jakub Jelinek <jakub@redhat.com> - - * gcc.dg/20000807-1.c: New test. - ---- gcc/testsuite/gcc.dg/20000807-1.c.jj Mon Aug 7 17:22:26 2000 -+++ gcc/testsuite/gcc.dg/20000807-1.c Mon Aug 7 17:23:31 2000 -@@ -0,0 +1,37 @@ -+/* { dg-do compile { target i?86-*-* } } */ -+/* { dg-options "-Os -fpic" } */ -+ -+#include <string.h> -+ -+typedef struct -+{ -+ char *a; -+ char *b; -+} *foo; -+ -+void -+bar (foo x) -+{ -+ char *c = x->b; -+ char *d = (void *)0; -+ unsigned int e = 0, f = 0, g; -+ while (*c != ':') -+ if (*c == '%') -+ { -+ ++c; -+ switch (*c++) -+ { -+ case 'N': -+ g = strlen (x->a); -+ if (e + g >= f) { -+ char *h = d; -+ f += 256 + g; -+ d = (char *) __builtin_alloca (f); -+ memcpy (d, h, e); -+ }; -+ memcpy (&d[e], x->a, g); -+ e += g; -+ break; -+ } -+ } -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alias.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alias.patch deleted file mode 100644 index 7a485052b929..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alias.patch +++ /dev/null @@ -1,55 +0,0 @@ -2000-08-22 Richard Henderson <rth@cygnus.com> - - * alias.c (init_alias_analysis): Do not register - struct_value_incoming_rtx or static_chain_rtx as pointing - to stack memory. - -*** gcc/alias.c 2000/08/18 02:41:58 1.93 ---- gcc/alias.c 2000/08/22 08:41:32 -*************** init_alias_analysis () -*** 1983,1997 **** - new_reg_base_value[HARD_FRAME_POINTER_REGNUM] - = gen_rtx_ADDRESS (Pmode, hard_frame_pointer_rtx); - #endif -- if (struct_value_incoming_rtx -- && GET_CODE (struct_value_incoming_rtx) == REG) -- new_reg_base_value[REGNO (struct_value_incoming_rtx)] -- = gen_rtx_ADDRESS (Pmode, struct_value_incoming_rtx); -- -- if (static_chain_rtx -- && GET_CODE (static_chain_rtx) == REG) -- new_reg_base_value[REGNO (static_chain_rtx)] -- = gen_rtx_ADDRESS (Pmode, static_chain_rtx); - - /* Walk the insns adding values to the new_reg_base_value array. */ - for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) ---- 1983,1988 ---- -*** gcc/testsuite/gcc.c-torture/execute/20000822-1.c Wed Aug 23 14:17:08 2000 ---- gcc/testsuite/gcc.c-torture/execute/20000822-1.c Wed Aug 23 14:04:57 2000 -*************** -*** 0 **** ---- 1,24 ---- -+ int f0(int (*fn)(int *), int *p) -+ { -+ return (*fn) (p); -+ } -+ -+ int f1(void) -+ { -+ int i = 0; -+ -+ int f2(int *p) -+ { -+ i = 1; -+ return *p + 1; -+ } -+ -+ return f0(f2, &i); -+ } -+ -+ int main() -+ { -+ if (f1() != 2) -+ abort (); -+ return 0; -+ } diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-align-memcpy.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-align-memcpy.patch deleted file mode 100644 index 4ff84c2011de..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-align-memcpy.patch +++ /dev/null @@ -1,39 +0,0 @@ -2000-05-02 Jakub Jelinek <jakub@redhat.com> - - * builtins.c (get_pointer_alignment): If exp is pointer type, return - at least BITS_PER_UNIT. - ---- gcc/builtins.c.jj Tue Apr 25 21:02:50 2000 -+++ gcc/builtins.c Tue May 2 15:39:17 2000 -@@ -135,7 +135,7 @@ get_pointer_alignment (exp, max_align) - case NON_LVALUE_EXPR: - exp = TREE_OPERAND (exp, 0); - if (TREE_CODE (TREE_TYPE (exp)) != POINTER_TYPE) -- return align; -+ return MAX (align, BITS_PER_UNIT); - - inner = TYPE_ALIGN (TREE_TYPE (TREE_TYPE (exp))); - align = MIN (inner, max_align); -@@ -146,7 +146,7 @@ get_pointer_alignment (exp, max_align) - imposed by the integer. If not, we can't do any better than - ALIGN. */ - if (! host_integerp (TREE_OPERAND (exp, 1), 1)) -- return align; -+ return MAX (align, BITS_PER_UNIT); - - while (((tree_low_cst (TREE_OPERAND (exp, 1), 1) * BITS_PER_UNIT) - & (max_align - 1)) -@@ -167,10 +167,11 @@ get_pointer_alignment (exp, max_align) - else if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'c') - align = CONSTANT_ALIGNMENT (exp, align); - #endif -- return MIN (align, max_align); -+ align = MIN (align, max_align); -+ /* FALLTHROUGH */ - - default: -- return align; -+ return MAX (align, BITS_PER_UNIT); - } - } - } diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-addressof.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-addressof.patch deleted file mode 100644 index 12bfa3f29d8e..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-addressof.patch +++ /dev/null @@ -1,25 +0,0 @@ -2000-07-05 Richard Henderson <rth@cygnus.com> - - * function.c (purge_addressof_1): Restart after calling - put_addressof_into_stack. - -*** gcc/function.c Wed Jul 5 15:23:01 2000 ---- gcc/function.c Wed Jul 5 15:21:58 2000 -*************** purge_addressof_1 (loc, insn, force, sto -*** 3113,3119 **** - else if (code == ADDRESSOF) - { - put_addressof_into_stack (x, ht); -! return true; - } - else if (code == SET) - { ---- 3113,3119 ---- - else if (code == ADDRESSOF) - { - put_addressof_into_stack (x, ht); -! goto restart; - } - else if (code == SET) - { - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-mi-thunk.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-mi-thunk.patch deleted file mode 100644 index b8d201c2c10e..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-mi-thunk.patch +++ /dev/null @@ -1,16 +0,0 @@ -2000-10-17 Jakub Jelinek <jakub@redhat.com> - - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed. - ---- gcc/config/alpha/alpha.h.jj Mon Oct 9 11:18:54 2000 -+++ gcc/config/alpha/alpha.h Tue Oct 17 14:39:33 2000 -@@ -2240,6 +2240,9 @@ do { \ - const char *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \ - int reg; \ - \ -+ if (! TARGET_OPEN_VMS && ! TARGET_WINDOWS_NT) \ -+ fprintf (FILE, "\tldgp $29,0($27)\n"); \ -+ \ - /* Mark end of prologue. */ \ - output_end_prologue (FILE); \ - \ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-tune.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-tune.patch deleted file mode 100644 index 689e86bb60f3..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-tune.patch +++ /dev/null @@ -1,216 +0,0 @@ -2000-09-15 Jakub Jelinek <jakub@redhat.com> - - * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define. - (TARGET_OPTIONS): Add tune=. - (alpha_tune_string): Declare. - * config/alpha/alpha.c (override_options): Add cpu_table. - Use alpha_cpu_string first to set both alpha_cpu and target_flags - and then alpha_tune_string to set alpha_cpu only. - Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests. - * config/alpha/elf.h (ASM_FILE_START): Likewise. - * config/alpha/osf.h (ASM_FILE_START): Likewise. - * config/alpha/openbsd.h (ASM_FILE_START): Likewise. - ---- gcc/config/alpha/alpha.h.jj Sun Jul 2 10:37:08 2000 -+++ gcc/config/alpha/alpha.h Fri Sep 15 15:59:46 2000 -@@ -156,12 +156,14 @@ extern enum alpha_fp_trap_mode alpha_fpt - #define MASK_CIX (1 << 11) - #define TARGET_CIX (target_flags & MASK_CIX) - --/* This means that the processor is an EV5, EV56, or PCA56. This is defined -- only in TARGET_CPU_DEFAULT. */ -+/* This means that the processor is an EV5, EV56, or PCA56. -+ Unlike alpha_cpu this is not affected by -mtune= setting. */ - #define MASK_CPU_EV5 (1 << 28) -+#define TARGET_CPU_EV5 (target_flags & MASK_CPU_EV5) - - /* Likewise for EV6. */ - #define MASK_CPU_EV6 (1 << 29) -+#define TARGET_CPU_EV6 (target_flags & MASK_CPU_EV6) - - /* This means we support the .arch directive in the assembler. Only - defined in TARGET_CPU_DEFAULT. */ -@@ -249,6 +251,7 @@ extern enum alpha_fp_trap_mode alpha_fpt - #define TARGET_OPTIONS { { "short-data-", &m88k_short_data } } */ - - extern const char *alpha_cpu_string; /* For -mcpu= */ -+extern const char *alpha_tune_string; /* For -mtune= */ - extern const char *alpha_fprm_string; /* For -mfp-rounding-mode=[n|m|c|d] */ - extern const char *alpha_fptm_string; /* For -mfp-trap-mode=[n|u|su|sui] */ - extern const char *alpha_tp_string; /* For -mtrap-precision=[p|f|i] */ -@@ -257,7 +260,9 @@ extern const char *alpha_mlat_string; /* - #define TARGET_OPTIONS \ - { \ - {"cpu=", &alpha_cpu_string, \ -- N_("Generate code for a given CPU")}, \ -+ N_("Use features of and schedule given CPU")}, \ -+ {"tune=", &alpha_tune_string, \ -+ N_("Schedule given CPU")}, \ - {"fp-rounding-mode=", &alpha_fprm_string, \ - N_("Control the generated fp rounding mode")}, \ - {"fp-trap-mode=", &alpha_fptm_string, \ ---- gcc/config/alpha/alpha.c.jj Wed Sep 13 16:08:44 2000 -+++ gcc/config/alpha/alpha.c Fri Sep 15 16:14:14 2000 -@@ -70,6 +70,7 @@ enum alpha_fp_trap_mode alpha_fptm; - /* Strings decoded into the above options. */ - - const char *alpha_cpu_string; /* -mcpu= */ -+const char *alpha_tune_string; /* -mtune= */ - const char *alpha_tp_string; /* -mtrap-precision=[p|s|i] */ - const char *alpha_fprm_string; /* -mfp-rounding-mode=[n|m|c|d] */ - const char *alpha_fptm_string; /* -mfp-trap-mode=[n|u|su|sui] */ -@@ -146,6 +147,31 @@ static rtx alpha_emit_xfloating_compare - void - override_options () - { -+ int i; -+ static struct cpu_table { -+ const char *name; -+ enum processor_type processor; -+ int flags; -+ } cpu_table[] = { -+#define EV5_MASK (MASK_CPU_EV5) -+#define EV6_MASK (MASK_CPU_EV6|MASK_BWX|MASK_MAX|MASK_FIX) -+ { "ev4", PROCESSOR_EV4, 0 }, -+ { "ev45", PROCESSOR_EV4, 0 }, -+ { "21064", PROCESSOR_EV4, 0 }, -+ { "ev5", PROCESSOR_EV5, EV5_MASK }, -+ { "21164", PROCESSOR_EV5, EV5_MASK }, -+ { "ev56", PROCESSOR_EV5, EV5_MASK|MASK_BWX }, -+ { "21164a", PROCESSOR_EV5, EV5_MASK|MASK_BWX }, -+ { "pca56", PROCESSOR_EV5, EV5_MASK|MASK_BWX|MASK_MAX }, -+ { "21164PC",PROCESSOR_EV5, EV5_MASK|MASK_BWX|MASK_MAX }, -+ { "21164pc",PROCESSOR_EV5, EV5_MASK|MASK_BWX|MASK_MAX }, -+ { "ev6", PROCESSOR_EV6, EV6_MASK }, -+ { "21264", PROCESSOR_EV6, EV6_MASK }, -+ { "ev67", PROCESSOR_EV6, EV6_MASK|MASK_CIX }, -+ { "21264a", PROCESSOR_EV6, EV6_MASK|MASK_CIX }, -+ { 0, 0, 0 } -+ }; -+ - alpha_tp = ALPHA_TP_PROG; - alpha_fprm = ALPHA_FPRM_NORM; - alpha_fptm = ALPHA_FPTM_N; -@@ -209,61 +235,41 @@ override_options () - - if (alpha_cpu_string) - { -- if (! strcmp (alpha_cpu_string, "ev4") -- || ! strcmp (alpha_cpu_string, "ev45") -- || ! strcmp (alpha_cpu_string, "21064")) -- { -- alpha_cpu = PROCESSOR_EV4; -- target_flags &= ~ (MASK_BWX | MASK_MAX | MASK_FIX | MASK_CIX); -- } -- else if (! strcmp (alpha_cpu_string, "ev5") -- || ! strcmp (alpha_cpu_string, "21164")) -- { -- alpha_cpu = PROCESSOR_EV5; -- target_flags &= ~ (MASK_BWX | MASK_MAX | MASK_FIX | MASK_CIX); -- } -- else if (! strcmp (alpha_cpu_string, "ev56") -- || ! strcmp (alpha_cpu_string, "21164a")) -- { -- alpha_cpu = PROCESSOR_EV5; -- target_flags |= MASK_BWX; -- target_flags &= ~ (MASK_MAX | MASK_FIX | MASK_CIX); -- } -- else if (! strcmp (alpha_cpu_string, "pca56") -- || ! strcmp (alpha_cpu_string, "21164PC") -- || ! strcmp (alpha_cpu_string, "21164pc")) -- { -- alpha_cpu = PROCESSOR_EV5; -- target_flags |= MASK_BWX | MASK_MAX; -- target_flags &= ~ (MASK_FIX | MASK_CIX); -- } -- else if (! strcmp (alpha_cpu_string, "ev6") -- || ! strcmp (alpha_cpu_string, "21264")) -- { -- alpha_cpu = PROCESSOR_EV6; -- target_flags |= MASK_BWX | MASK_MAX | MASK_FIX; -- target_flags &= ~ (MASK_CIX); -- } -- else if (! strcmp (alpha_cpu_string, "ev67") -- || ! strcmp (alpha_cpu_string, "21264a")) -- { -- alpha_cpu = PROCESSOR_EV6; -- target_flags |= MASK_BWX | MASK_MAX | MASK_FIX | MASK_CIX; -- } -- else -+ for (i = 0; cpu_table [i].name; i++) -+ if (! strcmp (alpha_cpu_string, cpu_table [i].name)) -+ { -+ alpha_cpu = cpu_table [i].processor; -+ target_flags &= ~ (MASK_BWX | MASK_MAX | MASK_FIX | MASK_CIX -+ | MASK_CPU_EV5 | MASK_CPU_EV6); -+ target_flags |= cpu_table [i].flags; -+ break; -+ } -+ if (! cpu_table [i].name) - error ("bad value `%s' for -mcpu switch", alpha_cpu_string); - } - -+ if (alpha_tune_string) -+ { -+ for (i = 0; cpu_table [i].name; i++) -+ if (! strcmp (alpha_tune_string, cpu_table [i].name)) -+ { -+ alpha_cpu = cpu_table [i].processor; -+ break; -+ } -+ if (! cpu_table [i].name) -+ error ("bad value `%s' for -mcpu switch", alpha_tune_string); -+ } -+ - /* Do some sanity checks on the above options. */ - - if ((alpha_fptm == ALPHA_FPTM_SU || alpha_fptm == ALPHA_FPTM_SUI) -- && alpha_tp != ALPHA_TP_INSN && alpha_cpu != PROCESSOR_EV6) -+ && alpha_tp != ALPHA_TP_INSN && ! TARGET_CPU_EV6) - { - warning ("fp software completion requires -mtrap-precision=i"); - alpha_tp = ALPHA_TP_INSN; - } - -- if (alpha_cpu == PROCESSOR_EV6) -+ if (TARGET_CPU_EV6) - { - /* Except for EV6 pass 1 (not released), we always have precise - arithmetic traps. Which means we can do software completion ---- gcc/config/alpha/elf.h.jj Thu Jun 1 11:56:45 2000 -+++ gcc/config/alpha/elf.h Fri Sep 15 16:06:34 2000 -@@ -61,7 +61,7 @@ do { \ - if (TARGET_BWX | TARGET_MAX | TARGET_FIX | TARGET_CIX) \ - { \ - fprintf (FILE, "\t.arch %s\n", \ -- (alpha_cpu == PROCESSOR_EV6 ? "ev6" \ -+ (TARGET_CPU_EV6 ? "ev6" \ - : TARGET_MAX ? "pca56" : "ev56")); \ - } \ - } while (0) ---- gcc/config/alpha/osf.h.jj Thu Jul 27 19:46:46 2000 -+++ gcc/config/alpha/osf.h Fri Sep 15 16:09:18 2000 -@@ -70,8 +70,8 @@ Boston, MA 02111-1307, USA. */ - fprintf (FILE, "\t.set noat\n"); \ - if (TARGET_SUPPORT_ARCH) \ - fprintf (FILE, "\t.arch %s\n", \ -- alpha_cpu == PROCESSOR_EV6 ? "ev6" \ -- : (alpha_cpu == PROCESSOR_EV5 \ -+ TARGET_CPU_EV6 ? "ev6" \ -+ : (TARGET_CPU_EV5 \ - ? (TARGET_MAX ? "pca56" : TARGET_BWX ? "ev56" : "ev5") \ - : "ev4")); \ - \ ---- gcc/config/alpha/openbsd.h.jj Sat Sep 4 17:08:55 1999 -+++ gcc/config/alpha/openbsd.h Fri Sep 15 16:08:49 2000 -@@ -100,8 +100,8 @@ Boston, MA 02111-1307, USA. */ - fprintf (FILE, "\t.set noat\n"); \ - if (TARGET_SUPPORT_ARCH) \ - fprintf (FILE, "\t.arch %s\n", \ -- alpha_cpu == PROCESSOR_EV6 ? "ev6" \ -- : (alpha_cpu == PROCESSOR_EV5 \ -+ TARGET_CPU_EV6 ? "ev6" \ -+ : (TARGET_CPU_EV5 \ - ? (TARGET_MAX ? "pca56" : TARGET_BWX ? "ev56" : "ev5") \ - : "ev4")); \ - \ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-unaligned.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-unaligned.patch deleted file mode 100644 index 4eaf686a5400..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-alpha-unaligned.patch +++ /dev/null @@ -1,253 +0,0 @@ -2000-09-15 Richard Henderson <rth@cygnus.com> - - * expmed.c (store_bit_field): Consider naturally aligned - memory for direct reference. - -2000-09-15 Richard Henderson <rth@cygnus.com> - - * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all - AND addresses into alias set 0. - (alpha_expand_unaligned_store): Likewise. - (alpha_expand_unaligned_load_words): Likewise. - (alpha_expand_unaligned_store_words): Likewise. - -*** gcc/expmed.c 2000/08/12 22:45:05 1.63 ---- gcc/expmed.c 2000/09/15 11:05:11 -*************** store_bit_field (str_rtx, bitsize, bitnu -*** 297,315 **** - if (flag_force_mem) - value = force_not_mem (value); - -! if ((GET_MODE_SIZE (fieldmode) >= UNITS_PER_WORD -! || (GET_MODE_SIZE (GET_MODE (op0)) == GET_MODE_SIZE (fieldmode) -! && GET_MODE_SIZE (fieldmode) != 0)) -! && (GET_CODE (op0) != MEM -! || ! SLOW_UNALIGNED_ACCESS (fieldmode, align) -! || (offset * BITS_PER_UNIT % bitsize == 0 -! && align % GET_MODE_BITSIZE (fieldmode) == 0)) -! && (BYTES_BIG_ENDIAN ? bitpos + bitsize == unit : bitpos == 0) -! && bitsize == GET_MODE_BITSIZE (fieldmode)) - { -- /* Storing in a full-word or multi-word field in a register -- can be done with just SUBREG. Also, storing in the entire object -- can be done with just SUBREG. */ - if (GET_MODE (op0) != fieldmode) - { - if (GET_CODE (op0) == SUBREG) ---- 297,318 ---- - if (flag_force_mem) - value = force_not_mem (value); - -! /* If the target is a register, overwriting the entire object, or storing -! a full-word or multi-word field can be done with just a SUBREG. -! -! If the target is memory, storing any naturally aligned field can be -! done with a simple store. For targets that support fast unaligned -! memory, any naturally sized, unit aligned field can be done directly. */ -! -! if (bitsize == GET_MODE_BITSIZE (fieldmode) -! && (GET_MODE_SIZE (fieldmode) >= UNITS_PER_WORD -! || GET_MODE_SIZE (GET_MODE (op0)) == GET_MODE_SIZE (fieldmode) -! || (GET_CODE (op0) == MEM -! && (! SLOW_UNALIGNED_ACCESS (fieldmode, align) -! || (offset * BITS_PER_UNIT % bitsize == 0 -! && align % GET_MODE_BITSIZE (fieldmode) == 0)))) -! && (BYTES_BIG_ENDIAN ? bitpos + bitsize == unit : bitpos == 0)) - { - if (GET_MODE (op0) != fieldmode) - { - if (GET_CODE (op0) == SUBREG) -*** gcc/config/alpha/alpha.c 2000/08/25 19:08:47 1.140 ---- gcc/config/alpha/alpha.c 2000/09/15 11:05:21 -*************** alpha_expand_unaligned_load (tgt, mem, s -*** 2292,2298 **** - HOST_WIDE_INT size, ofs; - int sign; - { -! rtx meml, memh, addr, extl, exth; - enum machine_mode mode; - - meml = gen_reg_rtx (DImode); ---- 2292,2298 ---- - HOST_WIDE_INT size, ofs; - int sign; - { -! rtx meml, memh, addr, extl, exth, tmp; - enum machine_mode mode; - - meml = gen_reg_rtx (DImode); -*************** alpha_expand_unaligned_load (tgt, mem, s -*** 2301,2319 **** - extl = gen_reg_rtx (DImode); - exth = gen_reg_rtx (DImode); - -! emit_move_insn (meml, -! change_address (mem, DImode, -! gen_rtx_AND (DImode, -! plus_constant (XEXP (mem, 0), -! ofs), -! GEN_INT (-8)))); - -! emit_move_insn (memh, -! change_address (mem, DImode, -! gen_rtx_AND (DImode, -! plus_constant (XEXP (mem, 0), -! ofs + size - 1), -! GEN_INT (-8)))); - - if (sign && size == 2) - { ---- 2301,2324 ---- - extl = gen_reg_rtx (DImode); - exth = gen_reg_rtx (DImode); - -! /* AND addresses cannot be in any alias set, since they may implicitly -! alias surrounding code. Ideally we'd have some alias set that -! covered all types except those with alignment 8 or higher. */ - -! tmp = change_address (mem, DImode, -! gen_rtx_AND (DImode, -! plus_constant (XEXP (mem, 0), ofs), -! GEN_INT (-8))); -! MEM_ALIAS_SET (tmp) = 0; -! emit_move_insn (meml, tmp); -! -! tmp = change_address (mem, DImode, -! gen_rtx_AND (DImode, -! plus_constant (XEXP (mem, 0), -! ofs + size - 1), -! GEN_INT (-8))); -! MEM_ALIAS_SET (tmp) = 0; -! emit_move_insn (memh, tmp); - - if (sign && size == 2) - { -*************** alpha_expand_unaligned_store (dst, src, -*** 2377,2391 **** ---- 2382,2403 ---- - insl = gen_reg_rtx (DImode); - insh = gen_reg_rtx (DImode); - -+ /* AND addresses cannot be in any alias set, since they may implicitly -+ alias surrounding code. Ideally we'd have some alias set that -+ covered all types except those with alignment 8 or higher. */ -+ - meml = change_address (dst, DImode, - gen_rtx_AND (DImode, - plus_constant (XEXP (dst, 0), ofs), - GEN_INT (-8))); -+ MEM_ALIAS_SET (meml) = 0; -+ - memh = change_address (dst, DImode, - gen_rtx_AND (DImode, - plus_constant (XEXP (dst, 0), - ofs+size-1), - GEN_INT (-8))); -+ MEM_ALIAS_SET (memh) = 0; - - emit_move_insn (dsth, memh); - emit_move_insn (dstl, meml); -*************** alpha_expand_unaligned_load_words (out_r -*** 2462,2468 **** - rtx const im8 = GEN_INT (-8); - rtx const i64 = GEN_INT (64); - rtx ext_tmps[MAX_MOVE_WORDS], data_regs[MAX_MOVE_WORDS+1]; -! rtx sreg, areg; - HOST_WIDE_INT i; - - /* Generate all the tmp registers we need. */ ---- 2474,2480 ---- - rtx const im8 = GEN_INT (-8); - rtx const i64 = GEN_INT (64); - rtx ext_tmps[MAX_MOVE_WORDS], data_regs[MAX_MOVE_WORDS+1]; -! rtx sreg, areg, tmp; - HOST_WIDE_INT i; - - /* Generate all the tmp registers we need. */ -*************** alpha_expand_unaligned_load_words (out_r -*** 2480,2498 **** - /* Load up all of the source data. */ - for (i = 0; i < words; ++i) - { -! emit_move_insn (data_regs[i], -! change_address (smem, DImode, -! gen_rtx_AND (DImode, -! plus_constant (XEXP(smem,0), -! 8*i), -! im8))); - } -! emit_move_insn (data_regs[words], -! change_address (smem, DImode, -! gen_rtx_AND (DImode, -! plus_constant (XEXP(smem,0), -! 8*words - 1), -! im8))); - - /* Extract the half-word fragments. Unfortunately DEC decided to make - extxh with offset zero a noop instead of zeroing the register, so ---- 2492,2511 ---- - /* Load up all of the source data. */ - for (i = 0; i < words; ++i) - { -! tmp = change_address (smem, DImode, -! gen_rtx_AND (DImode, -! plus_constant (XEXP(smem,0), 8*i), -! im8)); -! MEM_ALIAS_SET (tmp) = 0; -! emit_move_insn (data_regs[i], tmp); - } -! -! tmp = change_address (smem, DImode, -! gen_rtx_AND (DImode, -! plus_constant (XEXP(smem,0), 8*words - 1), -! im8)); -! MEM_ALIAS_SET (tmp) = 0; -! emit_move_insn (data_regs[words], tmp); - - /* Extract the half-word fragments. Unfortunately DEC decided to make - extxh with offset zero a noop instead of zeroing the register, so -*************** alpha_expand_unaligned_store_words (data -*** 2559,2568 **** ---- 2572,2584 ---- - plus_constant (XEXP(dmem,0), - words*8 - 1), - im8)); -+ MEM_ALIAS_SET (st_addr_2) = 0; -+ - st_addr_1 = change_address (dmem, DImode, - gen_rtx_AND (DImode, - XEXP (dmem, 0), - im8)); -+ MEM_ALIAS_SET (st_addr_1) = 0; - - /* Load up the destination end bits. */ - emit_move_insn (st_tmp_2, st_addr_2); -*************** alpha_expand_unaligned_store_words (data -*** 2601,2612 **** - emit_move_insn (st_addr_2, st_tmp_2); - for (i = words-1; i > 0; --i) - { -! emit_move_insn (change_address (dmem, DImode, -! gen_rtx_AND (DImode, -! plus_constant(XEXP (dmem,0), -! i*8), -! im8)), -! data_regs ? ins_tmps[i-1] : const0_rtx); - } - emit_move_insn (st_addr_1, st_tmp_1); - } ---- 2617,2628 ---- - emit_move_insn (st_addr_2, st_tmp_2); - for (i = words-1; i > 0; --i) - { -! rtx tmp = change_address (dmem, DImode, -! gen_rtx_AND (DImode, -! plus_constant(XEXP (dmem,0), i*8), -! im8)); -! MEM_ALIAS_SET (tmp) = 0; -! emit_move_insn (tmp, data_regs ? ins_tmps[i-1] : const0_rtx); - } - emit_move_insn (st_addr_1, st_tmp_1); - } - - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-bogus-subreg.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-bogus-subreg.patch deleted file mode 100644 index 7e3cda4a459a..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-bogus-subreg.patch +++ /dev/null @@ -1,83 +0,0 @@ -2000-09-13 Jakub Jelinek <jakub@redhat.com> - - * rtlanal.c (replace_rtx): Avoid SUBREGs of constants. - - * gcc.c-torture/compile/20000728-1.c: New test. - ---- gcc/testsuite/gcc.c-torture/compile/20000728-1.c.jj Fri Jul 28 14:51:03 2000 -+++ gcc/testsuite/gcc.c-torture/compile/20000728-1.c Fri Jul 28 14:50:54 2000 -@@ -0,0 +1,16 @@ -+struct clock { -+ long sec; long usec; -+}; -+ -+int foo(void) -+{ -+ struct clock clock_old = {0, 0}; -+ -+ for (;;) { -+ long foo; -+ -+ if (foo == clock_old.sec && 0 == clock_old.usec); -+ } -+ return 0; -+} -+ ---- gcc/rtlanal.c.jj Tue Jul 25 06:57:47 2000 -+++ gcc/rtlanal.c Fri Jul 28 17:03:02 2000 -@@ -1987,6 +1987,55 @@ replace_rtx (x, from, to) - if (x == 0) - return 0; - -+ if (GET_CODE (x) == SUBREG) -+ { -+ rtx tem = replace_rtx (SUBREG_REG (x), from, to); -+ -+ if (GET_CODE (tem) == CONST_INT) -+ { -+ /* Avoid creating bogus SUBREGs */ -+ enum machine_mode mode = GET_MODE (x); -+ enum machine_mode inner_mode = GET_MODE (SUBREG_REG (x)); -+ int offset; -+ unsigned HOST_WIDE_INT i; -+ -+ if (GET_MODE_CLASS (mode) != MODE_INT) -+ abort (); -+ -+ if (GET_MODE_SIZE (mode) >= GET_MODE_SIZE (inner_mode)) -+ return x; -+ -+ offset = SUBREG_BYTE (x); -+ if (BYTES_BIG_ENDIAN || WORDS_BIG_ENDIAN) -+ { -+ if (WORDS_BIG_ENDIAN) -+ offset = GET_MODE_SIZE (inner_mode) -+ - GET_MODE_SIZE (mode) - offset; -+ if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN -+ && GET_MODE_SIZE (mode) < UNITS_PER_WORD) -+ offset = offset + UNITS_PER_WORD - GET_MODE_SIZE (mode) -+ - 2 * (offset % UNITS_PER_WORD); -+ } -+ -+ offset *= BITS_PER_UNIT; -+ -+ i = INTVAL (tem); -+ -+ if (offset >= HOST_BITS_PER_WIDE_INT) -+ return ((HOST_WIDE_INT) i < 0) ? constm1_rtx : const0_rtx; -+ -+ i >>= offset; -+ if (GET_MODE_BITSIZE (mode) < HOST_BITS_PER_WIDE_INT) -+ i &= (((unsigned HOST_WIDE_INT) 1) << GET_MODE_BITSIZE (mode)) - 1; -+ -+ return GEN_INT (i); -+ } -+ -+ SUBREG_REG (x) = tem; -+ -+ return x; -+ } -+ - fmt = GET_RTX_FORMAT (GET_CODE (x)); - for (i = GET_RTX_LENGTH (GET_CODE (x)) - 1; i >= 0; i--) - { diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-binding-levels.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-binding-levels.patch deleted file mode 100644 index 67a2ea86cd4d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-binding-levels.patch +++ /dev/null @@ -1,40 +0,0 @@ -2000-11-06 Jakub Jelinek <jakub@redhat.com> - - * decl.c (pop_binding_level): Do nothing if popping from - global_binding_levels and the input had errors. - (finish_function): If input had errors, pop enough binding - levels to get at the function parameters binding level. - ---- gcc/cp/decl.c.jj Mon Nov 6 09:38:25 2000 -+++ gcc/cp/decl.c Mon Nov 6 12:09:45 2000 -@@ -613,7 +613,11 @@ pop_binding_level () - { - /* Cannot pop a level, if there are none left to pop. */ - if (current_binding_level == global_binding_level) -- my_friendly_abort (123); -+ { -+ if (errorcount) -+ return; -+ my_friendly_abort (123); -+ } - } - /* Pop the current level, and free the structure for reuse. */ - #if defined(DEBUG_CP_BINDING_LEVELS) -@@ -14388,7 +14392,16 @@ finish_function (flags) - if (doing_semantic_analysis_p ()) - { - if (current_binding_level->parm_flag != 1) -- my_friendly_abort (122); -+ { -+ if (errorcount) -+ { -+ /* This can happen on bad input. */ -+ while (current_binding_level->parm_flag == 0) -+ pop_binding_level (); -+ } -+ if (current_binding_level->parm_flag != 1) -+ my_friendly_abort (122); -+ } - poplevel (1, 0, 1); - } - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-crash24.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-crash24.patch deleted file mode 100644 index a4c080b240c5..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-crash24.patch +++ /dev/null @@ -1,72 +0,0 @@ -2000-10-27 Jakub Jelinek <jakub@redhat.com> - - * call.c (build_new_op): If argument types are error_mark_nodes, return - error_mark_node. - (build_over_call): If require_complete_type returns error_mark_node, - return it immediately. - - * g++.old-deja/g++.other/crash24.C: New test. - * g++.old-deja/g++.other/crash25.C: New test. - ---- gcc/cp/call.c.jj Fri Oct 27 13:38:40 2000 -+++ gcc/cp/call.c Fri Oct 27 14:36:25 2000 -@@ -3204,6 +3204,11 @@ build_new_op (code, flags, arg1, arg2, a - if (arg3 && TREE_CODE (arg3) == OFFSET_REF) - arg3 = resolve_offset_ref (arg3); - -+ if (TREE_TYPE (arg1) == error_mark_node -+ || (arg2 && TREE_TYPE (arg2) == error_mark_node) -+ || (arg3 && TREE_TYPE (arg3) == error_mark_node)) -+ return error_mark_node; -+ - if (code == COND_EXPR) - { - if (arg2 == NULL_TREE -@@ -4192,6 +4197,8 @@ build_over_call (cand, args, flags) - if (TREE_CODE (TREE_TYPE (fn)) == VOID_TYPE) - return fn; - fn = require_complete_type (fn); -+ if (fn == error_mark_node) -+ return error_mark_node; - if (IS_AGGR_TYPE (TREE_TYPE (fn))) - fn = build_cplus_new (TREE_TYPE (fn), fn); - return convert_from_reference (fn); ---- gcc/testsuite/g++.old-deja/g++.other/crash24.C.jj Fri Oct 27 14:46:21 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash24.C Fri Oct 27 14:45:07 2000 -@@ -0,0 +1,18 @@ -+//Build don't link: -+ -+#include <iostream> -+ -+class foo { -+ public: -+ class __iterator; -+ friend class __iterator; -+ typedef __iterator const_iterator; -+ virtual ~foo() { } -+ __iterator begin(); // ERROR - -+}; -+static void iteratorTest(const foo &x) -+{ -+ foo::const_iterator i = x.begin(); // ERROR - -+ for (; i; ++i) // ERROR - -+ cout << *i; -+} ---- gcc/testsuite/g++.old-deja/g++.other/crash25.C.jj Fri Oct 27 14:46:25 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash25.C Wed Oct 25 14:14:19 2000 -@@ -0,0 +1,15 @@ -+// Build don't link: -+ -+class X { -+public: -+ X(); -+ virtual ~X(); -+} -+ -+X::x() -+{ // ERROR - -+} -+ -+X::~x() -+{ // ERROR - -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-ice.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-ice.patch deleted file mode 100644 index 68afedb0aa6f..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-ice.patch +++ /dev/null @@ -1,20 +0,0 @@ -2000-11-07 Jakub Jelinek <jakub@redhat.com> - - * typeck2.c (friendly_abort): Don't ICE if there were errors - or not implemented features. - ---- gcc/cp/typeck2.c.jj Mon Jul 24 11:04:21 2000 -+++ gcc/cp/typeck2.c Tue Nov 7 17:50:00 2000 -@@ -256,6 +256,12 @@ friendly_abort (where, file, line, func) - int line; - const char *func; - { -+ if (errorcount > 0 || sorrycount > 0) -+ { -+ error ("confused by earlier errors, bailing out"); -+ exit (34); -+ } -+ - if (where > 0) - error ("Internal error #%d.", where); - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-inline16-test.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-inline16-test.patch deleted file mode 100644 index 51322b1d2c2c..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-inline16-test.patch +++ /dev/null @@ -1,31 +0,0 @@ -2000-10-23 Jakub Jelinek <jakub@redhat.com> - - * g++.old-deja/g++.other/inline16.C: New test. - ---- gcc/testsuite/g++.old-deja/g++.other/inline16.C.jj Mon Oct 23 16:06:28 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/inline16.C Mon Oct 23 16:06:58 2000 -@@ -0,0 +1,24 @@ -+// Build don't link: -+// Origin: Jakub Jelinek <jakub@redhat.com> -+// Special g++ Options: -O1 -+ -+struct foo { -+ bool x; -+ inline void a (unsigned char y); -+ inline void b (void); -+ virtual ~foo (); -+}; -+ -+foo::~foo () -+{ -+} -+ -+void foo::a (unsigned char y) -+{ -+ x = ((y & 2) != 0); -+} -+ -+void foo::b (void) -+{ -+ a(0x07); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-named-return-value.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-named-return-value.patch deleted file mode 100644 index 41be48006dfd..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-named-return-value.patch +++ /dev/null @@ -1,711 +0,0 @@ -2000-09-06 Mark Mitchell <mark@codesourcery.com> - - * NEWS: Mention that the named return value extension has been - deprecated. - * cp-tree.h (original_result_rtx): Define. - (TREE_REFERENCE_EXPR): Remove. - (DECL_VPARENT): Likewise. - (pushdecl_nonclass_level): Likewise. - (store_return_init): Likewise. - (reinit_lang_specific): Likewise. - (genrtl_named_return_value): Change prototype. - * decl.c (original_result_rtx): Remove. - (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. - Do not generate RTL for local variables here. - (store_return_init): Remove. - * semantics.c (genrtl_named_return_value): Simplify. Fold in - store_return_init. - (finish_named_return_value): Adjust accordingly. Warn that this - extension is deprecated. - (lang_expand_stmt): Adjust call to genrtl_named_return_value. - -*** gcc/extend.texi 2000/08/11 13:42:32 1.62 ---- gcc/extend.texi 2000/09/06 21:14:49 -*************** Previously it was possible to use an emp -*** 3333,3341 **** - indicate an unspecified number of parameters (like C), rather than no - parameters, as C++ demands. This feature has been removed, except where - it is required for backwards compatibility @xref{Backwards Compatibility}. -- - @end table - - @node Backwards Compatibility - @section Backwards Compatibility - @cindex Backwards Compatibility ---- 3333,3343 ---- - indicate an unspecified number of parameters (like C), rather than no - parameters, as C++ demands. This feature has been removed, except where - it is required for backwards compatibility @xref{Backwards Compatibility}. - @end table - -+ The named return value extension has been deprecated, and will be -+ removed from g++ at some point. -+ - @node Backwards Compatibility - @section Backwards Compatibility - @cindex Backwards Compatibility -*************** test specifically for GNU C++ (@pxref{St -*** 3379,3385 **** - Predefined Macros,cpp.info,The C Preprocessor}). - - @menu -- * Naming Results:: Giving a name to C++ function return values. - * Min and Max:: C++ Minimum and maximum operators. - * Volatiles:: What constitutes an access to a volatile object. - * Restricted Pointers:: C99 restricted pointers and references. ---- 3381,3386 ---- -*************** Predefined Macros,cpp.info,The C Preproc -*** 3390,3508 **** - * Bound member functions:: You can extract a function pointer to the - method denoted by a @samp{->*} or @samp{.*} expression. - @end menu -- -- @node Naming Results -- @section Named Return Values in C++ -- -- @cindex @code{return}, in C++ function header -- @cindex return value, named, in C++ -- @cindex named return value in C++ -- @cindex C++ named return value -- GNU C++ extends the function-definition syntax to allow you to specify a -- name for the result of a function outside the body of the definition, in -- C++ programs: -- -- @example -- @group -- @var{type} -- @var{functionname} (@var{args}) return @var{resultname}; -- @{ -- @dots{} -- @var{body} -- @dots{} -- @} -- @end group -- @end example -- -- You can use this feature to avoid an extra constructor call when -- a function result has a class type. For example, consider a function -- @code{m}, declared as @w{@samp{X v = m ();}}, whose result is of class -- @code{X}: -- -- @example -- X -- m () -- @{ -- X b; -- b.a = 23; -- return b; -- @} -- @end example -- -- @cindex implicit argument: return value -- Although @code{m} appears to have no arguments, in fact it has one implicit -- argument: the address of the return value. At invocation, the address -- of enough space to hold @code{v} is sent in as the implicit argument. -- Then @code{b} is constructed and its @code{a} field is set to the value -- 23. Finally, a copy constructor (a constructor of the form @samp{X(X&)}) -- is applied to @code{b}, with the (implicit) return value location as the -- target, so that @code{v} is now bound to the return value. -- -- But this is wasteful. The local @code{b} is declared just to hold -- something that will be copied right out. While a compiler that -- combined an ``elision'' algorithm with interprocedural data flow -- analysis could conceivably eliminate all of this, it is much more -- practical to allow you to assist the compiler in generating -- efficient code by manipulating the return value explicitly, -- thus avoiding the local variable and copy constructor altogether. -- -- Using the extended GNU C++ function-definition syntax, you can avoid the -- temporary allocation and copying by naming @code{r} as your return value -- at the outset, and assigning to its @code{a} field directly: -- -- @example -- X -- m () return r; -- @{ -- r.a = 23; -- @} -- @end example -- -- @noindent -- The declaration of @code{r} is a standard, proper declaration, whose effects -- are executed @strong{before} any of the body of @code{m}. -- -- Functions of this type impose no additional restrictions; in particular, -- you can execute @code{return} statements, or return implicitly by -- reaching the end of the function body (``falling off the edge''). -- Cases like -- -- @example -- X -- m () return r (23); -- @{ -- return; -- @} -- @end example -- -- @noindent -- (or even @w{@samp{X m () return r (23); @{ @}}}) are unambiguous, since -- the return value @code{r} has been initialized in either case. The -- following code may be hard to read, but also works predictably: -- -- @example -- X -- m () return r; -- @{ -- X b; -- return b; -- @} -- @end example -- -- The return value slot denoted by @code{r} is initialized at the outset, -- but the statement @samp{return b;} overrides this value. The compiler -- deals with this by destroying @code{r} (calling the destructor if there -- is one, or doing nothing if there is not), and then reinitializing -- @code{r} with @code{b}. -- -- This extension is provided primarily to help people who use overloaded -- operators, where there is a great need to control not just the -- arguments, but the return values of functions. For classes where the -- copy constructor incurs a heavy performance penalty (especially in the -- common case where there is a quick default constructor), this is a major -- savings. The disadvantage of this extension is that you do not control -- when the default constructor for the return value is called: it is -- always called at the beginning. - - @node Min and Max - @section Minimum and Maximum Operators in C++ ---- 3391,3396 ---- -*** gcc/cp/NEWS 2000/05/31 19:27:11 1.24 ---- gcc/cp/NEWS 2000/09/06 21:14:50 -*************** -*** 36,41 **** ---- 36,47 ---- - * G++ no longer allows you to overload the conditional operator (i.e., - the `?:' operator.) - -+ * The "named return value" extension: -+ -+ int f () return r { r = 3; } -+ -+ has been deprecated, and will be removed in a future version of G++. -+ - *** Changes in GCC 2.95: - - * Messages about non-conformant code that we can still handle ("pedwarns") -*** gcc/cp/cp-tree.h 2000/09/06 05:52:51 1.522 ---- gcc/cp/cp-tree.h 2000/09/06 21:14:53 -*************** struct language_function -*** 1009,1014 **** ---- 1009,1021 ---- - - #define doing_semantic_analysis_p() (!expanding_p) - -+ /* If original DECL_RESULT of current function was a register, -+ but due to being an addressable named return value, would up -+ on the stack, this variable holds the named return value's -+ original location. */ -+ -+ #define original_result_rtx cp_function_chain->x_result_rtx -+ - #define in_function_try_handler cp_function_chain->in_function_try_handler - - extern tree current_function_return_value; -*************** extern int flag_new_for_scope; -*** 2588,2600 **** - && CONSTRUCTOR_ELTS (NODE) == NULL_TREE \ - && ! TREE_HAS_CONSTRUCTOR (NODE)) - -- #if 0 -- /* Indicates that a NON_LVALUE_EXPR came from a C++ reference. -- Used to generate more helpful error message in case somebody -- tries to take its address. */ -- #define TREE_REFERENCE_EXPR(NODE) (TREE_LANG_FLAG_3(NODE)) -- #endif -- - /* Nonzero for _TYPE means that the _TYPE defines a destructor. */ - #define TYPE_HAS_DESTRUCTOR(NODE) (TYPE_LANG_FLAG_2(NODE)) - ---- 2595,2600 ---- -*************** extern int flag_new_for_scope; -*** 2804,2821 **** - - /* Define fields and accessors for nodes representing declared names. */ - -- #if 0 -- /* C++: A derived class may be able to directly use the virtual -- function table of a base class. When it does so, it may -- still have a decl node used to access the virtual function -- table (so that variables of this type can initialize their -- virtual function table pointers by name). When such thievery -- is committed, know exactly which base class's virtual function -- table is the one being stolen. This effectively computes the -- transitive closure. */ -- #define DECL_VPARENT(NODE) ((NODE)->decl.arguments) -- #endif -- - #define TYPE_WAS_ANONYMOUS(NODE) (TYPE_LANG_SPECIFIC (NODE)->was_anonymous) - - /* C++: all of these are overloaded! These apply only to TYPE_DECLs. */ ---- 2804,2809 ---- -*************** extern int duplicate_decls PARAMS ((tr -*** 3903,3911 **** - extern tree pushdecl PARAMS ((tree)); - extern tree pushdecl_top_level PARAMS ((tree)); - extern void pushdecl_class_level PARAMS ((tree)); -- #if 0 -- extern void pushdecl_nonclass_level PARAMS ((tree)); -- #endif - extern tree pushdecl_namespace_level PARAMS ((tree)); - extern tree push_using_decl PARAMS ((tree, tree)); - extern tree push_using_directive PARAMS ((tree)); ---- 3891,3896 ---- -*************** extern void check_goto PARAMS ((tree) -*** 3918,3926 **** - extern void define_case_label PARAMS ((void)); - extern tree getdecls PARAMS ((void)); - extern tree gettags PARAMS ((void)); -- #if 0 -- extern void set_current_level_tags_transparency PARAMS ((int)); -- #endif - extern tree binding_for_name PARAMS ((tree, tree)); - extern tree namespace_binding PARAMS ((tree, tree)); - extern void set_namespace_binding PARAMS ((tree, tree, tree)); ---- 3903,3908 ---- -*************** extern void build_enumerator PARAMS (( -*** 3974,3980 **** - extern int start_function PARAMS ((tree, tree, tree, int)); - extern void expand_start_early_try_stmts PARAMS ((void)); - extern void store_parm_decls PARAMS ((void)); -- extern void store_return_init PARAMS ((tree)); - extern tree finish_function PARAMS ((int)); - extern tree start_method PARAMS ((tree, tree, tree)); - extern tree finish_method PARAMS ((tree)); ---- 3956,3961 ---- -*************** extern tree make_call_declarator PARAMS -*** 4166,4174 **** - extern void set_quals_and_spec PARAMS ((tree, tree, tree)); - extern void lang_init PARAMS ((void)); - extern void lang_finish PARAMS ((void)); -- #if 0 -- extern void reinit_lang_specific PARAMS ((void)); -- #endif - extern void print_parse_statistics PARAMS ((void)); - extern void extract_interface_info PARAMS ((void)); - extern void do_pending_inlines PARAMS ((void)); ---- 4147,4152 ---- -*************** extern void genrtl_ctor_stmt -*** 4464,4471 **** - extern void genrtl_subobject PARAMS ((tree)); - extern tree genrtl_do_poplevel PARAMS ((void)); - extern void clear_out_block PARAMS ((void)); -! extern void genrtl_named_return_value PARAMS ((tree, -! tree)); - extern tree begin_global_stmt_expr PARAMS ((void)); - extern tree finish_global_stmt_expr PARAMS ((tree)); - ---- 4442,4448 ---- - extern void genrtl_subobject PARAMS ((tree)); - extern tree genrtl_do_poplevel PARAMS ((void)); - extern void clear_out_block PARAMS ((void)); -! extern void genrtl_named_return_value PARAMS ((void)); - extern tree begin_global_stmt_expr PARAMS ((void)); - extern tree finish_global_stmt_expr PARAMS ((tree)); - -*** gcc/cp/decl.c 2000/09/06 08:53:44 1.682 ---- gcc/cp/decl.c 2000/09/06 21:15:02 -*************** int in_std; -*** 269,281 **** - /* Expect only namespace names now. */ - static int only_namespace_names; - -- /* If original DECL_RESULT of current function was a register, -- but due to being an addressable named return value, would up -- on the stack, this variable holds the named return value's -- original location. */ -- -- #define original_result_rtx cp_function_chain->x_result_rtx -- - /* Used only for jumps to as-yet undefined labels, since jumps to - defined labels can have their validity checked immediately. */ - ---- 269,274 ---- -*************** cp_finish_decl (decl, init, asmspec_tree -*** 8092,8098 **** - return; - - /* Add this declaration to the statement-tree. */ -! if (building_stmt_tree () && at_function_scope_p ()) - add_decl_stmt (decl); - - if (TYPE_HAS_MUTABLE_P (type)) ---- 8085,8093 ---- - return; - - /* Add this declaration to the statement-tree. */ -! if (building_stmt_tree () -! && at_function_scope_p () -! && TREE_CODE (decl) != RESULT_DECL) - add_decl_stmt (decl); - - if (TYPE_HAS_MUTABLE_P (type)) -*************** cp_finish_decl (decl, init, asmspec_tree -*** 8215,8222 **** - { - /* If we're not building RTL, then we need to do so - now. */ -! if (!building_stmt_tree ()) -! emit_local_var (decl); - /* Initialize the variable. */ - initialize_local_var (decl, init, flags); - /* Clean up the variable. */ ---- 8210,8216 ---- - { - /* If we're not building RTL, then we need to do so - now. */ -! my_friendly_assert (building_stmt_tree (), 20000906); - /* Initialize the variable. */ - initialize_local_var (decl, init, flags); - /* Clean up the variable. */ -*************** store_parm_decls () -*** 14032,14062 **** - && building_stmt_tree () - && TYPE_RAISES_EXCEPTIONS (TREE_TYPE (current_function_decl))) - current_eh_spec_try_block = expand_start_eh_spec (); -- } -- -- /* Bind a name and initialization to the return value of -- the current function. */ -- -- void -- store_return_init (decl) -- tree decl; -- { -- /* If this named return value comes in a register, put it in a -- pseudo-register. */ -- if (DECL_REGISTER (decl)) -- { -- original_result_rtx = DECL_RTL (decl); -- /* Note that the mode of the old DECL_RTL may be wider than the -- mode of DECL_RESULT, depending on the calling conventions for -- the processor. For example, on the Alpha, a 32-bit integer -- is returned in a DImode register -- the DECL_RESULT has -- SImode but the DECL_RTL for the DECL_RESULT has DImode. So, -- here, we use the mode the back-end has already assigned for -- the return value. */ -- DECL_RTL (decl) = gen_reg_rtx (GET_MODE (original_result_rtx)); -- if (TREE_ADDRESSABLE (decl)) -- put_var_into_stack (decl); -- } - } - - ---- 14026,14031 ---- -*** gcc/cp/semantics.c 2000/09/06 05:52:51 1.167 ---- gcc/cp/semantics.c 2000/09/06 21:15:04 -*************** finish_decl_cleanup (decl, cleanup) -*** 1030,1084 **** - /* Generate the RTL for a RETURN_INIT. */ - - void -! genrtl_named_return_value (return_id, init) -! tree return_id, init; - { - tree decl; -- /* Clear this out so that finish_named_return_value can set it -- again. */ -- DECL_NAME (DECL_RESULT (current_function_decl)) = NULL_TREE; - - decl = DECL_RESULT (current_function_decl); -- if (pedantic) -- /* Give this error as many times as there are occurrences, -- so that users can use Emacs compilation buffers to find -- and fix all such places. */ -- pedwarn ("ISO C++ does not permit named return values"); -- -- if (return_id != NULL_TREE) -- { -- if (DECL_NAME (decl) == NULL_TREE) -- { -- DECL_NAME (decl) = return_id; -- DECL_ASSEMBLER_NAME (decl) = return_id; -- } -- else -- { -- cp_error ("return identifier `%D' already in place", return_id); -- return; -- } -- } - -! /* Can't let this happen for constructors. */ -! if (DECL_CONSTRUCTOR_P (current_function_decl)) -! { -! error ("can't redefine default return value for constructors"); -! return; -! } - -! /* If we have a named return value, put that in our scope as well. */ -! if (DECL_NAME (decl) != NULL_TREE) -! { -! /* Let `cp_finish_decl' know that this initializer is ok. */ -! DECL_INITIAL (decl) = init; -! cp_finish_decl (decl, init, NULL_TREE, 0); -! store_return_init (decl); - } -- -- /* Don't use tree-inlining for functions with named return values. -- That doesn't work properly because we don't do any translation of -- the RETURN_INITs when they are copied. */ -- DECL_UNINLINABLE (current_function_decl) = 1; - } - - /* Bind a name and initialization to the return value of ---- 1030,1059 ---- - /* Generate the RTL for a RETURN_INIT. */ - - void -! genrtl_named_return_value () - { - tree decl; - - decl = DECL_RESULT (current_function_decl); - -! emit_local_var (decl); - -! /* If this named return value comes in a register, put it in a -! pseudo-register. */ -! if (DECL_REGISTER (decl)) -! { -! original_result_rtx = DECL_RTL (decl); -! /* Note that the mode of the old DECL_RTL may be wider than the -! mode of DECL_RESULT, depending on the calling conventions for -! the processor. For example, on the Alpha, a 32-bit integer -! is returned in a DImode register -- the DECL_RESULT has -! SImode but the DECL_RTL for the DECL_RESULT has DImode. So, -! here, we use the mode the back-end has already assigned for -! the return value. */ -! DECL_RTL (decl) = gen_reg_rtx (GET_MODE (original_result_rtx)); -! if (TREE_ADDRESSABLE (decl)) -! put_var_into_stack (decl); - } - } - - /* Bind a name and initialization to the return value of -*************** finish_named_return_value (return_id, in -*** 1090,1100 **** - { - tree decl = DECL_RESULT (current_function_decl); - - if (pedantic) -- /* Give this error as many times as there are occurrences, -- so that users can use Emacs compilation buffers to find -- and fix all such places. */ - pedwarn ("ISO C++ does not permit named return values"); - - if (return_id != NULL_TREE) - { ---- 1065,1076 ---- - { - tree decl = DECL_RESULT (current_function_decl); - -+ /* Give this error as many times as there are occurrences, so that -+ users can use Emacs compilation buffers to find and fix all such -+ places. */ - if (pedantic) - pedwarn ("ISO C++ does not permit named return values"); -+ cp_deprecated ("the named return value extension"); - - if (return_id != NULL_TREE) - { -*************** finish_named_return_value (return_id, in -*** 1124,1130 **** - DECL_INITIAL (decl) = init; - if (doing_semantic_analysis_p ()) - pushdecl (decl); -! add_tree (build_stmt (RETURN_INIT, return_id, init)); - } - - /* Don't use tree-inlining for functions with named return values. ---- 1100,1112 ---- - DECL_INITIAL (decl) = init; - if (doing_semantic_analysis_p ()) - pushdecl (decl); -! if (!processing_template_decl) -! { -! cp_finish_decl (decl, init, NULL_TREE, 0); -! add_tree (build_stmt (RETURN_INIT, NULL_TREE, NULL_TREE)); -! } -! else -! add_tree (build_stmt (RETURN_INIT, return_id, init)); - } - - /* Don't use tree-inlining for functions with named return values. -*************** lang_expand_stmt (t) -*** 2463,2470 **** - break; - - case RETURN_INIT: -! genrtl_named_return_value (TREE_OPERAND (t, 0), -! TREE_OPERAND (t, 1)); - break; - - default: ---- 2445,2451 ---- - break; - - case RETURN_INIT: -! genrtl_named_return_value (); - break; - - default: -*** gcc/testsuite/g++.old-deja/g++.benjamin/p13417.C 1998/12/16 21:22:08 1.2 ---- gcc/testsuite/g++.old-deja/g++.benjamin/p13417.C 2000/09/06 21:15:04 -*************** -*** 1,5 **** - // Build don't link: -! // Special g++ Options: - // prms-id: 13417 - - class Foo { ---- 1,5 ---- - // Build don't link: -! // Special g++ Options: -Wno-deprecated - // prms-id: 13417 - - class Foo { -*** gcc/testsuite/g++.old-deja/g++.ext/return1.C 2000/06/02 18:19:02 1.2 ---- gcc/testsuite/g++.old-deja/g++.ext/return1.C 2000/09/06 21:15:04 -*************** -*** 1,6 **** - // Test that the named return value extension works when passed as a reference. - // Origin: Jason Merrill <jason@redhat.com> -! // Special g++ Options: - - void f (int &i) - { ---- 1,6 ---- - // Test that the named return value extension works when passed as a reference. - // Origin: Jason Merrill <jason@redhat.com> -! // Special g++ Options: -Wno-deprecated - - void f (int &i) - { -*** gcc/testsuite/g++.old-deja/g++.mike/p646.C 2000/07/04 07:47:10 1.4 ---- gcc/testsuite/g++.old-deja/g++.mike/p646.C 2000/09/06 21:15:05 -*************** -*** 6,12 **** - */ - - -! // Special g++ Options: - - extern "C" - { ---- 6,12 ---- - */ - - -! // Special g++ Options: -Wno-deprecated - - extern "C" - { -*** gcc/testsuite/g++.old-deja/g++.mike/p700.C 2000/07/25 20:11:43 1.4 ---- gcc/testsuite/g++.old-deja/g++.mike/p700.C 2000/09/06 21:15:05 -*************** -*** 1,4 **** -! // Special g++ Options: - // prms-id: 700 - - //# 1 "../../../../libg++/etc/benchmarks/dhrystone.cc" ---- 1,4 ---- -! // Special g++ Options: -Wno-deprecated - // prms-id: 700 - - //# 1 "../../../../libg++/etc/benchmarks/dhrystone.cc" -*** gcc/testsuite/g++.old-deja/g++.oliva/nameret1.C 1999/12/26 15:28:17 1.2 ---- gcc/testsuite/g++.old-deja/g++.oliva/nameret1.C 2000/09/06 21:15:06 -*************** -*** 1,11 **** - // Build don't link: -! // Copyright (C) 1999 Free Software Foundation - - // by Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - // distilled from libg++'s Rational.cc - -! // Special g++ Options: - - inline int bar () return r {} - ---- 1,11 ---- - // Build don't link: -! // Copyright (C) 1999, 2000 Free Software Foundation - - // by Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - // distilled from libg++'s Rational.cc - -! // Special g++ Options: -Wno-deprecated - - inline int bar () return r {} - -*** gcc/testsuite/g++.old-deja/g++.oliva/nameret2.C 1999/12/26 15:28:17 1.4 ---- gcc/testsuite/g++.old-deja/g++.oliva/nameret2.C 2000/09/06 21:15:06 -*************** -*** 1,11 **** - // Build don't link: -! // Copyright (C) 1999 Free Software Foundation - - // by Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - // distilled from libg++'s Integer.cc - -! // Special g++ Options: -O1 - - inline int bar () return r {} - ---- 1,11 ---- - // Build don't link: -! // Copyright (C) 1999, 2000 Free Software Foundation - - // by Alexandre Oliva <oliva@lsd.ic.unicamp.br> - - // distilled from libg++'s Integer.cc - -! // Special g++ Options: -O1 -Wno-deprecated - - inline int bar () return r {} - -*** gcc/testsuite/g++.old-deja/g++.robertl/eb101.C 1999/04/29 08:33:55 1.4 ---- gcc/testsuite/g++.old-deja/g++.robertl/eb101.C 2000/09/06 21:15:07 -*************** -*** 1,4 **** -! // Special g++ Options: -fcheck-memory-usage - // Build don't link: - - ---- 1,4 ---- -! // Special g++ Options: -fcheck-memory-usage -Wno-deprecated - // Build don't link: - - -*** gcc/testsuite/g++.old-deja/g++.robertl/eb27.C 1998/12/16 22:03:42 1.8 ---- gcc/testsuite/g++.old-deja/g++.robertl/eb27.C 2000/09/06 21:15:07 -*************** -*** 2,8 **** - /* simple program to demonstrate the bug with named return values in gcc - */ - /* (w) 4.9.97 by Kurt Garloff <K.Garloff@ping.de> */ -! // Special g++ Options: - // 8/28/1998 - This dies in add_conversions from dfs_walk, null CLASSTYPE_METHOD_VEC - // for the test<T> record_type. This is marked as an expected failure for now, - // until we actually fix it. ---- 2,8 ---- - /* simple program to demonstrate the bug with named return values in gcc - */ - /* (w) 4.9.97 by Kurt Garloff <K.Garloff@ping.de> */ -! // Special g++ Options: -Wno-deprecated - // 8/28/1998 - This dies in add_conversions from dfs_walk, null CLASSTYPE_METHOD_VEC - // for the test<T> record_type. This is marked as an expected failure for now, - // until we actually fix it. - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-pmf.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-pmf.patch deleted file mode 100644 index b39bc682438d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-pmf.patch +++ /dev/null @@ -1,19 +0,0 @@ -2000-08-23 Jason Merrill <jason@redhat.com> - - * typeck.c (build_ptrmemfunc): Save the input pmf. - -*** gcc/cp/typeck.c 2000/08/18 09:31:11 1.304 ---- gcc/cp/typeck.c 2000/08/24 01:29:15 -*************** build_ptrmemfunc (type, pfn, force) -*** 6161,6166 **** ---- 6161,6168 ---- - } - else - { -+ if (TREE_SIDE_EFFECTS (pfn)) -+ pfn = save_expr (pfn); - ndelta = cp_convert (ptrdiff_type_node, - build_component_ref (pfn, - delta_identifier, - - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-static-class.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-static-class.patch deleted file mode 100644 index cd90410708d5..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-static-class.patch +++ /dev/null @@ -1,24 +0,0 @@ -2000-11-03 Jakub Jelinek <jakub@redhat.com> - - * stor-layout.c (layout_decl): If setting previously VOIDmode - DECL_MODE for decl which has DECL_RTL already set, call - make_decl_rtl. - ---- gcc/stor-layout.c.jj Wed Oct 25 17:25:45 2000 -+++ gcc/stor-layout.c Fri Nov 3 17:51:29 2000 -@@ -311,7 +311,14 @@ layout_decl (decl, known_align) - - TREE_UNSIGNED (decl) = TREE_UNSIGNED (type); - if (DECL_MODE (decl) == VOIDmode) -- DECL_MODE (decl) = TYPE_MODE (type); -+ { -+ DECL_MODE (decl) = TYPE_MODE (type); -+ -+ /* If this DECL has already RTL assigned, make sure its mode is updated -+ as well. */ -+ if (DECL_RTL (decl)) -+ make_decl_rtl (decl, NULL, 0); -+ } - - if (DECL_SIZE (decl) == 0) - { diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-testset1.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-testset1.patch deleted file mode 100644 index 9da1ccad518e..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-testset1.patch +++ /dev/null @@ -1,88 +0,0 @@ -2000-11-03 Jakub Jelinek <jakub@redhat.com> - - * g++.old-deja/g++.other/crash26.C: New test. - * g++.old-deja/g++.other/crash27.C: New test. - * g++.old-deja/g++.other/crash28.C: New test. - * g++.old-deja/g++.other/crash29.C: New test. - ---- gcc/testsuite/g++.old-deja/g++.other/crash26.C.jj Thu Aug 24 11:00:32 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash26.C Wed Oct 25 14:14:24 2000 -@@ -0,0 +1,12 @@ -+// Build don't link: -+ -+class foo { -+public: -+ foo(int); -+}; -+ -+void bar(bool x) -+{ -+ if(x) -+ foo *a = new foo(foo::not); // ERROR - -+} ---- gcc/testsuite/g++.old-deja/g++.other/crash27.C.jj Thu Aug 24 11:00:32 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash27.C Wed Oct 25 14:14:29 2000 -@@ -0,0 +1,11 @@ -+// Build don't link: -+ -+X(Y(long, Type, CLink)); break; default: break; } } } // ERROR - -+ -+struct A { -+ inline A (); -+}; -+ -+inline A::A () -+{ -+} ---- gcc/testsuite/g++.old-deja/g++.other/crash28.C.jj Thu Aug 24 11:00:32 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash28.C Fri Nov 3 11:26:58 2000 -@@ -0,0 +1,34 @@ -+// Build don't link: -+ -+namespace N -+{ -+ class X; -+ template <class T> -+ class Y -+ { -+ public: -+ inline Y () {} -+ inline operator const Y<X> & () const -+ { -+ return *reinterpret_cast<const Y<X> *>(this); -+ } -+ }; -+} -+class bar -+{ -+public: -+ inline bar () {} -+ inline bar (const ::N::Y< ::N::X>& a); -+}; -+ -+class foo -+{ -+ bool b; -+public: -+ foo(); -+ void x () throw(bar); -+}; -+void foo::x() throw(bar) -+{ -+ if (!b) throw bar (static_cast<::N::X*>(this)); // ERROR - parse error -+} ---- gcc/testsuite/g++.old-deja/g++.other/crash29.C.jj Thu Aug 24 11:00:32 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash29.C Fri Nov 3 11:51:21 2000 -@@ -0,0 +1,12 @@ -+// Build don't link: -+ -+class bar -+{ -+public: -+ void foo (); -+ void baz (); -+}; -+void bar::foo () -+{ -+ baz x(); // ERROR - -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-testset2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-testset2.patch deleted file mode 100644 index 92a2a84c7119..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-testset2.patch +++ /dev/null @@ -1,109 +0,0 @@ -2000-11-03 Jakub Jelinek <jakub@redhat.com> - - * g++.old-deja/g++.other/crash30.C: New test. - * g++.old-deja/g++.other/crash31.C: New test. - * g++.old-deja/g++.other/crash32.C: New test. - * g++.old-deja/g++.other/crash33.C: New test. - * g++.old-deja/g++.other/crash34.C: New test. - ---- gcc/testsuite/g++.old-deja/g++.other/crash30.C.jj Fri Nov 3 16:28:25 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash30.C Fri Nov 3 13:33:30 2000 -@@ -0,0 +1,16 @@ -+// Build don't link: -+ -+struct foo -+{ -+ foo(); -+ void x(); -+}; -+ -+void foo::x() throw(bar) // ERROR - parse error -+{ -+} -+ -+void bar() -+{ -+ foo x; -+} ---- gcc/testsuite/g++.old-deja/g++.other/crash31.C.jj Fri Nov 3 16:28:25 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash31.C Fri Nov 3 13:46:02 2000 -@@ -0,0 +1,8 @@ -+// Build don't link: -+ -+namespace bar -+{ -+struct foo -+{ -+ foo(); -+}; // ERROR - parse error ---- gcc/testsuite/g++.old-deja/g++.other/crash32.C.jj Fri Nov 3 16:28:25 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash32.C Fri Nov 3 14:36:58 2000 -@@ -0,0 +1,29 @@ -+// Build don't link: -+ -+struct foo -+{ -+ enum e -+ { -+ not // ERROR - -+ }; -+ ~foo(); -+ void x (foo *&a, bool b = (unsigned char)0); -+}; -+ -+namespace N -+{ -+ struct bar; -+ -+ template<class T> -+ struct baz -+ { -+ baz(T *p); -+ }; -+ -+ typedef baz<bar> c; -+} -+ -+struct z -+{ -+ int a; -+}; ---- gcc/testsuite/g++.old-deja/g++.other/crash33.C.jj Fri Nov 3 16:28:25 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash33.C Fri Nov 3 14:52:06 2000 -@@ -0,0 +1,12 @@ -+// Build don't link: -+ -+template <class T> -+inline const T& bar(const T& a, const T& b) -+{ -+ return a < b ? b : a; -+} -+ -+int foo(void) -+{ -+ return bar(sizeof(int), sizeof(long)); -+} ---- gcc/testsuite/g++.old-deja/g++.other/crash34.C.jj Fri Nov 3 16:28:25 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash34.C Fri Nov 3 15:50:27 2000 -@@ -0,0 +1,21 @@ -+// Build don't link: -+ -+class v -+{ -+ double x, y; -+public: -+ v(); -+}; -+ -+class w : public v { -+public : -+ static const w X; -+ w(); -+}; -+ -+void bar(w x); -+ -+void foo() -+{ -+ bar(w::X); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-typedef.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-typedef.patch deleted file mode 100644 index c2445af47911..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-typedef.patch +++ /dev/null @@ -1,43 +0,0 @@ -2000-06-12 Jakub Jelinek <jakub@redhat.com> - - * decl.c (pushdecl): Set DECL_ORIGINAL_TYPE of a duplicate TYPE_DECL - again after calling duplicate_decls. - ---- gcc/cp/decl.c.jj Mon Jun 12 09:55:42 2000 -+++ gcc/cp/decl.c Mon Jun 12 14:23:56 2000 -@@ -3915,7 +3915,34 @@ pushdecl (x) - else if (duplicate_decls (x, t)) - { - if (TREE_CODE (t) == TYPE_DECL) -- SET_IDENTIFIER_TYPE_VALUE (name, TREE_TYPE (t)); -+ { -+ /* If declaring a type as a typedef, copy the type (unless -+ we're at line 0), and install this TYPE_DECL as the new -+ type's typedef name. See the extensive comment in -+ ../c-decl.c (pushdecl). */ -+ tree type = TREE_TYPE (t); -+ if (DECL_ORIGINAL_TYPE (t) == NULL -+ && DECL_SOURCE_LINE (t) != 0 -+ && type != error_mark_node && TYPE_NAME (type) != t -+ /* We don't want to copy the type when all we're -+ doing is making a TYPE_DECL for the purposes of -+ inlining. */ -+ && (!TYPE_NAME (type) -+ || TYPE_NAME (type) != DECL_ABSTRACT_ORIGIN (t))) -+ { -+ DECL_ORIGINAL_TYPE (t) = type; -+ type = build_type_copy (type); -+ TYPE_STUB_DECL (type) = -+ TYPE_STUB_DECL (DECL_ORIGINAL_TYPE (t)); -+ TYPE_NAME (type) = t; -+ TREE_TYPE (t) = type; -+ if (TYPE_IDENTIFIER (type)) -+ set_identifier_type_value_with_scope (DECL_NAME (t), -+ type, current_binding_level); -+ } -+ -+ SET_IDENTIFIER_TYPE_VALUE (name, TREE_TYPE (t)); -+ } - else if (TREE_CODE (t) == FUNCTION_DECL) - check_default_args (t); - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-undefined-method.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-undefined-method.patch deleted file mode 100644 index 044bc1fa8215..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-undefined-method.patch +++ /dev/null @@ -1,469 +0,0 @@ -2000-08-04 Mark Mitchell <mark@codesourcery.com> - - * cp-tree.h (add_method): Change prototype. - * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. - Don't double the size of the method vector in the error case. - (handle_using_decl): Adjust call to add_method. - (add_implicitly_declared_members): Likewise. - (clone_function_decl): Likewise. - * decl2.c (check_classfn): Likewise. - * semantics.c (finish_member_declaration): Likewise. - ---- gcc/cp/class.c.jj Mon Jul 31 20:02:19 2000 -+++ gcc/cp/class.c Tue Oct 31 17:54:17 2000 -@@ -1155,190 +1155,199 @@ add_virtual_function (new_virtuals_p, ov - - extern struct obstack *current_obstack; - --/* Add method METHOD to class TYPE. -- -- If non-NULL, FIELDS is the entry in the METHOD_VEC vector entry of -- the class type where the method should be added. */ -+/* Add method METHOD to class TYPE. If ERROR_P is true, we are adding -+ the method after the class has already been defined because a -+ declaration for it was seen. (Even though that is erroneous, we -+ add the method for improved error recovery.) */ - - void --add_method (type, fields, method) -- tree type, *fields, method; -+add_method (type, method, error_p) -+ tree type; -+ tree method; -+ int error_p; - { - int using = (DECL_CONTEXT (method) != type); -- -- if (fields && *fields) -- *fields = build_overload (method, *fields); -- else -- { -- int len; -- int slot; -- tree method_vec; -- -- if (!CLASSTYPE_METHOD_VEC (type)) -- /* Make a new method vector. We start with 8 entries. We must -- allocate at least two (for constructors and destructors), and -- we're going to end up with an assignment operator at some -- point as well. -- -- We could use a TREE_LIST for now, and convert it to a -- TREE_VEC in finish_struct, but we would probably waste more -- memory making the links in the list than we would by -- over-allocating the size of the vector here. Furthermore, -- we would complicate all the code that expects this to be a -- vector. */ -- CLASSTYPE_METHOD_VEC (type) = make_tree_vec (8); -- -- method_vec = CLASSTYPE_METHOD_VEC (type); -- len = TREE_VEC_LENGTH (method_vec); -- -- /* Constructors and destructors go in special slots. */ -- if (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (method)) -- slot = CLASSTYPE_CONSTRUCTOR_SLOT; -- else if (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (method)) -- slot = CLASSTYPE_DESTRUCTOR_SLOT; -- else -- { -- /* See if we already have an entry with this name. */ -- for (slot = CLASSTYPE_FIRST_CONVERSION_SLOT; slot < len; ++slot) -- if (!TREE_VEC_ELT (method_vec, slot) -- || (DECL_NAME (OVL_CURRENT (TREE_VEC_ELT (method_vec, -- slot))) -- == DECL_NAME (method))) -- break; -+ int len; -+ int slot; -+ tree method_vec; -+ -+ if (!CLASSTYPE_METHOD_VEC (type)) -+ /* Make a new method vector. We start with 8 entries. We must -+ allocate at least two (for constructors and destructors), and -+ we're going to end up with an assignment operator at some point -+ as well. -+ -+ We could use a TREE_LIST for now, and convert it to a TREE_VEC -+ in finish_struct, but we would probably waste more memory -+ making the links in the list than we would by over-allocating -+ the size of the vector here. Furthermore, we would complicate -+ all the code that expects this to be a vector. */ -+ CLASSTYPE_METHOD_VEC (type) = make_tree_vec (8); -+ -+ method_vec = CLASSTYPE_METHOD_VEC (type); -+ len = TREE_VEC_LENGTH (method_vec); -+ -+ /* Constructors and destructors go in special slots. */ -+ if (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P (method)) -+ slot = CLASSTYPE_CONSTRUCTOR_SLOT; -+ else if (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P (method)) -+ slot = CLASSTYPE_DESTRUCTOR_SLOT; -+ else -+ { -+ /* See if we already have an entry with this name. */ -+ for (slot = CLASSTYPE_FIRST_CONVERSION_SLOT; slot < len; ++slot) -+ if (!TREE_VEC_ELT (method_vec, slot) -+ || (DECL_NAME (OVL_CURRENT (TREE_VEC_ELT (method_vec, -+ slot))) -+ == DECL_NAME (method))) -+ break; - -- if (slot == len) -+ if (slot == len) -+ { -+ /* We need a bigger method vector. */ -+ int new_len; -+ tree new_vec; -+ -+ /* In the non-error case, we are processing a class -+ definition. Double the size of the vector to give room -+ for new methods. */ -+ if (!error_p) -+ new_len = 2 * len; -+ /* In the error case, the vector is already complete. We -+ don't expect many errors, and the rest of the front-end -+ will get confused if there are empty slots in the vector. */ -+ else -+ new_len = len + 1; -+ -+ new_vec = make_tree_vec (new_len); -+ bcopy ((PTR) &TREE_VEC_ELT (method_vec, 0), -+ (PTR) &TREE_VEC_ELT (new_vec, 0), -+ len * sizeof (tree)); -+ len = new_len; -+ method_vec = CLASSTYPE_METHOD_VEC (type) = new_vec; -+ } -+ -+ if (DECL_CONV_FN_P (method) && !TREE_VEC_ELT (method_vec, slot)) -+ { -+ /* Type conversion operators have to come before ordinary -+ methods; add_conversions depends on this to speed up -+ looking for conversion operators. So, if necessary, we -+ slide some of the vector elements up. In theory, this -+ makes this algorithm O(N^2) but we don't expect many -+ conversion operators. */ -+ for (slot = 2; slot < len; ++slot) - { -- /* We need a bigger method vector. */ -- tree new_vec = make_tree_vec (2 * len); -- bcopy ((PTR) &TREE_VEC_ELT (method_vec, 0), -- (PTR) &TREE_VEC_ELT (new_vec, 0), -- len * sizeof (tree)); -- len = 2 * len; -- method_vec = CLASSTYPE_METHOD_VEC (type) = new_vec; -- } -- -- if (DECL_CONV_FN_P (method) && !TREE_VEC_ELT (method_vec, slot)) -- { -- /* Type conversion operators have to come before -- ordinary methods; add_conversions depends on this to -- speed up looking for conversion operators. So, if -- necessary, we slide some of the vector elements up. -- In theory, this makes this algorithm O(N^2) but we -- don't expect many conversion operators. */ -- for (slot = 2; slot < len; ++slot) -- { -- tree fn = TREE_VEC_ELT (method_vec, slot); -+ tree fn = TREE_VEC_ELT (method_vec, slot); - -- if (!fn) -- /* There are no more entries in the vector, so we -- can insert the new conversion operator here. */ -- break; -+ if (!fn) -+ /* There are no more entries in the vector, so we -+ can insert the new conversion operator here. */ -+ break; - -- if (!DECL_CONV_FN_P (OVL_CURRENT (fn))) -- /* We can insert the new function right at the -- SLOTth position. */ -- break; -- } -+ if (!DECL_CONV_FN_P (OVL_CURRENT (fn))) -+ /* We can insert the new function right at the -+ SLOTth position. */ -+ break; -+ } - -- if (!TREE_VEC_ELT (method_vec, slot)) -- /* There is nothing in the Ith slot, so we can avoid -- moving anything. */ -+ if (!TREE_VEC_ELT (method_vec, slot)) -+ /* There is nothing in the Ith slot, so we can avoid -+ moving anything. */ - ; -- else -- { -- /* We know the last slot in the vector is empty -- because we know that at this point there's room -- for a new function. */ -- bcopy ((PTR) &TREE_VEC_ELT (method_vec, slot), -- (PTR) &TREE_VEC_ELT (method_vec, slot + 1), -- (len - slot - 1) * sizeof (tree)); -- TREE_VEC_ELT (method_vec, slot) = NULL_TREE; -- } -+ else -+ { -+ /* We know the last slot in the vector is empty -+ because we know that at this point there's room -+ for a new function. */ -+ bcopy ((PTR) &TREE_VEC_ELT (method_vec, slot), -+ (PTR) &TREE_VEC_ELT (method_vec, slot + 1), -+ (len - slot - 1) * sizeof (tree)); -+ TREE_VEC_ELT (method_vec, slot) = NULL_TREE; - } - } -+ } - -- if (template_class_depth (type)) -- /* TYPE is a template class. Don't issue any errors now; wait -- until instantiation time to complain. */ -- ; -- else -- { -- tree fns; -+ if (template_class_depth (type)) -+ /* TYPE is a template class. Don't issue any errors now; wait -+ until instantiation time to complain. */ -+ ; -+ else -+ { -+ tree fns; - -- /* Check to see if we've already got this method. */ -- for (fns = TREE_VEC_ELT (method_vec, slot); -- fns; -- fns = OVL_NEXT (fns)) -- { -- tree fn = OVL_CURRENT (fns); -+ /* Check to see if we've already got this method. */ -+ for (fns = TREE_VEC_ELT (method_vec, slot); -+ fns; -+ fns = OVL_NEXT (fns)) -+ { -+ tree fn = OVL_CURRENT (fns); - -- if (TREE_CODE (fn) != TREE_CODE (method)) -- continue; -+ if (TREE_CODE (fn) != TREE_CODE (method)) -+ continue; - -- if (TREE_CODE (method) != TEMPLATE_DECL) -+ if (TREE_CODE (method) != TEMPLATE_DECL) -+ { -+ /* [over.load] Member function declarations with the -+ same name and the same parameter types cannot be -+ overloaded if any of them is a static member -+ function declaration. */ -+ if ((DECL_STATIC_FUNCTION_P (fn) -+ != DECL_STATIC_FUNCTION_P (method)) -+ || using) - { -- /* [over.load] Member function declarations with the -- same name and the same parameter types cannot be -- overloaded if any of them is a static member -- function declaration. */ -- if ((DECL_STATIC_FUNCTION_P (fn) -- != DECL_STATIC_FUNCTION_P (method)) -- || using) -- { -- tree parms1 = TYPE_ARG_TYPES (TREE_TYPE (fn)); -- tree parms2 = TYPE_ARG_TYPES (TREE_TYPE (method)); -+ tree parms1 = TYPE_ARG_TYPES (TREE_TYPE (fn)); -+ tree parms2 = TYPE_ARG_TYPES (TREE_TYPE (method)); - -- if (! DECL_STATIC_FUNCTION_P (fn)) -- parms1 = TREE_CHAIN (parms1); -- if (! DECL_STATIC_FUNCTION_P (method)) -- parms2 = TREE_CHAIN (parms2); -- -- if (compparms (parms1, parms2)) -- { -- if (using) -- /* Defer to the local function. */ -- return; -- else -- cp_error ("`%#D' and `%#D' cannot be overloaded", -- fn, method); -- } -- } -+ if (! DECL_STATIC_FUNCTION_P (fn)) -+ parms1 = TREE_CHAIN (parms1); -+ if (! DECL_STATIC_FUNCTION_P (method)) -+ parms2 = TREE_CHAIN (parms2); - -- /* Since this is an ordinary function in a -- non-template class, it's mangled name can be used -- as a unique identifier. This technique is only -- an optimization; we would get the same results if -- we just used decls_match here. */ -- if (DECL_ASSEMBLER_NAME (fn) -- != DECL_ASSEMBLER_NAME (method)) -- continue; -+ if (compparms (parms1, parms2)) -+ { -+ if (using) -+ /* Defer to the local function. */ -+ return; -+ else -+ cp_error ("`%#D' and `%#D' cannot be overloaded", -+ fn, method); -+ } - } -- else if (!decls_match (fn, method)) -- continue; - -- /* There has already been a declaration of this method -- or member template. */ -- cp_error_at ("`%D' has already been declared in `%T'", -- method, type); -- -- /* We don't call duplicate_decls here to merge the -- declarations because that will confuse things if the -- methods have inline definitions. In particular, we -- will crash while processing the definitions. */ -- return; -+ /* Since this is an ordinary function in a -+ non-template class, it's mangled name can be used -+ as a unique identifier. This technique is only -+ an optimization; we would get the same results if -+ we just used decls_match here. */ -+ if (DECL_ASSEMBLER_NAME (fn) -+ != DECL_ASSEMBLER_NAME (method)) -+ continue; - } -+ else if (!decls_match (fn, method)) -+ continue; -+ -+ /* There has already been a declaration of this method -+ or member template. */ -+ cp_error_at ("`%D' has already been declared in `%T'", -+ method, type); -+ -+ /* We don't call duplicate_decls here to merge the -+ declarations because that will confuse things if the -+ methods have inline definitions. In particular, we -+ will crash while processing the definitions. */ -+ return; - } -+ } - -- /* Actually insert the new method. */ -- TREE_VEC_ELT (method_vec, slot) -- = build_overload (method, TREE_VEC_ELT (method_vec, slot)); -+ /* Actually insert the new method. */ -+ TREE_VEC_ELT (method_vec, slot) -+ = build_overload (method, TREE_VEC_ELT (method_vec, slot)); - - /* Add the new binding. */ -- if (!DECL_CONSTRUCTOR_P (method) -- && !DECL_DESTRUCTOR_P (method)) -- push_class_level_binding (DECL_NAME (method), -- TREE_VEC_ELT (method_vec, slot)); -- } -+ if (!DECL_CONSTRUCTOR_P (method) -+ && !DECL_DESTRUCTOR_P (method)) -+ push_class_level_binding (DECL_NAME (method), -+ TREE_VEC_ELT (method_vec, slot)); - } - - /* Subroutines of finish_struct. */ -@@ -1567,7 +1576,7 @@ handle_using_decl (using_decl, t) - if (flist) - for (; flist; flist = OVL_NEXT (flist)) - { -- add_method (t, 0, OVL_CURRENT (flist)); -+ add_method (t, OVL_CURRENT (flist), /*error_p=*/0); - alter_access (t, OVL_CURRENT (flist), access); - } - else -@@ -3146,7 +3155,7 @@ add_implicitly_declared_members (t, cant - /* Now, hook all of the new functions on to TYPE_METHODS, - and add them to the CLASSTYPE_METHOD_VEC. */ - for (f = &implicit_fns; *f; f = &TREE_CHAIN (*f)) -- add_method (t, 0, *f); -+ add_method (t, *f, /*error_p=*/0); - *f = TYPE_METHODS (t); - TYPE_METHODS (t) = implicit_fns; - -@@ -4203,10 +4212,10 @@ clone_function_decl (fn, update_method_v - and a not-in-charge version. */ - clone = build_clone (fn, complete_ctor_identifier); - if (update_method_vec_p) -- add_method (DECL_CONTEXT (clone), NULL, clone); -+ add_method (DECL_CONTEXT (clone), clone, /*error_p=*/0); - clone = build_clone (fn, base_ctor_identifier); - if (update_method_vec_p) -- add_method (DECL_CONTEXT (clone), NULL, clone); -+ add_method (DECL_CONTEXT (clone), clone, /*error_p=*/0); - } - else - { -@@ -4220,13 +4229,13 @@ clone_function_decl (fn, update_method_v - function table. */ - clone = build_clone (fn, deleting_dtor_identifier); - if (update_method_vec_p) -- add_method (DECL_CONTEXT (clone), NULL, clone); -+ add_method (DECL_CONTEXT (clone), clone, /*error_p=*/0); - clone = build_clone (fn, complete_dtor_identifier); - if (update_method_vec_p) -- add_method (DECL_CONTEXT (clone), NULL, clone); -+ add_method (DECL_CONTEXT (clone), clone, /*error_p=*/0); - clone = build_clone (fn, base_dtor_identifier); - if (update_method_vec_p) -- add_method (DECL_CONTEXT (clone), NULL, clone); -+ add_method (DECL_CONTEXT (clone), clone, /*error_p=*/0); - } - } - ---- gcc/cp/cp-tree.h.jj Mon Oct 30 23:54:07 2000 -+++ gcc/cp/cp-tree.h Tue Oct 31 17:54:17 2000 -@@ -3794,7 +3794,7 @@ extern tree build_vbase_path PARAMS (( - extern tree build_vtbl_ref PARAMS ((tree, tree)); - extern tree build_vfn_ref PARAMS ((tree *, tree, tree)); - extern tree get_vtable_decl PARAMS ((tree, int)); --extern void add_method PARAMS ((tree, tree *, tree)); -+extern void add_method PARAMS ((tree, tree, int)); - extern int currently_open_class PARAMS ((tree)); - extern tree currently_open_derived_class PARAMS ((tree)); - extern tree get_vfield_offset PARAMS ((tree)); ---- gcc/cp/decl2.c.jj Mon Oct 30 23:54:04 2000 -+++ gcc/cp/decl2.c Tue Oct 31 17:54:17 2000 -@@ -1544,7 +1544,7 @@ check_classfn (ctype, function) - case we'll only confuse ourselves when the function is declared - properly within the class. */ - if (COMPLETE_TYPE_P (ctype)) -- add_method (ctype, methods, function); -+ add_method (ctype, function, /*error_p=*/1); - return NULL_TREE; - } - ---- gcc/cp/semantics.c.jj Mon Oct 30 23:54:07 2000 -+++ gcc/cp/semantics.c Tue Oct 31 17:54:17 2000 -@@ -1951,7 +1951,7 @@ finish_member_declaration (decl) - { - /* We also need to add this function to the - CLASSTYPE_METHOD_VEC. */ -- add_method (current_class_type, 0, decl); -+ add_method (current_class_type, decl, /*error_p=*/0); - - TREE_CHAIN (decl) = TYPE_METHODS (current_class_type); - TYPE_METHODS (current_class_type) = decl; ---- gcc/testsuite/g++.old-deja/g++.other/crash21.C.jj Tue Oct 31 17:54:17 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash21.C Tue Oct 31 17:54:17 2000 -@@ -0,0 +1,14 @@ -+// Build don't link: -+// Origin: Gabriel Dos Reis <gdr@codesourcery.com> -+ -+struct A { -+ virtual void f(int&) const; -+}; -+ -+struct B : public A { -+ int x; -+}; -+ -+void B::f(int& t) { // ERROR - undeclared method -+ x = t; -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-walk-tree.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-walk-tree.patch deleted file mode 100644 index 480ed6d96251..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c++-walk-tree.patch +++ /dev/null @@ -1,64 +0,0 @@ -2000-10-20 Jason Merrill <jason@redhat.com> - - * tree.c (walk_tree): Don't walk into default args. - -*** gcc/cp/tree.c.~1~ Thu Sep 21 18:01:50 2000 ---- gcc/cp/tree.c Fri Oct 20 16:37:12 2000 -*************** walk_tree (tp, func, data, htab) -*** 1388,1394 **** - - case FUNCTION_TYPE: - WALK_SUBTREE (TREE_TYPE (*tp)); -! WALK_SUBTREE (TYPE_ARG_TYPES (*tp)); - break; - - case ARRAY_TYPE: ---- 1388,1400 ---- - - case FUNCTION_TYPE: - WALK_SUBTREE (TREE_TYPE (*tp)); -! { -! tree arg = TYPE_ARG_TYPES (*tp); -! -! /* We never want to walk into default arguments. */ -! for (; arg; arg = TREE_CHAIN (arg)) -! WALK_SUBTREE (TREE_VALUE (arg)); -! } - break; - - case ARRAY_TYPE: - ---- gcc/testsuite/g++.old-deja/g++.other/inline15.C.jj Wed Oct 18 14:37:36 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/inline15.C Wed Oct 18 14:37:52 2000 -@@ -0,0 +1,31 @@ -+// Build don't link: -+// Origin: Jakub Jelinek <jakub@redhat.com> -+// Special g++ Options: -O1 -+ -+class Type; -+template<class E> -+class X -+{ -+public: -+ X<E>(); -+ inline X<E>(int); -+ inline ~X<E>(); -+}; -+template<class E> const Type &foo(const X<E> *); -+template<class E> inline X<E>::X(int x) -+{ -+ const Type &a = foo(this); -+} -+template<class E> inline X<E>::~X() -+{ -+ const Type &a = foo(this); -+} -+class Y -+{ -+ X<Type> a; -+public: -+ Y(const X<Type> &x = X<Type>()); -+}; -+Y::Y(const X<Type> &x) : a(1) -+{ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c99.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c99.patch deleted file mode 100644 index 061253f224a1..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-c99.patch +++ /dev/null @@ -1,383 +0,0 @@ -gcc/ChangeLog: -2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and - CTI_UNSIGNED_PTRDIFF_TYPE. - (signed_size_type_node): Define. - (unsigned_ptrdiff_type_node): Define. - * c-decl.c (init_decl_processing): Create the - signed_size_type_node and unsigned_ptrdiff_type_node types. - * c-common.c (T_SC): Define. - (T_SST): Define. - (T_UPD): Define. - (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for - %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for - %s and %p. - (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for - %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the - flags for %c, %s and %[. - (check_format_info): Only allow leniency for signedness of targets - of character pointers (when pedantic) for formats flagged with - "c", so for strings but not for %hh formats. When pedantic, don't - allow character pointers to substitute for void pointers if a - second level of indirection is present. - -gcc/testsuite/ChangeLog: -2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/c99-printf-1.c: New test. - ---- gcc/c-common.h Sat Aug 5 20:36:33 2000 -+++ gcc/c-common.h Sat Aug 5 20:36:56 2000 -@@ -92,6 +92,8 @@ enum c_tree_index - CTI_SIGNED_WCHAR_TYPE, - CTI_UNSIGNED_WCHAR_TYPE, - CTI_WINT_TYPE, -+ CTI_SIGNED_SIZE_TYPE, /* For format checking only. */ -+ CTI_UNSIGNED_PTRDIFF_TYPE, /* For format checking only. */ - CTI_WIDEST_INT_LIT_TYPE, - CTI_WIDEST_UINT_LIT_TYPE, - -@@ -124,6 +126,8 @@ enum c_tree_index - #define signed_wchar_type_node c_global_trees[CTI_SIGNED_WCHAR_TYPE] - #define unsigned_wchar_type_node c_global_trees[CTI_UNSIGNED_WCHAR_TYPE] - #define wint_type_node c_global_trees[CTI_WINT_TYPE] -+#define signed_size_type_node c_global_trees[CTI_SIGNED_SIZE_TYPE] -+#define unsigned_ptrdiff_type_node c_global_trees[CTI_UNSIGNED_PTRDIFF_TYPE] - #define widest_integer_literal_type_node c_global_trees[CTI_WIDEST_INT_LIT_TYPE] - #define widest_unsigned_literal_type_node c_global_trees[CTI_WIDEST_UINT_LIT_TYPE] - ---- gcc/c-decl.c Sat Aug 5 20:36:35 2000 -+++ gcc/c-decl.c Sat Aug 5 20:36:56 2000 -@@ -3003,6 +3003,7 @@ init_decl_processing () - Note that stddef.h uses `unsigned long', - and this must agree, even if long and int are the same size. */ - t = TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (SIZE_TYPE))); -+ signed_size_type_node = signed_type (t); - if (flag_traditional && TREE_UNSIGNED (t)) - t = signed_type (t); - -@@ -3086,6 +3087,7 @@ init_decl_processing () - = build_function_type (integer_type_node, NULL_TREE); - ptrdiff_type_node - = TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (PTRDIFF_TYPE))); -+ unsigned_ptrdiff_type_node = unsigned_type (ptrdiff_type_node); - - c_common_nodes_and_builtins (0, flag_no_builtin, flag_no_nonansi_builtin); - ---- gcc/c-common.c Sat Aug 5 20:36:33 2000 -+++ gcc/c-common.c Sat Aug 5 20:38:01 2000 -@@ -1190,12 +1190,15 @@ strip_attrs (specs_attrs) - #define T_D &double_type_node - #define T_LD &long_double_type_node - #define T_C &char_type_node -+#define T_SC &signed_char_type_node - #define T_UC &unsigned_char_type_node - #define T_V &void_type_node - #define T_W &wchar_type_node - #define T_WI &wint_type_node - #define T_ST &sizetype -+#define T_SST &signed_size_type_node - #define T_PD &ptrdiff_type_node -+#define T_UPD &unsigned_ptrdiff_type_node - #define T_IM NULL /* intmax_t not yet implemented. */ - #define T_UIM NULL /* uintmax_t not yet implemented. */ - -@@ -1233,33 +1236,33 @@ typedef struct { - } format_char_info; - - static format_char_info print_char_table[] = { -- { "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_ST, T_PD, T_IM, "-wp0 +'" }, -- { "oxX", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_PD, T_UIM, "-wp0#" }, -- { "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_PD, T_UIM, "-wp0'" }, -+ { "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_SST, T_PD, T_IM, "-wp0 +'" }, -+ { "oxX", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_UPD, T_UIM, "-wp0#" }, -+ { "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_UPD, T_UIM, "-wp0'" }, - /* A GNU extension. */ - { "m", 0, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, - { "fFgG", 0, T_D, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "-wp0 +#'" }, - { "eEaA", 0, T_D, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "-wp0 +#" }, - { "c", 0, T_I, NULL, NULL, T_WI, NULL, NULL, NULL, NULL, NULL, "-w" }, - { "C", 0, T_WI, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, -- { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "-wp" }, -+ { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "-wpc" }, - { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, -- { "p", 1, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, -- { "n", 1, T_I, NULL, T_S, T_L, T_LL, NULL, T_ST, T_PD, T_IM, "" }, -+ { "p", 1, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-wc" }, -+ { "n", 1, T_I, T_SC, T_S, T_L, T_LL, NULL, T_SST, T_PD, T_IM, "" }, - { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } - }; - - static format_char_info scan_char_table[] = { -- { "di", 1, T_I, T_C, T_S, T_L, T_LL, T_LL, T_ST, T_PD, T_IM, "*" }, -- { "ouxX", 1, T_UI, T_UC, T_US, T_UL, T_ULL, T_ULL, T_ST, T_PD, T_UIM, "*" }, -+ { "di", 1, T_I, T_SC, T_S, T_L, T_LL, T_LL, T_SST, T_PD, T_IM, "*" }, -+ { "ouxX", 1, T_UI, T_UC, T_US, T_UL, T_ULL, T_ULL, T_ST, T_UPD, T_UIM, "*" }, - { "efFgEGaA", 1, T_F, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "*" }, -- { "c", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*" }, -- { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*a" }, -- { "[", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*a" }, -+ { "c", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*c" }, -+ { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*ac" }, -+ { "[", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*ac" }, - { "C", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*" }, - { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*a" }, - { "p", 2, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*" }, -- { "n", 1, T_I, T_C, T_S, T_L, T_LL, NULL, T_ST, T_PD, T_IM, "" }, -+ { "n", 1, T_I, T_SC, T_S, T_L, T_LL, NULL, T_SST, T_PD, T_IM, "" }, - { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } - }; - -@@ -2074,8 +2077,10 @@ check_format_info (info, params) - || (DECL_P (cur_param) && TREE_READONLY (cur_param)))))) - warning ("writing into constant object (arg %d)", arg_num); - -- /* Check whether the argument type is a character type. */ -- if (TREE_CODE (cur_type) != ERROR_MARK) -+ /* Check whether the argument type is a character type. This leniency -+ only applies to certain formats, flagged with 'c'. -+ */ -+ if (TREE_CODE (cur_type) != ERROR_MARK && index (fci->flag_chars, 'c') != 0) - char_type_flag = (TYPE_MAIN_VARIANT (cur_type) == char_type_node - || TYPE_MAIN_VARIANT (cur_type) == signed_char_type_node - || TYPE_MAIN_VARIANT (cur_type) == unsigned_char_type_node); -@@ -2093,7 +2098,7 @@ check_format_info (info, params) - && fci->pointer_count > 0 - && (! pedantic - || TYPE_MAIN_VARIANT (cur_type) == void_type_node -- || char_type_flag)) -+ || (i == 1 && char_type_flag))) - /* Don't warn about differences merely in signedness, unless - -pedantic. With -pedantic, warn if the type is a pointer - target and not a character type, and for character types at -@@ -2109,8 +2114,7 @@ check_format_info (info, params) - equivalent but the above test won't consider them equivalent. */ - && ! (wanted_type == char_type_node - && (! pedantic || i < 2) -- && (TYPE_MAIN_VARIANT (cur_type) == signed_char_type_node -- || TYPE_MAIN_VARIANT (cur_type) == unsigned_char_type_node))) -+ && char_type_flag)) - { - register const char *this; - register const char *that; ---- gcc/testsuite/gcc.dg/c99-printf-1.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c99-printf-1.c Sat Aug 5 22:37:13 2000 -@@ -0,0 +1,217 @@ -+/* Test for printf formats. Formats using C99 features, including cases -+ where C99 specifies some aspect of the format to be ignored or where -+ the behaviour is undefined. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic -Wformat" } */ -+ -+typedef __WCHAR_TYPE__ wchar_t; -+typedef __WINT_TYPE__ wint_t; -+typedef __SIZE_TYPE__ size_t; -+typedef __PTRDIFF_TYPE__ ptrdiff_t; -+ -+/* Kludge to get signed type corresponding to size_t. */ -+#define unsigned signed -+typedef __SIZE_TYPE__ signed_size_t; -+#undef unsigned -+ -+/* These next definitions are broken. When GCC has a <stdint.h> and -+ an internal understanding of intmax_t and uintmax_t, they should be -+ replaced by an include of <stdint.h> or by definitions for internal -+ macros or typedefs, and the corresponding xfails removed. -+*/ -+typedef long long int intmax_t; -+typedef unsigned long long int uintmax_t; -+ -+extern int printf (const char *, ...); -+ -+#define NULL ((void *)0) -+ -+void -+foo (int i, unsigned int u, double d, char *s, void *p, int *n, -+ long double ld, wint_t lc, wchar_t *ls, long long int ll, -+ unsigned long long int ull, signed char *ss, unsigned char *us, -+ long long int *lln, intmax_t j, uintmax_t uj, intmax_t *jn, -+ size_t z, signed_size_t sz, signed_size_t *zn, -+ ptrdiff_t t, ptrdiff_t *tn) -+{ -+ /* See ISO/IEC 9899:1999 (E) subclause 7.19.6.1 (pages 273-281). -+ We do not repeat here most of the checks for correct C90 formats -+ or completely broken formats. -+ */ -+ /* Valid and invalid %h, %hh, %l, %ll, %j, %z, %t, %L constructions. */ -+ printf ("%hf", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hF", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%he", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hE", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hg", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hG", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%ha", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hA", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hc", i); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hs", s); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hp", p); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hhd%hhi%hho%hhu%hhx%hhX", i, i, u, u, u, u); -+ printf ("%hhn", ss); -+ printf ("%hhf", d); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hhF", d); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hhe", d); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hhE", d); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hhg", d); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hhG", d); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hha", d); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hhA", d); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hhc", i); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hhs", s); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%hhp", p); /* { dg-warning "length character" "bad use of %hh" } */ -+ printf ("%lc", lc); -+ printf ("%ls", ls); -+ printf ("%lf%lF%le%lE%lg%lG%la%lA", d, d, d, d, d, d, d, d); -+ printf ("%lp", p); /* { dg-warning "length character|C" "bad use of %l" } */ -+ printf ("%lld%lli%llo%llu%llx%llX", ll, ll, ull, ull, ull, ull); -+ printf ("%lln", lln); -+ printf ("%llf", d); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%llF", d); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%lle", d); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%llE", d); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%llg", d); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%llG", d); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%lla", d); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%llA", d); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%llc", i); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%lls", s); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%llp", p); /* { dg-warning "length character" "bad use of %ll" } */ -+ printf ("%jd%ji%jo%ju%jx%jX", j, j, uj, uj, uj, uj); /* { dg-bogus "length character" "bogus %j warning" { xfail *-*-* } } */ -+ printf ("%jn", jn); /* { dg-bogus "length character" "bogus %j warning" { xfail *-*-* } } */ -+ printf ("%jf", d); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%jF", d); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%je", d); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%jE", d); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%jg", d); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%jG", d); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%ja", d); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%jA", d); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%jc", i); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%js", s); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%jp", p); /* { dg-warning "length character" "bad use of %j" } */ -+ printf ("%zd%zi%zo%zu%zx%zX", sz, sz, z, z, z, z); -+ printf ("%zn", zn); -+ printf ("%zf", d); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%zF", d); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%ze", d); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%zE", d); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%zg", d); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%zG", d); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%za", d); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%zA", d); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%zc", i); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%zs", s); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%zp", p); /* { dg-warning "length character" "bad use of %z" } */ -+ printf ("%td%ti%to%tu%tx%tX", t, t, t, t, t, t); -+ printf ("%tn", tn); -+ printf ("%tf", d); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%tF", d); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%te", d); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%tE", d); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%tg", d); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%tG", d); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%ta", d); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%tA", d); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%tc", i); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%ts", s); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%tp", p); /* { dg-warning "length character" "bad use of %t" } */ -+ printf ("%Le%LE%Lf%LF%Lg%LG%La%LA", ld, ld, ld, ld, ld, ld, ld, ld); -+ /* These next six are accepted by GCC as referring to long long, -+ but -pedantic correctly warns. -+ */ -+ printf ("%Ld", ll); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Li", ll); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Lo", ull); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Lu", ull); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Lx", ull); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%LX", ull); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Lc", i); /* { dg-warning "length character" "bad use of %L" } */ -+ printf ("%Ls", s); /* { dg-warning "length character" "bad use of %L" } */ -+ printf ("%Lp", p); /* { dg-warning "length character" "bad use of %L" } */ -+ printf ("%Ln", n); /* { dg-warning "length character" "bad use of %L" } */ -+ /* Valid uses of each bare conversion. */ -+ printf ("%d%i%o%u%x%X%f%F%e%E%g%G%a%A%c%s%p%n%%", i, i, u, u, u, u, -+ d, d, d, d, d, d, d, d, i, s, p, n); -+ /* Uses of the - flag (valid on all non-%, non-n conversions). */ -+ printf ("%-d%-i%-o%-u%-x%-X%-f%-F%-e%-E%-g%-G%-a%-A%-c%-s%-p", i, i, -+ u, u, u, u, d, d, d, d, d, d, d, d, i, s, p); -+ printf ("%-n", n); /* { dg-warning "flag" "bad use of %-n" } */ -+ /* Uses of the + flag (valid on signed conversions only). */ -+ printf ("%+d%+i%+f%+F%+e%+E%+g%+G%+a%+A\n", i, i, d, d, d, d, d, d, d, d); -+ printf ("%+o", u); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+u", u); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+x", u); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+X", u); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+c", i); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+s", s); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+p", p); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+n", n); /* { dg-warning "flag" "bad use of + flag" } */ -+ /* Uses of the space flag (valid on signed conversions only, and ignored -+ with +). -+ */ -+ printf ("% +d", i); /* { dg-warning "use of both" "use of space and + flags" } */ -+ printf ("%+ d", i); /* { dg-warning "use of both" "use of space and + flags" } */ -+ printf ("% d% i% f% F% e% E% g% G% a% A\n", i, i, d, d, d, d, d, d, d, d); -+ printf ("% o", u); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% u", u); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% x", u); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% X", u); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% c", i); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% s", s); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% p", p); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% n", n); /* { dg-warning "flag" "bad use of space flag" } */ -+ /* Uses of the # flag. */ -+ printf ("%#o%#x%#X%#e%#E%#f%#F%#g%#G%#a%#A", u, u, u, d, d, d, d, -+ d, d, d, d); -+ printf ("%#d", i); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#i", i); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#u", u); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#c", i); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#s", s); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#p", p); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#n", n); /* { dg-warning "flag" "bad use of # flag" } */ -+ /* Uses of the 0 flag. */ -+ printf ("%08d%08i%08o%08u%08x%08X%08e%08E%08f%08F%08g%08G%08a%08A", i, i, -+ u, u, u, u, d, d, d, d, d, d, d, d); -+ printf ("%0c", i); /* { dg-warning "flag" "bad use of 0 flag" } */ -+ printf ("%0s", s); /* { dg-warning "flag" "bad use of 0 flag" } */ -+ printf ("%0p", p); /* { dg-warning "flag" "bad use of 0 flag" } */ -+ printf ("%0n", n); /* { dg-warning "flag" "bad use of 0 flag" } */ -+ /* 0 flag ignored with precision for certain types, not others. */ -+ printf ("%08.5d", i); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5i", i); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5o", u); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5u", u); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5x", u); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5X", u); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5f%08.5F%08.5e%08.5E%08.5g%08.5G%08.5a%08.5A", -+ d, d, d, d, d, d, d, d); -+ /* 0 flag ignored with - flag. */ -+ printf ("%-08d", i); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08i", i); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08o", u); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08u", u); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08x", u); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08X", u); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08e", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08E", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08f", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08F", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08g", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08G", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08a", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08A", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ /* Various tests of bad argument types. Mostly covered in c90-printf-1.c; -+ here just test for pointer target sign with %hhn. (Probably allowed -+ by the standard, but a bad idea, so GCC should diagnose if what -+ is used is not signed char *.) -+ */ -+ printf ("%hhn", s); /* { dg-warning "format" "%hhn plain char" } */ -+ printf ("%hhn", us); /* { dg-warning "format" "%hhn unsigned char" } */ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-callersave-segv.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-callersave-segv.patch deleted file mode 100644 index 578914a8dd96..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-callersave-segv.patch +++ /dev/null @@ -1,95 +0,0 @@ -2000-10-10 Jakub Jelinek <jakub@redhat.com> - - * reload1.c (calculate_needs_all_insns): If deleting an instruction, - remove its insn_chain structure as well. - - * gcc.dg/20001009-1.c: New test. - ---- gcc/reload1.c.jj Thu Sep 28 10:33:03 2000 -+++ gcc/reload1.c Mon Oct 9 13:14:51 2000 -@@ -1330,15 +1330,17 @@ calculate_needs_all_insns (global) - int global; - { - struct insn_chain **pprev_reload = &insns_need_reload; -- struct insn_chain *chain; -+ struct insn_chain *chain, *next = 0; - - something_needs_elimination = 0; - - reload_insn_firstobj = (char *) obstack_alloc (&reload_obstack, 0); -- for (chain = reload_insn_chain; chain != 0; chain = chain->next) -+ for (chain = reload_insn_chain; chain != 0; chain = next) - { - rtx insn = chain->insn; - -+ next = chain->next; -+ - /* Clear out the shortcuts. */ - chain->n_reloads = 0; - chain->need_elim = 0; -@@ -1394,6 +1396,15 @@ calculate_needs_all_insns (global) - PUT_CODE (insn, NOTE); - NOTE_SOURCE_FILE (insn) = 0; - NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED; -+ /* Delete it from the reload chain */ -+ if (chain->prev) -+ chain->prev->next = next; -+ else -+ reload_insn_chain = next; -+ if (next) -+ next->prev = chain->prev; -+ chain->next = unused_insn_chains; -+ unused_insn_chains = chain; - continue; - } - } ---- gcc/testsuite/gcc.dg/20001009-1.c.jj Mon Oct 9 13:16:02 2000 -+++ gcc/testsuite/gcc.dg/20001009-1.c Mon Oct 9 13:17:22 2000 -@@ -0,0 +1,47 @@ -+/* { dg-do compile } */ -+/* { dg-options "-O2 -fpic" } */ -+ -+extern void foo (void *a, double x, double y); -+void -+bar (void *a, double b, double c, double d, double e, double f, double g, double h, double i, double j, double k[6]) -+{ -+ double l, m, n, o, p; -+ double q, r, s, t, u; -+ double x, y, v, w; -+ double z = 0.5 * j; -+ double aa; -+ l = b - 3 * d; -+ m = 4 * f; -+ n = f - h; -+ q = c + 3 * g - i; -+ r = 2 * (e - 2 * g + i); -+ s = g - i; -+ if (l != 0.0) -+ { -+ aa = 0.0; -+ o = (- m + aa); -+ p = (- m - aa); -+ if (o > 0.0) -+ { -+ x = ((b-h)*o + 3*(d+h)*o + 3*(f-h)*o); -+ y = ((c-i)*o + 3*(e+i)*o + 3*(g-i)*o); -+ foo (a, z, w); -+ foo (a, -z, w); -+ } -+ if (p > 0.0) -+ { -+ x = ((b+3*f-h)*p + 3*(d-2*f+h)*p + 3*p); -+ y = ((c+3*g-i)*p + 3*(e-2*g+i)*p + 3*p); -+ v = x * k[0] + y * k[2]; -+ w = x * k[1] + y * k[3]; -+ foo (a, z, w); -+ foo (a, - z, w); -+ } -+ } -+ if (q != 0.0) -+ { -+ aa = 0.0; -+ t = (- r + aa) / (2 * q); -+ u = (- r - aa) / (2 * q); -+ } -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-canon-cond.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-canon-cond.patch deleted file mode 100644 index 7e842546026d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-canon-cond.patch +++ /dev/null @@ -1,25 +0,0 @@ -Mon Jul 31 11:46:59 CEST 2000 Jan Hubicka <jh@suse.cz> - - * loop.c (canonicalize_condition): Use destination, not source to - determine SET's mode. - -*** gcc/loop.c.bug Mon Jul 31 11:45:37 2000 ---- gcc/loop.c Mon Jul 31 11:45:39 2000 -*************** canonicalize_condition (insn, cond, reve -*** 9024,9030 **** - relevant. */ - if (rtx_equal_p (SET_DEST (set), op0)) - { -! enum machine_mode inner_mode = GET_MODE (SET_SRC (set)); - - /* ??? We may not combine comparisons done in a CCmode with - comparisons not done in a CCmode. This is to aid targets ---- 9024,9030 ---- - relevant. */ - if (rtx_equal_p (SET_DEST (set), op0)) - { -! enum machine_mode inner_mode = GET_MODE (SET_DEST (set)); - - /* ??? We may not combine comparisons done in a CCmode with - comparisons not done in a CCmode. This is to aid targets - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-clear-hack.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-clear-hack.patch deleted file mode 100644 index a56673820e3d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-clear-hack.patch +++ /dev/null @@ -1,14 +0,0 @@ -Addition of clear() causes libstdc++ not to bootstrap on i386. -Until this is resolved, I'm removing it again. - ---- libstdc++/std/bastring.h.jj Sat Jul 15 19:53:09 2000 -+++ libstdc++/std/bastring.h Mon Mar 13 12:02:40 2000 -@@ -346,8 +346,6 @@ public: - { resize (n, eos ()); } - void reserve (size_type) { } - -- void clear() { erase(begin(), end()); } -- - size_type copy (charT* s, size_type n, size_type pos = 0) const; - - size_type find (const basic_string& str, size_type pos = 0) const diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-combine-comparison.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-combine-comparison.patch deleted file mode 100644 index 13a3247afc29..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-combine-comparison.patch +++ /dev/null @@ -1,18 +0,0 @@ -2000-08-01 Jakub Jelinek <jakub@redhat.com> - - * combine.c (combine_simplify_rtx): Use op0_mode and only - try other modes if op0_mode is VOIDmode. - ---- gcc/combine.c.jj Mon Jul 31 20:02:09 2000 -+++ gcc/combine.c Tue Aug 1 14:31:43 2000 -@@ -3640,7 +3640,9 @@ combine_simplify_rtx (x, op0_mode, last, - break; - case '<': - { -- enum machine_mode cmp_mode = GET_MODE (XEXP (x, 0)); -+ enum machine_mode cmp_mode = -+ op0_mode == VOIDmode ? GET_MODE (XEXP (x, 0)) : op0_mode; -+ - if (cmp_mode == VOIDmode) - cmp_mode = GET_MODE (XEXP (x, 1)); - temp = simplify_relational_operation (code, cmp_mode, diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-commutative.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-commutative.patch deleted file mode 100644 index 5e394c39610c..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-commutative.patch +++ /dev/null @@ -1,169 +0,0 @@ -Wed Aug 2 09:51:32 CEST 2000 Jan Hubicka <jh@suse.cz> - - * rtlanal.c (swap_commutative_operands_p): New function. - * rtl.h (swap_commutative_operands_p): Declare. - * simplify-rtx.c (simplify_gen_binary, simplify_relational_operation): - use it. - * combine.c (combine_simplify_rtx): Likewise. - (simplify_comparison): Likewise. - * recog.c (validate_replace_rtx_1): Likewise. - -*** gcc/rtlanal.c Mon Jul 31 20:07:38 2000 ---- gcc/rtlanal.c Wed Aug 2 01:18:47 2000 -*************** regno_use_in (regno, x) -*** 2256,2261 **** ---- 2256,2293 ---- - return NULL_RTX; - } - -+ /* Return 1 if it is desirable to swap operands of commutative operation. -+ We take care to not return 1 when the swap is not neccesary. */ -+ int -+ swap_commutative_operands_p (x, y) -+ rtx x, y; -+ { -+ /* Constant ought to go second. */ -+ if (CONSTANT_P (x)) -+ { -+ /* When first operand is not constant, always swap. */ -+ if (!CONSTANT_P (y)) -+ return 1; -+ /* Const int is always the second. */ -+ if (GET_CODE (x) == CONST_INT && GET_CODE (y) != CONST_INT) -+ return 1; -+ /* If not available make const_double the second. */ -+ if (GET_CODE (x) == CONST_DOUBLE && GET_CODE (y) != CONST_DOUBLE) -+ return 1; -+ } -+ /* Complex expression is always comming the first. */ -+ if (GET_RTX_CLASS (GET_CODE (x)) == 'o' -+ && GET_RTX_CLASS (GET_CODE (y)) != 'o') -+ return 1; -+ /* SUBREG is primitive operand, so put it the second. */ -+ if (GET_CODE (x) == SUBREG -+ && GET_RTX_CLASS (GET_CODE (SUBREG_REG (x))) == 'o' -+ && GET_RTX_CLASS (GET_CODE (y)) != 'o' -+ && (GET_CODE (x) != SUBREG -+ || GET_RTX_CLASS (GET_CODE (SUBREG_REG (y))) != 'o')) -+ return 1; -+ return 0; -+ } - - /* Return 1 if X is an autoincrement side effect and the register is - not the stack pointer. */ -*** gcc/rtl.h Tue Jul 25 23:33:16 2000 ---- gcc/rtl.h Mon Jul 31 22:46:55 2000 -*************** extern int reg_used_between_p PARAMS (( -*** 1260,1265 **** ---- 1260,1266 ---- - extern int reg_referenced_between_p PARAMS ((rtx, rtx, rtx)); - extern int reg_set_between_p PARAMS ((rtx, rtx, rtx)); - extern int regs_set_between_p PARAMS ((rtx, rtx, rtx)); -+ extern int swap_commutative_operands_p PARAMS ((rtx, rtx)); - extern int modified_between_p PARAMS ((rtx, rtx, rtx)); - extern int no_labels_between_p PARAMS ((rtx, rtx)); - extern int no_jumps_between_p PARAMS ((rtx, rtx)); -*** gcc/simplify-rtx.c Mon Jul 31 22:07:01 2000 ---- gcc/simplify-rtx.c Wed Aug 2 09:43:03 2000 -*************** simplify_gen_binary (code, mode, op0, op -*** 199,210 **** - - /* Put complex operands first and constants second if commutative. */ - if (GET_RTX_CLASS (code) == 'c' -! && ((CONSTANT_P (op0) && GET_CODE (op1) != CONST_INT) -! || (GET_RTX_CLASS (GET_CODE (op0)) == 'o' -! && GET_RTX_CLASS (GET_CODE (op1)) != 'o') -! || (GET_CODE (op0) == SUBREG -! && GET_RTX_CLASS (GET_CODE (SUBREG_REG (op0))) == 'o' -! && GET_RTX_CLASS (GET_CODE (op1)) != 'o'))) - tem = op0, op0 = op1, op1 = tem; - - /* If this simplifies, do it. */ ---- 199,205 ---- - - /* Put complex operands first and constants second if commutative. */ - if (GET_RTX_CLASS (code) == 'c' -! && swap_commutative_operands_p (op0, op1)) - tem = op0, op0 = op1, op1 = tem; - - /* If this simplifies, do it. */ -*************** simplify_relational_operation (code, mod -*** 1710,1717 **** - return 0; - - /* Make sure the constant is second. */ -! if ((CONSTANT_P (op0) && ! CONSTANT_P (op1)) -! || (GET_CODE (op0) == CONST_INT && GET_CODE (op1) != CONST_INT)) - { - tem = op0, op0 = op1, op1 = tem; - code = swap_condition (code); ---- 1710,1716 ---- - return 0; - - /* Make sure the constant is second. */ -! if (swap_commutative_operands_p (op0, op1)) - { - tem = op0, op0 = op1, op1 = tem; - code = swap_condition (code); -*** gcc/combine.c Mon Jul 31 21:55:15 2000 ---- gcc/combine.c Wed Aug 2 09:43:27 2000 -*************** combine_simplify_rtx (x, op0_mode, last, -*** 3492,3503 **** - /* If this is a commutative operation, put a constant last and a complex - expression first. We don't need to do this for comparisons here. */ - if (GET_RTX_CLASS (code) == 'c' -! && ((CONSTANT_P (XEXP (x, 0)) && GET_CODE (XEXP (x, 1)) != CONST_INT) -! || (GET_RTX_CLASS (GET_CODE (XEXP (x, 0))) == 'o' -! && GET_RTX_CLASS (GET_CODE (XEXP (x, 1))) != 'o') -! || (GET_CODE (XEXP (x, 0)) == SUBREG -! && GET_RTX_CLASS (GET_CODE (SUBREG_REG (XEXP (x, 0)))) == 'o' -! && GET_RTX_CLASS (GET_CODE (XEXP (x, 1))) != 'o'))) - { - temp = XEXP (x, 0); - SUBST (XEXP (x, 0), XEXP (x, 1)); ---- 3533,3539 ---- - /* If this is a commutative operation, put a constant last and a complex - expression first. We don't need to do this for comparisons here. */ - if (GET_RTX_CLASS (code) == 'c' -! && swap_commutative_operands_p (XEXP (x, 0), XEXP (x, 1))) - { - temp = XEXP (x, 0); - SUBST (XEXP (x, 0), XEXP (x, 1)); -*************** simplify_comparison (code, pop0, pop1) -*** 10074,10080 **** - /* If the first operand is a constant, swap the operands and adjust the - comparison code appropriately, but don't do this if the second operand - is already a constant integer. */ -! if (CONSTANT_P (op0) && GET_CODE (op1) != CONST_INT) - { - tem = op0, op0 = op1, op1 = tem; - code = swap_condition (code); ---- 10150,10156 ---- - /* If the first operand is a constant, swap the operands and adjust the - comparison code appropriately, but don't do this if the second operand - is already a constant integer. */ -! if (swap_commutative_operands_p (op0, op1)) - { - tem = op0, op0 = op1, op1 = tem; - code = swap_condition (code); -*** gcc/recog.c Fri Jul 21 00:01:48 2000 ---- gcc/recog.c Mon Jul 31 23:47:35 2000 -*************** validate_replace_rtx_1 (loc, from, to, o -*** 435,441 **** - - validate_replace_rtx_1 (&XEXP (x, 0), from, to, object); - validate_replace_rtx_1 (&XEXP (x, 1), from, to, object); -! if (prev_changes != num_changes && CONSTANT_P (XEXP (x, 0))) - { - validate_change (object, loc, - gen_rtx_fmt_ee (GET_RTX_CLASS (code) == 'c' ? code ---- 438,445 ---- - - validate_replace_rtx_1 (&XEXP (x, 0), from, to, object); - validate_replace_rtx_1 (&XEXP (x, 1), from, to, object); -! if (prev_changes != num_changes -! && swap_commutative_operands_p (XEXP (x, 0), XEXP (x, 1))) - { - validate_change (object, loc, - gen_rtx_fmt_ee (GET_RTX_CLASS (code) == 'c' ? code - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cp-ii.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cp-ii.patch deleted file mode 100644 index b54883de2b7c..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cp-ii.patch +++ /dev/null @@ -1,20 +0,0 @@ -2000-07-28 Jason Merrill <jason@redhat.com> - - * lang-specs.h: Use %i in rule for .ii files. - -*** gcc/cp/lang-specs.h 2000/07/31 18:29:57 1.26 ---- gcc/cp/lang-specs.h 2000/07/31 20:58:01 -*************** Boston, MA 02111-1307, USA. */ -*** 51,55 **** - {".ii", "@c++-cpp-output"}, - {"@c++-cpp-output", - "%{!M:%{!MM:%{!E:\ -! cc1plus -fpreprocessed %{!pipe:%g.ii} %(cc1_options) %{+e*}\ - %{!S:-o %{|!pipe:%g.s} |\n as %(asm_options) %{!pipe:%g.s} %A }}}}"}, ---- 51,55 ---- - {".ii", "@c++-cpp-output"}, - {"@c++-cpp-output", - "%{!M:%{!MM:%{!E:\ -! cc1plus -fpreprocessed %i %(cc1_options) %{+e*}\ - %{!S:-o %{|!pipe:%g.s} |\n as %(asm_options) %{!pipe:%g.s} %A }}}}"}, - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-assert-crash.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-assert-crash.patch deleted file mode 100644 index a104e6fc2071..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-assert-crash.patch +++ /dev/null @@ -1,16 +0,0 @@ -2000-10-30 Jakub Jelinek <jakub@redhat.com> - - * cpplib.c (_cpp_parse_assertion): Don't crash if -A is given on the - command line to cpp without opening paren. - ---- gcc/cpplib.c.jj Fri Oct 27 18:40:14 2000 -+++ gcc/cpplib.c Mon Oct 30 12:41:30 2000 -@@ -1226,7 +1226,7 @@ _cpp_parse_assertion (pfile, answerp) - if (token->type == CPP_EOF) - goto lookup_node; - } -- else if (d != &dtable[T_ASSERT]) -+ else if (d != &dtable[T_ASSERT] && d) - { - _cpp_push_token (pfile, token); - goto lookup_node; diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-warn.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-warn.patch deleted file mode 100644 index 5bc3949d6d60..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-warn.patch +++ /dev/null @@ -1,1213 +0,0 @@ -2000-08-02 Zack Weinberg <zack@wolery.cumb.org> - - * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c, - cppspec.c: Do not use 'legal' or 'illegal' in error messages - and comments. - - * cpplex.c (maybe_paste_with_next): When the token after a ## - is an omitted rest argument, only delete the token before it - if that token is a comma. Do not warn about bogus token - pastes for , ## rest_arg. - - * cpp.texi: Update. - * cpp.1: Regenerate. - - * gcc.dg/cpp/macsyntx.c: Fix error regexp. - ---- gcc/cppexp.c 2000/07/24 21:49:34 1.71 -+++ gcc/cppexp.c 2000/08/02 06:56:27 -@@ -193,7 +193,7 @@ parse_number (pfile, tok) - { - /* Check for a floating point constant. Note that float constants - with an exponent or suffix but no decimal point are technically -- illegal (C99 6.4.4.2) but accepted elsewhere. */ -+ invalid (C99 6.4.4.2) but accepted elsewhere. */ - if ((c == '.' || c == 'F' || c == 'f') - || (base == 10 && (c == 'E' || c == 'e') - && p+1 < end && (p[1] == '+' || p[1] == '-')) ---- gcc/cppinit.c 2000/08/02 01:13:43 1.98 -+++ gcc/cppinit.c 2000/08/02 06:56:27 -@@ -785,7 +785,7 @@ cpp_start_read (pfile, print, fname) - if (CPP_OPTION (pfile, cplusplus)) - CPP_OPTION (pfile, warn_traditional) = 0; - -- /* Do not warn about illegal token pasting if -lang-asm. */ -+ /* Do not warn about invalid token pasting if -lang-asm. */ - if (CPP_OPTION (pfile, lang_asm)) - CPP_OPTION (pfile, warn_paste) = 0; - ---- gcc/cpplex.c 2000/08/02 01:13:43 1.84 -+++ gcc/cpplex.c 2000/08/02 06:56:28 -@@ -201,6 +201,10 @@ TOKEN_LEN (token) - - #define IS_ARG_CONTEXT(c) ((c)->flags & CONTEXT_ARG) - #define CURRENT_CONTEXT(pfile) ((pfile)->contexts + (pfile)->cur_context) -+#define ON_REST_ARG(c) \ -+ (((c)->flags & VAR_ARGS) \ -+ && (c)->u.list->tokens[(c)->posn].val.aux \ -+ == (unsigned int) ((c)->u.list->paramc - 1)) - - #define ASSIGN_FLAGS_AND_POS(d, s) \ - do {(d)->flags = (s)->flags & (PREV_WHITE | BOL | PASTE_LEFT); \ -@@ -990,7 +994,7 @@ parse_name (pfile, tok, cur, rlimit) - { - if (! is_idchar (*cur)) - break; -- /* $ is not a legal identifier character in the standard, but is -+ /* $ is not a identifier character in the standard, but is - commonly accepted as an extension. Don't warn about it in - skipped conditional blocks. */ - if (*cur == '$' && CPP_PEDANTIC (pfile) && ! pfile->skipping) -@@ -2732,10 +2736,11 @@ maybe_paste_with_next (pfile, token) - pasted = duplicate_token (pfile, second); - else if (second->type == CPP_PLACEMARKER) - { -- /* GCC has special extended semantics for a ## b where b is -- a varargs parameter: a disappears if b was given no actual -- arguments (not merely if b is an empty argument). */ -- if (second->flags & VOID_REST) -+ /* GCC has special extended semantics for , ## b where b is -+ a varargs parameter: the comma disappears if b was given -+ no actual arguments (not merely if b is an empty -+ argument). */ -+ if (token->type == CPP_COMMA && second->flags & VOID_REST) - pasted = duplicate_token (pfile, second); - else - pasted = duplicate_token (pfile, token); -@@ -2748,8 +2753,19 @@ maybe_paste_with_next (pfile, token) - if (type == CPP_EOF) - { - if (CPP_OPTION (pfile, warn_paste)) -- cpp_warning (pfile, -+ { -+ /* Do not complain about , ## <whatever> if -+ <whatever> came from a variable argument, because -+ the author probably intended the ## to trigger -+ the special extended semantics (see above). */ -+ if (token->type == CPP_COMMA -+ && IS_ARG_CONTEXT (CURRENT_CONTEXT (pfile)) -+ && ON_REST_ARG (CURRENT_CONTEXT (pfile) - 1)) -+ /* no warning */; -+ else -+ cpp_warning (pfile, - "pasting would not give a valid preprocessing token"); -+ } - _cpp_push_token (pfile, second); - return token; - } -@@ -3287,7 +3303,7 @@ lex_next (pfile, clear) - - /* Pops a context off the context stack. If we're at the bottom, lexes - the next logical line. Returns EOF if we're at the end of the -- argument list to the # operator, or if it is illegal to "overflow" -+ argument list to the # operator, or we should not "overflow" - into the rest of the file (e.g. 6.10.3.1.1). */ - static int - pop_context (pfile) ---- gcc/cpplib.c 2000/08/02 01:13:44 1.194 -+++ gcc/cpplib.c 2000/08/02 06:56:28 -@@ -433,7 +433,7 @@ read_line_number (pfile, num) - - /* Another subroutine of do_line. Convert a number in STR, of length - LEN, to binary; store it in NUMP, and return 0 if the number was -- legal, 1 if not. Temporary, hopefully. */ -+ well-formed, 1 if not. Temporary, hopefully. */ - static int - strtoul_for_line (str, len, nump) - const U_CHAR *str; ---- gcc/cppmacro.c 2000/08/02 01:13:44 1.5 -+++ gcc/cppmacro.c 2000/08/02 06:56:29 -@@ -127,7 +127,7 @@ count_params (pfile, info) - { - default: - cpp_error_with_line (pfile, token->line, token->col, -- "illegal token in macro parameter list"); -+ "token may not appear in macro parameter list"); - return; - - case CPP_EOF: -@@ -462,7 +462,7 @@ save_expansion (pfile, info) - else - dest->flags = token->flags; /* Particularly PREV_WHITE. */ - /* Turn off PREV_WHITE if we immediately follow a paste. -- That way, even if the paste turns out to be illegal, there -+ That way, even if the paste turns out to be invalid, there - will be no space between the two tokens in the output. */ - if (token[-1].type == CPP_PASTE) - dest->flags &= ~PREV_WHITE; ---- gcc/cppspec.c 2000/07/04 00:01:11 1.9 -+++ gcc/cppspec.c 2000/08/02 06:56:29 -@@ -125,7 +125,7 @@ lang_specific_driver (in_argc, in_argv, - need_E = 0; - else if (argv[i][1] == 'S' || argv[i][1] == 'c') - { -- fatal ("\"%s\" is not a legal option to the preprocessor", -+ fatal ("\"%s\" is not a valid option to the preprocessor", - argv[i]); - return; - } ---- gcc/testsuite/gcc.dg/cpp/macsyntx.c 2000/07/20 17:57:38 1.4 -+++ gcc/testsuite/gcc.dg/cpp/macsyntx.c 2000/08/02 06:56:30 -@@ -28,7 +28,7 @@ - #define foo(, X) /* { dg-error "parameter name" } */ - #define foo(X, X) /* { dg-error "duplicate" } */ - #define foo(X Y) /* { dg-error "comma" } */ --#define foo(() /* { dg-error "illegal token" } */ -+#define foo(() /* { dg-error "token may not appear" } */ - #define foo(..., X) /* { dg-error "missing" } */ - #define foo \ - __VA_ARGS__ /* { dg-warning "__VA_ARGS__" } */ ---- gcc/cpp.texi 2000/07/27 02:19:28 1.29 -+++ gcc/cpp.texi 2000/08/02 06:56:27 -@@ -116,13 +116,13 @@ C preprocessors vary in some details. T - preprocessor, which provides a small superset of the features of ISO - Standard C@. - --ISO Standard C requires the rejection of many harmless constructs --commonly used by today's C programs. Such incompatibility would be --inconvenient for users, so the GNU C preprocessor is configured to --accept these constructs by default. Strictly speaking, to get ISO --Standard C, you must use the options @samp{-trigraphs}, @samp{-undef} --and @samp{-pedantic}, but in practice the consequences of having strict --ISO Standard C make it undesirable to do this. @xref{Invocation}. -+In its default mode, the GNU C preprocessor does not do a few things -+required by the standard. These are features which are rarely, if ever, -+used, and may cause surprising changes to the meaning of a program which -+does not expect them. To get strict ISO Standard C, you should use the -+@samp{-std=c89} or @samp{-std=c99} options, depending on which version -+of the standard you want. To get all the mandatory diagnostics, you -+must also use @samp{-pedantic}. @xref{Invocation}. - - @c man end - -@@ -172,11 +172,10 @@ Predefined macro names are replaced with - (@pxref{Predefined}). - @end itemize - --The first three transformations are done @emph{before} nearly all other --parsing and before preprocessing directives are recognized. Thus, for --example, you can split a line cosmetically with backslash-newline --anywhere (except within trigraphs since they are replaced first; see --below). -+The first three transformations are done @emph{before} all other parsing -+and before preprocessing directives are recognized. Thus, for example, -+you can split a line mechanically with backslash-newline anywhere -+(except within trigraphs since they are replaced first; see below). - - @example - /* -@@ -188,39 +187,44 @@ O 10\ - @end example - - @noindent --is equivalent into @samp{#define FOO 1020}. You can split even an --escape sequence with backslash-newline. For example, you can split --@code{"foo\bar"} between the @samp{\} and the @samp{b} to get -+is equivalent into @samp{#define FOO 1020}. - -+There is no way to prevent a backslash at the end of a line from being -+interpreted as a backslash-newline. For example, -+ - @example - "foo\\ - bar" - @end example - --@noindent --This behavior can be confusing: in all other contexts, a backslash can --be inserted in a string constant as an ordinary character by writing a --double backslash. This is an exception, but the ISO C standard requires --it. (Strict ISO C does not allow string constants to extend to more --than one logical line, so they do not consider this a problem.) -+is equivalent to @code{"foo\bar"}, not to @code{"foo\\bar"}. To avoid -+having to worry about this, do not use the GNU extension which permits -+multiline strings. Instead, use string constant concatenation: - -+@example -+ "foo\\" -+ "bar" -+@end example -+ -+Your program will be more portable this way, too. -+ - There are a few exceptions to all three transformations. - - @itemize @bullet - @item --C comments and predefined macro names are not recognized inside a --@samp{#include} directive in which the file name is delimited with --@samp{<} and @samp{>}. What lies in-between is read literally. -+Comments and predefined macro names (or any macro names, for that -+matter) are not recognized inside the argument of an @samp{#include} -+directive, whether it is delimited with quotes or with @samp{<} and -+@samp{>}. - - @item --C comments and predefined macro names are never recognized within a -+Comments and predefined macro names are never recognized within a - character or string constant. (Strictly speaking, this is the rule, - not an exception, but it is worth noting here anyway.) - - @item --Backslash-newline may not safely be used within an ISO ``trigraph'', --since trigraphs are converted before backslash-newlines are deleted. If --you write what looks like a trigraph with a backslash-newline inside, -+ISO ``trigraphs'' are converted before backslash-newlines are deleted. -+If you write what looks like a trigraph with a backslash-newline inside, - the backslash-newline is deleted as usual, but it is then too late to - recognize the trigraph. - -@@ -234,7 +238,7 @@ are referring not to the two-character e - single character ASCII NUL. - - There are three different contexts in which a null character may --appear:- -+appear: - - @itemize @bullet - @item -@@ -367,13 +371,6 @@ for header files with the command option - The option @samp{-nostdinc} inhibits searching the standard system - directories; in this case only the directories you specify are searched. - --The parsing of this form of @samp{#include} is slightly special because --comments are not recognized within the @samp{<@dots{}>}. Thus, in --@samp{#include <x/*y>} the @samp{/*} does not start a comment and the --directive specifies inclusion of a system header file named @file{x/*y}. --Of course, a header file with such a name is unlikely to exist on Unix, --where shell wildcard features would make it hard to manipulate.@refill -- - The first @samp{>} character terminates the file name. The file name - may contain a @samp{<} character. - -@@ -384,15 +381,22 @@ same directories used for system header - the directory of the current input file. It is tried first because it - is presumed to be the location of the files that the current input file - refers to. (If the @samp{-I-} option is used, the special treatment of --the current directory is inhibited.) -+the current directory is inhibited. @xref{Invocation}.) - --The first @samp{"} character terminates the file name. If backslashes --occur within @var{file}, they are considered ordinary text characters, --not escape characters. None of the character escape sequences --appropriate to string constants in C are processed. Thus, --@samp{#include "x\n\\y"} specifies a filename containing three --backslashes. -+The first @samp{"} character terminates the file name. - -+In both these variants, the argument behaves like a string constant in -+that comments are not recognized, and macro names are not expanded. -+Thus, in @samp{#include <x/*y>} the @samp{/*} does not start a comment -+and the directive specifies inclusion of a system header file named -+@file{x/*y}. -+ -+However, in either variant, if backslashes occur within @var{file}, they -+are considered ordinary text characters, not escape characters. None of -+the character escape sequences appropriate to string constants in C are -+processed. Thus, @samp{#include "x\n\\y"} specifies a filename -+containing three backslashes. -+ - @item #include @var{anything else} - @cindex computed @samp{#include} - This variant is called a @dfn{computed #include}. Any @samp{#include} -@@ -914,23 +918,45 @@ eprintf ("%s:%d: ", input_file_name, lin - @expansion{} - fprintf (stderr, "%s:%d: " , input_file_name, line_number) - @end example -+ -+Within a @samp{#define} directive, ISO C mandates that the only place -+the identifier @code{__VA_ARGS__} can appear is in the replacement list -+of a variable-argument macro. It may not be used as a macro name, macro -+argument name, or within a different type of macro. It may also be -+forbidden in open text; the standard is ambiguous. We recommend you -+avoid using it except for its defined purpose. -+ -+If your macro is complicated, you may want a more descriptive name for -+the variable argument than @code{__VA_ARGS__}. GNU CPP permits this, as -+an extension. You may write an argument name immediately before the -+@samp{@dots{}}; that name is used for the variable argument. The -+@code{eprintf} macro above could be written -+ -+@example -+#define eprintf(args...) fprintf (stderr, args) -+@end example -+ -+@noindent -+using this extension. You cannot use @code{__VA_ARGS__} and this -+extension in the same macro. - --We might instead have defined eprintf as follows:- -+We might instead have defined eprintf as follows: - - @example - #define eprintf(format, ...) fprintf (stderr, format, __VA_ARGS__) - @end example - --This formulation looks more descriptive, but unfortunately causes --problems if fprintf wants no arguments the format. There is no way to --produce expanded output of -+This formulation looks more descriptive, but cannot be used as flexibly. -+There is no way to produce expanded output of - - @example - fprintf (stderr, "success!\n") - @end example - - @noindent --since passing an empty argument for the variable arguments part like this -+because, in standard C, you are not allowed to leave the variable -+argument out entirely, and passing an empty argument for the variable -+arguments will not do what you want. Writing - - @example - eprintf ("success!\n", ) -@@ -947,29 +973,30 @@ fprintf (stderr, "success!\n",) - where the extra comma originates from the replacement list and not from - the arguments to eprintf. - --Within a @samp{#define} directive, ISO C mandates that the only place --the identifier @code{__VA_ARGS__} can appear is in the replacement list --of a variable-argument macro. Using it as a macro name, macro argument --or within a different type of macro is illegal. -+There is another extension in the GNU C preprocessor which deals with -+this difficulty. First, you are allowed to leave the variable argument -+out entirely: -+ -+@example -+eprintf ("success!\n") -+@end example -+ -+Second, the @samp{##} token paste operator has a special meaning when -+placed between a comma and a variable argument. If you write - --Before standardization, previous GNU preprocessors implemented a --slightly different syntax for defining variable-argument macros. The --macros were called ``rest args macros''. You could assign a name to the --variable arguments, by contrast the standardized method leaves them --anonymous. For example, the eprintf macro could have been defined like --this -- --@example --#define eprintf(format...) fprintf (stderr, format) --@end example -- --Now that there is a standardized construct, you are encouraged to use --that instead. It is unlikely that support for named variable arguments --will be removed in future revisions of CPP, since being able to assign a --name is descriptive, and there is a wide base of legacy code. However, --two obscure features of the GNU style are deprecated and likely to be --dropped in future. @xref{Unreliable Features}. -+@example -+#define eprintf(format, ...) fprintf (stderr, format, ##__VA_ARGS__) -+@end example - -+and the variable argument is left out when the @samp{eprintf} macro is -+used, then the comma before the @samp{##} will be deleted. This does -+@emph{not} happen if you pass an empty argument, nor does it happen if -+the token preceding @samp{##} is anything other than a comma. -+ -+Previous versions of the preprocessor implemented this extension much -+more generally. We have restricted it in order to minimize the -+difference from the C standard. @xref{Unreliable Features}. -+ - @node Predefined, Stringification, Macro Varargs, Macros - @subsection Predefined Macros - -@@ -2790,42 +2817,52 @@ It is undefined which of these two opera - - @end itemize - --The following features are deprecated and will likely be removed at some --point in the future:- -+The following features are in flux and should not be used in portable -+code: - - @itemize @bullet - --@item ## swallowing the previous token in GNU rest argument macros -+@item Optional argument when invoking rest argument macros - --In a macro expansion, if ## appeared before a GNU named variable arguments --parameter, and the set of tokens specified for that argument in the --macro invocation was empty, previous versions of the GNU C preprocessor --would back up and remove the token appearing before the ##. This --behavior was not well-defined, and alternative ways of achieving its --intended use are available. Since the ISO C standard now provides for --variable-argument macros, and since this old behavior potentially --conflicts with behavior mandated by the standard, this feature is now --deprecated and will be removed in future. -- --The current preprocessor still supports it for reasons of code --migration, and warns at each use of the feature. -- --@item Optional argument when invoking GNU rest argument macros -- --In the invocation of a GNU named variable arguments macro, the variable --arguments were optional. For example, the following two invocations are --both legal for GNU rest args. The first is illegal in the equivalent --formulation using ISO C anonymous variable arguments and --@code{__VA_ARGS__}:- -+As an extension, GCC permits you to omit the variable arguments entirely -+when you use a variable argument macro. This works whether or not you -+give the variable argument a name. For example, the two macro -+invocations in the example below expand to the same thing: - - @smallexample --#define debug(format, args...) printf (format, args) --debug("string"); /* Illegal in ISO C equivalent. */ --debug("string",); /* OK for both. */ -+#define debug(format, ...) printf (format, __VA_ARGS__) -+debug("string"); /* Not permitted by C standard. */ -+debug("string",); /* OK. */ - @end smallexample -+ -+This extension will be preserved, but the special behavior of @samp{##} -+in this context has changed in the past and may change again in the -+future. -+ -+@item ## swallowing preceding text in rest argument macros -+ -+Formerly, in a macro expansion, if @samp{##} appeared before a variable -+arguments parameter, and the set of tokens specified for that argument in -+the macro invocation was empty, previous versions of the GNU C -+preprocessor would back up and remove the preceding sequence of -+nonwhitespace characters (@strong{not} the preceding token). This -+extension is in direct conflict with the 1999 C standard and has been -+drastically pared back. -+ -+In the current version of the preprocessor, if @samp{##} appears between -+a comma and a variable arguments parameter, and the variable argument is -+omitted entirely, the comma will be removed from the expansion. If the -+variable argument is empty, or the token before @samp{##} is not a -+comma, then @samp{##} behaves as a normal token paste. -+ -+Portable code should avoid this extension at all costs. -+ -+@end itemize -+ -+The following features are deprecated and will likely be removed at some -+point in the future:- - --The current preprocessor still supports it for reasons of code --migration, and warns at each use of the feature. -+@itemize @bullet - - @item Attempting to paste two tokens which together do not form a valid - preprocessing token -@@ -2834,6 +2871,10 @@ The preprocessor currently warns about t - adjacently, which is probably the behavior the programmer intends. It - may not work in future, though. - -+Most of the time, when you get this warning, you will find that @samp{##} -+is being used superstitiously, to guard against whitespace appearing -+between two tokens. It is almost always safe to delete the @samp{##}. -+ - @findex #pragma once - @item #pragma once - -@@ -2849,7 +2890,33 @@ This pragma has been superceded by @samp - @item Multi-line string literals in directives - - The GNU C preprocessor currently allows newlines in string literals --within a directive. -+within a directive. This is forbidden by the C standard and will -+eventually be removed. (Multi-line string literals in open text are -+still supported.) -+ -+@item Preprocessing things which are not C -+ -+The C preprocessor is intended to be used only with C, C++, and -+Objective C source code. In the past, it has been abused as a general -+text processor. It will choke on input which is not lexically valid C; -+for example, apostrophes will be interpreted as the beginning of -+character constants, and cause errors. Also, you cannot rely on it -+preserving characteristics of the input which are not significant to -+C-family languages. For instance, if a Makefile is preprocessed, all -+the hard tabs will be lost, and the Makefile will not work. -+ -+Having said that, you can often get away with using cpp on things which -+are not C. Other Algol-ish programming languages are often safe -+(Pascal, Ada, ...) and so is assembly, with caution. @samp{-traditional} -+mode is much more permissive, and can safely be used with e.g. Fortran. -+Many of the problems go away if you write C or C++ style comments -+instead of native language comments, and if you avoid elaborate macros. -+ -+Wherever possible, you should use a preprocessor geared to the language -+you are writing in. Modern versions of the GNU assembler have macro -+facilities. Most high level programming languages have their own -+conditional compilation and inclusion mechanism. If all else fails, -+try a true general text processor, such as @xref{Top, M4, , m4, GNU `m4'}. - - @end itemize - -@@ -2900,11 +2967,10 @@ compiler. - @table @samp - @item -P - @findex -P --Inhibit generation of @samp{#}-lines with line-number information in --the output from the preprocessor (@pxref{Output}). This might be --useful when running the preprocessor on something that is not C code --and will be sent to a program which might be confused by the --@samp{#}-lines. -+Inhibit generation of @samp{#}-lines with line-number information in the -+output from the preprocessor. This might be useful when running the -+preprocessor on something that is not C code and will be sent to a -+program which might be confused by the @samp{#}-lines. @xref{Output}. - - @item -C - @findex -C -@@ -2914,8 +2980,8 @@ along with the directive. Comments appe - macro will be preserved, and appear in place wherever the macro is - invoked. - --You should be prepared for side effects when using -C; it causes the --preprocessor to treat comments as tokens in their own right. For -+You should be prepared for side effects when using @samp{-C}; it causes -+the preprocessor to treat comments as tokens in their own right. For - example, macro redefinitions that were trivial when comments were - replaced by a single space might become significant when comments are - retained. Also, comments appearing at the start of what would be a -@@ -2925,7 +2991,6 @@ source line, since the first token on th - @item -traditional - @findex -traditional - Try to imitate the behavior of old-fashioned C, as opposed to ISO C@. --Note: support for this option is currently fairly broken. - - @itemize @bullet - @item -@@ -2966,8 +3031,9 @@ together with the text after the macro c - (This is impossible in ISO C@.) - - @item --Traditionally, @samp{\} inside a macro argument suppresses the syntactic --significance of the following character. -+None of the GNU extensions to the preprocessor are available in -+@samp{-traditional} mode. -+ - @end itemize - - @cindex Fortran -@@ -3010,22 +3076,45 @@ place of @code{cpp}. - Process ISO standard trigraph sequences. These are three-character - sequences, all starting with @samp{??}, that are defined by ISO C to - stand for single characters. For example, @samp{??/} stands for --@samp{\}, so @samp{'??/n'} is a character constant for a newline. --Strictly speaking, the GNU C preprocessor does not conform to ISO --Standard C unless @samp{-trigraphs} is used, but if you ever notice the --difference it will be with relief. -+@samp{\}, so @samp{'??/n'} is a character constant for a newline. By -+default, GCC ignores trigraphs, but in standard-conforming modes it -+converts them. See the @samp{-std} option. - - The nine trigraph sequences are --@samp{??(} -> @samp{[}, --@samp{??)} -> @samp{]}, --@samp{??<} -> @samp{@{}, --@samp{??>} -> @samp{@}}, --@samp{??=} -> @samp{#}, --@samp{??/} -> @samp{\}, --@samp{??'} -> @samp{^}, --@samp{??!} -> @samp{|}, --@samp{??-} -> @samp{~} -+@table @samp -+@item ??( -+-> @samp{[} -+ -+@item ??) -+-> @samp{]} -+ -+@item ??< -+-> @samp{@{} - -+@item ??> -+-> @samp{@}} -+ -+@item ??= -+-> @samp{#} -+ -+@item ??/ -+-> @samp{\} -+ -+@item ??' -+-> @samp{^} -+ -+@item ??! -+-> @samp{|} -+ -+@item ??- -+-> @samp{~} -+ -+@end table -+ -+Trigraph support is not popular, so many compilers do not implement it -+properly. Portable code should not rely on trigraphs being either -+converted or ignored. -+ - @item -pedantic - @findex -pedantic - Issue warnings required by the ISO C standard in certain cases such -@@ -3038,19 +3127,15 @@ warnings. - - @item -Wcomment - @findex -Wcomment --@ignore --@c "Not worth documenting" both singular and plural forms of this --@c option, per RMS. Also unclear which is better; hence may need to --@c switch this at some future date. pesch@cygnus.com, 2jan92. - @itemx -Wcomments - (Both forms have the same effect). --@end ignore - Warn whenever a comment-start sequence @samp{/*} appears in a @samp{/*} - comment, or whenever a backslash-newline appears in a @samp{//} comment. - - @item -Wtrigraphs - @findex -Wtrigraphs --Warn if any trigraphs are encountered. -+Warn if any trigraphs are encountered. This option used to take effect -+only if @samp{-trigraphs} was also specified, but now works independently. - - @item -Wwhite-space - @findex -Wwhite-space -@@ -3181,6 +3266,10 @@ predefined macros, and it outputs @emph{ - directives and the result of preprocessing. Both kinds of output go to - the standard output file. - -+@item -dN -+@findex -dN -+Like @samp{-dD}, but emit only the macro names, not their expansions. -+ - @item -dI - @findex -dI - Output @samp{#include} directives in addition to the result of -@@ -3327,20 +3416,9 @@ The 1990 C standard plus GNU extensions. - The 1999 C standard plus GNU extensions. - @end table - --@item -Wp,-lint --@findex -lint --Look for commands to the program checker @code{lint} embedded in --comments, and emit them preceded by @samp{#pragma lint}. For example, --the comment @samp{/* NOTREACHED */} becomes @samp{#pragma lint --NOTREACHED}. -- --Because of the clash with @samp{-l}, you must use the awkward syntax --above. In a future release, this option will be replaced by --@samp{-flint} or @samp{-Wlint}; we are not sure which yet. -- - @item -ftabstop=NUMBER - @findex -ftabstop --Indicates the distance between tabstops. This helps the preprocessor -+Set the distance between tabstops. This helps the preprocessor - report correct column numbers in warnings or errors, even if tabs appear - on the line. Values less than 1 or greater than 100 are ignored. The - default is 8. ---- gcc/cpp.1 2000/02/26 05:59:30 1.6 -+++ gcc/cpp.1 2000/08/02 06:56:26 -@@ -73,7 +73,7 @@ - .ds T' ' - .ds PI \(*p - 'br\} --.TH CPP 1 "gcc-2.95" "14/Jun/99" "GNU" -+.TH CPP 1 "gcc-3.0" "1/Aug/2000" "GNU" - .UC - .if n .hy 0 - .if n .na -@@ -181,13 +181,20 @@ cpp [\fB\-P\fR] [\fB\-C\fR] [\fB\-gcc\fR - .PP - Only the most useful options are listed here; see below for the remainder. - .SH "DESCRIPTION" --The C preprocessor is a \fImacro processor\fR that is used automatically by --the C compiler to transform your program before actual compilation. It is --called a macro processor because it allows you to define \fImacros\fR, --which are brief abbreviations for longer constructs. -+The C preprocessor is a \fImacro processor\fR that is used automatically -+by the C compiler to transform your program before actual compilation. -+It is called a macro processor because it allows you to define -+\fImacros\fR, which are brief abbreviations for longer constructs. - .PP --The C preprocessor provides four separate facilities that you can use as --you see fit: -+The C preprocessor is intended only for macro processing of C, \*(C+ and -+Objective C source files. For macro processing of other files, you are -+strongly encouraged to use alternatives like M4, which will likely give -+you better results and avoid many problems. For example, normally the C -+preprocessor does not preserve arbitrary whitespace verbatim, but -+instead replaces each sequence with a single space. -+.PP -+For use on C\-like source files, the C preprocessor provides four -+separate facilities that you can use as you see fit: - .Ip "\(bu" 4 - Inclusion of header files. These are files of declarations that can be - substituted into your program. -@@ -200,32 +207,27 @@ Conditional compilation. Using special - can include or exclude parts of the program according to various - conditions. - .Ip "\(bu" 4 --Line control. If you use a program to combine or rearrange source files into --an intermediate file which is then compiled, you can use line control --to inform the compiler of where each source line originally came from. -+Line control. If you use a program to combine or rearrange source files -+into an intermediate file which is then compiled, you can use line -+control to inform the compiler of where each source line originally came -+from. - .PP - C preprocessors vary in some details. This manual discusses the \s-1GNU\s0 C --preprocessor, the C Compatible Compiler Preprocessor. The \s-1GNU\s0 C --preprocessor provides a superset of the features of \s-1ANSI\s0 Standard C. --.PP --\s-1ANSI\s0 Standard C requires the rejection of many harmless constructs commonly --used by today's C programs. Such incompatibility would be inconvenient for --users, so the \s-1GNU\s0 C preprocessor is configured to accept these constructs --by default. Strictly speaking, to get \s-1ANSI\s0 Standard C, you must use the --options \fB\-trigraphs\fR, \fB\-undef\fR and \fB\-pedantic\fR, but in --practice the consequences of having strict \s-1ANSI\s0 Standard C make it --undesirable to do this. -+preprocessor, which provides a small superset of the features of \s-1ISO\s0 -+Standard C. - .PP --The C preprocessor is designed for C\-like languages; you may run into --problems if you apply it to other kinds of languages, because it assumes --that it is dealing with C. For example, the C preprocessor sometimes --outputs extra white space to avoid inadvertent C token concatenation, --and this may cause problems with other languages. -+In its default mode, the \s-1GNU\s0 C preprocessor does not do a few things -+required by the standard. These are features which are rarely, if ever, -+used, and may cause surprising changes to the meaning of a program which -+does not expect them. To get strict \s-1ISO\s0 Standard C, you should use the -+\fB\-std=c89\fR or \fB\-std=c99\fR options, depending on which version -+of the standard you want. To get all the mandatory diagnostics, you -+must also use \fB\-pedantic\fR. - .SH "OPTIONS" - The C preprocessor expects two file names as arguments, \fIinfile\fR and --\fIoutfile\fR. The preprocessor reads \fIinfile\fR together with any other --files it specifies with \fB#include\fR. All the output generated by the --combined input files is written in \fIoutfile\fR. -+\fIoutfile\fR. The preprocessor reads \fIinfile\fR together with any -+other files it specifies with \fB#include\fR. All the output generated -+by the combined input files is written in \fIoutfile\fR. - .PP - Either \fIinfile\fR or \fIoutfile\fR may be \fB\-\fR, which as - \fIinfile\fR means to read from standard input and as \fIoutfile\fR -@@ -237,61 +239,69 @@ These options can also be given when com - passed along automatically to the preprocessor when it is invoked by the - compiler. - .Ip "\fB\-P\fR" 4 --Inhibit generation of \fB#\fR\-lines with line-number information in --the output from the preprocessor This might be --useful when running the preprocessor on something that is not C code --and will be sent to a program which might be confused by the --\fB#\fR\-lines. -+Inhibit generation of \fB#\fR\-lines with line-number information in the -+output from the preprocessor. This might be useful when running the -+preprocessor on something that is not C code and will be sent to a -+program which might be confused by the \fB#\fR\-lines. - .Ip "\fB\-C\fR" 4 --Do not discard comments: pass them through to the output file. --Comments appearing in arguments of a macro call will be copied to the --output before the expansion of the macro call. -+Do not discard comments. All comments are passed through to the output -+file, except for comments in processed directives, which are deleted -+along with the directive. Comments appearing in the expansion list of a -+macro will be preserved, and appear in place wherever the macro is -+invoked. -+.Sp -+You should be prepared for side effects when using \fB\-C\fR; it causes -+the preprocessor to treat comments as tokens in their own right. For -+example, macro redefinitions that were trivial when comments were -+replaced by a single space might become significant when comments are -+retained. Also, comments appearing at the start of what would be a -+directive line have the effect of turning that line into an ordinary -+source line, since the first token on the line is no longer a \fB#\fR. - .Ip "\fB\-traditional\fR" 4 --Try to imitate the behavior of old-fashioned C, as opposed to \s-1ANSI\s0 C. --.Ip "\(bu" 8 --Traditional macro expansion pays no attention to singlequote or --doublequote characters; macro argument symbols are replaced by the -+Try to imitate the behavior of old-fashioned C, as opposed to \s-1ISO\s0 C. -+.RS 4 -+.Ip "\(bu" 4 -+Traditional macro expansion pays no attention to single-quote or -+double-quote characters; macro argument symbols are replaced by the - argument values even when they appear within apparent string or - character constants. --.Ip "\(bu" 8 -+.Ip "\(bu" 4 - Traditionally, it is permissible for a macro expansion to end in the - middle of a string or character constant. The constant continues into - the text surrounding the macro call. --.Ip "\(bu" 8 -+.Ip "\(bu" 4 - However, traditionally the end of the line terminates a string or - character constant, with no error. --.Ip "\(bu" 8 --In traditional C, a comment is equivalent to no text at all. (In \s-1ANSI\s0 -+.Ip "\(bu" 4 -+In traditional C, a comment is equivalent to no text at all. (In \s-1ISO\s0 - C, a comment counts as whitespace.) --.Ip "\(bu" 8 -+.Ip "\(bu" 4 - Traditional C does not have the concept of a ``preprocessing number'\*(R'. - It considers \fB1.0e+4\fR to be three tokens: \fB1.0e\fR, \fB+\fR, - and \fB4\fR. --.Ip "\(bu" 8 -+.Ip "\(bu" 4 - A macro is not suppressed within its own definition, in traditional C. - Thus, any macro that is used recursively inevitably causes an error. --.Ip "\(bu" 8 -+.Ip "\(bu" 4 - The character \fB#\fR has no special meaning within a macro definition - in traditional C. --.Ip "\(bu" 8 -+.Ip "\(bu" 4 - In traditional C, the text at the end of a macro expansion can run - together with the text after the macro call, to produce a single token. --(This is impossible in \s-1ANSI\s0 C.) --.Ip "\(bu" 8 --Traditionally, \fB\e\fR inside a macro argument suppresses the syntactic --significance of the following character. --.Sp --Use the \fB\-traditional\fR option when preprocessing Fortran code, --so that singlequotes and doublequotes --within Fortran comment lines --(which are generally not recognized as such by the preprocessor) --do not cause diagnostics --about unterminated character or string constants. --.Sp --However, this option does not prevent diagnostics --about unterminated comments --when a C\-style comment appears to start, but not end, --within Fortran-style commentary. -+(This is impossible in \s-1ISO\s0 C.) -+.Ip "\(bu" 4 -+None of the \s-1GNU\s0 extensions to the preprocessor are available in -+\fB\-traditional\fR mode. -+.RE -+.Ip "" 4 -+Use the \fB\-traditional\fR option when preprocessing Fortran code, so -+that single-quotes and double-quotes within Fortran comment lines (which -+are generally not recognized as such by the preprocessor) do not cause -+diagnostics about unterminated character or string constants. -+.Sp -+However, this option does not prevent diagnostics about unterminated -+comments when a C\-style comment appears to start, but not end, within -+Fortran-style commentary. - .Sp - So, the following Fortran comment lines are accepted with - \fB\-traditional\fR: -@@ -301,49 +311,77 @@ So, the following Fortran comment lines - \& C Neither is "20000000000, an octal constant - \& C in some dialects of Fortran - .Ve --However, this type of comment line will likely produce a diagnostic, --or at least unexpected output from the preprocessor, --due to the unterminated comment: -+However, this type of comment line will likely produce a diagnostic, or -+at least unexpected output from the preprocessor, due to the -+unterminated comment: - .Sp - .Vb 2 - \& C Some Fortran compilers accept /* as starting - \& C an inline comment. - .Ve --Note that \f(CWg77\fR automatically supplies --the \fB\-traditional\fR option --when it invokes the preprocessor. --However, a future version of \f(CWg77\fR --might use a different, more-Fortran-aware preprocessor --in place of \f(CWcpp\fR. -+Note that \f(CWg77\fR automatically supplies the \fB\-traditional\fR -+option when it invokes the preprocessor. However, a future version of -+\f(CWg77\fR might use a different, more-Fortran-aware preprocessor in -+place of \f(CWcpp\fR. - .Ip "\fB\-trigraphs\fR" 4 --Process \s-1ANSI\s0 standard trigraph sequences. These are three-character --sequences, all starting with \fB??\fR, that are defined by \s-1ANSI\s0 C to -+Process \s-1ISO\s0 standard trigraph sequences. These are three-character -+sequences, all starting with \fB??\fR, that are defined by \s-1ISO\s0 C to - stand for single characters. For example, \fB??/\fR stands for --\fB\e\fR, so \fB\*(R'??/n\*(R'\fR is a character constant for a newline. --Strictly speaking, the \s-1GNU\s0 C preprocessor does not support all --programs in \s-1ANSI\s0 Standard C unless \fB\-trigraphs\fR is used, but if --you ever notice the difference it will be with relief. --.Sp --You don't want to know any more about trigraphs. -+\fB\e\fR, so \fB\*(R'??/n\*(R'\fR is a character constant for a newline. By -+default, \s-1GCC\s0 ignores trigraphs, but in standard-conforming modes it -+converts them. See the \fB\-std\fR option. -+.Sp -+The nine trigraph sequences are -+.RS 4 -+.PD 0 -+.SP -+.Ip "\fB??(\fR" 6 -+-> \fB[\fR -+.Ip "\fB??)\fR" 6 -+-> \fB]\fR -+.Ip "\fB??<\fR" 6 -+-> \fB@{\fR -+.Ip "\fB??>\fR" 6 -+-> \fB@\fR} -+.Ip "\fB??=\fR" 6 -+-> \fB#\fR -+.Ip "\fB??/\fR" 6 -+-> \fB\e\fR -+.Ip "\fB??\*(T'\fR" 6 -+-> \fB^\fR -+.Ip "\fB??!\fR" 6 -+-> \fB|\fR -+.Ip "\fB??\-\fR" 6 -+-> \fB~\fR -+.RE -+.PD -+.Ip "" 4 -+Trigraph support is not popular, so many compilers do not implement it -+properly. Portable code should not rely on trigraphs being either -+converted or ignored. - .Ip "\fB\-pedantic\fR" 4 --Issue warnings required by the \s-1ANSI\s0 C standard in certain cases such -+Issue warnings required by the \s-1ISO\s0 C standard in certain cases such - as when text other than a comment follows \fB#else\fR or \fB#endif\fR. - .Ip "\fB\-pedantic-errors\fR" 4 - Like \fB\-pedantic\fR, except that errors are produced rather than - warnings. --.Ip "\fB\-Wtrigraphs\fR" 4 --Warn if any trigraphs are encountered. Currently this only works if you --have turned trigraphs on with \fB\-trigraphs\fR or \fB\-ansi\fR; in the --future this restriction will be removed. - .Ip "\fB\-Wcomment\fR" 4 -+.Ip "\fB\-Wcomments\fR" 4 -+(Both forms have the same effect). - Warn whenever a comment-start sequence \fB/*\fR appears in a \fB/*\fR --comment, or whenever a Backslash-Newline appears in a \fB//\fR comment. -+comment, or whenever a backslash-newline appears in a \fB//\fR comment. -+.Ip "\fB\-Wtrigraphs\fR" 4 -+Warn if any trigraphs are encountered. This option used to take effect -+only if \fB\-trigraphs\fR was also specified, but now works independently. -+.Ip "\fB\-Wwhite-space\fR" 4 -+Warn about possible white space confusion, e.g. white space between a -+backslash and a newline. - .Ip "\fB\-Wall\fR" 4 --Requests both \fB\-Wtrigraphs\fR and \fB\-Wcomment\fR (but not --\fB\-Wtraditional\fR or \fB\-Wundef\fR). -+Requests \fB\-Wcomment\fR, \fB\-Wtrigraphs\fR, and \fB\-Wwhite-space\fR -+(but not \fB\-Wtraditional\fR or \fB\-Wundef\fR). - .Ip "\fB\-Wtraditional\fR" 4 - Warn about certain constructs that behave differently in traditional and --\s-1ANSI\s0 C. -+\s-1ISO\s0 C. - .Ip "\fB\-Wundef\fR" 4 - Warn if an undefined identifier is evaluated in an \fB#if\fR directive. - .Ip "\fB\-I \fIdirectory\fR\fR" 4 -@@ -356,15 +394,15 @@ the directories are scanned in left-to-r - system directories come after. - .Ip "\fB\-I-\fR" 4 - Any directories specified with \fB\-I\fR options before the \fB\-I-\fR --option are searched only for the case of \fB#include \*(L"\fIfile\fB\*(R"\fR; --they are not searched for \fB#include <\fIfile\fB>\fR. -+option are searched only for the case of \fB#include \*(L"\fIfile\fR\*(R"\fR; -+they are not searched for \fB#include <\fIfile\fR>\fR. - .Sp - If additional directories are specified with \fB\-I\fR options after - the \fB\-I-\fR, these directories are searched for all \fB#include\fR - directives. - .Sp - In addition, the \fB\-I-\fR option inhibits the use of the current --directory as the first search directory for \fB#include \*(L"\fIfile\fB\*(R"\fR. -+directory as the first search directory for \fB#include \*(L"\fIfile\fR\*(R"\fR. - Therefore, the current directory is searched only if it is requested - explicitly with \fB\-I.\fR. Specifying both \fB\-I-\fR and \fB\-I.\fR - allows you to control precisely which directories are searched before -@@ -375,8 +413,8 @@ Only the directories you have specified - (and the current directory, if appropriate) are searched. - .Ip "\fB\-nostdinc++\fR" 4 - Do not search for header files in the \*(C+\-specific standard directories, --but do still search the other standard directories. --(This option is used when building the \*(C+ library.) -+but do still search the other standard directories. (This option is -+used when building the \*(C+ library.) - .Ip "\fB\-remap\fR" 4 - When searching for a header file in a directory, remap file names if a - file named \fIheader.gcc\fR exists in that directory. This can be used -@@ -402,15 +440,17 @@ wins. - Do not predefine any nonstandard macros. - .Ip "\fB\-gcc\fR" 4 - Define the macros \fI_\|_GNUC_\|_\fR, \fI_\|_GNUC_MINOR_\|_\fR and --\fI_\|_GNUC_PATCHLEVEL_\|_\fR. These are defined automatically when you --use \fBgcc \-E\fR; you can turn them off in that case with \fB\-no-gcc\fR. -+\fI_\|_GNUC_PATCHLEVEL_\|_\fR. These are defined automatically when you use -+\fBgcc \-E\fR; you can turn them off in that case with \fB\-no-gcc\fR. - .Ip "\fB\-A \fIpredicate\fR(\fIanswer\fR)\fR" 4 - Make an assertion with the predicate \fIpredicate\fR and answer - \fIanswer\fR. --.Sp --You can use \fB\-A-\fR to disable all predefined assertions; it also --undefines all predefined macros and all macros that preceded it on the --command line. -+.Ip "\fB\-A \-\fIpredicate\fR(\fIanswer\fR)\fR" 4 -+Disable an assertion with the predicate \fIpredicate\fR and answer -+\fIanswer\fR. Specifying no predicate, by \fB\-A-\fR or \fB\-A \-\fR, -+disables all predefined assertions and all assertions preceding it on -+the command line; and also undefines all predefined macros and all -+macros preceding it on the command line. - .Ip "\fB\-dM\fR" 4 - Instead of outputting the result of preprocessing, output a list of - \fB#define\fR directives for all the macros defined during the -@@ -427,19 +467,22 @@ Like \fB\-dM\fR except in two respects: - predefined macros, and it outputs \fIboth\fR the \fB#define\fR - directives and the result of preprocessing. Both kinds of output go to - the standard output file. -+.Ip "\fB\-dN\fR" 4 -+Like \fB\-dD\fR, but emit only the macro names, not their expansions. - .Ip "\fB\-dI\fR" 4 --Output \fB#include\fR directives in addition to the result of preprocessing. -+Output \fB#include\fR directives in addition to the result of -+preprocessing. - .Ip "\fB\-M [\-\s-1MG\s0]\fR" 4 - Instead of outputting the result of preprocessing, output a rule --suitable for \f(CWmake\fR describing the dependencies of the main --source file. The preprocessor outputs one \f(CWmake\fR rule containing --the object file name for that source file, a colon, and the names of --all the included files. If there are many included files then the --rule is split into several lines using \fB\e\fR\-newline. --.Sp --\fB\-\s-1MG\s0\fR says to treat missing header files as generated files and assume --they live in the same directory as the source file. It must be specified --in addition to \fB\-M\fR. -+suitable for \f(CWmake\fR describing the dependencies of the main source -+file. The preprocessor outputs one \f(CWmake\fR rule containing the -+object file name for that source file, a colon, and the names of all the -+included files. If there are many included files then the rule is split -+into several lines using \fB\e\fR\-newline. -+.Sp -+\fB\-\s-1MG\s0\fR says to treat missing header files as generated files and -+assume they live in the same directory as the source file. It must be -+specified in addition to \fB\-M\fR. - .Sp - This feature is used in automatic updating of makefiles. - .Ip "\fB\-\s-1MM\s0 [\-\s-1MG\s0]\fR" 4 -@@ -448,16 +491,16 @@ Like \fB\-M\fR but mention only the file - <\fIfile\fR>\fR are omitted. - .Ip "\fB\-\s-1MD\s0 \fIfile\fR\fR" 4 - Like \fB\-M\fR but the dependency information is written to \fIfile\fR. --This is in addition to compiling the file as specified---\fB\-\s-1MD\s0\fR does --not inhibit ordinary compilation the way \fB\-M\fR does. -+This is in addition to compiling the file as specified --- \fB\-\s-1MD\s0\fR -+does not inhibit ordinary compilation the way \fB\-M\fR does. - .Sp - When invoking \f(CWgcc\fR, do not specify the \fIfile\fR argument. - \f(CWgcc\fR will create file names made by replacing \*(L".c\*(R" with \*(L".d\*(R" at - the end of the input file names. - .Sp - In Mach, you can use the utility \f(CWmd\fR to merge multiple dependency --files into a single dependency file suitable for using with the \fBmake\fR --command. -+files into a single dependency file suitable for using with the -+\fBmake\fR command. - .Ip "\fB\-\s-1MMD\s0 \fIfile\fR\fR" 4 - Like \fB\-\s-1MD\s0\fR except mention only user header files, not system - header files. -@@ -480,15 +523,16 @@ in any of the directories in the main in - \fB\-I\fR adds to). - .Ip "\fB\-iprefix \fIprefix\fR\fR" 4 - Specify \fIprefix\fR as the prefix for subsequent \fB\-iwithprefix\fR --options. -+options. If the prefix represents a directory, you should include the -+final \fB/\fR. - .Ip "\fB\-iwithprefix \fIdir\fR\fR" 4 - Add a directory to the second include path. The directory's name is --made by concatenating \fIprefix\fR and \fIdir\fR, where \fIprefix\fR --was specified previously with \fB\-iprefix\fR. -+made by concatenating \fIprefix\fR and \fIdir\fR, where \fIprefix\fR was -+specified previously with \fB\-iprefix\fR. - .Ip "\fB\-isystem \fIdir\fR\fR" 4 - Add a directory to the beginning of the second include path, marking it - as a system directory, so that it gets the same special treatment as --is applied to the standard system directories. -+is applied to the standard system directories. - .Ip "\fB\-x c\fR" 4 - .Ip "\fB\-x c++\fR" 4 - .Ip "\fB\-x objective-c\fR" 4 -@@ -514,39 +558,52 @@ added in the future. - .Sp - \fIstandard\fR - may be one of: --.Ip "\f(CWiso9899:1990\fR" 8 --The \s-1ISO\s0 C standard from 1990. --.Ip "\f(CWiso9899:199409\fR" 8 --.Ip "\f(CWc89\fR" 8 --The 1990 C standard, as amended in 1994. \fBc89\fR is the customary --shorthand for this version of the standard. -+.RS 4 -+.PD 0 - .Sp -+.Ip "\f(CWiso9899:1990\fR" 4 -+.Ip "\f(CWc89\fR" 4 -+.Ip -+The \s-1ISO\s0 C standard from 1990. \fBc89\fR is the customary shorthand for -+this version of the standard. -+.Sp - The \fB\-ansi\fR option is equivalent to \fB\-std=c89\fR. --.Ip "\f(CWiso9899:199x\fR" 8 --.Ip "\f(CWc9x\fR" 8 --The revised \s-1ISO\s0 C standard, which is expected to be promulgated some --time in 1999. It has not been approved yet, hence the \fBx\fR. --.Ip "\f(CWgnu89\fR" 8 -+.Sp -+.Ip "\f(CWiso9899:199409\fR" 4 -+The 1990 C standard, as amended in 1994. -+.Sp -+.Ip "\f(CWiso9899:1999\fR" 4 -+.Ip "\f(CWc99\fR" 4 -+.Ip "\f(CWiso9899:199x\fR" 4 -+.Ip "\f(CWc9x\fR" 4 -+.Ip -+The revised \s-1ISO\s0 C standard, published in December 1999. Before -+publication, this was known as C9X. -+.Sp -+.Ip "\f(CWgnu89\fR" 4 - The 1990 C standard plus \s-1GNU\s0 extensions. This is the default. --.Ip "\f(CWgnu9x\fR" 8 --The 199x C standard plus \s-1GNU\s0 extensions. --.Ip "\fB\-Wp,\-lint\fR" 4 --Look for commands to the program checker \f(CWlint\fR embedded in --comments, and emit them preceded by \fB#pragma lint\fR. For example, --the comment \fB/* \s-1NOTREACHED\s0 */\fR becomes \fB#pragma lint --\s-1NOTREACHED\s0\fR. --.Sp --Because of the clash with \fB\-l\fR, you must use the awkward syntax --above. In a future release, this option will be replaced by --\fB\-flint\fR or \fB\-Wlint\fR; we are not sure which yet. -+.Sp -+.Ip "\f(CWgnu99\fR" 4 -+.Ip "\f(CWgnu9x\fR" 4 -+The 1999 C standard plus \s-1GNU\s0 extensions. -+.PD -+.RE -+.Ip "\fB\-ftabstop=\s-1NUMBER\s0\fR" 4 -+Set the distance between tabstops. This helps the preprocessor -+report correct column numbers in warnings or errors, even if tabs appear -+on the line. Values less than 1 or greater than 100 are ignored. The -+default is 8. - .Ip "\fB\-$\fR" 4 --Forbid the use of \fB$\fR in identifiers. The C standard does not --permit this, but it is a common extension. -+Forbid the use of \fB$\fR in identifiers. The C standard allows -+implementations to define extra characters that can appear in -+identifiers. By default the \s-1GNU\s0 C preprocessor permits \fB$\fR, a -+common extension. - .SH "SEE ALSO" - \fIgcc\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), and the Info entries for \fIcpp\fR, \fIgcc\fR, and - \fIbinutils\fR. - .SH "COPYRIGHT" --Copyright 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999 -+Copyright 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, -+1997, 1998, 1999, 2000 - Free Software Foundation, Inc. - .PP - Permission is granted to make and distribute verbatim copies of -@@ -560,4 +617,3 @@ permission notice identical to this one. - .PP - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions. --.rn }` '' - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-warnpaste.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-warnpaste.patch deleted file mode 100644 index 38b2a48d1dd7..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-warnpaste.patch +++ /dev/null @@ -1,48 +0,0 @@ -2000-09-04 Jakub Jelinek <jakub@redhat.com> - - * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context, - use posn - 1 to index into tokens array. - (maybe_paste_with_next): Adjust caller. - - * gcc.dg/cpp/paste8.c: New test. - ---- gcc/cpplex.c.jj Fri Sep 1 10:13:33 2000 -+++ gcc/cpplex.c Fri Sep 1 13:37:01 2000 -@@ -202,8 +202,8 @@ TOKEN_LEN (token) - #define CURRENT_CONTEXT(pfile) ((pfile)->contexts + (pfile)->cur_context) - #define ON_REST_ARG(c) \ - (((c)->flags & VAR_ARGS) \ -- && (c)->u.list->tokens[(c)->posn].val.aux \ -- == (unsigned int) ((c)->u.list->paramc - 1)) -+ && ((c)-1)->u.list->tokens[((c)-1)->posn - 1].val.aux \ -+ == (unsigned int) (((c)-1)->u.list->paramc - 1)) - - #define ASSIGN_FLAGS_AND_POS(d, s) \ - do {(d)->flags = (s)->flags & (PREV_WHITE | BOL | PASTE_LEFT); \ -@@ -2773,7 +2773,7 @@ maybe_paste_with_next (pfile, token) - the special extended semantics (see above). */ - if (token->type == CPP_COMMA - && IS_ARG_CONTEXT (CURRENT_CONTEXT (pfile)) -- && ON_REST_ARG (CURRENT_CONTEXT (pfile) - 1)) -+ && ON_REST_ARG (CURRENT_CONTEXT (pfile))) - /* no warning */; - else - cpp_warning (pfile, ---- gcc/testsuite/gcc.dg/cpp/paste8.c.jj Mon Sep 4 09:11:07 2000 -+++ gcc/testsuite/gcc.dg/cpp/paste8.c Mon Sep 4 09:28:28 2000 -@@ -0,0 +1,15 @@ -+/* { dg-do preprocess } */ -+/* { dg-options "" } */ -+ -+int foo(int, ...); -+ -+#define a(x, y...) foo(x, ##y) -+a(1) -+a(1, 2, 3) -+#define b(x, y, z...) foo(x, ##y) -+b(1, 2, 3) /* { dg-warning "pasting would not" } */ -+#define c(x, y, z...) foo(x, ##z) -+c(1, 2) -+c(1, 2, 3) -+#define d(x) foo(##x) /* { dg-warning "nothing can be pasted" } */ -+d(1) diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-warnpaste2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-warnpaste2.patch deleted file mode 100644 index f506a94d7f04..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp-warnpaste2.patch +++ /dev/null @@ -1,62 +0,0 @@ -2000-09-14 Neil Booth <NeilB@earthling.net> - - * cpplex.c (ON_REST_ARG): Correct the test. - (maybe_paste_with_next): Duplicate a token that fail pasting, - and clear its PASTE_LEFT flag, so that nested pasting attempts - do not occur. - * gcc.dg/cpp/paste10.c: Testcase. - ---- gcc/cpplex.c 2000/09/12 03:42:29 1.95 -+++ gcc/cpplex.c 2000/09/14 22:28:32 -@@ -201,9 +201,9 @@ TOKEN_LEN (token) - #define IS_ARG_CONTEXT(c) ((c)->flags & CONTEXT_ARG) - #define CURRENT_CONTEXT(pfile) ((pfile)->contexts + (pfile)->cur_context) - #define ON_REST_ARG(c) \ -- (((c)->flags & VAR_ARGS) \ -- && ((c)-1)->u.list->tokens[((c)-1)->posn - 1].val.aux \ -- == (unsigned int) (((c)-1)->u.list->paramc - 1)) -+ (((c)->u.list->flags & VAR_ARGS) \ -+ && (c)->u.list->tokens[(c)->posn - 1].val.aux \ -+ == (unsigned int) ((c)->u.list->paramc - 1)) - - #define ASSIGN_FLAGS_AND_POS(d, s) \ - do {(d)->flags = (s)->flags & (PREV_WHITE | BOL | PASTE_LEFT); \ -@@ -2787,14 +2787,17 @@ maybe_paste_with_next (pfile, token) - the special extended semantics (see above). */ - if (token->type == CPP_COMMA - && IS_ARG_CONTEXT (CURRENT_CONTEXT (pfile)) -- && ON_REST_ARG (CURRENT_CONTEXT (pfile))) -+ && ON_REST_ARG (CURRENT_CONTEXT (pfile) - 1)) - /* no warning */; - else - cpp_warning (pfile, - "pasting would not give a valid preprocessing token"); - } - _cpp_push_token (pfile, second); -- return token; -+ /* A short term hack to safely clear the PASTE_LEFT flag. */ -+ pasted = duplicate_token (pfile, token); -+ pasted->flags &= ~PASTE_LEFT; -+ return pasted; - } - - if (type == CPP_NAME || type == CPP_NUMBER) ---- gcc/testsuite/gcc.dg/cpp/paste10.c Tue May 5 13:32:27 1998 -+++ gcc/testsuite/gcc.dg/cpp/paste10.c Thu Sep 14 15:47:29 2000 -@@ -0,0 +1,15 @@ -+/* Copyright (C) 2000 Free Software Foundation, Inc. */ -+ -+/* { dg-do preprocess } */ -+/* { dg-options "" } */ -+ -+/* This testcase used to produce a bogus "invalid paste" warning, owing -+ to not clearing a PASTE_LEFT flag. */ -+ -+#define strcpy(src) __strcpy_small (src) -+ -+#define __strcpy_small(src) src -+ -+#define tprintf(format, args...) sprintf(format, ## args) -+ -+strcpy(tprintf("<%s>", test)) - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp0.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp0.patch deleted file mode 100644 index 113d461a375b..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpp0.patch +++ /dev/null @@ -1,235 +0,0 @@ -2000-07-31 Zack Weinberg <zack@wolery.cumb.org> - - * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and - xcpp to cpp throughout. - (native): Remove unnecessary dependency on cpp. - - * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp, - tradcpp to tradcpp0. - (.i spec): Add missing output-file spec to cc1 command line. - - * ch/lang-specs.h, cp/lang-specs.h, f/lang-specs.h, - objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. - ---- gcc/Makefile.in 2000/07/31 17:33:26 1.491 -+++ gcc/Makefile.in 2000/07/31 18:21:36 -@@ -448,7 +448,7 @@ COMPILERS = cc1$(exeext) @all_compilers@ - - # List of things which should already be built whenever we try to use xgcc - # to compile anything (without linking). --GCC_PASSES=xgcc$(exeext) cc1$(exeext) cpp$(exeext) $(EXTRA_PASSES) -+GCC_PASSES=xgcc$(exeext) cc1$(exeext) cpp0$(exeext) $(EXTRA_PASSES) - - # List of things which should already be built whenever we try to use xgcc - # to link anything. -@@ -716,10 +716,10 @@ STAGESTUFF = *$(objext) insn-flags.h ins - genconfig$(build_exeext) genpeep$(build_exeext) genattrtab$(build_exeext) \ - genattr$(build_exeext) genopinit$(build_exeext) gengenrtl$(build_exeext) \ - gencheck$(build_exeext) genrtl.c genrtl.h \ -- xgcc$(exeext) xcpp$(exeext) cc1$(exeext) cpp$(exeext) $(EXTRA_PASSES) \ -+ xgcc$(exeext) cpp$(exeext) cc1$(exeext) cpp0$(exeext) $(EXTRA_PASSES) \ - $(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross$(exeext) cc1obj$(exeext) \ - enquire$(exeext) protoize$(exeext) unprotoize$(exeext) \ -- specs collect2$(exeext) $(USE_COLLECT2) underscore.c tradcpp$(exeext) \ -+ specs collect2$(exeext) $(USE_COLLECT2) underscore.c tradcpp0$(exeext) \ - gcov$(exeext) *.[0-9][0-9].* *.[si] libcpp.a libgcc libgcc.mk \ - $(LANG_STAGESTUFF) - -@@ -858,22 +858,22 @@ all.internal: start.encap rest.encap doc - # This is what to compile if making a cross-compiler. - # Note that we can compile enquire using the cross-compiler just built, - # although we can't run it on this machine. --all.cross: native gcc-cross xcpp$(exeext) specs \ -+all.cross: native gcc-cross cpp$(exeext) specs \ - $(LIBGCC) $(LIBGCC1_TEST) $(EXTRA_PARTS) lang.all.cross doc - # This is what to compile if making gcc with a cross-compiler. --all.build: native xgcc$(exeext) xcpp$(exeext) $(EXTRA_PARTS) lang.all.build -+all.build: native xgcc$(exeext) cpp$(exeext) $(EXTRA_PARTS) lang.all.build - # This is what must be made before installing GCC and converting libraries. --start.encap: native xgcc$(exeext) xcpp$(exeext) specs \ -+start.encap: native xgcc$(exeext) cpp$(exeext) specs \ - xlimits.h lang.start.encap - # These can't be made until after GCC can run. - rest.encap: $(STMP_FIXPROTO) $(LIBGCC) $(EXTRA_PARTS) lang.rest.encap - # This is what is made with the host's compiler - # whether making a cross compiler or not. --native: config.status auto-host.h cpp$(exeext) intl.all $(LANGUAGES) \ -+native: config.status auto-host.h intl.all $(LANGUAGES) \ - $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(USE_COLLECT2) - - # Define the names for selecting languages in LANGUAGES. --C c: cc1$(exeext) tradcpp$(exeext) -+C c: cc1$(exeext) tradcpp0$(exeext) - PROTO: proto - - # Tell GNU make these are phony targets. -@@ -909,12 +909,10 @@ xgcc$(exeext): gcc.o gccspec.o version.o - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gcc.o gccspec.o intl.o \ - prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS) - --# We call this executable `xcpp' rather than `cpp' --# since the real preprocessor is named `cpp'. It too is renamed --# when it is installed. -+# cpp is to cpp0 as gcc is to cc1. - # The only difference from xgcc is that it's linked with cppspec.o - # instead of gccspec.o. --xcpp$(exeext): gcc.o cppspec.o version.o intl.o prefix.o \ -+cpp$(exeext): gcc.o cppspec.o version.o intl.o prefix.o \ - version.o $(LIBDEPS) $(EXTRA_GCC_OBJS) - $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gcc.o cppspec.o intl.o \ - prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS) -@@ -1801,8 +1799,8 @@ libcpp.a: $(LIBCPP_OBJS) - $(AR) $(AR_FLAGS) libcpp.a $(LIBCPP_OBJS) - if $(RANLIB_TEST) ; then $(RANLIB) libcpp.a ; else true ; fi - --cpp$(exeext): cppmain.o intl.o libcpp.a $(LIBDEPS) -- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cpp$(exeext) cppmain.o \ -+cpp0$(exeext): cppmain.o intl.o libcpp.a $(LIBDEPS) -+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o cpp0$(exeext) cppmain.o \ - intl.o libcpp.a $(LIBS) - - cppmain.o: cppmain.c $(CONFIG_H) cpplib.h intl.h system.h -@@ -1827,8 +1825,8 @@ mkdeps.o: mkdeps.c $(CONFIG_H) system.h - - # The traditional mode preprocessor, a separate program for ease of - # maintenance. Some code is shared with the ISO-C cpp. --tradcpp$(exeext): tradcpp.o tradcif.o cppdefault.o version.o intl.o $(LIBDEPS) -- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o tradcpp$(exeext) \ -+tradcpp0$(exeext): tradcpp.o tradcif.o cppdefault.o version.o intl.o $(LIBDEPS) -+ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o tradcpp0$(exeext) \ - tradcpp.o tradcif.o cppdefault.o version.o intl.o $(LIBS) - - tradcpp.o: tradcpp.c $(CONFIG_H) system.h version.h cppdefault.h -@@ -2256,20 +2254,20 @@ install-build: force - install-cross-rest: install-float-h-cross - - # Handle cpp installation. --install-cpp: xcpp$(exeext) -+install-cpp: cpp$(exeext) - -if [ -f gcc-cross$(exeext) ] ; then \ - rm -f $(bindir)/$(CPP_CROSS_NAME)$(exeext); \ -- $(INSTALL_PROGRAM) -m 755 xcpp$(exeext) $(bindir)/$(CPP_CROSS_NAME)$(exeext); \ -+ $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(bindir)/$(CPP_CROSS_NAME)$(exeext); \ - if [ x$(cpp_install_dir) != x ]; then \ - rm -f $(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \ -- $(INSTALL_PROGRAM) -m 755 xcpp$(exeext) $(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \ -+ $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(prefix)/$(cpp_install_dir)/$(CPP_CROSS_NAME)$(exeext); \ - else true; fi; \ - else \ - rm -f $(bindir)/$(CPP_INSTALL_NAME)$(exeext); \ -- $(INSTALL_PROGRAM) -m 755 xcpp$(exeext) $(bindir)/$(CPP_INSTALL_NAME)$(exeext); \ -+ $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(bindir)/$(CPP_INSTALL_NAME)$(exeext); \ - if [ x$(cpp_install_dir) != x ]; then \ - rm -f $(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \ -- $(INSTALL_PROGRAM) -m 755 xcpp$(exeext) $(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \ -+ $(INSTALL_PROGRAM) -m 755 cpp$(exeext) $(prefix)/$(cpp_install_dir)/$(CPP_INSTALL_NAME)$(exeext); \ - else true; fi; \ - fi - -@@ -2363,10 +2361,10 @@ install-common: native installdirs $(EXT - $(INSTALL_DATA) SYSCALLS.c.X $(libsubdir)/SYSCALLS.c.X; \ - chmod a-x $(libsubdir)/SYSCALLS.c.X; \ - fi -- -rm -f $(libsubdir)/cpp$(exeext) -- $(INSTALL_PROGRAM) cpp$(exeext) $(libsubdir)/cpp$(exeext) -- -rm -f $(libsubdir)/tradcpp$(exeext) -- $(INSTALL_PROGRAM) tradcpp$(exeext) $(libsubdir)/tradcpp$(exeext) -+ -rm -f $(libsubdir)/cpp0$(exeext) -+ $(INSTALL_PROGRAM) cpp0$(exeext) $(libsubdir)/cpp0$(exeext) -+ -rm -f $(libsubdir)/tradcpp0$(exeext) -+ $(INSTALL_PROGRAM) tradcpp0$(exeext) $(libsubdir)/tradcpp0$(exeext) - # Install gcov if it was compiled. - -if [ -f gcov$(exeext) ]; \ - then \ ---- gcc/gcc.c 2000/07/28 01:46:11 1.155 -+++ gcc/gcc.c 2000/07/31 18:21:37 -@@ -548,7 +548,7 @@ static const char *link_libgcc_spec = LI - appropriate -B options. */ - - static const char *trad_capable_cpp = --"%{traditional|ftraditional|traditional-cpp:trad}cpp"; -+"%{traditional|ftraditional|traditional-cpp:trad}cpp0"; - - static const char *cpp_options = - "%{C:%{!E:%eGNU C does not support -C without using -E}}\ -@@ -688,7 +688,7 @@ static struct compiler default_compilers - {".c", "@c"}, - {"@c", - #if USE_CPPLIB -- "%{E|M|MM:cpp -lang-c %{ansi:-std=c89} %(cpp_options)}\ -+ "%{E|M|MM:cpp0 -lang-c %{ansi:-std=c89} %(cpp_options)}\ - %{!E:%{!M:%{!MM:cc1 -lang-c %{ansi:-std=c89} %(cpp_options)\ - %(cc1_options) %{!S:-o %{|!pipe:%g.s} |\n\ - as %(asm_options) %{!pipe:%g.s} %A }}}}" -@@ -709,7 +709,7 @@ static struct compiler default_compilers - {".i", "@cpp-output"}, - {"@cpp-output", - "%{!M:%{!MM:%{!E:\ -- cc1 %i %(cc1_options) %{!S:|\n\ -+ cc1 %i %(cc1_options) %{!S:-o %{|!pipe:%g.s} |\n\ - as %(asm_options) %{!pipe:%g.s} %A }}}}"}, - {".s", "@assembler"}, - {"@assembler", ---- gcc/ch/lang-specs.h 2000/07/13 07:14:11 1.13 -+++ gcc/ch/lang-specs.h 2000/07/31 18:21:37 -@@ -24,7 +24,7 @@ Boston, MA 02111-1307, USA. */ - {".ch", "@chill"}, - {".chi", "@chill"}, - {"@chill", -- "tradcpp -lang-chill %{!no-gcc:-D__GNUCHILL__=%v1} %(cpp_options)\ -+ "tradcpp0 -lang-chill %{!no-gcc:-D__GNUCHILL__=%v1} %(cpp_options)\ - %{!M:%{!MM:%{!E:%{!pipe:%g.i} |\n\ - cc1chill %{!pipe:%g.i} %(cc1_options) %{!S:-o %{|!pipe:%g.s} |\n\ - as %(asm_options) %{!pipe:%g.s} %A }}}}\n"}, ---- gcc/cp/lang-specs.h 2000/07/13 07:14:12 1.25 -+++ gcc/cp/lang-specs.h 2000/07/31 18:21:37 -@@ -30,7 +30,7 @@ Boston, MA 02111-1307, USA. */ - {".C", "@c++"}, - {"@c++", - #if USE_CPPLIB -- "%{E|M|MM:cpp -lang-c++ %{!no-gcc:-D__GNUG__=%v1}\ -+ "%{E|M|MM:cpp0 -lang-c++ %{!no-gcc:-D__GNUG__=%v1}\ - %{fnew-abi:-D__GXX_ABI_VERSION=100}\ - %{ansi:-trigraphs -$ -D__STRICT_ANSI__} %(cpp_options)}\ - %{!E:%{!M:%{!MM:cc1plus -lang-c++ %{!no-gcc:-D__GNUG__=%v1}\ -@@ -40,7 +40,7 @@ Boston, MA 02111-1307, USA. */ - %{!S:-o %{|!pipe:%g.s} |\n\ - as %(asm_options) %{!pipe:%g.s} %A }}}}" - #else /* ! USE_CPPLIB */ -- "cpp -lang-c++ %{!no-gcc:-D__GNUG__=%v1}\ -+ "cpp0 -lang-c++ %{!no-gcc:-D__GNUG__=%v1}\ - %{fnew-abi:-D__GXX_ABI_VERSION=100}\ - %{ansi:-trigraphs -$ -D__STRICT_ANSI__} %(cpp_options)\ - %{!M:%{!MM:%{!E:%{!pipe:%g.ii} |\n\ ---- gcc/f/lang-specs.h 2000/07/26 12:37:12 1.23 -+++ gcc/f/lang-specs.h 2000/07/31 18:21:37 -@@ -28,7 +28,7 @@ the Free Software Foundation, 59 Temple - {".fpp", "@f77-cpp-input"}, - {".FPP", "@f77-cpp-input"}, - {"@f77-cpp-input", -- "tradcpp -lang-fortran %(cpp_options) %{!M:%{!MM:%{!E:%{!pipe:%g.f |\n\ -+ "tradcpp0 -lang-fortran %(cpp_options) %{!M:%{!MM:%{!E:%{!pipe:%g.f |\n\ - f771 %{!pipe:%g.f} %(cc1_options) %{!S:-o %{|!pipe:%g.s} |\n\ - as %(asm_options) %{!pipe:%g.s} %A }}}}}\n"}, - {".r", "@ratfor"}, -@@ -45,7 +45,7 @@ the Free Software Foundation, 59 Temple - as %(asm_options) %{!pipe:%g.s} %A }}}}\n"}, - /* XXX This is perverse and should not be necessary. */ - {"@f77-version", -- "tradcpp -lang-fortran %(cpp_options) /dev/null \n\ -+ "tradcpp0 -lang-fortran %(cpp_options) /dev/null \n\ - f771 -fnull-version %1 \ - %{!Q:-quiet} -dumpbase g77-version.f %{d*} %{m*} %{a*} \ - %{g*} %{O*} %{W*} %{w} %{pedantic*} \ ---- gcc/objc/lang-specs.h 2000/07/13 07:14:13 1.13 -+++ gcc/objc/lang-specs.h 2000/07/31 18:21:37 -@@ -24,7 +24,7 @@ Boston, MA 02111-1307, USA. */ - {".m", "@objective-c"}, - {"@objective-c", - #if USE_CPPLIB -- "%{E|M|MM:cpp -lang-objc %{ansi:-std=c89} %(cpp_options)}\ -+ "%{E|M|MM:cpp0 -lang-objc %{ansi:-std=c89} %(cpp_options)}\ - %{!E:%{!M:%{!MM:cc1obj -lang-objc %(cpp_options) %(cc1_options)\ - %{gen-decls} %{!S:-o %{|!pipe:%g.s} |\n\ - as %(asm_options) %{!pipe:%g.s} %A }}}}" - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpplib.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpplib.patch deleted file mode 100644 index 332b95ded151..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-cpplib.patch +++ /dev/null @@ -1,128 +0,0 @@ -2000-07-31 Jakub Jelinek <jakub@redhat.com> - - * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0. - (_cpp_get_token): Don't macro expand a just pasted token if it - was pasted at no_expand_level. - - * testsuite/gcc.dg/cpp/paste7.c: New test. - -2000-07-31 Zack Weinberg <zack@wolery.cumb.org> - - * cppmacro.c (find_param, count_params, save_expansion): - Permit 'defined' as a macro parameter name. - ---- gcc/cpplex.c 2000/07/24 21:49:34 1.82 -+++ gcc/cpplex.c 2000/07/31 23:40:47 -@@ -3082,7 +3082,7 @@ const cpp_token * - _cpp_get_token (pfile) - cpp_reader *pfile; - { -- const cpp_token *token; -+ const cpp_token *token, *old_token; - cpp_hashnode *node; - - /* Loop until we hit a non-macro token. */ -@@ -3111,6 +3111,8 @@ _cpp_get_token (pfile) - be taken as a control macro. */ - pfile->potential_control_macro = 0; - -+ old_token = token; -+ - /* See if there's a token to paste with this one. */ - if (!pfile->paste_level) - token = maybe_paste_with_next (pfile, token); -@@ -3120,10 +3122,17 @@ _cpp_get_token (pfile) - return token; - - /* Is macro expansion disabled in general, or are we in the -- middle of a token paste? */ -- if (pfile->no_expand_level == pfile->cur_context || pfile->paste_level) -+ middle of a token paste, or was this token just pasted? -+ (Note we don't check token->flags & PASTED, because that -+ counts tokens that were pasted at some point in the past, -+ we're only interested in tokens that were pasted by this call -+ to maybe_paste_with_next.) */ -+ if (pfile->no_expand_level == pfile->cur_context -+ || pfile->paste_level -+ || (token != old_token -+ && pfile->no_expand_level + 1 == pfile->cur_context)) - return token; -- -+ - node = token->val.node; - if (node->type != T_MACRO) - return special_symbol (pfile, node, token); -@@ -3336,6 +3345,13 @@ _cpp_get_line (pfile, pcol) - index = pfile->token_list.tokens_used; - else - index = pfile->contexts[0].posn; -+ -+ if (index == 0) -+ { -+ if (pcol) -+ *pcol = 0; -+ return 0; -+ } - - cur_token = &pfile->token_list.tokens[index - 1]; - if (pcol) ---- gcc/cppmacro.c 2000/07/20 17:57:37 1.3 -+++ gcc/cppmacro.c 2000/07/31 23:40:47 -@@ -72,7 +72,7 @@ find_param (first, token) - unsigned int param = 0; - - for (; first < token && first->type != CPP_CLOSE_PAREN; first++) -- if (first->type == CPP_NAME) -+ if (first->type == CPP_NAME || first->type == CPP_DEFINED) - { - param++; - if (first->val.node == token->val.node) -@@ -139,6 +139,8 @@ count_params (pfile, info) - case CPP_COMMENT: - continue; /* Ignore -C comments. */ - -+ case CPP_DEFINED: /* 'defined' may be used as a macro -+ parameter name. */ - case CPP_NAME: - if (prev_ident) - { -@@ -429,7 +431,7 @@ save_expansion (pfile, info) - dumping macro definitions. They must go first. */ - if (list->params_len) - for (token = info->first_param; token < info->first; token++) -- if (token->type == CPP_NAME) -+ if (token->type == CPP_NAME || token->type == CPP_DEFINED) - { - /* Copy null too. */ - memcpy (buf, token->val.node->name, token->val.node->length + 1); -@@ -443,6 +445,7 @@ save_expansion (pfile, info) - - switch (token->type) - { -+ case CPP_DEFINED: - case CPP_NAME: - if (list->paramc == -1) - break; ---- gcc/testsuite/gcc.dg/cpp/paste7.c Tue May 5 13:32:27 1998 -+++ gcc/testsuite/gcc.dg/cpp/paste7.c Mon Jul 31 16:40:48 2000 -@@ -0,0 +1,19 @@ -+/* { dg-do run } */ -+ -+#define D_2 1, 2 -+#define C_2(X, I0, I1) X##_a = I0, X##_b = I1 -+#define B_2(X, I) C_2(X, I) -+#define A(N, X) B_##N (X, D_##N) -+ -+extern void abort(void); -+extern void exit(int); -+ -+int x_a, x_b; -+ -+int main(void) -+{ -+ A(2, x); -+ if (x_a != 1 || x_b != 2) -+ abort(); -+ exit(0); -+} - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-do-store-flag.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-do-store-flag.patch deleted file mode 100644 index 244801e684ed..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-do-store-flag.patch +++ /dev/null @@ -1,16 +0,0 @@ -2000-10-27 Jakub Jelinek <jakub@redhat.com> - - * expr.c (do_store_flag): If op0 has mode VOIDmode, pass operand_mode - instead to expand_shift. - ---- gcc/expr.c.jj Fri Oct 27 13:34:59 2000 -+++ gcc/expr.c Fri Oct 27 15:54:34 2000 -@@ -10285,7 +10285,7 @@ do_store_flag (exp, target, mode, only_c - op0 = expand_expr (inner, subtarget, VOIDmode, 0); - - if (bitnum != 0) -- op0 = expand_shift (RSHIFT_EXPR, GET_MODE (op0), op0, -+ op0 = expand_shift (RSHIFT_EXPR, operand_mode, op0, - size_int (bitnum), subtarget, ops_unsignedp); - - if (GET_MODE (op0) != mode) diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-f-include.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-f-include.patch deleted file mode 100644 index 58ed092c711f..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-f-include.patch +++ /dev/null @@ -1,36 +0,0 @@ -2000-08-18 Jakub Jelinek <jakub@redhat.com> - - * lang-specs.h: Pass -I* options to f771. - ---- gcc/f/lang-specs.h.jj Fri Aug 18 18:10:58 2000 -+++ gcc/f/lang-specs.h Fri Aug 18 19:06:42 2000 -@@ -1,5 +1,5 @@ - /* lang-specs.h file for Fortran -- Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc. -+ Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc. - Contributed by James Craig Burley. - - This file is part of GNU Fortran. -@@ -29,19 +29,19 @@ the Free Software Foundation, 59 Temple - {".FPP", "@f77-cpp-input"}, - {"@f77-cpp-input", - "tradcpp0 -lang-fortran %(cpp_options) %{!M:%{!MM:%{!E:%{!pipe:%g.f |\n\ -- f771 %{!pipe:%g.f} %(cc1_options) %{!S:-o %{|!pipe:%g.s} |\n\ -+ f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!S:-o %{|!pipe:%g.s} |\n\ - as %(asm_options) %{!pipe:%g.s} %A }}}}}\n"}, - {".r", "@ratfor"}, - {"@ratfor", - "%{C:%{!E:%eGNU C does not support -C without using -E}}\ - ratfor %{C} %{v} %i %{E:%W{o*}} %{!E: %{!pipe:-o %g.f} |\n\ -- f771 %{!pipe:%g.f} %(cc1_options) %{!S:-o %{|!pipe:%g.s} |\n\ -+ f771 %{!pipe:%g.f} %(cc1_options) %{I*} %{!S:-o %{|!pipe:%g.s} |\n\ - as %(asm_options) %{!pipe:%g.s} %A }}\n"}, - {".f", "@f77"}, - {".for", "@f77"}, - {".FOR", "@f77"}, - {"@f77", -- "%{!M:%{!MM:%{!E:f771 %i %(cc1_options) %{!S:-o %{|!pipe:%g.s} |\n\ -+ "%{!M:%{!MM:%{!E:f771 %i %(cc1_options) %{I*} %{!S:-o %{|!pipe:%g.s} |\n\ - as %(asm_options) %{!pipe:%g.s} %A }}}}\n"}, - /* XXX This is perverse and should not be necessary. */ - {"@f77-version", diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-f77-fdebug.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-f77-fdebug.patch deleted file mode 100644 index 8ed5c43b3623..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-f77-fdebug.patch +++ /dev/null @@ -1,89 +0,0 @@ -2000-08-19 Toon Moene <toon@moene.indiv.nluug.nl> - - * top.c (ffe_decode_option): Disable -fdebug-kludge - and warn about it. - * lang-options.h: Document the fact. - * g77.texi: Ditto. - ---- gcc/f/top.c.jj Thu Jun 22 13:47:25 2000 -+++ gcc/f/top.c Thu Oct 12 10:49:34 2000 -@@ -307,9 +307,9 @@ ffe_decode_option (argc, argv) - else if (strcmp (&opt[2], "no-zeros") == 0) - ffe_set_is_zeros (FALSE); - else if (strcmp (&opt[2], "debug-kludge") == 0) -- ffe_set_is_debug_kludge (TRUE); -+ warning ("%s disabled, use normal debugging flags", opt); - else if (strcmp (&opt[2], "no-debug-kludge") == 0) -- ffe_set_is_debug_kludge (FALSE); -+ warning ("%s disabled, use normal debugging flags", opt); - else if (strcmp (&opt[2], "onetrip") == 0) - ffe_set_is_onetrip (TRUE); - else if (strcmp (&opt[2], "no-onetrip") == 0) ---- gcc/f/g77.texi.jj Mon Jan 3 07:35:11 2000 -+++ gcc/f/g77.texi Thu Oct 12 10:48:42 2000 -@@ -2659,15 +2659,19 @@ information. - @cindex common blocks - @cindex equivalence areas - @cindex missing debug features --Support for this option in Fortran programs is incomplete. -+Support for this option in Fortran programs was incomplete up till -+version 0.5.26 of @code{g77}. - In particular, names of variables and arrays in common blocks --or that are storage-associated via @code{EQUIVALENCE} are -+or that are storage-associated via @code{EQUIVALENCE} were - unavailable to the debugger. - - However, version 0.5.19 of @code{g77} does provide this information - in a rudimentary way, as controlled by the - @samp{-fdebug-kludge} option. - -+Because version 0.5.26 of @code{g77} enables full debug information -+of COMMON BLOCK and EQUIVALENCE items, this option has been disabled. -+ - @xref{Code Gen Options,,Options for Code Generation Conventions}, - for more information. - @end table -@@ -3215,6 +3219,10 @@ language mode, so temporarily switching - information is suggested. - Use @samp{set language c} and @samp{set language fortran} to accomplish this. - -+As of version 0.5.26 of @code{g77} this option has been disabled, as the -+compiler is now able to emit correct and complete debug information -+for COMMON BLOCK and EQUIVALENCE items. -+ - For example: - - @smallexample -@@ -3261,7 +3269,9 @@ which might make some programs noticeabl - (and its negative form). - Current plans call for this to happen when published versions of @code{g77} - and @code{gdb} exist that provide proper access to debugging information on --@code{COMMON} and @code{EQUIVALENCE} members. -+@code{COMMON} and @code{EQUIVALENCE} members. This is believed to have -+happened as of version 0.5.26 of @code{g77}, so that this option has been -+disabled starting with this release. - - @cindex -femulate-complex option - @cindex options, -femulate-complex -@@ -8842,6 +8852,10 @@ This kludge will be removed in a future - in conjunction with a contemporary version of @code{gdb}, - properly supports Fortran-language debugging, including access - to members of @code{COMMON} areas.) -+ -+Version 0.5.26 of @code{g77} is believed to provide correct and -+complete debug information for COMMON BLOCK and EQUIVALENCE items - -+hence the @samp{-fdebug-kludge} option has been disabled. - - @xref{Code Gen Options,,Options for Code Generation Conventions}, - for information on the @samp{-fdebug-kludge} option. ---- gcc/f/lang-options.h.jj Mon Mar 6 18:38:06 2000 -+++ gcc/f/lang-options.h Thu Oct 12 10:48:42 2000 -@@ -139,7 +139,7 @@ FTNOPT( "-fvxt-intrinsics-enable", "" ) - FTNOPT( "-fvxt-intrinsics-hide", "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports" ) - FTNOPT( "-fzeros", "Treat initial values of 0 like non-zero values" ) - FTNOPT( "-fno-zeros", "" ) --FTNOPT( "-fdebug-kludge", "Emit special debugging information for COMMON and EQUIVALENCE" ) -+FTNOPT( "-fdebug-kludge", "Emit special debugging information for COMMON and EQUIVALENCE (disabled)" ) - FTNOPT( "-fno-debug-kludge", "" ) - FTNOPT( "-fonetrip", "Take at least one trip through each iterative DO loop" ) - FTNOPT( "-fno-onetrip", "" ) diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-float-condmove.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-float-condmove.patch deleted file mode 100644 index 0db810339fce..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-float-condmove.patch +++ /dev/null @@ -1,36 +0,0 @@ -2000-09-04 Jakub Jelinek <jakub@redhat.com> - - * combine.c (simplify_if_then_else): Don't convert a == b ? b : a - to a if the comparison is floating mode and not -ffast-math. - * simplify-rtx.c (simplify_ternary_operation): Likewise. - ---- gcc/combine.c.jj Mon Aug 21 08:43:38 2000 -+++ gcc/combine.c Mon Sep 4 14:40:59 2000 -@@ -4664,10 +4664,12 @@ simplify_if_then_else (x) - - /* Convert a == b ? b : a to "a". */ - if (true_code == EQ && ! side_effects_p (cond) -+ && (! FLOAT_MODE_P (mode) || flag_fast_math) - && rtx_equal_p (XEXP (cond, 0), false) - && rtx_equal_p (XEXP (cond, 1), true)) - return false; - else if (true_code == NE && ! side_effects_p (cond) -+ && (! FLOAT_MODE_P (mode) || flag_fast_math) - && rtx_equal_p (XEXP (cond, 0), true) - && rtx_equal_p (XEXP (cond, 1), false)) - return true; ---- gcc/simplify-rtx.c.jj Fri Aug 25 14:22:22 2000 -+++ gcc/simplify-rtx.c Mon Sep 4 14:41:52 2000 -@@ -1976,10 +1976,12 @@ simplify_ternary_operation (code, mode, - - /* Convert a == b ? b : a to "a". */ - if (GET_CODE (op0) == NE && ! side_effects_p (op0) -+ && (! FLOAT_MODE_P (mode) || flag_fast_math) - && rtx_equal_p (XEXP (op0, 0), op1) - && rtx_equal_p (XEXP (op0, 1), op2)) - return op1; - else if (GET_CODE (op0) == EQ && ! side_effects_p (op0) -+ && (! FLOAT_MODE_P (mode) || flag_fast_math) - && rtx_equal_p (XEXP (op0, 1), op1) - && rtx_equal_p (XEXP (op0, 0), op2)) - return op2; diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-format-checking.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-format-checking.patch deleted file mode 100644 index bac621f6e1b0..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-format-checking.patch +++ /dev/null @@ -1,643 +0,0 @@ -gcc/ChangeLog: -2000-07-18 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-common.h (flag_isoc94): Declare. - * c-decl.c (flag_isoc94): Define. - (c_decode_option): Set flag_isoc94 as appropriate. - * c-common.c (T_PD, T_IM, T_UIM): Define. - (format_char_info): Add tlen and jlen. - (print_char_table): Add entries for %t and %j. Allow %zn. Allow - %F. Allow %lf. - (scan_char_table): Add entries for %t and %j. Allow %F. Allow - %l[. - (time_char_table): Add NULL entries for %t and %j. - (check_format_info): Allow for %t and %j. Warn for %F if pedantic - and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94. - Warn for printf %lf if pedantic and not C99. Don't warn for empty - precision. Allow precision argument to be unsigned int. If - pedantic, warn for %p passed an argument not a pointer to possibly - qualified void or a possibly qualified character type, and for - pointer targets of the wrong sign, except for character pointers. - -gcc/cp/ChangeLog: -2000-07-18 Joseph S. Myers <jsm28@cam.ac.uk> - - * decl.c (flag_isoc94): New variable. - -gcc/testsuite/ChangeLog: -2000-07-18 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/c90-printf-1.c, gcc.dg/c94-printf-1.c: New tests. - ---- gcc/c-common.h Tue Jul 18 13:59:58 2000 -+++ gcc/c-common.h Tue Jul 18 14:10:14 2000 -@@ -179,6 +179,10 @@ - - extern int flag_traditional; - -+/* Nonzero means enable C89 Amendment 1 features, other than digraphs. */ -+ -+extern int flag_isoc94; -+ - /* Nonzero means use the ISO C99 dialect of C. */ - - extern int flag_isoc99; ---- gcc/c-decl.c Tue Jul 18 13:59:58 2000 -+++ gcc/c-decl.c Tue Jul 18 14:10:14 2000 -@@ -330,6 +330,10 @@ - - int flag_traditional; - -+/* Nonzero means enable C89 Amendment 1 features, other than digraphs. */ -+ -+int flag_isoc94 = 0; -+ - /* Nonzero means use the ISO C99 dialect of C. */ - - int flag_isoc99 = 0; -@@ -541,6 +545,7 @@ - { - iso_1990: - flag_digraphs = 0; -+ flag_isoc94 = 0; - iso_1990_digraphs: - flag_traditional = 0; - flag_writable_strings = 0; -@@ -551,7 +556,7 @@ - else if (!strcmp (argstart, "iso9899:199409")) - { - flag_digraphs = 1; -- /* ??? The other changes since ISO C 1990 are not supported. */ -+ flag_isoc94 = 1; - goto iso_1990_digraphs; - } - else if (!strcmp (argstart, "iso9899:199x") -@@ -565,6 +570,7 @@ - flag_no_nonansi_builtin = 1; - flag_isoc99 = 1; - flag_digraphs = 1; -+ flag_isoc94 = 1; - } - else if (!strcmp (argstart, "gnu89")) - { -@@ -574,6 +580,7 @@ - flag_no_nonansi_builtin = 0; - flag_isoc99 = 0; - flag_digraphs = 1; -+ flag_isoc94 = 0; - } - else if (!strcmp (argstart, "gnu9x") || !strcmp (argstart, "gnu99")) - { -@@ -583,6 +590,7 @@ - flag_no_nonansi_builtin = 0; - flag_isoc99 = 1; - flag_digraphs = 1; -+ flag_isoc94 = 1; - } - else - error ("unknown C standard `%s'", argstart); ---- gcc/c-common.c Tue Jul 18 13:59:59 2000 -+++ gcc/c-common.c Tue Jul 18 14:10:14 2000 -@@ -1195,6 +1195,9 @@ - #define T_W &wchar_type_node - #define T_WI &wint_type_node - #define T_ST &sizetype -+#define T_PD &ptrdiff_type_node -+#define T_IM NULL /* intmax_t not yet implemented. */ -+#define T_UIM NULL /* uintmax_t not yet implemented. */ - - typedef struct { - const char *format_chars; -@@ -1219,38 +1222,44 @@ - /* Type of argument if length modifiers 'z' or `Z' is used. - If NULL, then this modifier is not allowed. */ - tree *zlen; -+ /* Type of argument if length modifier 't' is used. -+ If NULL, then this modifier is not allowed. */ -+ tree *tlen; -+ /* Type of argument if length modifier 'j' is used. -+ If NULL, then this modifier is not allowed. */ -+ tree *jlen; - /* List of other modifier characters allowed with these options. */ - const char *flag_chars; - } format_char_info; - - static format_char_info print_char_table[] = { -- { "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_ST, "-wp0 +" }, -- { "oxX", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, "-wp0#" }, -- { "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, "-wp0" }, -+ { "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_ST, T_PD, T_IM, "-wp0 +" }, -+ { "oxX", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_PD, T_UIM, "-wp0#" }, -+ { "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_PD, T_UIM, "-wp0" }, - /* A GNU extension. */ -- { "m", 0, T_V, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, -- { "feEgGaA", 0, T_D, NULL, NULL, NULL, NULL, T_LD, NULL, "-wp0 +#" }, -- { "c", 0, T_I, NULL, NULL, T_WI, NULL, NULL, NULL, "-w" }, -- { "C", 0, T_W, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, -- { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, "-wp" }, -- { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, -- { "p", 1, T_V, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, -- { "n", 1, T_I, NULL, T_S, T_L, T_LL, NULL, NULL, "" }, -- { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } -+ { "m", 0, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, -+ { "fFeEgGaA", 0, T_D, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "-wp0 +#" }, -+ { "c", 0, T_I, NULL, NULL, T_WI, NULL, NULL, NULL, NULL, NULL, "-w" }, -+ { "C", 0, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, -+ { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "-wp" }, -+ { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, -+ { "p", 1, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, -+ { "n", 1, T_I, NULL, T_S, T_L, T_LL, NULL, T_ST, T_PD, T_IM, "" }, -+ { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } - }; - - static format_char_info scan_char_table[] = { -- { "di", 1, T_I, T_C, T_S, T_L, T_LL, T_LL, T_ST, "*" }, -- { "ouxX", 1, T_UI, T_UC, T_US, T_UL, T_ULL, T_ULL, T_ST, "*" }, -- { "efgEGaA", 1, T_F, NULL, NULL, T_D, NULL, T_LD, NULL, "*" }, -- { "c", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, "*" }, -- { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, "*a" }, -- { "[", 1, T_C, NULL, NULL, NULL, NULL, NULL, NULL, "*a" }, -- { "C", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, "*" }, -- { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, "*a" }, -- { "p", 2, T_V, NULL, NULL, NULL, NULL, NULL, NULL, "*" }, -- { "n", 1, T_I, T_C, T_S, T_L, T_LL, NULL, T_ST, "" }, -- { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } -+ { "di", 1, T_I, T_C, T_S, T_L, T_LL, T_LL, T_ST, T_PD, T_IM, "*" }, -+ { "ouxX", 1, T_UI, T_UC, T_US, T_UL, T_ULL, T_ULL, T_ST, T_PD, T_UIM, "*" }, -+ { "efFgEGaA", 1, T_F, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "*" }, -+ { "c", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*" }, -+ { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*a" }, -+ { "[", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*a" }, -+ { "C", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*" }, -+ { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*a" }, -+ { "p", 2, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*" }, -+ { "n", 1, T_I, T_C, T_S, T_L, T_LL, NULL, T_ST, T_PD, T_IM, "" }, -+ { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } - }; - - /* Handle format characters recognized by glibc's strftime.c. -@@ -1262,20 +1271,20 @@ - 'G' - other GNU extensions */ - - static format_char_info time_char_table[] = { -- { "y", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2EO-_0w" }, -- { "D", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2" }, -- { "g", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2O-_0w" }, -- { "cx", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "3E" }, -- { "%RTXnrt", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "" }, -- { "P", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "G" }, -- { "HIMSUWdemw", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Ow" }, -- { "Vju", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Oow" }, -- { "Gklsz", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0OGw" }, -- { "ABZa", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "^#" }, -- { "p", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "#" }, -- { "bh", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "^" }, -- { "CY", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0EOw" }, -- { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } -+ { "y", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2EO-_0w" }, -+ { "D", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2" }, -+ { "g", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2O-_0w" }, -+ { "cx", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "3E" }, -+ { "%RTXnrt", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "" }, -+ { "P", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "G" }, -+ { "HIMSUWdemw", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Ow" }, -+ { "Vju", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Oow" }, -+ { "Gklsz", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0OGw" }, -+ { "ABZa", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "^#" }, -+ { "p", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "#" }, -+ { "bh", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "^" }, -+ { "CY", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0EOw" }, -+ { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } - }; - - typedef struct function_format_info -@@ -1580,6 +1589,7 @@ - while (1) - { - int aflag; -+ int char_type_flag = 0; - if (*format_chars == 0) - { - if (format_chars - TREE_STRING_POINTER (format_tree) != format_length) -@@ -1741,8 +1751,6 @@ - { - precise = TRUE; - ++format_chars; -- if (*format_chars != '*' && !ISDIGIT (*format_chars)) -- warning ("`.' not followed by `*' or digit in format"); - /* "...a...precision...may be indicated by an asterisk. - In this case, an int argument supplies the...precision." */ - if (*format_chars == '*') -@@ -1758,9 +1766,12 @@ - cur_param = TREE_VALUE (params); - params = TREE_CHAIN (params); - ++arg_num; -- if (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -- != integer_type_node) -- warning ("field width is not type int (arg %d)", -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ warning ("field precision is not type int (arg %d)", - arg_num); - } - } -@@ -1792,6 +1803,13 @@ - warning ("ANSI C does not support the `%c' length modifier", - length_char); - } -+ else if (*format_chars == 't' || *format_chars == 'j') -+ { -+ length_char = *format_chars++; -+ if (pedantic && !flag_isoc99) -+ warning ("ANSI C does not support the `%c' length modifier", -+ length_char); -+ } - else - length_char = 0; - if (length_char == 'l' && *format_chars == 'l') -@@ -1830,9 +1848,9 @@ - if (pedantic && info->format_type != strftime_format_type - && (format_char == 'm' || format_char == 'C' || format_char == 'S')) - warning ("ANSI C does not support the `%c' format", format_char); -- /* The a and A formats are C99 extensions. */ -+ /* The a, A and F formats are C99 extensions. */ - if (pedantic && info->format_type != strftime_format_type -- && (format_char == 'a' || format_char == 'A') -+ && (format_char == 'a' || format_char == 'A' || format_char == 'F') - && !flag_isoc99) - warning ("ANSI C does not support the `%c' format", format_char); - format_chars++; -@@ -1937,6 +1955,8 @@ - ? TYPE_DOMAIN (*fci->zlen) - : *fci->zlen) - : 0); break; -+ case 't': wanted_type = fci->tlen ? *(fci->tlen) : 0; break; -+ case 'j': wanted_type = fci->jlen ? *(fci->jlen) : 0; break; - } - if (wanted_type == 0) - warning ("use of `%c' length character with `%c' type character", -@@ -1948,6 +1968,19 @@ - || format_char == 'g' || format_char == 'G')) - warning ("ANSI C does not support the `L' length modifier with the `%c' type character", - format_char); -+ else if (length_char == 'l' -+ && (format_char == 'c' || format_char == 's' -+ || format_char == '[') -+ && pedantic && !flag_isoc94) -+ warning ("ANSI C89 does not support the `l' length modifier with the `%c' type character", -+ format_char); -+ else if (info->format_type == printf_format_type && pedantic -+ && !flag_isoc99 && length_char == 'l' -+ && (format_char == 'f' || format_char == 'e' -+ || format_char == 'E' || format_char == 'g' -+ || format_char == 'G')) -+ warning ("ANSI C does not support the `l' length modifier with the `%c' type character", -+ format_char); - - /* Finally. . .check type of argument against desired type! */ - if (info->first_arg_num == 0) -@@ -2006,23 +2039,41 @@ - || (DECL_P (cur_param) && TREE_READONLY (cur_param)))))) - warning ("writing into constant object (arg %d)", arg_num); - -+ /* Check whether the argument type is a character type. */ -+ if (TREE_CODE (cur_type) != ERROR_MARK) -+ char_type_flag = (TYPE_MAIN_VARIANT (cur_type) == char_type_node -+ || TYPE_MAIN_VARIANT (cur_type) == signed_char_type_node -+ || TYPE_MAIN_VARIANT (cur_type) == unsigned_char_type_node); -+ - /* Check the type of the "real" argument, if there's a type we want. */ - if (i == fci->pointer_count + aflag && wanted_type != 0 - && TREE_CODE (cur_type) != ERROR_MARK - && wanted_type != TYPE_MAIN_VARIANT (cur_type) - /* If we want `void *', allow any pointer type. -- (Anything else would already have got a warning.) */ -+ (Anything else would already have got a warning.) -+ With -pedantic, only allow pointers to void and to character -+ types. -+ */ - && ! (wanted_type == void_type_node -- && fci->pointer_count > 0) -- /* Don't warn about differences merely in signedness. */ -+ && fci->pointer_count > 0 -+ && (! pedantic -+ || TYPE_MAIN_VARIANT (cur_type) == void_type_node -+ || char_type_flag)) -+ /* Don't warn about differences merely in signedness, unless -+ -pedantic. With -pedantic, warn if the type is a pointer -+ target and not a character type, and for character types at -+ a second level of indirection. -+ */ - && !(TREE_CODE (wanted_type) == INTEGER_TYPE - && TREE_CODE (TYPE_MAIN_VARIANT (cur_type)) == INTEGER_TYPE -+ && (! pedantic || i == 0 || (i == 1 && char_type_flag)) - && (TREE_UNSIGNED (wanted_type) - ? wanted_type == (cur_type = unsigned_type (cur_type)) - : wanted_type == (cur_type = signed_type (cur_type)))) - /* Likewise, "signed char", "unsigned char" and "char" are - equivalent but the above test won't consider them equivalent. */ - && ! (wanted_type == char_type_node -+ && (! pedantic || i < 2) - && (TYPE_MAIN_VARIANT (cur_type) == signed_char_type_node - || TYPE_MAIN_VARIANT (cur_type) == unsigned_char_type_node))) - { ---- gcc/cp/decl.c Mon Jul 17 22:11:52 2000 -+++ gcc/cp/decl.c Tue Jul 18 14:50:56 2000 -@@ -339,6 +339,10 @@ - - tree current_function_return_value; - -+/* Nonzero means use the ISO C94 dialect of C. */ -+ -+int flag_isoc94; -+ - /* Nonzero means use the ISO C99 dialect of C. */ - - int flag_isoc99; ---- gcc/testsuite/gcc.dg/c90-printf-1.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c90-printf-1.c Mon Jul 17 17:24:54 2000 -@@ -0,0 +1,247 @@ -+/* Test for printf formats. Formats using C90 features, including cases -+ where C90 specifies some aspect of the format to be ignored or where -+ the behaviour is undefined. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic -Wformat" } */ -+ -+typedef __WCHAR_TYPE__ wchar_t; -+ -+#ifndef __WINT_TYPE__ -+#define __WINT_TYPE__ unsigned int -+#endif -+typedef __WINT_TYPE__ wint_t; -+ -+__extension__ typedef long long int llong; -+__extension__ typedef unsigned long long int ullong; -+ -+extern int printf (const char *, ...); -+ -+#define NULL ((void *)0) -+ -+void -+foo (int i, int i1, int i2, unsigned int u, double d, char *s, void *p, -+ int *n, short int *hn, long int l, unsigned long int ul, -+ long int *ln, long double ld, wint_t lc, wchar_t *ls, llong ll, -+ ullong ull, unsigned int *un, const int *cn, signed char *ss, -+ unsigned char *us, const signed char *css, unsigned int u1, -+ unsigned int u2) -+{ -+ /* See ISO/IEC 9899:1990 (E) subclause 7.9.6.1 (pages 131-134). */ -+ /* Basic sanity checks for the different components of a format. */ -+ printf ("%d\n", i); -+ printf ("%+d\n", i); -+ printf ("%3d\n", i); -+ printf ("%-3d\n", i); -+ printf ("%.7d\n", i); -+ printf ("%+9.4d\n", i); -+ printf ("%.3ld\n", l); -+ printf ("%*d\n", i1, i); -+ printf ("%.*d\n", i2, i); -+ printf ("%*.*ld\n", i1, i2, l); -+ printf ("%d %lu\n", i, ul); -+ /* GCC has objected to the next one in the past, but it is a valid way -+ of specifying zero precision. -+ */ -+ printf ("%.e\n", d); /* { dg-bogus "precision" "bogus precision warning" } */ -+ /* Bogus use of width. */ -+ printf ("%5n\n", n); /* { dg-warning "width" "width with %n" } */ -+ /* Erroneous, ignored or pointless constructs with precision. */ -+ /* Whether negative values for precision may be included in the format -+ string is not entirely clear; presume not, following Clive Feather's -+ proposed resolution to DR#220 against C99. In any case, such a -+ construct should be warned about. -+ */ -+ printf ("%.-5d\n", i); /* { dg-warning "format|precision" "negative precision warning" } */ -+ printf ("%.-*d\n", i); /* { dg-warning "format" "broken %.-*d format" } */ -+ printf ("%.3c\n", i); /* { dg-warning "precision" "precision with %c" } */ -+ printf ("%.3p\n", p); /* { dg-warning "precision" "precision with %p" } */ -+ printf ("%.3n\n", n); /* { dg-warning "precision" "precision with %n" } */ -+ /* Valid and invalid %% constructions. Some of the warning messages -+ are non-optimal, but they do detect the errorneous nature of the -+ format string. -+ */ -+ printf ("%%"); -+ printf ("%.3%"); /* { dg-warning "format" "bogus %%" } */ -+ printf ("%-%"); /* { dg-warning "format" "bogus %%" } */ -+ printf ("%-%\n"); /* { dg-warning "format" "bogus %%" } */ -+ printf ("%5%\n"); /* { dg-warning "format" "bogus %%" } */ -+ printf ("%h%\n"); /* { dg-warning "format" "bogus %%" } */ -+ /* Valid and invalid %h, %l, %L constructions. */ -+ printf ("%hd", i); -+ printf ("%hi", i); -+ /* Strictly, these parameters should be int or unsigned int according to -+ what unsigned short promotes to. However, GCC ignores sign -+ differences in format checking here, and this is relied on to get the -+ correct checking without print_char_table needing to know whether -+ int and short are the same size. -+ */ -+ printf ("%ho%hu%hx%hX", u, u, u, u); -+ printf ("%hn", hn); -+ printf ("%hf", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%he", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hE", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hg", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hG", d); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hc", i); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hs", s); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%hp", p); /* { dg-warning "length character" "bad use of %h" } */ -+ printf ("%h"); /* { dg-warning "conversion lacks type" "bare %h" } */ -+ printf ("%h."); /* { dg-warning "conversion" "bogus %h." } */ -+ printf ("%ld%li%lo%lu%lx%lX", l, l, ul, ul, ul, ul); -+ printf ("%ln", ln); -+ printf ("%lf", d); /* { dg-warning "length character|C" "bad use of %l" } */ -+ printf ("%le", d); /* { dg-warning "length character|C" "bad use of %l" } */ -+ printf ("%lE", d); /* { dg-warning "length character|C" "bad use of %l" } */ -+ printf ("%lg", d); /* { dg-warning "length character|C" "bad use of %l" } */ -+ printf ("%lG", d); /* { dg-warning "length character|C" "bad use of %l" } */ -+ printf ("%lp", p); /* { dg-warning "length character|C" "bad use of %l" } */ -+ /* These next two were added in C94, but should be objected to in C90. -+ For the first one, GCC has wanted wchar_t instead of the correct C94 -+ and C99 wint_t. -+ */ -+ printf ("%lc", lc); /* { dg-warning "length character|C" "C90 bad use of %l" } */ -+ printf ("%ls", ls); /* { dg-warning "length character|C" "C90 bad use of %l" } */ -+ /* These uses of %L are legitimate, though GCC has wrongly warned for -+ them in the past. -+ */ -+ printf ("%Le%LE%Lf%Lg%LG", ld, ld, ld, ld, ld); -+ /* These next six are accepted by GCC as referring to long long, -+ but -pedantic correctly warns. -+ */ -+ printf ("%Ld", ll); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Li", ll); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Lo", ull); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Lu", ull); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Lx", ull); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%LX", ull); /* { dg-warning "does not support" "bad use of %L" } */ -+ printf ("%Lc", i); /* { dg-warning "length character" "bad use of %L" } */ -+ printf ("%Ls", s); /* { dg-warning "length character" "bad use of %L" } */ -+ printf ("%Lp", p); /* { dg-warning "length character" "bad use of %L" } */ -+ printf ("%Ln", n); /* { dg-warning "length character" "bad use of %L" } */ -+ /* Valid uses of each bare conversion. */ -+ printf ("%d%i%o%u%x%X%f%e%E%g%G%c%s%p%n%%", i, i, u, u, u, u, d, d, d, d, d, -+ i, s, p, n); -+ /* Uses of the - flag (valid on all non-%, non-n conversions). */ -+ printf ("%-d%-i%-o%-u%-x%-X%-f%-e%-E%-g%-G%-c%-s%-p", i, i, u, u, u, u, -+ d, d, d, d, d, i, s, p); -+ printf ("%-n", n); /* { dg-warning "flag" "bad use of %-n" } */ -+ /* Uses of the + flag (valid on signed conversions only). */ -+ printf ("%+d%+i%+f%+e%+E%+g%+G\n", i, i, d, d, d, d, d); -+ printf ("%+o", u); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+u", u); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+x", u); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+X", u); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+c", i); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+s", s); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+p", p); /* { dg-warning "flag" "bad use of + flag" } */ -+ printf ("%+n", n); /* { dg-warning "flag" "bad use of + flag" } */ -+ /* Uses of the space flag (valid on signed conversions only, and ignored -+ with +). -+ */ -+ printf ("% +d", i); /* { dg-warning "use of both" "use of space and + flags" } */ -+ printf ("%+ d", i); /* { dg-warning "use of both" "use of space and + flags" } */ -+ printf ("% d% i% f% e% E% g% G\n", i, i, d, d, d, d, d); -+ printf ("% o", u); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% u", u); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% x", u); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% X", u); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% c", i); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% s", s); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% p", p); /* { dg-warning "flag" "bad use of space flag" } */ -+ printf ("% n", n); /* { dg-warning "flag" "bad use of space flag" } */ -+ /* Uses of the # flag. */ -+ printf ("%#o%#x%#X%#e%#E%#f%#g%#G", u, u, u, d, d, d, d, d); -+ printf ("%#d", i); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#i", i); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#u", u); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#c", i); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#s", s); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#p", p); /* { dg-warning "flag" "bad use of # flag" } */ -+ printf ("%#n", n); /* { dg-warning "flag" "bad use of # flag" } */ -+ /* Uses of the 0 flag. */ -+ printf ("%08d%08i%08o%08u%08x%08X%08e%08E%08f%08g%08G", i, i, u, u, u, u, -+ d, d, d, d, d); -+ printf ("%0c", i); /* { dg-warning "flag" "bad use of 0 flag" } */ -+ printf ("%0s", s); /* { dg-warning "flag" "bad use of 0 flag" } */ -+ printf ("%0p", p); /* { dg-warning "flag" "bad use of 0 flag" } */ -+ printf ("%0n", n); /* { dg-warning "flag" "bad use of 0 flag" } */ -+ /* 0 flag ignored with precision for certain types, not others. */ -+ printf ("%08.5d", i); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5i", i); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5o", u); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5u", u); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5x", u); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5X", u); /* { dg-warning "ignored" "0 flag ignored with precision" } */ -+ printf ("%08.5f%08.5e%08.5E%08.5g%08.5G", d, d, d, d, d); -+ /* 0 flag ignored with - flag. */ -+ printf ("%-08d", i); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08i", i); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08o", u); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08u", u); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08x", u); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08X", u); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08e", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08E", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08f", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08g", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ printf ("%-08G", d); /* { dg-warning "flags" "0 flag ignored with - flag" } */ -+ /* Various tests of bad argument types. */ -+ printf ("%d", l); /* { dg-warning "format" "bad argument types" } */ -+ printf ("%*.*d", l, i2, i); /* { dg-warning "field" "bad * argument types" } */ -+ printf ("%*.*d", i1, l, i); /* { dg-warning "field" "bad * argument types" } */ -+ printf ("%ld", i); /* { dg-warning "format" "bad argument types" } */ -+ printf ("%s", n); /* { dg-warning "format" "bad argument types" } */ -+ printf ("%p", i); /* { dg-warning "format" "bad argument types" } */ -+ printf ("%n", p); /* { dg-warning "format" "bad argument types" } */ -+ /* With -pedantic, we want some further checks for pointer targets: -+ %p should allow only pointers to void (possibly qualified) and -+ to character types (possibly qualified), but not function pointers -+ or pointers to other types. (Whether, in fact, character types are -+ allowed here is unclear; see thread on comp.std.c, July 2000 for -+ discussion of the requirements of rules on identical representation, -+ and of the application of the as if rule with the new va_arg -+ allowances in C99 to printf.) Likewise, we should warn if -+ pointer targets differ in signedness, except in some circumstances -+ for character pointers. (In C99 we should consider warning for -+ char * or unsigned char * being passed to %hhn, even if strictly -+ legitimate by the standard.) -+ */ -+ printf ("%p", foo); /* { dg-warning "format" "bad argument types" } */ -+ printf ("%n", un); /* { dg-warning "format" "bad argument types" } */ -+ printf ("%p", n); /* { dg-warning "format" "bad argument types" } */ -+ /* Allow character pointers with %p. */ -+ printf ("%p%p%p%p", s, ss, us, css); -+ /* %s allows any character type. */ -+ printf ("%s%s%s%s", s, ss, us, css); -+ /* Warning for void * arguments for %s is GCC's historical behaviour, -+ and seems useful to keep, even if some standard versions might be -+ read to permit it. -+ */ -+ printf ("%s", p); /* { dg-warning "format" "bad argument types" } */ -+ /* The historical behaviour is to allow signed / unsigned types -+ interchangably as arguments. For values representable in both types, -+ such usage may be correct. For now preserve the behaviour of GCC -+ in such cases. -+ */ -+ printf ("%d", u); -+ /* Also allow the same for width and precision arguments. In the past, -+ GCC has been inconsistent and allowed unsigned for width but not -+ precision. -+ */ -+ printf ("%*.*d", u1, u2, i); -+ /* Wrong number of arguments. */ -+ printf ("%d%d", i); /* { dg-warning "arguments" "wrong number of args" } */ -+ printf ("%d", i, i); /* { dg-warning "arguments" "wrong number of args" } */ -+ /* Miscellaneous bogus constructions. */ -+ printf (""); /* { dg-warning "zero-length" "warning for empty format" } */ -+ printf ("\0"); /* { dg-warning "embedded" "warning for embedded NUL" } */ -+ printf ("%d\0", i); /* { dg-warning "embedded" "warning for embedded NUL" } */ -+ printf ("%d\0%d", i, i); /* { dg-warning "embedded|too many" "warning for embedded NUL" } */ -+ printf (NULL); /* { dg-warning "null" "null format string warning" } */ -+ printf ("%"); /* { dg-warning "trailing" "trailing % warning" } */ -+ printf ("%++d", i); /* { dg-warning "repeated" "repeated flag warning" } */ -+ printf ("%n", cn); /* { dg-warning "constant" "%n with const" } */ -+ /* Can we test for the warning for unterminated string formats? */ -+} ---- gcc/testsuite/gcc.dg/c94-printf-1.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c94-printf-1.c Mon Jul 17 17:26:43 2000 -@@ -0,0 +1,25 @@ -+/* Test for printf formats. Changes in C94 to C90. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:199409 -pedantic -Wformat" } */ -+ -+typedef __WCHAR_TYPE__ wchar_t; -+ -+#ifndef __WINT_TYPE__ -+#define __WINT_TYPE__ unsigned int -+#endif -+typedef __WINT_TYPE__ wint_t; -+ -+extern int printf (const char *, ...); -+ -+void -+foo (wint_t lc, wchar_t *ls) -+{ -+ /* See ISO/IEC 9899:1990 (E) subclause 7.9.6.1 (pages 131-134), -+ as amended by ISO/IEC 9899:1990/Amd.1:1995 (E) (pages 4-5). -+ We do not repeat here all the C90 format checks, but just verify -+ that %ls and %lc are accepted without warning. -+ */ -+ printf ("%lc", lc); -+ printf ("%ls", ls); -+} - - --- -Joseph S. Myers -jsm28@cam.ac.uk - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-address-cost.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-address-cost.patch deleted file mode 100644 index 4e63f24c391e..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-address-cost.patch +++ /dev/null @@ -1,15 +0,0 @@ -2000-09-06 Graham Stott <grahams@redhat.com> - - * config/i386/i386.h (ADDRESS_COST): Fix typo. - ---- gcc/config/i386/i386.h.jj Mon Oct 23 22:51:33 2000 -+++ gcc/config/i386/i386.h Fri Oct 27 17:57:35 2000 -@@ -2097,7 +2097,7 @@ while (0) - lifetimes. */ - - #define ADDRESS_COST(RTX) \ -- ix86_address_cost (x) -+ ix86_address_cost (RTX) - - /* A C expression for the cost of moving data from a register in class FROM to - one in class TO. The classes are expressed using the enumeration values diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-arith.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-arith.patch deleted file mode 100644 index 95181f93b3db..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-arith.patch +++ /dev/null @@ -1,448 +0,0 @@ -Tue Sep 12 00:52:16 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (add?i_3, add?i_5): New. - (add?i_4): Rename from add?i_3; Fix compare pattern. - (sub?i_3, xor?i_3, ior?i_3): New. - -*** gcc/config/i386/i386.md Mon Aug 28 12:17:54 2000 ---- gcc/config/i386/i386.md Mon Sep 11 23:36:03 2000 -*************** -*** 3967,3976 **** - (set_attr "mode" "SI")]) - - (define_insn "*addsi_3" - [(set (reg:CC 17) -! (compare:CC (plus:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0") -! (match_operand:SI 2 "general_operand" "rmni,rni")) -! (const_int 0))) - (set (match_operand:SI 0 "nonimmediate_operand" "=r,rm") - (plus:SI (match_dup 1) (match_dup 2)))] - "ix86_binary_operator_ok (PLUS, SImode, operands) ---- 3965,4019 ---- - (set_attr "mode" "SI")]) - - (define_insn "*addsi_3" -+ [(set (reg 17) -+ (compare (neg:SI (match_operand:SI 2 "general_operand" "rmni")) -+ (match_operand:SI 1 "nonimmediate_operand" "%0"))) -+ (clobber (match_scratch:SI 0 "=r"))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM) -+ /* Current assemblers are broken and do not allow @GOTOFF in -+ ought but a memory context. */ -+ && ! pic_symbolic_operand (operands[2], VOIDmode)" -+ "* -+ { -+ switch (get_attr_type (insn)) -+ { -+ case TYPE_INCDEC: -+ if (! rtx_equal_p (operands[0], operands[1])) -+ abort (); -+ if (operands[2] == const1_rtx) -+ return \"inc{l}\\t%0\"; -+ else if (operands[2] == constm1_rtx) -+ return \"dec{l}\\t%0\"; -+ else -+ abort(); -+ -+ default: -+ if (! rtx_equal_p (operands[0], operands[1])) -+ abort (); -+ /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'. -+ Exceptions: -128 encodes smaller than 128, so swap sign and op. */ -+ if (GET_CODE (operands[2]) == CONST_INT -+ && (INTVAL (operands[2]) == 128 -+ || (INTVAL (operands[2]) < 0 -+ && INTVAL (operands[2]) != -128))) -+ { -+ operands[2] = GEN_INT (-INTVAL (operands[2])); -+ return \"sub{l}\\t{%2, %0|%0, %2}\"; -+ } -+ return \"add{l}\\t{%2, %0|%0, %2}\"; -+ } -+ }" -+ [(set (attr "type") -+ (if_then_else (match_operand:SI 2 "incdec_operand" "") -+ (const_string "incdec") -+ (const_string "alu"))) -+ (set_attr "mode" "SI")]) -+ -+ (define_insn "*addsi_4" - [(set (reg:CC 17) -! (compare:CC (neg:SI (match_operand:SI 2 "general_operand" "rmni,rni")) -! (match_operand:SI 1 "nonimmediate_operand" "%0,0"))) - (set (match_operand:SI 0 "nonimmediate_operand" "=r,rm") - (plus:SI (match_dup 1) (match_dup 2)))] - "ix86_binary_operator_ok (PLUS, SImode, operands) -*************** -*** 3981,3986 **** ---- 4024,4042 ---- - [(set_attr "type" "alu") - (set_attr "mode" "SI")]) - -+ (define_insn "*addsi_5" -+ [(set (reg:CC 17) -+ (compare:CC (neg:SI (match_operand:SI 2 "general_operand" "rmni")) -+ (match_operand:SI 1 "nonimmediate_operand" "%0"))) -+ (clobber (match_scratch:SI 0 "=r"))] -+ "(GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM) -+ /* Current assemblers are broken and do not allow @GOTOFF in -+ ought but a memory context. */ -+ && ! pic_symbolic_operand (operands[2], VOIDmode)" -+ "add{l}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "SI")]) -+ - (define_expand "addhi3" - [(parallel [(set (match_operand:HI 0 "nonimmediate_operand" "") - (plus:HI (match_operand:HI 1 "nonimmediate_operand" "") -*************** -*** 4121,4130 **** - (set_attr "mode" "HI")]) - - (define_insn "*addhi_3" - [(set (reg:CC 17) -! (compare:CC (plus:HI (match_operand:HI 1 "nonimmediate_operand" "%0,0") -! (match_operand:HI 2 "general_operand" "rmni,rni")) -! (const_int 0))) - (set (match_operand:HI 0 "nonimmediate_operand" "=r,rm") - (plus:HI (match_dup 1) (match_dup 2)))] - "ix86_binary_operator_ok (PLUS, HImode, operands)" ---- 4177,4225 ---- - (set_attr "mode" "HI")]) - - (define_insn "*addhi_3" -+ [(set (reg 17) -+ (compare (neg:HI (match_operand:HI 2 "general_operand" "rmni")) -+ (match_operand:HI 1 "nonimmediate_operand" "%0"))) -+ (clobber (match_scratch:HI 0 "=r"))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "* -+ { -+ switch (get_attr_type (insn)) -+ { -+ case TYPE_INCDEC: -+ if (operands[2] == const1_rtx) -+ return \"inc{w}\\t%0\"; -+ else if (operands[2] == constm1_rtx -+ || (GET_CODE (operands[2]) == CONST_INT -+ && INTVAL (operands[2]) == 65535)) -+ return \"dec{w}\\t%0\"; -+ abort(); -+ -+ default: -+ /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'. -+ Exceptions: -128 encodes smaller than 128, so swap sign and op. */ -+ if (GET_CODE (operands[2]) == CONST_INT -+ && (INTVAL (operands[2]) == 128 -+ || (INTVAL (operands[2]) < 0 -+ && INTVAL (operands[2]) != -128))) -+ { -+ operands[2] = GEN_INT (-INTVAL (operands[2])); -+ return \"sub{w}\\t{%2, %0|%0, %2}\"; -+ } -+ return \"add{w}\\t{%2, %0|%0, %2}\"; -+ } -+ }" -+ [(set (attr "type") -+ (if_then_else (match_operand:HI 2 "incdec_operand" "") -+ (const_string "incdec") -+ (const_string "alu"))) -+ (set_attr "mode" "HI")]) -+ -+ (define_insn "*addhi_4" - [(set (reg:CC 17) -! (compare:CC (neg:HI (match_operand:HI 2 "general_operand" "rmni,rni")) -! (match_operand:HI 1 "nonimmediate_operand" "%0,0"))) - (set (match_operand:HI 0 "nonimmediate_operand" "=r,rm") - (plus:HI (match_dup 1) (match_dup 2)))] - "ix86_binary_operator_ok (PLUS, HImode, operands)" -*************** -*** 4132,4137 **** ---- 4227,4242 ---- - [(set_attr "type" "alu") - (set_attr "mode" "HI")]) - -+ (define_insn "*addhi_5" -+ [(set (reg:CC 17) -+ (compare:CC (neg:HI (match_operand:HI 2 "general_operand" "rmni")) -+ (match_operand:HI 1 "nonimmediate_operand" "%0"))) -+ (clobber (match_scratch:HI 0 "=r"))] -+ "(GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "add{w}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "HI")]) -+ - (define_expand "addqi3" - [(parallel [(set (match_operand:QI 0 "nonimmediate_operand" "") - (plus:QI (match_operand:QI 1 "nonimmediate_operand" "") -*************** -*** 4280,4289 **** - (set_attr "mode" "QI")]) - - (define_insn "*addqi_3" - [(set (reg:CC 17) -! (compare:CC (plus:QI (match_operand:QI 1 "nonimmediate_operand" "%0,0") -! (match_operand:QI 2 "general_operand" "qmni,qni")) -! (const_int 0))) - (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm") - (plus:QI (match_dup 1) (match_dup 2)))] - "ix86_binary_operator_ok (PLUS, QImode, operands)" ---- 4385,4430 ---- - (set_attr "mode" "QI")]) - - (define_insn "*addqi_3" -+ [(set (reg 17) -+ (compare (neg:QI (match_operand:QI 2 "general_operand" "qmni")) -+ (match_operand:QI 1 "nonimmediate_operand" "%0"))) -+ (clobber (match_scratch:QI 0 "=r"))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "* -+ { -+ switch (get_attr_type (insn)) -+ { -+ case TYPE_INCDEC: -+ if (operands[2] == const1_rtx) -+ return \"inc{b}\\t%0\"; -+ else if (operands[2] == constm1_rtx -+ || (GET_CODE (operands[2]) == CONST_INT -+ && INTVAL (operands[2]) == 255)) -+ return \"dec{b}\\t%0\"; -+ abort(); -+ -+ default: -+ /* Make things pretty and `subb $4,%al' rather than `addb $-4, %al'. */ -+ if (GET_CODE (operands[2]) == CONST_INT -+ && INTVAL (operands[2]) < 0) -+ { -+ operands[2] = GEN_INT (-INTVAL (operands[2])); -+ return \"sub{b}\\t{%2, %0|%0, %2}\"; -+ } -+ return \"add{b}\\t{%2, %0|%0, %2}\"; -+ } -+ }" -+ [(set (attr "type") -+ (if_then_else (match_operand:QI 2 "incdec_operand" "") -+ (const_string "incdec") -+ (const_string "alu"))) -+ (set_attr "mode" "QI")]) -+ -+ (define_insn "*addqi_4" - [(set (reg:CC 17) -! (compare:CC (neg:QI (match_operand:QI 2 "general_operand" "qmni,qni")) -! (match_operand:QI 1 "nonimmediate_operand" "%0,0"))) - (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm") - (plus:QI (match_dup 1) (match_dup 2)))] - "ix86_binary_operator_ok (PLUS, QImode, operands)" -*************** -*** 4291,4296 **** ---- 4432,4447 ---- - [(set_attr "type" "alu") - (set_attr "mode" "QI")]) - -+ (define_insn "*addqi_5" -+ [(set (reg:CC 17) -+ (compare:CC (neg:QI (match_operand:QI 2 "general_operand" "qmni")) -+ (match_operand:QI 1 "nonimmediate_operand" "%0"))) -+ (clobber (match_scratch:QI 0 "=r"))] -+ "(GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "add{b}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "QI")]) -+ - - (define_insn "addqi_ext_1" - [(set (zero_extract:SI (match_operand 0 "ext_register_operand" "=q") -*************** -*** 4448,4453 **** ---- 4599,4616 ---- - (const_int 0))) - (set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") - (minus:SI (match_dup 1) (match_dup 2)))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && ix86_binary_operator_ok (MINUS, SImode, operands)" -+ "sub{l}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "SI")]) -+ -+ (define_insn "*subsi_3" -+ [(set (reg 17) -+ (compare (match_operand:SI 1 "nonimmediate_operand" "0,0") -+ (match_operand:SI 2 "general_operand" "ri,rm"))) -+ (set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") -+ (minus:SI (match_dup 1) (match_dup 2)))] - "ix86_match_ccmode (insn, CCmode) - && ix86_binary_operator_ok (MINUS, SImode, operands)" - "sub{l}\\t{%2, %0|%0, %2}" -*************** -*** 4480,4485 **** ---- 4643,4660 ---- - (const_int 0))) - (set (match_operand:HI 0 "nonimmediate_operand" "=rm,r") - (minus:HI (match_dup 1) (match_dup 2)))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && ix86_binary_operator_ok (MINUS, HImode, operands)" -+ "sub{w}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "HI")]) -+ -+ (define_insn "*subhi_3" -+ [(set (reg 17) -+ (compare (match_operand:HI 1 "nonimmediate_operand" "0,0") -+ (match_operand:HI 2 "general_operand" "ri,rm"))) -+ (set (match_operand:HI 0 "nonimmediate_operand" "=rm,r") -+ (minus:HI (match_dup 1) (match_dup 2)))] - "ix86_match_ccmode (insn, CCmode) - && ix86_binary_operator_ok (MINUS, HImode, operands)" - "sub{w}\\t{%2, %0|%0, %2}" -*************** -*** 4512,4517 **** ---- 4687,4704 ---- - (const_int 0))) - (set (match_operand:HI 0 "nonimmediate_operand" "=qm,q") - (minus:HI (match_dup 1) (match_dup 2)))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && ix86_binary_operator_ok (MINUS, QImode, operands)" -+ "sub{b}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "QI")]) -+ -+ (define_insn "*subqi_3" -+ [(set (reg 17) -+ (compare (match_operand:QI 1 "nonimmediate_operand" "0,0") -+ (match_operand:QI 2 "general_operand" "qi,qm"))) -+ (set (match_operand:HI 0 "nonimmediate_operand" "=qm,q") -+ (minus:HI (match_dup 1) (match_dup 2)))] - "ix86_match_ccmode (insn, CCmode) - && ix86_binary_operator_ok (MINUS, QImode, operands)" - "sub{b}\\t{%2, %0|%0, %2}" -*************** -*** 5414,5419 **** ---- 5601,5618 ---- - [(set_attr "type" "alu") - (set_attr "mode" "SI")]) - -+ (define_insn "*iorsi_3" -+ [(set (reg 17) -+ (compare (ior:SI (match_operand:SI 1 "nonimmediate_operand" "%0") -+ (match_operand:SI 2 "general_operand" "rim")) -+ (const_int 0))) -+ (clobber (match_scratch:SI 0 "=r"))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "or{l}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "SI")]) -+ - (define_expand "iorhi3" - [(set (match_operand:HI 0 "nonimmediate_operand" "") - (ior:HI (match_operand:HI 1 "nonimmediate_operand" "") -*************** -*** 5445,5450 **** ---- 5644,5661 ---- - [(set_attr "type" "alu") - (set_attr "mode" "HI")]) - -+ (define_insn "*iorhi_3" -+ [(set (reg 17) -+ (compare (ior:HI (match_operand:HI 1 "nonimmediate_operand" "%0") -+ (match_operand:HI 2 "general_operand" "rim")) -+ (const_int 0))) -+ (clobber (match_scratch:HI 0 "=r"))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "or{w}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "HI")]) -+ - (define_expand "iorqi3" - [(set (match_operand:QI 0 "nonimmediate_operand" "") - (ior:QI (match_operand:QI 1 "nonimmediate_operand" "") -*************** -*** 5479,5484 **** ---- 5690,5708 ---- - "or{b}\\t{%2, %0|%0, %2}" - [(set_attr "type" "alu") - (set_attr "mode" "QI")]) -+ -+ (define_insn "*iorqi_3" -+ [(set (reg 17) -+ (compare (ior:QI (match_operand:QI 1 "nonimmediate_operand" "%0") -+ (match_operand:QI 2 "general_operand" "qim")) -+ (const_int 0))) -+ (clobber (match_scratch:QI 0 "=r"))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "or{b}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "QI")]) -+ - - ;; Logical XOR instructions - -*************** -*** 5516,5521 **** ---- 5740,5757 ---- - [(set_attr "type" "alu") - (set_attr "mode" "SI")]) - -+ (define_insn "*xorsi_3" -+ [(set (reg 17) -+ (compare (xor:SI (match_operand:SI 1 "nonimmediate_operand" "%0") -+ (match_operand:SI 2 "general_operand" "rim")) -+ (const_int 0))) -+ (clobber (match_scratch:SI 0 "=r"))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "xor{l}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "SI")]) -+ - (define_expand "xorhi3" - [(set (match_operand:HI 0 "nonimmediate_operand" "") - (xor:HI (match_operand:HI 1 "nonimmediate_operand" "") -*************** -*** 5547,5552 **** ---- 5783,5800 ---- - [(set_attr "type" "alu") - (set_attr "mode" "HI")]) - -+ (define_insn "*xorhi_3" -+ [(set (reg 17) -+ (compare (xor:HI (match_operand:HI 1 "nonimmediate_operand" "%0") -+ (match_operand:HI 2 "general_operand" "rim")) -+ (const_int 0))) -+ (clobber (match_scratch:HI 0 "=r"))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "xor{w}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "HI")]) -+ - (define_expand "xorqi3" - [(set (match_operand:QI 0 "nonimmediate_operand" "") - (xor:QI (match_operand:QI 1 "nonimmediate_operand" "") -*************** -*** 5601,5606 **** ---- 5849,5867 ---- - [(set_attr "type" "alu") - (set_attr "mode" "QI")]) - -+ (define_insn "*xorqi_cc_2" -+ [(set (reg 17) -+ (compare -+ (xor:QI (match_operand:QI 1 "nonimmediate_operand" "%0") -+ (match_operand:QI 2 "general_operand" "qim")) -+ (const_int 0))) -+ (clobber (match_scratch:QI 0 "=r"))] -+ "ix86_match_ccmode (insn, CCNOmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "xor{b}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "mode" "QI")]) -+ - (define_insn "xorqi_cc_ext_1" - [(set (reg:CCNO 17) - (compare:CCNO diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-arith2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-arith2.patch deleted file mode 100644 index 7249f5706b12..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-arith2.patch +++ /dev/null @@ -1,1663 +0,0 @@ ---- gcc/config/i386/i386.c Mon Oct 23 22:51:33 2000 -+++ gcc/config/i386/i386.c Fri Oct 27 17:41:12 2000 -@@ -1272,47 +1272,58 @@ no_comparison_operator (op, mode) - return 0; - } - } -- --/* Return 1 if OP is a comparison operator that can be issued by fcmov. */ -- -+/* Return 1 if OP is a valid comparison operator in valid mode. */ - int --fcmov_comparison_operator (op, mode) -- register rtx op; -- enum machine_mode mode; -+ix86_comparison_operator (op, mode) -+ register rtx op; -+ enum machine_mode mode; - { -+ enum machine_mode inmode; - if (mode != VOIDmode && GET_MODE (op) != mode) - return 0; -- - switch (GET_CODE (op)) - { - case EQ: case NE: -- case LEU: case LTU: case GEU: case GTU: -- case UNORDERED: case ORDERED: - return 1; -- -+ case LT: case GE: -+ inmode = GET_MODE (XEXP (op, 0)); -+ if (inmode == CCmode || inmode == CCGCmode -+ || inmode == CCGOCmode || inmode == CCNOmode) -+ return 1; -+ return 0; -+ case LTU: case GTU: case LEU: case ORDERED: case UNORDERED: case GEU: -+ inmode = GET_MODE (XEXP (op, 0)); -+ if (inmode == CCmode) -+ return 1; -+ return 0; -+ case GT: case LE: -+ inmode = GET_MODE (XEXP (op, 0)); -+ if (inmode == CCmode || inmode == CCGCmode || inmode == CCNOmode) -+ return 1; -+ return 0; - default: - return 0; - } - } - --/* Return 1 if OP is any normal comparison operator plus {UN}ORDERED. */ -+/* Return 1 if OP is a comparison operator that can be issued by fcmov. */ - --int --uno_comparison_operator (op, mode) -+int -+fcmov_comparison_operator (op, mode) - register rtx op; - enum machine_mode mode; - { -+ enum machine_mode inmode = GET_MODE (XEXP (op, 0)); - if (mode != VOIDmode && GET_MODE (op) != mode) - return 0; -- - switch (GET_CODE (op)) - { - case EQ: case NE: -- case LE: case LT: case GE: case GT: -- case LEU: case LTU: case GEU: case GTU: -- case UNORDERED: case ORDERED: - return 1; -- -+ case LTU: case GTU: case LEU: case ORDERED: case UNORDERED: case GEU: -+ if (inmode == CCmode) -+ return 1; -+ return 0; - default: - return 0; - } -@@ -3035,40 +3046,52 @@ put_condition_code (code, mode, reverse, - suffix = "ne"; - break; - case GT: -- if (mode == CCNOmode) -+ if (mode != CCmode && mode != CCNOmode && mode != CCGCmode) - abort (); - suffix = "g"; - break; - case GTU: - /* ??? Use "nbe" instead of "a" for fcmov losage on some assemblers. - Those same assemblers have the same but opposite losage on cmov. */ -+ if (mode != CCmode) -+ abort(); - suffix = fp ? "nbe" : "a"; - break; - case LT: -- if (mode == CCNOmode) -+ if (mode == CCNOmode || mode == CCGOCmode) - suffix = "s"; -- else -+ else if (mode == CCmode || mode == CCGCmode) - suffix = "l"; -+ else -+ abort(); - break; - case LTU: -+ if (mode != CCmode) -+ abort(); - suffix = "b"; - break; - case GE: -- if (mode == CCNOmode) -+ if (mode == CCNOmode || mode == CCGOCmode) - suffix = "ns"; -- else -+ else if (mode == CCmode || mode == CCGCmode) - suffix = "ge"; -+ else -+ abort(); - break; - case GEU: - /* ??? As above. */ -+ if (mode != CCmode) -+ abort(); - suffix = fp ? "nb" : "ae"; - break; - case LE: -- if (mode == CCNOmode) -+ if (mode != CCmode && mode != CCGCmode && mode != CCNOmode) - abort (); - suffix = "le"; - break; - case LEU: -+ if (mode != CCmode) -+ abort (); - suffix = "be"; - break; - case UNORDERED: -@@ -4454,15 +4477,27 @@ ix86_match_ccmode (insn, req_mode) - set = XVECEXP (set, 0, 0); - if (GET_CODE (set) != SET) - abort (); -+ if (GET_CODE (SET_SRC (set)) != COMPARE) -+ abort (); - - set_mode = GET_MODE (SET_DEST (set)); - switch (set_mode) - { -+ case CCNOmode: -+ if (req_mode != CCNOmode -+ && (req_mode != CCmode -+ || XEXP (SET_SRC (set), 1) != const0_rtx)) -+ return 0; -+ break; - case CCmode: -- if (req_mode == CCNOmode) -+ if (req_mode == CCGCmode) - return 0; - /* FALLTHRU */ -- case CCNOmode: -+ case CCGCmode: -+ if (req_mode == CCGOCmode || req_mode == CCNOmode) -+ return 0; -+ /* FALLTHRU */ -+ case CCGOCmode: - if (req_mode == CCZmode) - return 0; - /* FALLTHRU */ -@@ -4572,6 +4607,49 @@ ix86_fp_compare_mode (code) - return unordered ? CCFPUmode : CCFPmode; - } - -+enum machine_mode -+ix86_cc_mode (code, op0, op1) -+ enum rtx_code code; -+ rtx op0, op1; -+{ -+ if (GET_MODE_CLASS (GET_MODE (op0)) == MODE_FLOAT) -+ return ix86_fp_compare_mode (code); -+ switch (code) -+ { -+ /* Only zero flag is needed. */ -+ case EQ: /* ZF=0 */ -+ case NE: /* ZF!=0 */ -+ return CCZmode; -+ /* Codes needing carry flag. */ -+ case GEU: /* CF=0 */ -+ case GTU: /* CF=0 & ZF=0 */ -+ case LTU: /* CF=1 */ -+ case LEU: /* CF=1 | ZF=1 */ -+ return CCmode; -+ /* Codes possibly doable only with sign flag when -+ comparing against zero. */ -+ case GE: /* SF=OF or SF=0 */ -+ case LT: /* SF<>OF or SF=0 */ -+ if (op1 == const0_rtx) -+ return CCGOCmode; -+ else -+ /* For other cases Carry flag is not required. */ -+ return CCGCmode; -+ /* Codes doable only with sign flag when comparing -+ against zero, but we miss jump instruction for it -+ so we need to use relational tests agains overflow -+ that thus needs to be zero. */ -+ case GT: /* ZF=0 & SF=OF */ -+ case LE: /* ZF=1 | SF<>OF */ -+ if (op1 == const0_rtx) -+ return CCNOmode; -+ else -+ return CCGCmode; -+ default: -+ abort(); -+ } -+} -+ - /* Return true if we should use an FCOMI instruction for this fp comparison. */ - - int -@@ -4816,6 +4894,7 @@ ix86_expand_fp_compare (code, op0, op1, - emit_insn (gen_andqi_ext_0 (scratch, scratch, GEN_INT (0x45))); - emit_insn (gen_addqi_ext_1 (scratch, scratch, constm1_rtx)); - emit_insn (gen_cmpqi_ext_3 (scratch, GEN_INT (0x44))); -+ intcmp_mode = CCmode; - code = GEU; - break; - case UNLE: -@@ -5865,8 +5944,6 @@ ix86_expand_strlensi_unroll_1 (out, alig - rtx align_4_label = gen_label_rtx (); - rtx end_0_label = gen_label_rtx (); - rtx mem; -- rtx no_flags = gen_rtx_REG (CCNOmode, FLAGS_REG); -- rtx z_flags = gen_rtx_REG (CCNOmode, FLAGS_REG); - rtx tmpreg = gen_reg_rtx (SImode); - - align = 0; -@@ -5888,30 +5965,12 @@ ix86_expand_strlensi_unroll_1 (out, alig - align_rtx = expand_binop (SImode, and_optab, scratch, GEN_INT (3), - NULL_RTX, 0, OPTAB_WIDEN); - -- emit_insn (gen_cmpsi_ccz_1 (align_rtx, const0_rtx)); -- -- tmp = gen_rtx_EQ (VOIDmode, z_flags, const0_rtx); -- tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, tmp, -- gen_rtx_LABEL_REF (VOIDmode, -- align_4_label), -- pc_rtx); -- emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx, tmp)); -- -- emit_insn (gen_cmpsi_ccno_1 (align_rtx, GEN_INT (2))); -- -- tmp = gen_rtx_EQ (VOIDmode, no_flags, const0_rtx); -- tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, tmp, -- gen_rtx_LABEL_REF (VOIDmode, -- align_2_label), -- pc_rtx); -- emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx, tmp)); -- -- tmp = gen_rtx_GTU (VOIDmode, no_flags, const0_rtx); -- tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, tmp, -- gen_rtx_LABEL_REF (VOIDmode, -- align_3_label), -- pc_rtx); -- emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx, tmp)); -+ emit_cmp_and_jump_insns (align_rtx, const0_rtx, EQ, NULL, -+ SImode, 1, 0, align_4_label); -+ emit_cmp_and_jump_insns (align_rtx, GEN_INT (2), EQ, NULL, -+ SImode, 1, 0, align_2_label); -+ emit_cmp_and_jump_insns (align_rtx, GEN_INT (2), GTU, NULL, -+ SImode, 1, 0, align_3_label); - } - else - { -@@ -5921,14 +5980,8 @@ ix86_expand_strlensi_unroll_1 (out, alig - align_rtx = expand_binop (SImode, and_optab, scratch, GEN_INT (2), - NULL_RTX, 0, OPTAB_WIDEN); - -- emit_insn (gen_cmpsi_ccz_1 (align_rtx, const0_rtx)); -- -- tmp = gen_rtx_EQ (VOIDmode, z_flags, const0_rtx); -- tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, tmp, -- gen_rtx_LABEL_REF (VOIDmode, -- align_4_label), -- pc_rtx); -- emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx, tmp)); -+ emit_cmp_and_jump_insns (align_rtx, const0_rtx, EQ, NULL, -+ SImode, 1, 0, align_4_label); - } - - mem = gen_rtx_MEM (QImode, out); -@@ -5936,13 +5989,8 @@ ix86_expand_strlensi_unroll_1 (out, alig - /* Now compare the bytes. */ - - /* Compare the first n unaligned byte on a byte per byte basis. */ -- emit_insn (gen_cmpqi_ccz_1 (mem, const0_rtx)); -- -- tmp = gen_rtx_EQ (VOIDmode, z_flags, const0_rtx); -- tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, tmp, -- gen_rtx_LABEL_REF (VOIDmode, end_0_label), -- pc_rtx); -- emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx, tmp)); -+ emit_cmp_and_jump_insns (mem, const0_rtx, EQ, NULL, -+ QImode, 1, 0, end_0_label); - - /* Increment the address. */ - emit_insn (gen_addsi3 (out, out, const1_rtx)); -@@ -5952,27 +6000,16 @@ ix86_expand_strlensi_unroll_1 (out, alig - { - emit_label (align_2_label); - -- emit_insn (gen_cmpqi_ccz_1 (mem, const0_rtx)); -- -- tmp = gen_rtx_EQ (VOIDmode, z_flags, const0_rtx); -- tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, tmp, -- gen_rtx_LABEL_REF (VOIDmode, -- end_0_label), -- pc_rtx); -- emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx, tmp)); -+ emit_cmp_and_jump_insns (mem, const0_rtx, EQ, NULL, -+ QImode, 1, 0, end_0_label); - - emit_insn (gen_addsi3 (out, out, const1_rtx)); - - emit_label (align_3_label); - } - -- emit_insn (gen_cmpqi_ccz_1 (mem, const0_rtx)); -- -- tmp = gen_rtx_EQ (VOIDmode, z_flags, const0_rtx); -- tmp = gen_rtx_IF_THEN_ELSE (VOIDmode, tmp, -- gen_rtx_LABEL_REF (VOIDmode, end_0_label), -- pc_rtx); -- emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx, tmp)); -+ emit_cmp_and_jump_insns (mem, const0_rtx, EQ, NULL, -+ QImode, 1, 0, end_0_label); - - emit_insn (gen_addsi3 (out, out, const1_rtx)); - } -@@ -5993,7 +6030,8 @@ ix86_expand_strlensi_unroll_1 (out, alig - emit_insn (gen_one_cmplsi2 (scratch, scratch)); - emit_insn (gen_andsi3 (tmpreg, tmpreg, scratch)); - emit_insn (gen_andsi3 (tmpreg, tmpreg, GEN_INT (0x80808080))); -- emit_cmp_and_jump_insns (tmpreg, const0_rtx, EQ, 0, SImode, 1, 0, align_4_label); -+ emit_cmp_and_jump_insns (tmpreg, const0_rtx, EQ, 0, -+ SImode, 1, 0, align_4_label); - - if (TARGET_CMOVE) - { ---- gcc/config/i386/i386.h Mon Oct 30 15:33:07 2000 -+++ gcc/config/i386/i386.h Mon Oct 30 16:28:01 2000 -@@ -2253,14 +2254,25 @@ while (0) - - For the i386, we need separate modes when floating-point - equality comparisons are being done. -- -- Add CCNO to indicate No Overflow, which is often also includes -- No Carry. This is typically used on the output of logicals, -- and is only valid in comparisons against zero. -+ -+ Add CCNO to indicate comparisons against zero that requires -+ No Overflow. Sign bit test is used instead and thus -+ can be used to form "a&b>0" type of tests. -+ -+ Add CCGC to indicate comparisons agains zero that allows -+ unspecified garbage in the Carry flag. This mode is used -+ by inc/dec instructions. -+ -+ Add CCGCO to indicate comparisons agains zero that allows -+ unspecified garbage in the Carry and Overflow flag. This -+ mode is used to simulate comparisons of (a-b) and (a+b) -+ against zero using sub/cmp/add operations. - - Add CCZ to indicate that only the Zero flag is valid. */ - - #define EXTRA_CC_MODES \ -+ CC(CCGCmode, "CCGC") \ -+ CC(CCGOCmode, "CCGOC") \ - CC(CCNOmode, "CCNO") \ - CC(CCZmode, "CCZ") \ - CC(CCFPmode, "CCFP") \ -@@ -2275,12 +2287,7 @@ while (0) - For integer comparisons against zero, reduce to CCNOmode or CCZmode if - possible, to allow for more combinations. */ - --#define SELECT_CC_MODE(OP,X,Y) \ -- (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \ -- ? (OP) == EQ || (OP) == NE ? CCFPUmode : CCFPmode \ -- : (OP) == LE || (OP) == GT ? CCmode \ -- : (Y) != const0_rtx ? CCmode \ -- : (OP) == EQ || (OP) == NE ? CCZmode : CCNOmode) -+#define SELECT_CC_MODE(OP,X,Y) ix86_cc_mode (OP, X, Y) - - /* Control the assembler format that we output, to the extent - this does not vary between assemblers. */ -@@ -2588,8 +2595,8 @@ do { long l; \ - {"non_q_regs_operand", {SUBREG, REG}}, \ - {"no_comparison_operator", {EQ, NE, LT, GE, LTU, GTU, LEU, GEU}}, \ - {"fcmov_comparison_operator", {EQ, NE, LTU, GTU, LEU, GEU}}, \ -- {"uno_comparison_operator", {EQ, NE, LE, LT, GE, GT, LEU, LTU, GEU, \ -- GTU, UNORDERED, ORDERED}}, \ -+ {"ix86_comparison_operator", {EQ, NE, LE, LT, GE, GT, LEU, LTU, GEU, \ -+ GTU, UNORDERED, ORDERED}}, \ - {"cmp_fp_expander_operand", {CONST_DOUBLE, SUBREG, REG, MEM}}, \ - {"ext_register_operand", {SUBREG, REG}}, \ - {"binary_fp_operator", {PLUS, MINUS, MULT, DIV}}, \ ---- gcc/config/i386/i386.md Mon Oct 30 15:33:04 2000 -+++ gcc/config/i386/i386.md Mon Oct 30 16:23:52 2000 -@@ -71,6 +71,7 @@ - ;; 9 This is an `fnstsw' operation. - ;; 10 This is a `sahf' operation. - ;; 11 This is a `fstcw' operation -+;; 12 This is behaviour of add when setting carry flag. - ;; - ;; Insns whose names begin with "x86_" are emitted by gen_FOO calls - ;; from i386.c. -@@ -1043,11 +1044,11 @@ - DONE; - }") - --(define_insn "cmpsi_ccz_1" -- [(set (reg:CCZ 17) -- (compare:CCZ (match_operand:SI 0 "nonimmediate_operand" "r,?mr") -- (match_operand:SI 1 "const0_operand" "n,n")))] -- "" -+(define_insn "*cmpsi_ccno_1" -+ [(set (reg 17) -+ (compare (match_operand:SI 0 "nonimmediate_operand" "r,?mr") -+ (match_operand:SI 1 "const0_operand" "n,n")))] -+ "ix86_match_ccmode (insn, CCNOmode)" - "@ - test{l}\\t{%0, %0|%0, %0} - cmp{l}\\t{%1, %0|%0, %1}" -@@ -1055,28 +1056,34 @@ - (set_attr "length_immediate" "0,1") - (set_attr "mode" "SI")]) - --(define_insn "cmpsi_ccno_1" -- [(set (reg:CCNO 17) -- (compare:CCNO (match_operand:SI 0 "nonimmediate_operand" "r,?mr") -- (match_operand:SI 1 "const0_operand" "n,n")))] -- "" -- "@ -- test{l}\\t{%0, %0|%0, %0} -- cmp{l}\\t{%1, %0|%0, %1}" -- [(set_attr "type" "test,icmp") -- (set_attr "length_immediate" "0,1") -+(define_insn "*cmpsi_minus_1" -+ [(set (reg 17) -+ (compare (minus:SI (match_operand:SI 0 "nonimmediate_operand" "rm,r") -+ (match_operand:SI 1 "general_operand" "ri,mr")) -+ (const_int 0)))] -+ "ix86_match_ccmode (insn, CCGOCmode)" -+ "cmp{l}\\t{%1, %0|%0, %1}" -+ [(set_attr "type" "icmp") - (set_attr "mode" "SI")]) - --(define_insn "cmpsi_1" -+(define_expand "cmpsi_1" - [(set (reg:CC 17) - (compare:CC (match_operand:SI 0 "nonimmediate_operand" "rm,r") - (match_operand:SI 1 "general_operand" "ri,mr")))] -- "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM" -+ "" -+ "") -+ -+(define_insn "*cmpsi_1_insn" -+ [(set (reg 17) -+ (compare (match_operand:SI 0 "nonimmediate_operand" "rm,r") -+ (match_operand:SI 1 "general_operand" "ri,mr")))] -+ "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) -+ && ix86_match_ccmode (insn, CCmode)" - "cmp{l}\\t{%1, %0|%0, %1}" - [(set_attr "type" "icmp") - (set_attr "mode" "SI")]) - --(define_insn "*cmphi_0" -+(define_insn "*cmphi_ccno_1" - [(set (reg 17) - (compare (match_operand:HI 0 "nonimmediate_operand" "r,?mr") - (match_operand:HI 1 "const0_operand" "n,n")))] -@@ -1088,32 +1095,31 @@ - (set_attr "length_immediate" "0,1") - (set_attr "mode" "HI")]) - --(define_insn "*cmphi_1" -- [(set (reg:CC 17) -- (compare:CC (match_operand:HI 0 "nonimmediate_operand" "rm,r") -- (match_operand:HI 1 "general_operand" "ri,mr")))] -- "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM" -+(define_insn "*cmphi_minus_1" -+ [(set (reg 17) -+ (compare (minus:HI (match_operand:HI 0 "nonimmediate_operand" "rm,r") -+ (match_operand:HI 1 "general_operand" "ri,mr")) -+ (const_int 0)))] -+ "ix86_match_ccmode (insn, CCGOCmode)" - "cmp{w}\\t{%1, %0|%0, %1}" - [(set_attr "type" "icmp") - (set_attr "mode" "HI")]) - --(define_insn "cmpqi_ccz_1" -- [(set (reg:CCZ 17) -- (compare:CCZ (match_operand:QI 0 "nonimmediate_operand" "q,?mq") -- (match_operand:QI 1 "const0_operand" "n,n")))] -- "" -- "@ -- test{b}\\t{%0, %0|%0, %0} -- cmp{b}\\t{$0, %0|%0, 0}" -- [(set_attr "type" "test,icmp") -- (set_attr "length_immediate" "0,1") -- (set_attr "mode" "QI")]) -+(define_insn "*cmphi_1" -+ [(set (reg 17) -+ (compare (match_operand:HI 0 "nonimmediate_operand" "rm,r") -+ (match_operand:HI 1 "general_operand" "ri,mr")))] -+ "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) -+ && ix86_match_ccmode (insn, CCmode)" -+ "cmp{w}\\t{%1, %0|%0, %1}" -+ [(set_attr "type" "icmp") -+ (set_attr "mode" "HI")]) - - (define_insn "*cmpqi_ccno_1" -- [(set (reg:CCNO 17) -- (compare:CCNO (match_operand:QI 0 "nonimmediate_operand" "q,?mq") -- (match_operand:QI 1 "const0_operand" "n,n")))] -- "" -+ [(set (reg 17) -+ (compare (match_operand:QI 0 "nonimmediate_operand" "q,?mq") -+ (match_operand:QI 1 "const0_operand" "n,n")))] -+ "ix86_match_ccmode (insn, CCNOmode)" - "@ - test{b}\\t{%0, %0|%0, %0} - cmp{b}\\t{$0, %0|%0, 0}" -@@ -1122,24 +1128,35 @@ - (set_attr "mode" "QI")]) - - (define_insn "*cmpqi_1" -- [(set (reg:CC 17) -- (compare:CC (match_operand:QI 0 "nonimmediate_operand" "qm,q") -- (match_operand:QI 1 "general_operand" "qi,mq")))] -- "GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM" -+ [(set (reg 17) -+ (compare (match_operand:QI 0 "nonimmediate_operand" "qm,q") -+ (match_operand:QI 1 "general_operand" "qi,mq")))] -+ "(GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM) -+ && ix86_match_ccmode (insn, CCmode)" - "cmp{b}\\t{%1, %0|%0, %1}" - [(set_attr "type" "icmp") - (set_attr "mode" "QI")]) - -+(define_insn "*cmpqi_minus_1" -+ [(set (reg 17) -+ (compare (minus:QI (match_operand:QI 0 "nonimmediate_operand" "rm,r") -+ (match_operand:QI 1 "general_operand" "ri,mr")) -+ (const_int 0)))] -+ "ix86_match_ccmode (insn, CCGOCmode)" -+ "cmp{w}\\t{%1, %0|%0, %1}" -+ [(set_attr "type" "icmp") -+ (set_attr "mode" "QI")]) -+ - (define_insn "*cmpqi_ext_1" -- [(set (reg:CC 17) -- (compare:CC -+ [(set (reg 17) -+ (compare - (match_operand:QI 0 "general_operand" "qm") - (subreg:QI - (zero_extract:SI - (match_operand 1 "ext_register_operand" "q") - (const_int 8) - (const_int 8)) 0)))] -- "" -+ "ix86_match_ccmode (insn, CCmode)" - "cmp{b}\\t{%h1, %0|%0, %h1}" - [(set_attr "type" "icmp") - (set_attr "mode" "QI")]) -@@ -1159,7 +1176,7 @@ - (set_attr "length_immediate" "0") - (set_attr "mode" "QI")]) - --(define_insn "cmpqi_ext_3" -+(define_expand "cmpqi_ext_3" - [(set (reg:CC 17) - (compare:CC - (subreg:QI -@@ -1169,13 +1186,25 @@ - (const_int 8)) 0) - (match_operand:QI 1 "general_operand" "qmn")))] - "" -+ "") -+ -+(define_insn "cmpqi_ext_3_insn" -+ [(set (reg 17) -+ (compare -+ (subreg:QI -+ (zero_extract:SI -+ (match_operand 0 "ext_register_operand" "q") -+ (const_int 8) -+ (const_int 8)) 0) -+ (match_operand:QI 1 "general_operand" "qmn")))] -+ "ix86_match_ccmode (insn, CCmode)" - "cmp{b}\\t{%1, %h0|%h0, %1}" - [(set_attr "type" "icmp") - (set_attr "mode" "QI")]) - - (define_insn "*cmpqi_ext_4" -- [(set (reg:CC 17) -- (compare:CC -+ [(set (reg 17) -+ (compare - (subreg:QI - (zero_extract:SI - (match_operand 0 "ext_register_operand" "q") -@@ -1186,7 +1215,7 @@ - (match_operand 1 "ext_register_operand" "q") - (const_int 8) - (const_int 8)) 0)))] -- "" -+ "ix86_match_ccmode (insn, CCmode)" - "cmp{b}\\t{%h1, %h0|%h0, %h1}" - [(set_attr "type" "icmp") - (set_attr "mode" "QI")]) -@@ -3680,20 +3709,33 @@ - (match_operand:DI 2 "general_operand" ""))) - (clobber (reg:CC 17))] - "reload_completed" -- [(parallel [(set (reg:CC 17) (plus:CC (match_dup 1) (match_dup 2))) -+ [(parallel [(set (reg:CC 17) (unspec:CC [(match_dup 1) (match_dup 2)] 12)) - (set (match_dup 0) (plus:SI (match_dup 1) (match_dup 2)))]) - (parallel [(set (match_dup 3) -- (plus:SI (match_dup 4) -- (plus:SI (match_dup 5) -- (ltu:SI (reg:CC 17) (const_int 0))))) -+ (plus:SI (plus:SI (ltu:SI (reg:CC 17) (const_int 0)) -+ (match_dup 4)) -+ (match_dup 5))) - (clobber (reg:CC 17))])] - "split_di (operands+0, 1, operands+0, operands+3); - split_di (operands+1, 1, operands+1, operands+4); - split_di (operands+2, 1, operands+2, operands+5);") - -+(define_insn "*addsi3_carry" -+ [(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") -+ (plus:SI (plus:SI (ltu:SI (reg:CC 17) (const_int 0)) -+ (match_operand:SI 1 "nonimmediate_operand" "%0,0")) -+ (match_operand:SI 2 "general_operand" "ri,rm"))) -+ (clobber (reg:CC 17))] -+ "ix86_binary_operator_ok (PLUS, SImode, operands)" -+ "adc{l}\\t{%2, %0|%0, %2}" -+ [(set_attr "type" "alu") -+ (set_attr "pent_pair" "pu") -+ (set_attr "mode" "SI") -+ (set_attr "ppro_uops" "few")]) -+ - (define_insn "*addsi3_cc" -- [(set (reg:CC 17) (plus:CC (match_operand:SI 1 "nonimmediate_operand" "%0,0") -- (match_operand:SI 2 "general_operand" "ri,rm"))) -+ [(set (reg:CC 17) (unspec:CC [(match_operand:SI 1 "nonimmediate_operand" "%0,0") -+ (match_operand:SI 2 "general_operand" "ri,rm")] 12)) - (set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") - (plus:SI (match_dup 1) (match_dup 2)))] - "ix86_binary_operator_ok (PLUS, SImode, operands)" -@@ -3702,8 +3744,8 @@ - (set_attr "mode" "SI")]) - - (define_insn "addqi3_cc" -- [(set (reg:CC 17) (plus:CC (match_operand:QI 1 "nonimmediate_operand" "%0,0") -- (match_operand:QI 2 "general_operand" "qi,qm"))) -+ [(set (reg:CC 17) (unspec:CC [(match_operand:QI 1 "nonimmediate_operand" "%0,0") -+ (match_operand:QI 2 "general_operand" "qi,qm")] 12)) - (set (match_operand:QI 0 "nonimmediate_operand" "=qm,q") - (plus:QI (match_dup 1) (match_dup 2)))] - "ix86_binary_operator_ok (PLUS, QImode, operands)" -@@ -3711,19 +3753,6 @@ - [(set_attr "type" "alu") - (set_attr "mode" "QI")]) - --(define_insn "*addsi3_carry" -- [(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") -- (plus:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0") -- (plus:SI (match_operand:SI 2 "general_operand" "ri,rm") -- (ltu:SI (reg:CC 17) (const_int 0))))) -- (clobber (reg:CC 17))] -- "ix86_binary_operator_ok (PLUS, SImode, operands)" -- "adc{l}\\t{%2, %0|%0, %2}" -- [(set_attr "type" "alu") -- (set_attr "pent_pair" "pu") -- (set_attr "mode" "SI") -- (set_attr "ppro_uops" "few")]) -- - (define_expand "addsi3" - [(parallel [(set (match_operand:SI 0 "nonimmediate_operand" "") - (plus:SI (match_operand:SI 1 "nonimmediate_operand" "") -@@ -3925,7 +3954,7 @@ - (const_int 0))) - (set (match_operand:SI 0 "nonimmediate_operand" "=r,rm") - (plus:SI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (PLUS, SImode, operands) - /* Current assemblers are broken and do not allow @GOTOFF in - ought but a memory context. */ -@@ -3971,7 +4000,7 @@ - (compare (neg:SI (match_operand:SI 2 "general_operand" "rmni")) - (match_operand:SI 1 "nonimmediate_operand" "%0"))) - (clobber (match_scratch:SI 0 "=r"))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCZmode) - && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM) - /* Current assemblers are broken and do not allow @GOTOFF in - ought but a memory context. */ -@@ -4012,31 +4041,98 @@ - (const_string "alu"))) - (set_attr "mode" "SI")]) - -+; For comparisons agains 1, -1 and 128, we may generate better code -+; by converting cmp to add, inc or dec as done by peephole2. This pattern -+; is matched then. We can't accept general immediate, because for -+; case of overflows, the result is messed up. -+; This pattern also don't hold of 0x80000000, since the value overflows -+; when negated. -+; Also carry flag is reversed compared to cmp, so this converison is valid -+; only for comparisons not depending on it. - (define_insn "*addsi_4" -- [(set (reg:CC 17) -- (compare:CC (neg:SI (match_operand:SI 2 "general_operand" "rmni,rni")) -- (match_operand:SI 1 "nonimmediate_operand" "%0,0"))) -- (set (match_operand:SI 0 "nonimmediate_operand" "=r,rm") -- (plus:SI (match_dup 1) (match_dup 2)))] -- "ix86_binary_operator_ok (PLUS, SImode, operands) -- /* Current assemblers are broken and do not allow @GOTOFF in -- ought but a memory context. */ -- && ! pic_symbolic_operand (operands[2], VOIDmode)" -- "add{l}\\t{%2, %0|%0, %2}" -- [(set_attr "type" "alu") -+ [(set (reg 17) -+ (compare (match_operand:SI 1 "nonimmediate_operand" "0") -+ (match_operand:SI 2 "const_int_operand" "n"))) -+ (clobber (match_scratch:SI 0 "=rm"))] -+ "ix86_match_ccmode (insn, CCGCmode) -+ && (INTVAL (operands[2]) & 0xffffffff) != 0x80000000" -+ "* -+{ -+ switch (get_attr_type (insn)) -+ { -+ case TYPE_INCDEC: -+ if (operands[2] == constm1_rtx) -+ return \"inc{l}\\t%0\"; -+ else if (operands[2] == const1_rtx) -+ return \"dec{l}\\t%0\"; -+ else -+ abort(); -+ -+ default: -+ if (! rtx_equal_p (operands[0], operands[1])) -+ abort (); -+ /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'. -+ Exceptions: -128 encodes smaller than 128, so swap sign and op. */ -+ if ((INTVAL (operands[2]) == -128 -+ || (INTVAL (operands[2]) > 0 -+ && INTVAL (operands[2]) != 128))) -+ return \"sub{l}\\t{%2, %0|%0, %2}\"; -+ operands[2] = GEN_INT (-INTVAL (operands[2])); -+ return \"add{l}\\t{%2, %0|%0, %2}\"; -+ } -+}" -+ [(set (attr "type") -+ (if_then_else (match_operand:SI 2 "incdec_operand" "") -+ (const_string "incdec") -+ (const_string "alu"))) - (set_attr "mode" "SI")]) - - (define_insn "*addsi_5" -- [(set (reg:CC 17) -- (compare:CC (neg:SI (match_operand:SI 2 "general_operand" "rmni")) -- (match_operand:SI 1 "nonimmediate_operand" "%0"))) -+ [(set (reg 17) -+ (compare -+ (plus:SI (match_operand:SI 1 "nonimmediate_operand" "%0") -+ (match_operand:SI 2 "general_operand" "rmni")) -+ (const_int 0))) - (clobber (match_scratch:SI 0 "=r"))] -- "(GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM) -+ "ix86_match_ccmode (insn, CCGOCmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM) - /* Current assemblers are broken and do not allow @GOTOFF in - ought but a memory context. */ - && ! pic_symbolic_operand (operands[2], VOIDmode)" -- "add{l}\\t{%2, %0|%0, %2}" -- [(set_attr "type" "alu") -+ "* -+{ -+ switch (get_attr_type (insn)) -+ { -+ case TYPE_INCDEC: -+ if (! rtx_equal_p (operands[0], operands[1])) -+ abort (); -+ if (operands[2] == const1_rtx) -+ return \"inc{l}\\t%0\"; -+ else if (operands[2] == constm1_rtx) -+ return \"dec{l}\\t%0\"; -+ else -+ abort(); -+ -+ default: -+ if (! rtx_equal_p (operands[0], operands[1])) -+ abort (); -+ /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'. -+ Exceptions: -128 encodes smaller than 128, so swap sign and op. */ -+ if (GET_CODE (operands[2]) == CONST_INT -+ && (INTVAL (operands[2]) == 128 -+ || (INTVAL (operands[2]) < 0 -+ && INTVAL (operands[2]) != -128))) -+ { -+ operands[2] = GEN_INT (-INTVAL (operands[2])); -+ return \"sub{l}\\t{%2, %0|%0, %2}\"; -+ } -+ return \"add{l}\\t{%2, %0|%0, %2}\"; -+ } -+}" -+ [(set (attr "type") -+ (if_then_else (match_operand:SI 2 "incdec_operand" "") -+ (const_string "incdec") -+ (const_string "alu"))) - (set_attr "mode" "SI")]) - - (define_expand "addhi3" -@@ -4143,7 +4239,7 @@ - (const_int 0))) - (set (match_operand:HI 0 "nonimmediate_operand" "=r,rm") - (plus:HI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (PLUS, HImode, operands)" - "* - { -@@ -4183,7 +4279,7 @@ - (compare (neg:HI (match_operand:HI 2 "general_operand" "rmni")) - (match_operand:HI 1 "nonimmediate_operand" "%0"))) - (clobber (match_scratch:HI 0 "=r"))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCZmode) - && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" - "* - { -@@ -4218,25 +4314,88 @@ - (const_string "alu"))) - (set_attr "mode" "HI")]) - -+; See comments above addsi_3_imm for details. - (define_insn "*addhi_4" -- [(set (reg:CC 17) -- (compare:CC (neg:HI (match_operand:HI 2 "general_operand" "rmni,rni")) -- (match_operand:HI 1 "nonimmediate_operand" "%0,0"))) -- (set (match_operand:HI 0 "nonimmediate_operand" "=r,rm") -- (plus:HI (match_dup 1) (match_dup 2)))] -- "ix86_binary_operator_ok (PLUS, HImode, operands)" -- "add{w}\\t{%2, %0|%0, %2}" -- [(set_attr "type" "alu") -- (set_attr "mode" "HI")]) -+ [(set (reg 17) -+ (compare (match_operand:HI 1 "nonimmediate_operand" "0") -+ (match_operand:HI 2 "const_int_operand" "n"))) -+ (clobber (match_scratch:HI 0 "=rm"))] -+ "ix86_match_ccmode (insn, CCGCmode) -+ && (INTVAL (operands[2]) & 0xffff) != 0x8000" -+ "* -+{ -+ switch (get_attr_type (insn)) -+ { -+ case TYPE_INCDEC: -+ if (operands[2] == constm1_rtx -+ || (GET_CODE (operands[2]) == CONST_INT -+ && INTVAL (operands[2]) == 65535)) -+ return \"inc{w}\\t%0\"; -+ else if (operands[2] == const1_rtx) -+ return \"dec{w}\\t%0\"; -+ else -+ abort(); -+ -+ default: -+ if (! rtx_equal_p (operands[0], operands[1])) -+ abort (); -+ /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'. -+ Exceptions: -128 encodes smaller than 128, so swap sign and op. */ -+ if ((INTVAL (operands[2]) == -128 -+ || (INTVAL (operands[2]) > 0 -+ && INTVAL (operands[2]) != 128))) -+ return \"sub{w}\\t{%2, %0|%0, %2}\"; -+ operands[2] = GEN_INT (-INTVAL (operands[2])); -+ return \"add{w}\\t{%2, %0|%0, %2}\"; -+ } -+}" -+ [(set (attr "type") -+ (if_then_else (match_operand:HI 2 "incdec_operand" "") -+ (const_string "incdec") -+ (const_string "alu"))) -+ (set_attr "mode" "SI")]) -+ - - (define_insn "*addhi_5" -- [(set (reg:CC 17) -- (compare:CC (neg:HI (match_operand:HI 2 "general_operand" "rmni")) -- (match_operand:HI 1 "nonimmediate_operand" "%0"))) -+ [(set (reg 17) -+ (compare -+ (plus:HI (match_operand:HI 1 "nonimmediate_operand" "%0") -+ (match_operand:HI 2 "general_operand" "rmni")) -+ (const_int 0))) - (clobber (match_scratch:HI 0 "=r"))] -- "(GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -- "add{w}\\t{%2, %0|%0, %2}" -- [(set_attr "type" "alu") -+ "ix86_match_ccmode (insn, CCGOCmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "* -+{ -+ switch (get_attr_type (insn)) -+ { -+ case TYPE_INCDEC: -+ if (operands[2] == const1_rtx) -+ return \"inc{w}\\t%0\"; -+ else if (operands[2] == constm1_rtx -+ || (GET_CODE (operands[2]) == CONST_INT -+ && INTVAL (operands[2]) == 65535)) -+ return \"dec{w}\\t%0\"; -+ abort(); -+ -+ default: -+ /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'. -+ Exceptions: -128 encodes smaller than 128, so swap sign and op. */ -+ if (GET_CODE (operands[2]) == CONST_INT -+ && (INTVAL (operands[2]) == 128 -+ || (INTVAL (operands[2]) < 0 -+ && INTVAL (operands[2]) != -128))) -+ { -+ operands[2] = GEN_INT (-INTVAL (operands[2])); -+ return \"sub{w}\\t{%2, %0|%0, %2}\"; -+ } -+ return \"add{w}\\t{%2, %0|%0, %2}\"; -+ } -+}" -+ [(set (attr "type") -+ (if_then_else (match_operand:HI 2 "incdec_operand" "") -+ (const_string "incdec") -+ (const_string "alu"))) - (set_attr "mode" "HI")]) - - (define_expand "addqi3" -@@ -4354,7 +4513,7 @@ - (const_int 0))) - (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm") - (plus:QI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (PLUS, QImode, operands)" - "* - { -@@ -4390,8 +4549,8 @@ - [(set (reg 17) - (compare (neg:QI (match_operand:QI 2 "general_operand" "qmni")) - (match_operand:QI 1 "nonimmediate_operand" "%0"))) -- (clobber (match_scratch:QI 0 "=r"))] -- "ix86_match_ccmode (insn, CCNOmode) -+ (clobber (match_scratch:QI 0 "=q"))] -+ "ix86_match_ccmode (insn, CCZmode) - && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" - "* - { -@@ -4423,25 +4582,82 @@ - (const_string "alu"))) - (set_attr "mode" "QI")]) - -+; See comments above addsi_3_imm for details. - (define_insn "*addqi_4" -- [(set (reg:CC 17) -- (compare:CC (neg:QI (match_operand:QI 2 "general_operand" "qmni,qni")) -- (match_operand:QI 1 "nonimmediate_operand" "%0,0"))) -- (set (match_operand:QI 0 "nonimmediate_operand" "=q,qm") -- (plus:QI (match_dup 1) (match_dup 2)))] -- "ix86_binary_operator_ok (PLUS, QImode, operands)" -- "add{b}\\t{%2, %0|%0, %2}" -- [(set_attr "type" "alu") -+ [(set (reg 17) -+ (compare (match_operand:QI 1 "nonimmediate_operand" "0") -+ (match_operand:QI 2 "const_int_operand" "n"))) -+ (clobber (match_scratch:QI 0 "=qm"))] -+ "ix86_match_ccmode (insn, CCGCmode) -+ && (INTVAL (operands[2]) & 0xff) != 0x80" -+ "* -+{ -+ switch (get_attr_type (insn)) -+ { -+ case TYPE_INCDEC: -+ if (operands[2] == constm1_rtx -+ || (GET_CODE (operands[2]) == CONST_INT -+ && INTVAL (operands[2]) == 255)) -+ return \"inc{b}\\t%0\"; -+ else if (operands[2] == const1_rtx) -+ return \"dec{b}\\t%0\"; -+ else -+ abort(); -+ -+ default: -+ if (! rtx_equal_p (operands[0], operands[1])) -+ abort (); -+ if (INTVAL (operands[2]) < 0) -+ { -+ operands[2] = GEN_INT (-INTVAL (operands[2])); -+ return \"add{b}\\t{%2, %0|%0, %2}\"; -+ } -+ return \"sub{b}\\t{%2, %0|%0, %2}\"; -+ } -+}" -+ [(set (attr "type") -+ (if_then_else (match_operand:HI 2 "incdec_operand" "") -+ (const_string "incdec") -+ (const_string "alu"))) - (set_attr "mode" "QI")]) - - (define_insn "*addqi_5" -- [(set (reg:CC 17) -- (compare:CC (neg:QI (match_operand:QI 2 "general_operand" "qmni")) -- (match_operand:QI 1 "nonimmediate_operand" "%0"))) -- (clobber (match_scratch:QI 0 "=r"))] -- "(GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -- "add{b}\\t{%2, %0|%0, %2}" -- [(set_attr "type" "alu") -+ [(set (reg 17) -+ (compare -+ (plus:QI (match_operand:QI 1 "nonimmediate_operand" "%0") -+ (match_operand:QI 2 "general_operand" "qmni")) -+ (const_int 0))) -+ (clobber (match_scratch:QI 0 "=q"))] -+ "ix86_match_ccmode (insn, CCGOCmode) -+ && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" -+ "* -+{ -+ switch (get_attr_type (insn)) -+ { -+ case TYPE_INCDEC: -+ if (operands[2] == const1_rtx) -+ return \"inc{b}\\t%0\"; -+ else if (operands[2] == constm1_rtx -+ || (GET_CODE (operands[2]) == CONST_INT -+ && INTVAL (operands[2]) == 255)) -+ return \"dec{b}\\t%0\"; -+ abort(); -+ -+ default: -+ /* Make things pretty and `subb $4,%al' rather than `addb $-4, %al'. */ -+ if (GET_CODE (operands[2]) == CONST_INT -+ && INTVAL (operands[2]) < 0) -+ { -+ operands[2] = GEN_INT (-INTVAL (operands[2])); -+ return \"sub{b}\\t{%2, %0|%0, %2}\"; -+ } -+ return \"add{b}\\t{%2, %0|%0, %2}\"; -+ } -+}" -+ [(set (attr "type") -+ (if_then_else (match_operand:QI 2 "incdec_operand" "") -+ (const_string "incdec") -+ (const_string "alu"))) - (set_attr "mode" "QI")]) - - -@@ -4541,32 +4757,22 @@ - (match_operand:DI 2 "general_operand" ""))) - (clobber (reg:CC 17))] - "reload_completed" -- [(parallel [(set (reg:CC 17) (minus:CC (match_dup 1) (match_dup 2))) -+ [(parallel [(set (reg:CC 17) (compare:CC (match_dup 1) (match_dup 2))) - (set (match_dup 0) (minus:SI (match_dup 1) (match_dup 2)))]) - (parallel [(set (match_dup 3) - (minus:SI (match_dup 4) -- (plus:SI (match_dup 5) -- (ltu:SI (reg:CC 17) (const_int 0))))) -+ (plus:SI (ltu:SI (reg:CC 17) (const_int 0)) -+ (match_dup 5)))) - (clobber (reg:CC 17))])] - "split_di (operands+0, 1, operands+0, operands+3); - split_di (operands+1, 1, operands+1, operands+4); - split_di (operands+2, 1, operands+2, operands+5);") - --(define_insn "*subsi3_cc" -- [(set (reg:CC 17) (minus:CC (match_operand:SI 1 "nonimmediate_operand" "0,0") -- (match_operand:SI 2 "general_operand" "ri,rm"))) -- (set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") -- (minus:SI (match_dup 1) (match_dup 2)))] -- "ix86_binary_operator_ok (MINUS, SImode, operands)" -- "sub{l}\\t{%2, %0|%0, %2}" -- [(set_attr "type" "alu") -- (set_attr "mode" "SI")]) -- - (define_insn "subsi3_carry" - [(set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") - (minus:SI (match_operand:SI 1 "nonimmediate_operand" "0,0") -- (plus:SI (match_operand:SI 2 "general_operand" "ri,rm") -- (ltu:SI (reg:CC 17) (const_int 0))))) -+ (plus:SI (ltu:SI (reg:CC 17) (const_int 0)) -+ (match_operand:SI 2 "general_operand" "ri,rm")))) - (clobber (reg:CC 17))] - "ix86_binary_operator_ok (MINUS, SImode, operands)" - "sbb{l}\\t{%2, %0|%0, %2}" -@@ -4601,7 +4807,7 @@ - (const_int 0))) - (set (match_operand:SI 0 "nonimmediate_operand" "=rm,r") - (minus:SI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (MINUS, SImode, operands)" - "sub{l}\\t{%2, %0|%0, %2}" - [(set_attr "type" "alu") -@@ -4645,7 +4851,7 @@ - (const_int 0))) - (set (match_operand:HI 0 "nonimmediate_operand" "=rm,r") - (minus:HI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (MINUS, HImode, operands)" - "sub{w}\\t{%2, %0|%0, %2}" - [(set_attr "type" "alu") -@@ -4689,7 +4895,7 @@ - (const_int 0))) - (set (match_operand:HI 0 "nonimmediate_operand" "=qm,q") - (minus:HI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (MINUS, QImode, operands)" - "sub{b}\\t{%2, %0|%0, %2}" - [(set_attr "type" "alu") -@@ -5145,31 +5351,28 @@ - ;; On Pentium, "test imm, reg" is pairable only with eax, ax, and al. - ;; Note that this excludes ah. - --(define_insn "*testsi_ccz_1" -- [(set (reg:CCZ 17) -- (compare:CCZ -+ -+(define_insn "testsi_1" -+ [(set (reg 17) -+ (compare - (and:SI (match_operand:SI 0 "nonimmediate_operand" "%*a,r,rm") - (match_operand:SI 1 "nonmemory_operand" "in,in,rin")) - (const_int 0)))] -- "" -+ "ix86_match_ccmode (insn, CCNOmode)" - "test{l}\\t{%1, %0|%0, %1}" - [(set_attr "type" "test") - (set_attr "modrm" "0,1,1") - (set_attr "mode" "SI") - (set_attr "pent_pair" "uv,np,uv")]) - --(define_insn "testsi_ccno_1" -+(define_expand "testsi_ccno_1" - [(set (reg:CCNO 17) - (compare:CCNO -- (and:SI (match_operand:SI 0 "nonimmediate_operand" "%*a,r,rm") -- (match_operand:SI 1 "nonmemory_operand" "in,in,rin")) -+ (and:SI (match_operand:SI 0 "nonimmediate_operand" "") -+ (match_operand:SI 1 "nonmemory_operand" "")) - (const_int 0)))] - "" -- "test{l}\\t{%1, %0|%0, %1}" -- [(set_attr "type" "test") -- (set_attr "modrm" "0,1,1") -- (set_attr "mode" "SI") -- (set_attr "pent_pair" "uv,np,uv")]) -+ "") - - (define_insn "*testhi_1" - [(set (reg 17) -@@ -5183,55 +5386,46 @@ - (set_attr "mode" "HI") - (set_attr "pent_pair" "uv,np,uv")]) - --(define_insn "testqi_ccz_1" -+(define_expand "testqi_ccz_1" - [(set (reg:CCZ 17) -- (compare:CCZ -- (and:QI (match_operand:QI 0 "nonimmediate_operand" "%*a,q,qm") -- (match_operand:QI 1 "nonmemory_operand" "n,n,qn")) -- (const_int 0)))] -+ (compare:CCZ (and:QI (match_operand:QI 0 "nonimmediate_operand" "") -+ (match_operand:QI 1 "nonmemory_operand" "")) -+ (const_int 0)))] - "" -- "test{b}\\t{%1, %0|%0, %1}" -- [(set_attr "type" "test") -- (set_attr "modrm" "0,1,1") -- (set_attr "mode" "QI") -- (set_attr "pent_pair" "uv,np,uv")]) -+ "") - --(define_insn "testqi_ccno_1" -- [(set (reg:CCNO 17) -- (compare:CCNO (and:QI (match_operand:QI 0 "nonimmediate_operand" "%*a,q,qm,r") -- (match_operand:QI 1 "nonmemory_operand" "n,n,qn,n")) -- (const_int 0)))] -- "" -+(define_insn "*testqi_1" -+ [(set (reg 17) -+ (compare (and:QI (match_operand:QI 0 "nonimmediate_operand" "%*a,q,qm,r") -+ (match_operand:QI 1 "nonmemory_operand" "n,n,qn,n")) -+ (const_int 0)))] -+ "ix86_match_ccmode (insn, CCNOmode)" - "@ - test{b}\\t{%1, %0|%0, %1} - test{b}\\t{%1, %0|%0, %1} - test{b}\\t{%1, %0|%0, %1} -- test{l}\\t{%1, %0|%0, %1}" -+ test{l}\\t{%1, %k0|%k0, %1}" - [(set_attr "type" "test") - (set_attr "modrm" "0,1,1,1") - (set_attr "mode" "QI,QI,QI,SI") - (set_attr "pent_pair" "uv,np,uv,np")]) - --(define_insn "*testqi_ext_ccz_0" -- [(set (reg:CCZ 17) -- (compare:CCZ -+(define_expand "testqi_ext_ccno_0" -+ [(set (reg:CCNO 17) -+ (compare:CCNO - (and:SI - (zero_extract:SI -- (match_operand 0 "ext_register_operand" "q") -+ (match_operand 0 "ext_register_operand" "") - (const_int 8) - (const_int 8)) -- (match_operand 1 "const_int_operand" "n")) -+ (match_operand 1 "const_int_operand" "")) - (const_int 0)))] -- "(unsigned HOST_WIDE_INT) INTVAL (operands[1]) <= 0xff" -- "test{b}\\t{%1, %h0|%h0, %1}" -- [(set_attr "type" "test") -- (set_attr "mode" "QI") -- (set_attr "length_immediate" "1") -- (set_attr "pent_pair" "np")]) -+ "" -+ "") - --(define_insn "testqi_ext_ccno_0" -- [(set (reg:CCNO 17) -- (compare:CCNO -+(define_insn "*testqi_ext_0" -+ [(set (reg 17) -+ (compare - (and:SI - (zero_extract:SI - (match_operand 0 "ext_register_operand" "q") -@@ -5239,7 +5433,8 @@ - (const_int 8)) - (match_operand 1 "const_int_operand" "n")) - (const_int 0)))] -- "(unsigned HOST_WIDE_INT) INTVAL (operands[1]) <= 0xff" -+ "(unsigned HOST_WIDE_INT) INTVAL (operands[1]) <= 0xff -+ && ix86_match_ccmode (insn, CCNOmode)" - "test{b}\\t{%1, %h0|%h0, %1}" - [(set_attr "type" "test") - (set_attr "mode" "QI") -@@ -5745,7 +5940,7 @@ - (compare (ior:QI (match_operand:QI 1 "nonimmediate_operand" "%0") - (match_operand:QI 2 "general_operand" "qim")) - (const_int 0))) -- (clobber (match_scratch:QI 0 "=r"))] -+ (clobber (match_scratch:QI 0 "=q"))] - "ix86_match_ccmode (insn, CCNOmode) - && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" - "or{b}\\t{%2, %0|%0, %2}" -@@ -5904,16 +6099,16 @@ - (xor:QI (match_operand:QI 1 "nonimmediate_operand" "%0") - (match_operand:QI 2 "general_operand" "qim")) - (const_int 0))) -- (clobber (match_scratch:QI 0 "=r"))] -+ (clobber (match_scratch:QI 0 "=q"))] - "ix86_match_ccmode (insn, CCNOmode) - && (GET_CODE (operands[1]) != MEM || GET_CODE (operands[2]) != MEM)" - "xor{b}\\t{%2, %0|%0, %2}" - [(set_attr "type" "alu") - (set_attr "mode" "QI")]) - --(define_insn "xorqi_cc_ext_1" -- [(set (reg:CCNO 17) -- (compare:CCNO -+(define_insn "*xorqi_cc_ext_1" -+ [(set (reg 17) -+ (compare - (xor:SI - (zero_extract:SI - (match_operand 1 "ext_register_operand" "0") -@@ -5927,10 +6122,30 @@ - (xor:SI - (zero_extract:SI (match_dup 1) (const_int 8) (const_int 8)) - (match_dup 2)))] -- "" -+ "ix86_match_ccmode (insn, CCNOmode)" - "xor{b}\\t{%2, %h0|%h0, %2}" - [(set_attr "type" "alu") - (set_attr "mode" "QI")]) -+ -+(define_expand "xorqi_cc_ext_1" -+ [(parallel [ -+ (set (reg:CCNO 17) -+ (compare:CCNO -+ (xor:SI -+ (zero_extract:SI -+ (match_operand 1 "ext_register_operand" "") -+ (const_int 8) -+ (const_int 8)) -+ (match_operand:QI 2 "general_operand" "")) -+ (const_int 0))) -+ (set (zero_extract:SI (match_operand 0 "ext_register_operand" "") -+ (const_int 8) -+ (const_int 8)) -+ (xor:SI -+ (zero_extract:SI (match_dup 1) (const_int 8) (const_int 8)) -+ (match_dup 2)))])] -+ "" -+ "") - - ;; Negation instructions - -@@ -5961,9 +6176,9 @@ - (set (match_dup 0) (neg:SI (match_dup 2)))]) - (parallel - [(set (match_dup 1) -- (plus:SI (match_dup 3) -- (plus:SI (const_int 0) -- (ltu:SI (reg:CC 17) (const_int 0))))) -+ (plus:SI (plus:SI (ltu:SI (reg:CC 17) (const_int 0)) -+ (match_dup 3)) -+ (const_int 0))) - (clobber (reg:CC 17))]) - (parallel - [(set (match_dup 1) -@@ -6780,7 +6995,7 @@ - (const_int 0))) - (set (match_operand:SI 0 "nonimmediate_operand" "=rm") - (ashift:SI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (ASHIFT, SImode, operands)" - "* - { -@@ -6909,7 +7124,7 @@ - (const_int 0))) - (set (match_operand:HI 0 "nonimmediate_operand" "=rm") - (ashift:HI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (ASHIFT, HImode, operands)" - "* - { -@@ -7076,7 +7291,7 @@ - (const_int 0))) - (set (match_operand:QI 0 "nonimmediate_operand" "=qm") - (ashift:QI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (ASHIFT, QImode, operands)" - "* - { -@@ -7546,7 +7761,7 @@ - (const_int 0))) - (set (match_operand:SI 0 "nonimmediate_operand" "=rm") - (lshiftrt:SI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && (TARGET_PENTIUM || TARGET_PENTIUMPRO) - && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)" - "shr{l}\\t%0" -@@ -7567,7 +7782,7 @@ - (const_int 0))) - (set (match_operand:SI 0 "nonimmediate_operand" "=rm") - (lshiftrt:SI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)" - "@ - shr{l}\\t{%2, %0|%0, %2}" -@@ -7619,7 +7834,7 @@ - (const_int 0))) - (set (match_operand:HI 0 "nonimmediate_operand" "=rm") - (lshiftrt:HI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && (TARGET_PENTIUM || TARGET_PENTIUMPRO) - && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)" - "shr{w}\\t%0" -@@ -7640,7 +7855,7 @@ - (const_int 0))) - (set (match_operand:HI 0 "nonimmediate_operand" "=rm") - (lshiftrt:HI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (LSHIFTRT, HImode, operands)" - "@ - shr{w}\\t{%2, %0|%0, %2}" -@@ -7692,7 +7907,7 @@ - (const_int 0))) - (set (match_operand:QI 0 "nonimmediate_operand" "=qm") - (lshiftrt:QI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && (TARGET_PENTIUM || TARGET_PENTIUMPRO) - && ix86_binary_operator_ok (LSHIFTRT, QImode, operands)" - "shr{b}\\t%0" -@@ -7713,7 +7928,7 @@ - (const_int 0))) - (set (match_operand:QI 0 "nonimmediate_operand" "=qm") - (lshiftrt:QI (match_dup 1) (match_dup 2)))] -- "ix86_match_ccmode (insn, CCNOmode) -+ "ix86_match_ccmode (insn, CCGOCmode) - && ix86_binary_operator_ok (LSHIFTRT, QImode, operands)" - "shr{b}\\t{%2, %0|%0, %2}" - [(set_attr "type" "ishift") -@@ -8102,7 +8317,7 @@ - - (define_insn "*setcc_1" - [(set (match_operand:QI 0 "nonimmediate_operand" "=qm") -- (match_operator:QI 1 "no_comparison_operator" -+ (match_operator:QI 1 "ix86_comparison_operator" - [(reg 17) (const_int 0)]))] - "" - "set%C1\\t%0" -@@ -8111,30 +8326,12 @@ - - (define_insn "*setcc_2" - [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+qm")) -- (match_operator:QI 1 "no_comparison_operator" -+ (match_operator:QI 1 "ix86_comparison_operator" - [(reg 17) (const_int 0)]))] - "" - "set%C1\\t%0" - [(set_attr "type" "setcc") - (set_attr "mode" "QI")]) -- --(define_insn "*setcc_3" -- [(set (match_operand:QI 0 "nonimmediate_operand" "=qm") -- (match_operator:QI 1 "uno_comparison_operator" -- [(reg:CC 17) (const_int 0)]))] -- "" -- "set%C1\\t%0" -- [(set_attr "type" "setcc") -- (set_attr "mode" "QI")]) -- --(define_insn "*setcc_4" -- [(set (strict_low_part (match_operand:QI 0 "nonimmediate_operand" "+qm")) -- (match_operator:QI 1 "uno_comparison_operator" -- [(reg:CC 17) (const_int 0)]))] -- "" -- "set%C1\\t%0" -- [(set_attr "type" "setcc") -- (set_attr "mode" "QI")]) - - ;; Basic conditional jump instructions. - ;; We ignore the overflow flag for signed branch instructions. -@@ -8288,7 +8485,7 @@ - - (define_insn "*jcc_1" - [(set (pc) -- (if_then_else (match_operator 1 "no_comparison_operator" -+ (if_then_else (match_operator 1 "ix86_comparison_operator" - [(reg 17) (const_int 0)]) - (label_ref (match_operand 0 "" "")) - (pc)))] -@@ -8305,7 +8502,7 @@ - - (define_insn "*jcc_2" - [(set (pc) -- (if_then_else (match_operator 1 "no_comparison_operator" -+ (if_then_else (match_operator 1 "ix86_comparison_operator" - [(reg 17) (const_int 0)]) - (pc) - (label_ref (match_operand 0 "" ""))))] -@@ -8320,40 +8517,6 @@ - (const_int 0) - (const_int 1)))]) - --(define_insn "*jcc_3" -- [(set (pc) -- (if_then_else (match_operator 1 "uno_comparison_operator" -- [(reg:CC 17) (const_int 0)]) -- (label_ref (match_operand 0 "" "")) -- (pc)))] -- "" -- "j%C1\\t%l0" -- [(set_attr "type" "ibr") -- (set (attr "prefix_0f") -- (if_then_else (and (ge (minus (match_dup 0) (pc)) -- (const_int -128)) -- (lt (minus (match_dup 0) (pc)) -- (const_int 124))) -- (const_int 0) -- (const_int 1)))]) -- --(define_insn "*jcc_4" -- [(set (pc) -- (if_then_else (match_operator 1 "uno_comparison_operator" -- [(reg:CC 17) (const_int 0)]) -- (pc) -- (label_ref (match_operand 0 "" ""))))] -- "" -- "j%c1\\t%l0" -- [(set_attr "type" "ibr") -- (set (attr "prefix_0f") -- (if_then_else (and (ge (minus (match_dup 0) (pc)) -- (const_int -128)) -- (lt (minus (match_dup 0) (pc)) -- (const_int 124))) -- (const_int 0) -- (const_int 1)))]) -- - ;; Define combination compare-and-branch fp compare instructions to use - ;; during early optimization. Splitting the operation apart early makes - ;; for bad code when we want to reverse the operation. -@@ -10436,7 +10599,7 @@ - - (define_insn "*movsicc_noc" - [(set (match_operand:SI 0 "register_operand" "=r,r") -- (if_then_else:SI (match_operator 1 "no_comparison_operator" -+ (if_then_else:SI (match_operator 1 "ix86_comparison_operator" - [(reg 17) (const_int 0)]) - (match_operand:SI 2 "nonimmediate_operand" "rm,0") - (match_operand:SI 3 "nonimmediate_operand" "0,rm")))] -@@ -10448,20 +10611,6 @@ - [(set_attr "type" "icmov") - (set_attr "mode" "SI")]) - --(define_insn "*movsicc_c" -- [(set (match_operand:SI 0 "register_operand" "=r,r") -- (if_then_else:SI (match_operator 1 "uno_comparison_operator" -- [(reg:CC 17) (const_int 0)]) -- (match_operand:SI 2 "nonimmediate_operand" "rm,0") -- (match_operand:SI 3 "nonimmediate_operand" "0,rm")))] -- "TARGET_CMOVE -- && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)" -- "@ -- cmov%C1\\t{%2, %0|%0, %2} -- cmov%c1\\t{%3, %0|%0, %3}" -- [(set_attr "type" "icmov") -- (set_attr "mode" "SI")]) -- - (define_expand "movhicc" - [(set (match_operand:HI 0 "register_operand" "") - (if_then_else:HI (match_operand 1 "comparison_operator" "") -@@ -10472,7 +10621,7 @@ - - (define_insn "*movhicc_noc" - [(set (match_operand:HI 0 "register_operand" "=r,r") -- (if_then_else:HI (match_operator 1 "no_comparison_operator" -+ (if_then_else:HI (match_operator 1 "ix86_comparison_operator" - [(reg 17) (const_int 0)]) - (match_operand:HI 2 "nonimmediate_operand" "rm,0") - (match_operand:HI 3 "nonimmediate_operand" "0,rm")))] -@@ -10484,20 +10633,6 @@ - [(set_attr "type" "icmov") - (set_attr "mode" "HI")]) - --(define_insn "*movhicc_c" -- [(set (match_operand:HI 0 "register_operand" "=r,r") -- (if_then_else:HI (match_operator 1 "uno_comparison_operator" -- [(reg:CC 17) (const_int 0)]) -- (match_operand:HI 2 "nonimmediate_operand" "rm,0") -- (match_operand:HI 3 "nonimmediate_operand" "0,rm")))] -- "TARGET_CMOVE -- && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)" -- "@ -- cmov%C1\\t{%2, %0|%0, %2} -- cmov%c1\\t{%3, %0|%0, %3}" -- [(set_attr "type" "icmov") -- (set_attr "mode" "HI")]) -- - (define_expand "movsfcc" - [(set (match_operand:SF 0 "register_operand" "") - (if_then_else:SF (match_operand 1 "comparison_operator" "") -@@ -11290,6 +11425,68 @@ - (set (reg:SI 7) (plus:SI (reg:SI 7) (const_int 4)))])] - "") - -+;; Convert compares with 1 to shorter inc/dec operations when CF is not -+;; required and register dies. -+(define_peephole2 -+ [(set (reg 17) -+ (compare (match_operand:SI 0 "register_operand" "") -+ (match_operand:SI 1 "incdec_operand" "")))] -+ "ix86_match_ccmode (insn, CCGCmode) -+ && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" -+ [(parallel [(set (reg:CCGC 17) -+ (compare:CCGC (match_dup 0) -+ (match_dup 1))) -+ (clobber (match_dup 0))])] -+ "") -+ -+(define_peephole2 -+ [(set (reg 17) -+ (compare (match_operand:HI 0 "register_operand" "") -+ (match_operand:HI 1 "incdec_operand" "")))] -+ "ix86_match_ccmode (insn, CCGCmode) -+ && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" -+ [(parallel [(set (reg:CCGC 17) -+ (compare:CCGC (match_dup 0) -+ (match_dup 1))) -+ (clobber (match_dup 0))])] -+ "") -+ -+(define_peephole2 -+ [(set (reg 17) -+ (compare (match_operand:QI 0 "register_operand" "") -+ (match_operand:QI 1 "incdec_operand" "")))] -+ "ix86_match_ccmode (insn, CCGCmode) -+ && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" -+ [(parallel [(set (reg:CCGC 17) -+ (compare:CCGC (match_dup 0) -+ (match_dup 1))) -+ (clobber (match_dup 0))])] -+ "") -+ -+;; Convert compares with 128 to shorter add -128 -+(define_peephole2 -+ [(set (reg 17) -+ (compare (match_operand:SI 0 "register_operand" "") -+ (const_int 128)))] -+ "ix86_match_ccmode (insn, CCGCmode) -+ && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" -+ [(parallel [(set (reg:CCGC 17) -+ (compare:CCGC (match_dup 0) -+ (const_int 128))) -+ (clobber (match_dup 0))])] -+ "") -+ -+(define_peephole2 -+ [(set (reg 17) -+ (compare (match_operand:HI 0 "register_operand" "") -+ (const_int 128)))] -+ "ix86_match_ccmode (insn, CCGCmode) -+ && find_regno_note (insn, REG_DEAD, true_regnum (operands[0]))" -+ [(parallel [(set (reg:CCGC 17) -+ (compare:CCGC (match_dup 0) -+ (const_int 128))) -+ (clobber (match_dup 0))])] -+ "") - ;; Call-value patterns last so that the wildcard operand does not - ;; disrupt insn-recog's switch tables. - ---- gcc/config/i386/i386-protos.h Sun Jul 2 10:37:12 2000 -+++ gcc/config/i386/i386-protos.h Wed Oct 18 13:27:27 2000 -@@ -57,7 +57,7 @@ extern int q_regs_operand PARAMS ((rtx, - extern int non_q_regs_operand PARAMS ((rtx, enum machine_mode)); - extern int no_comparison_operator PARAMS ((rtx, enum machine_mode)); - extern int fcmov_comparison_operator PARAMS ((rtx, enum machine_mode)); --extern int uno_comparison_operator PARAMS ((rtx, enum machine_mode)); -+extern int ix86_comparison_operator PARAMS ((rtx, enum machine_mode)); - extern int cmp_fp_expander_operand PARAMS ((rtx, enum machine_mode)); - extern int ext_register_operand PARAMS ((rtx, enum machine_mode)); - extern int binary_fp_operator PARAMS ((rtx, enum machine_mode)); -@@ -121,6 +121,7 @@ extern int ix86_adjust_cost PARAMS ((rtx - extern void ix86_sched_init PARAMS ((FILE *, int)); - extern int ix86_sched_reorder PARAMS ((FILE *, int, rtx *, int, int)); - extern int ix86_variable_issue PARAMS ((FILE *, int, rtx, int)); -+extern enum machine_mode ix86_cc_mode PARAMS ((enum rtx_code, rtx, rtx)); - - #ifdef TREE_CODE - extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS *, tree, rtx)); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-ashlsilea.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-ashlsilea.patch deleted file mode 100644 index be29e06062a2..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-ashlsilea.patch +++ /dev/null @@ -1,24 +0,0 @@ -Wed Aug 2 13:05:55 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * i386.md (shift to lea splitter): Use const_int_operand. - -*** gcc/config/i386/i386.md 2000/07/31 10:30:44 1.169 ---- gcc/config/i386/i386.md 2000/08/02 11:04:27 -*************** -*** 6488,6494 **** - (define_split - [(set (match_operand 0 "register_operand" "") - (ashift (match_operand 1 "register_operand" "") -! (match_operand:QI 2 "const248_operand" ""))) - (clobber (reg:CC 17))] - "reload_completed - && true_regnum (operands[0]) != true_regnum (operands[1])" ---- 6488,6494 ---- - (define_split - [(set (match_operand 0 "register_operand" "") - (ashift (match_operand 1 "register_operand" "") -! (match_operand:QI 2 "const_int_operand" ""))) - (clobber (reg:CC 17))] - "reload_completed - && true_regnum (operands[0]) != true_regnum (operands[1])" - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-call-test.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-call-test.patch deleted file mode 100644 index 18a51db21600..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-call-test.patch +++ /dev/null @@ -1,63 +0,0 @@ -2000-08-24 Jakub Jelinek <jakub@redhat.com> - - * testsuite/g++.old-deja/g++.other/crash22.C: New test. - ---- gcc/testsuite/g++.old-deja/g++.other/crash22.C.jj Thu Aug 24 17:06:37 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/crash22.C Thu Aug 24 17:07:05 2000 -@@ -0,0 +1,56 @@ -+// Build don't run: -+// Special g++ Options: -O2 -+ -+class foo -+{ -+}; -+ -+typedef void *voidp; -+class vect : public foo -+{ -+public: -+ voidp& a(); -+ int b(); -+}; -+ -+class bar -+{ -+public: -+ bar *c(bool (*f)(bar *node), voidp g) -+ { -+ int i=0; -+ bool j; -+ while (i < d.b()){ -+ j = (f == __null) || f((bar*)d.a()); -+ if (j) -+ ((bar*)d.a())->c(f, g); -+ i++; -+ } -+ return this; -+ } -+ public: -+ vect d; -+ bar *e(foo *k); -+}; -+ -+bar *bar::e(foo *k) -+{ -+ return c(__null, k); -+} -+ -+voidp &vect::a() -+{ -+ static voidp x; -+ return x; -+} -+ -+int vect::b() -+{ -+ static int x; -+ return x; -+} -+ -+int main() -+{ -+ return 0; -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-call.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-call.patch deleted file mode 100644 index ea08aa7f026d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-call.patch +++ /dev/null @@ -1,189 +0,0 @@ -2000-08-28 Richard Henderson <rth@cygnus.com> - - * config/i386/i386.c (call_insn_operand): Don't expect a surrounding - mem. - (constant_call_address_operand): Likewise. - * config/i386/i386.h (PREDICATE_CODES): Update. - * config/i386/i386.md (call patterns): Move the match_operand - for the call destination inside the mem. - ---- gcc/config/i386/i386.c.jj Mon Jul 31 20:05:09 2000 -+++ gcc/config/i386/i386.c Wed Sep 13 15:29:41 2000 -@@ -1078,10 +1078,6 @@ call_insn_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; - { -- if (GET_CODE (op) != MEM) -- return 0; -- op = XEXP (op, 0); -- - /* Disallow indirect through a virtual register. This leads to - compiler aborts when trying to eliminate them. */ - if (GET_CODE (op) == REG -@@ -1114,9 +1110,7 @@ constant_call_address_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; - { -- return (GET_CODE (op) == MEM -- && CONSTANT_ADDRESS_P (XEXP (op, 0)) -- && GET_CODE (XEXP (op, 0)) != CONST_INT); -+ return GET_CODE (op) == SYMBOL_REF; - } - - /* Match exactly zero and one. */ ---- gcc/config/i386/i386.h.jj Wed Sep 13 15:29:36 2000 -+++ gcc/config/i386/i386.h Wed Sep 13 15:29:41 2000 -@@ -2574,8 +2574,8 @@ do { long l; \ - {"aligned_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF, \ - LABEL_REF, SUBREG, REG, MEM}}, \ - {"pic_symbolic_operand", {CONST}}, \ -- {"call_insn_operand", {MEM}}, \ -- {"constant_call_address_operand", {MEM}}, \ -+ {"call_insn_operand", {REG, SUBREG, MEM, SYMBOL_REF}}, \ -+ {"constant_call_address_operand", {SYMBOL_REF}}, \ - {"const0_operand", {CONST_INT, CONST_DOUBLE}}, \ - {"const1_operand", {CONST_INT}}, \ - {"const248_operand", {CONST_INT}}, \ ---- gcc/config/i386/i386.md.jj Wed Sep 13 15:29:39 2000 -+++ gcc/config/i386/i386.md Wed Sep 13 15:36:45 2000 -@@ -8457,12 +8457,12 @@ - && (GET_CODE (XEXP (operands[0], 0)) != SYMBOL_REF - || !SYMBOL_REF_FLAG (XEXP (operands[0], 0)))) - current_function_uses_pic_offset_table = 1; -- if (! call_insn_operand (operands[0], QImode)) -+ if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) - XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); - }") - - (define_insn "*call_pop_0" -- [(call (match_operand:QI 0 "constant_call_address_operand" "") -+ [(call (mem:QI (match_operand:SI 0 "constant_call_address_operand" "")) - (match_operand:SI 1 "" "")) - (set (reg:SI 7) (plus:SI (reg:SI 7) - (match_operand:SI 3 "immediate_operand" "")))] -@@ -8477,21 +8477,20 @@ - [(set_attr "type" "call")]) - - (define_insn "*call_pop_1" -- [(call (match_operand:QI 0 "call_insn_operand" "m") -+ [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "rsm")) - (match_operand:SI 1 "" "")) - (set (reg:SI 7) (plus:SI (reg:SI 7) - (match_operand:SI 3 "immediate_operand" "i")))] - "" - "* - { -- if (constant_call_address_operand (operands[0], QImode)) -+ if (constant_call_address_operand (operands[0], Pmode)) - { - if (SIBLING_CALL_P (insn)) - return \"jmp\\t%P0\"; - else - return \"call\\t%P0\"; - } -- operands[0] = XEXP (operands[0], 0); - if (SIBLING_CALL_P (insn)) - return \"jmp\\t%*%0\"; - else -@@ -8513,12 +8512,12 @@ - && (GET_CODE (XEXP (operands[0], 0)) != SYMBOL_REF - || !SYMBOL_REF_FLAG (XEXP (operands[0], 0)))) - current_function_uses_pic_offset_table = 1; -- if (! call_insn_operand (operands[0], QImode)) -+ if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) - XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); - }") - - (define_insn "*call_0" -- [(call (match_operand:QI 0 "constant_call_address_operand" "") -+ [(call (mem:QI (match_operand:SI 0 "constant_call_address_operand" "")) - (match_operand:SI 1 "" ""))] - "" - "* -@@ -8531,7 +8530,7 @@ - [(set_attr "type" "call")]) - - (define_insn "*call_1" -- [(call (match_operand:QI 0 "call_insn_operand" "m") -+ [(call (mem:QI (match_operand:SI 0 "call_insn_operand" "rsm")) - (match_operand:SI 1 "" ""))] - "" - "* -@@ -8543,7 +8542,6 @@ - else - return \"call\\t%P0\"; - } -- operands[0] = XEXP (operands[0], 0); - if (SIBLING_CALL_P (insn)) - return \"jmp\\t%*%0\"; - else -@@ -8576,7 +8574,7 @@ - && (GET_CODE (XEXP (operands[1], 0)) != SYMBOL_REF - || !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))) - current_function_uses_pic_offset_table = 1; -- if (! call_insn_operand (operands[1], QImode)) -+ if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) - XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); - }") - -@@ -8595,7 +8593,7 @@ - && (GET_CODE (XEXP (operands[1], 0)) != SYMBOL_REF - || !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))) - current_function_uses_pic_offset_table = 1; -- if (! call_insn_operand (operands[1], QImode)) -+ if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) - XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); - }") - -@@ -11038,7 +11036,7 @@ - - (define_insn "*call_value_pop_0" - [(set (match_operand 0 "" "") -- (call (match_operand:QI 1 "constant_call_address_operand" "") -+ (call (mem:QI (match_operand:SI 1 "constant_call_address_operand" "")) - (match_operand:SI 2 "" ""))) - (set (reg:SI 7) (plus:SI (reg:SI 7) - (match_operand:SI 4 "immediate_operand" "")))] -@@ -11054,7 +11052,7 @@ - - (define_insn "*call_value_pop_1" - [(set (match_operand 0 "" "") -- (call (match_operand:QI 1 "call_insn_operand" "m") -+ (call (mem:QI (match_operand:SI 1 "call_insn_operand" "rsm")) - (match_operand:SI 2 "" ""))) - (set (reg:SI 7) (plus:SI (reg:SI 7) - (match_operand:SI 4 "immediate_operand" "i")))] -@@ -11068,7 +11066,6 @@ - else - return \"call\\t%P1\"; - } -- operands[1] = XEXP (operands[1], 0); - if (SIBLING_CALL_P (insn)) - return \"jmp\\t%*%1\"; - else -@@ -11078,7 +11075,7 @@ - - (define_insn "*call_value_0" - [(set (match_operand 0 "" "") -- (call (match_operand:QI 1 "constant_call_address_operand" "") -+ (call (mem:QI (match_operand:SI 1 "constant_call_address_operand" "")) - (match_operand:SI 2 "" "")))] - "" - "* -@@ -11092,7 +11089,7 @@ - - (define_insn "*call_value_1" - [(set (match_operand 0 "" "") -- (call (match_operand:QI 1 "call_insn_operand" "m") -+ (call (mem:QI (match_operand:SI 1 "call_insn_operand" "rsm")) - (match_operand:SI 2 "" "")))] - "" - "* -@@ -11104,7 +11101,6 @@ - else - return \"call\\t%P1\"; - } -- operands[1] = XEXP (operands[1], 0); - if (SIBLING_CALL_P (insn)) - return \"jmp\\t%*%1\"; - else diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-call2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-call2.patch deleted file mode 100644 index 9f7d646234c1..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-call2.patch +++ /dev/null @@ -1,89 +0,0 @@ -2000-09-06 Richard Henderson <rth@cygnus.com> - - * config/i386/i386.md (call_pop): Fix test for setting - current_function_uses_pic_offset_table. - (call, call_value_pop, call_value): Likewise. - -*** gcc/config/i386/i386.md 2000/09/04 10:13:02 1.175 ---- gcc/config/i386/i386.md 2000/09/06 08:30:50 -*************** -*** 8453,8461 **** - /* Static functions and indirect calls don't need - current_function_uses_pic_offset_table. */ - if (flag_pic -! && constant_call_address_operand (operands[0], SImode) -! && (GET_CODE (XEXP (operands[0], 0)) != SYMBOL_REF -! || !SYMBOL_REF_FLAG (XEXP (operands[0], 0)))) - current_function_uses_pic_offset_table = 1; - if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) - XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); ---- 8453,8460 ---- - /* Static functions and indirect calls don't need - current_function_uses_pic_offset_table. */ - if (flag_pic -! && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF -! && ! SYMBOL_REF_FLAG (XEXP (operands[0], 0))) - current_function_uses_pic_offset_table = 1; - if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) - XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); -*************** -*** 8508,8516 **** - /* Static functions and indirect calls don't need - current_function_uses_pic_offset_table. */ - if (flag_pic -! && constant_call_address_operand (operands[0], SImode) -! && (GET_CODE (XEXP (operands[0], 0)) != SYMBOL_REF -! || !SYMBOL_REF_FLAG (XEXP (operands[0], 0)))) - current_function_uses_pic_offset_table = 1; - if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) - XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); ---- 8507,8514 ---- - /* Static functions and indirect calls don't need - current_function_uses_pic_offset_table. */ - if (flag_pic -! && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF -! && ! SYMBOL_REF_FLAG (XEXP (operands[0], 0))) - current_function_uses_pic_offset_table = 1; - if (! call_insn_operand (XEXP (operands[0], 0), Pmode)) - XEXP (operands[0], 0) = copy_to_mode_reg (Pmode, XEXP (operands[0], 0)); -*************** -*** 8570,8578 **** - /* Static functions and indirect calls don't need - current_function_uses_pic_offset_table. */ - if (flag_pic -! && constant_call_address_operand (operands[1], SImode) -! && (GET_CODE (XEXP (operands[1], 0)) != SYMBOL_REF -! || !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))) - current_function_uses_pic_offset_table = 1; - if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) - XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); ---- 8568,8575 ---- - /* Static functions and indirect calls don't need - current_function_uses_pic_offset_table. */ - if (flag_pic -! && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF -! && ! SYMBOL_REF_FLAG (XEXP (operands[1], 0))) - current_function_uses_pic_offset_table = 1; - if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) - XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); -*************** -*** 8589,8597 **** - /* Static functions and indirect calls don't need - current_function_uses_pic_offset_table. */ - if (flag_pic -! && constant_call_address_operand (operands[1], SImode) -! && (GET_CODE (XEXP (operands[1], 0)) != SYMBOL_REF -! || !SYMBOL_REF_FLAG (XEXP (operands[1], 0)))) - current_function_uses_pic_offset_table = 1; - if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) - XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); ---- 8586,8593 ---- - /* Static functions and indirect calls don't need - current_function_uses_pic_offset_table. */ - if (flag_pic -! && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF -! && ! SYMBOL_REF_FLAG (XEXP (operands[1], 0))) - current_function_uses_pic_offset_table = 1; - if (! call_insn_operand (XEXP (operands[1], 0), Pmode)) - XEXP (operands[1], 0) = copy_to_mode_reg (Pmode, XEXP (operands[1], 0)); - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-compare-test.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-compare-test.patch deleted file mode 100644 index 24cb180e8ac3..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-compare-test.patch +++ /dev/null @@ -1,24 +0,0 @@ -2000-10-13 Jakub Jelinek <jakub@redhat.com> - - * gcc.c-torture/execute/20001013-1.c: New test. - ---- gcc/testsuite/gcc.c-torture/execute/20001013-1.c.jj Thu Aug 24 11:00:32 2000 -+++ gcc/testsuite/gcc.c-torture/execute/20001013-1.c Fri Oct 13 11:52:20 2000 -@@ -0,0 +1,17 @@ -+struct x { -+ int a, b; -+} z = { -4028, 4096 }; -+ -+int foo(struct x *p, int y) -+{ -+ if ((y & 0xff) != y || -p->b >= p->a) -+ return 1; -+ return 0; -+} -+ -+main() -+{ -+ if (foo (&z, 10)) -+ abort (); -+ exit (0); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-constraint-N.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-constraint-N.patch deleted file mode 100644 index 18e23781141e..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-constraint-N.patch +++ /dev/null @@ -1,14 +0,0 @@ -2000-10-18 Jan Hubicka <jh@suse.cz> - - * i386.h (CONST_OK_FOR_LETTER): Add 'N'. - ---- gcc/config/i386/i386.h.jj Mon Oct 23 22:51:33 2000 -+++ gcc/config/i386/i386.h Fri Oct 27 17:26:40 2000 -@@ -1052,6 +1052,7 @@ enum reg_class - : (C) == 'K' ? (VALUE) >= -128 && (VALUE) <= 127 \ - : (C) == 'L' ? (VALUE) == 0xff || (VALUE) == 0xffff \ - : (C) == 'M' ? (VALUE) >= 0 && (VALUE) <= 3 \ -+ : (C) == 'N' ? (VALUE) >= 0 && (VALUE) <= 255 \ - : 0) - - /* Similar, but for floating constants, and defining letters G and H. diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-ge_geu.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-ge_geu.patch deleted file mode 100644 index bbae6062a183..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-ge_geu.patch +++ /dev/null @@ -1,39 +0,0 @@ -2000-08-25 Jakub Jelinek <jakub@redhat.com> - - * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same - way as LT and LTU when the second operand has 0 in low word. - ---- gcc/config/i386/i386.c.jj Mon Jul 31 20:05:09 2000 -+++ gcc/config/i386/i386.c Thu Aug 24 15:11:22 2000 -@@ -4951,17 +4951,21 @@ ix86_expand_branch (code, label) - return; - } - -- /* Otherwise, if we are doing less-than, op1 is a constant and the -- low word is zero, then we can just examine the high word. */ -+ /* Otherwise, if we are doing less-than or greater-or-equal-than, -+ op1 is a constant and the low word is zero, then we can just -+ examine the high word. */ - -- if (GET_CODE (hi[1]) == CONST_INT && lo[1] == const0_rtx -- && (code == LT || code == LTU)) -- { -- ix86_compare_op0 = hi[0]; -- ix86_compare_op1 = hi[1]; -- ix86_expand_branch (code, label); -- return; -- } -+ if (GET_CODE (hi[1]) == CONST_INT && lo[1] == const0_rtx) -+ switch (code) -+ { -+ case LT: case LTU: case GE: case GEU: -+ ix86_compare_op0 = hi[0]; -+ ix86_compare_op1 = hi[1]; -+ ix86_expand_branch (code, label); -+ return; -+ default: -+ break; -+ } - - /* Otherwise, we need two or three jumps. */ - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-gotoff.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-gotoff.patch deleted file mode 100644 index a4c46ca04ab1..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-gotoff.patch +++ /dev/null @@ -1,70 +0,0 @@ -Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * i386.c (legitimate_address_p): Accept other bases than - pic_offset_table_rtx for GOTOFF constructs. - -*** gcc/config/i386/i386.c.jj Wed Jul 5 16:48:36 2000 ---- gcc/config/i386/i386.c Thu Jul 27 23:33:15 2000 -*************** legitimate_address_p (mode, addr, strict -*** 2510,2523 **** - goto error; - } - -! /* Verify that a symbolic pic displacement includes -! the pic_offset_table_rtx register. */ -! if (base != pic_offset_table_rtx -! && (index != pic_offset_table_rtx || scale != 1)) -! { -! reason = "pic displacement against invalid base"; -! goto error; -! } - } - else if (HALF_PIC_P ()) - { ---- 2736,2762 ---- - goto error; - } - -! /* This code used to verify that a symbolic pic displacement -! includes the pic_offset_table_rtx register. -! -! While this is good idea, unfortunately these constructs may -! be created by "adds using lea" optimization for incorrect -! code like: -! -! int a; -! int foo(int i) -! { -! return *(&a+i); -! } -! -! This code nonsential, but results in addressing -! GOT table with pic_offset_table_rtx base. We can't -! just refuse it easilly, since it gets matched by -! "addsi3" pattern, that later gets split to lea in the -! case output register differs from input. While this -! can be handled by separate addsi pattern for this case -! that never results in lea, this seems to be easier and -! correct fix for crash to disable this test. */ - } - else if (HALF_PIC_P ()) - { - -2000-09-04 Jakub Jelinek <jakub@redhat.com> - - * gcc.dg/20000904-1.c: New test. - ---- gcc/testsuite/gcc.dg/20000904-1.c.jj Mon Sep 4 11:55:49 2000 -+++ gcc/testsuite/gcc.dg/20000904-1.c Mon Sep 4 11:55:30 2000 -@@ -0,0 +1,11 @@ -+/* { dg-do compile { target i?86-*-* } } */ -+/* { dg-options "-O0 -fpic" } */ -+ -+static struct { -+ unsigned short a, b, c, d; -+} x[10]; -+ -+int foo(int i) -+{ -+ return ((*((char *)&x[i] + i)) | (*((char *)&x[i] + i))); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-lea.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-lea.patch deleted file mode 100644 index 8baa53b93820..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-lea.patch +++ /dev/null @@ -1,35 +0,0 @@ -2000-08-02 Jakub Jelinek <jakub@redhat.com> - - * config/i386/i386.md (lea_general_1): Only split - if not already SImode. - (lea_general_2, lea_general_3): Likewise. - ---- gcc/config/i386/i386.md.jj Mon Jul 31 20:02:15 2000 -+++ gcc/config/i386/i386.md Wed Aug 2 13:48:02 2000 -@@ -3755,7 +3755,7 @@ - && (GET_MODE (operands[0]) == GET_MODE (operands[3]) - || GET_MODE (operands[3]) == VOIDmode)" - "#" -- "reload_completed" -+ "reload_completed && GET_MODE (operands[0]) != SImode" - [(const_int 0)] - " - { -@@ -3785,7 +3785,7 @@ - && (GET_MODE (operands[0]) == GET_MODE (operands[3]) - || GET_MODE (operands[3]) == VOIDmode)" - "#" -- "reload_completed" -+ "reload_completed && GET_MODE (operands[0]) != SImode" - [(const_int 0)] - " - { -@@ -3814,7 +3814,7 @@ - && GET_MODE (operands[0]) == GET_MODE (operands[1]) - && GET_MODE (operands[0]) == GET_MODE (operands[3])" - "#" -- "reload_completed" -+ "reload_completed && GET_MODE (operands[0]) != SImode" - [(const_int 0)] - " - { diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-reload-test.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-reload-test.patch deleted file mode 100644 index 6683cbdef46f..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-reload-test.patch +++ /dev/null @@ -1,66 +0,0 @@ -2000-10-23 Jakub Jelinek <jakub@redhat.com> - - * gcc.dg/20001023-1.c: New test. - ---- gcc/testsuite/gcc.dg/20001023-1.c.jj Mon Oct 23 15:16:41 2000 -+++ gcc/testsuite/gcc.dg/20001023-1.c Mon Oct 23 15:16:50 2000 -@@ -0,0 +1,59 @@ -+/* { dg-do run } */ -+/* { dg-options "-O2 -fomit-frame-pointer" } */ -+ -+unsigned char a[256], b[256], c[256], d[256]; -+ -+void foo(unsigned char *x, int y, unsigned char *z) -+{ -+} -+ -+void bar(int x, ...) -+{ -+} -+ -+void baz(int y) -+{ -+ if (y != 0x10) -+ abort(); -+} -+ -+void test(int x, unsigned char *y) -+{ -+ unsigned char g,h,j, k[5],l[5], m[30]; -+ int i; -+ -+ bar(x, y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7], y[8], y[9]); -+ for (i = 5; --i >= 0; ) -+ k[i] = y[5 + i] ^ a[i] ^ c[i]; -+ -+ foo(&m[29], sizeof m, k); -+ g = d[x] ^ c[x]; -+ bar(x, d[x], x, c[x]); -+ baz(g); -+ for (i = 5, h = 0; --i >= 0; h = y[i]) -+ { -+ j = m[25 + i] ^ y[i]; -+ j = b[j] ^ g; -+ k[i] = c[j] ^ h; -+ } -+ for (i = 5, h = 0; --i >= 0; h = k[i]) -+ { -+ j = m[20 + i] ^ k[i]; -+ j = b[j] ^ g; -+ l[i] = c[j] ^ h; -+ } -+ for (i = 5, h = 0; --i >= 0; h = l[i]) { -+ j = m[15 + i] ^ l[i]; -+ j = b[j] ^ g; -+ j = c[j] ^ h; -+ k[i] = a[j] ^ c[j]; -+ } -+} -+ -+int main() -+{ -+ c[4] = 0xdc; -+ d[4] = 0xcc; -+ test(4, a); -+ exit(0); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-reload.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-reload.patch deleted file mode 100644 index b098792b310d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-reload.patch +++ /dev/null @@ -1,149 +0,0 @@ -2000-10-23 Bernd Schmidt <bernds@redhat.com> - - * reload.c (find_reloads): Distinguish "wins" so that we know whether - a given operand won because of a matching constraint or not; then use - that information to compute goal_alternative_matched properly. - ---- gcc/reload.c 2000/09/14 17:42:48 1.130 -+++ gcc/reload.c 2000/10/23 16:05:19 -@@ -2399,6 +2399,7 @@ find_reloads (insn, replace, ind_levels, - int no_input_reloads = 0, no_output_reloads = 0; - int n_alternatives; - int this_alternative[MAX_RECOG_OPERANDS]; -+ char this_alternative_match_win[MAX_RECOG_OPERANDS]; - char this_alternative_win[MAX_RECOG_OPERANDS]; - char this_alternative_offmemok[MAX_RECOG_OPERANDS]; - char this_alternative_earlyclobber[MAX_RECOG_OPERANDS]; -@@ -2410,6 +2411,7 @@ find_reloads (insn, replace, ind_levels, - int operand_reloadnum[MAX_RECOG_OPERANDS]; - int goal_alternative_matches[MAX_RECOG_OPERANDS]; - int goal_alternative_matched[MAX_RECOG_OPERANDS]; -+ char goal_alternative_match_win[MAX_RECOG_OPERANDS]; - char goal_alternative_win[MAX_RECOG_OPERANDS]; - char goal_alternative_offmemok[MAX_RECOG_OPERANDS]; - char goal_alternative_earlyclobber[MAX_RECOG_OPERANDS]; -@@ -2741,6 +2743,7 @@ find_reloads (insn, replace, ind_levels, - { - register char *p = constraints[i]; - register int win = 0; -+ int did_match = 0; - /* 0 => this operand can be reloaded somehow for this alternative */ - int badop = 1; - /* 0 => this operand can be reloaded if the alternative allows regs. */ -@@ -2839,6 +2842,7 @@ find_reloads (insn, replace, ind_levels, - - this_alternative[i] = (int) NO_REGS; - this_alternative_win[i] = 0; -+ this_alternative_match_win[i] = 0; - this_alternative_offmemok[i] = 0; - this_alternative_earlyclobber[i] = 0; - this_alternative_matches[i] = -1; -@@ -2917,7 +2921,7 @@ find_reloads (insn, replace, ind_levels, - && ! this_alternative_win[c]) - bad = 1; - -- win = this_alternative_win[c]; -+ did_match = this_alternative_win[c]; - } - else - { -@@ -2953,12 +2957,11 @@ find_reloads (insn, replace, ind_levels, - operand also had to match the same thing as this - operand, we don't know how to do that. So reject this - alternative. */ -- if (! win || force_reload) -+ if (! did_match || force_reload) - for (j = 0; j < i; j++) - if (this_alternative_matches[j] - == this_alternative_matches[i]) - badop = 1; -- - break; - - case 'p': -@@ -3175,6 +3178,8 @@ find_reloads (insn, replace, ind_levels, - this_alternative_earlyclobber[i] = earlyclobber; - if (win && ! force_reload) - this_alternative_win[i] = 1; -+ else if (did_match && ! force_reload) -+ this_alternative_match_win[i] = 1; - else - { - int const_to_mem = 0; -@@ -3276,7 +3281,8 @@ find_reloads (insn, replace, ind_levels, - Don't do this if the preferred class has only one register - because we might otherwise exhaust the class. */ - -- if (! win && this_alternative[i] != (int) NO_REGS -+ if (! win && ! did_match -+ && this_alternative[i] != (int) NO_REGS - && GET_MODE_SIZE (operand_mode[i]) <= UNITS_PER_WORD - && reg_class_size[(int) preferred_class[i]] > 1) - { -@@ -3302,7 +3308,7 @@ find_reloads (insn, replace, ind_levels, - - for (i = 0; i < noperands; i++) - if (this_alternative_earlyclobber[i] -- && this_alternative_win[i]) -+ && (this_alternative_win[i] || this_alternative_match_win[i])) - { - struct decomposition early_data; - -@@ -3345,6 +3351,7 @@ find_reloads (insn, replace, ind_levels, - { - losers++; - this_alternative_win[j] = 0; -+ this_alternative_match_win[j] = 0; - } - else - break; -@@ -3355,11 +3362,13 @@ find_reloads (insn, replace, ind_levels, - { - losers++; - this_alternative_win[i] = 0; -+ this_alternative_match_win[j] = 0; - for (j = 0; j < noperands; j++) - if (this_alternative_matches[j] == i -- && this_alternative_win[j]) -+ && this_alternative_match_win[j]) - { - this_alternative_win[j] = 0; -+ this_alternative_match_win[j] = 0; - losers++; - } - } -@@ -3378,7 +3387,8 @@ find_reloads (insn, replace, ind_levels, - } - for (i = 0; i < noperands; i++) - { -- goal_alternative_win[i] = 1; -+ goal_alternative_win[i] = this_alternative_win[i]; -+ goal_alternative_match_win[i] = this_alternative_match_win[i]; - goal_alternative[i] = this_alternative[i]; - goal_alternative_offmemok[i] = this_alternative_offmemok[i]; - goal_alternative_matches[i] = this_alternative_matches[i]; -@@ -3406,6 +3416,7 @@ find_reloads (insn, replace, ind_levels, - { - goal_alternative[i] = this_alternative[i]; - goal_alternative_win[i] = this_alternative_win[i]; -+ goal_alternative_match_win[i] = this_alternative_match_win[i]; - goal_alternative_offmemok[i] = this_alternative_offmemok[i]; - goal_alternative_matches[i] = this_alternative_matches[i]; - goal_alternative_earlyclobber[i] -@@ -3487,11 +3498,14 @@ find_reloads (insn, replace, ind_levels, - - for (i = 0; i < noperands; i++) - goal_alternative_matched[i] = -1; -- -+ - for (i = 0; i < noperands; i++) - if (! goal_alternative_win[i] - && goal_alternative_matches[i] >= 0) - goal_alternative_matched[goal_alternative_matches[i]] = i; -+ -+ for (i = 0; i < noperands; i++) -+ goal_alternative_win[i] |= goal_alternative_match_win[i]; - - /* If the best alternative is with operands 1 and 2 swapped, - consider them swapped before reporting the reloads. Update the - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-sibcall.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-sibcall.patch deleted file mode 100644 index 0725f141c997..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-sibcall.patch +++ /dev/null @@ -1,61 +0,0 @@ -2000-08-05 Zack Weinberg <zack@wolery.cumb.org> - - * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return - type is a float mode, cfun->decl's return type is not, and - TARGET_FLOAT_RETURNS_IN_80387. - ---- gcc/config/i386/i386.h 2000/07/31 17:33:28 1.121 -+++ gcc/config/i386/i386.h 2000/08/05 15:45:43 -@@ -1319,10 +1319,16 @@ typedef struct ix86_args { - - #define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) 0 - --/* If PIC, we cannot optimize sibling calls to global functions -- because the PLT requires %ebx live. */ --#define FUNCTION_OK_FOR_SIBCALL(DECL) \ -- (DECL && (! flag_pic || ! TREE_PUBLIC (DECL))) -+/* If PIC, we cannot make sibling calls to global functions -+ because the PLT requires %ebx live. -+ If we are returning floats on the register stack, we cannot make -+ sibling calls to functions that return floats. (The stack adjust -+ instruction will wind up after the sibcall jump, and not be executed.) */ -+#define FUNCTION_OK_FOR_SIBCALL(DECL) (DECL \ -+ && (! flag_pic || ! TREE_PUBLIC (DECL)) \ -+ && (! TARGET_FLOAT_RETURNS_IN_80387 \ -+ || ! FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (DECL)))) \ -+ || FLOAT_MODE_P (TYPE_MODE (TREE_TYPE (TREE_TYPE (cfun->decl)))))) - - /* This macro is invoked just before the start of a function. - It is used here to output code for -fpic that will load the - -Mon Jul 31 21:14:49 2000 Jeffrey A Law (law@cygnus.com) - - * gcc.c-torture/execute/20000731-1.c: New test. - ---- gcc/testsuite/gcc.c-torture/execute/20000731-1.c.jj Thu Aug 17 15:02:49 2000 -+++ gcc/testsuite/gcc.c-torture/execute/20000731-1.c Tue Aug 1 05:14:49 2000 -@@ -0,0 +1,24 @@ -+double -+foo (void) -+{ -+ return 0.0; -+} -+ -+void -+do_sibcall (void) -+{ -+ (void) foo (); -+} -+ -+int -+main (void) -+{ -+ double x; -+ -+ for (x = 0; x < 20; x++) -+ do_sibcall (); -+ if (!(x >= 10)) -+ abort (); -+ exit (0); -+} -+ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-strops.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-strops.patch deleted file mode 100644 index d01ab94b363c..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-i386-strops.patch +++ /dev/null @@ -1,273 +0,0 @@ -2000-08-23 Jan Hubicka <jh@suse.cz> - - * i386.md (strmovsi_1, strmovhi_1 strmovqi_1): - Do not use match_dup of input operands at outputs. - Use register_operand for memory expression. - (rep_movsi): Put use last, canonicalize. - Use register_operand for memory expression. - (rep_movqi): Put use last. - Use register_operand for memory expression. - (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup - of input operands at outputs. Use register_operand for memory - expression. - (rep_stossi): Put use last; canonicalize; fix match_dup in - the address expression - (rep_stosqi): Likewise. - (memcmp expander): Update calls. - (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in - the clobbers. - ---- gcc/config/i386/i386.md.jj Mon Aug 21 18:27:34 2000 -+++ gcc/config/i386/i386.md Wed Aug 23 14:05:34 2000 -@@ -9587,10 +9587,10 @@ - [(set (mem:SI (match_operand:SI 2 "register_operand" "0")) - (mem:SI (match_operand:SI 3 "register_operand" "1"))) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_dup 0) -+ (plus:SI (match_dup 2) - (const_int 4))) - (set (match_operand:SI 1 "register_operand" "=S") -- (plus:SI (match_dup 1) -+ (plus:SI (match_dup 3) - (const_int 4))) - (use (reg:SI 19))] - "TARGET_SINGLE_STRINGOP || optimize_size" -@@ -9603,10 +9603,10 @@ - [(set (mem:HI (match_operand:SI 2 "register_operand" "0")) - (mem:HI (match_operand:SI 3 "register_operand" "1"))) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_dup 0) -+ (plus:SI (match_dup 2) - (const_int 2))) - (set (match_operand:SI 1 "register_operand" "=S") -- (plus:SI (match_dup 1) -+ (plus:SI (match_dup 3) - (const_int 2))) - (use (reg:SI 19))] - "TARGET_SINGLE_STRINGOP || optimize_size" -@@ -9619,10 +9619,10 @@ - [(set (mem:QI (match_operand:SI 2 "register_operand" "0")) - (mem:QI (match_operand:SI 3 "register_operand" "1"))) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_dup 0) -+ (plus:SI (match_dup 2) - (const_int 1))) - (set (match_operand:SI 1 "register_operand" "=S") -- (plus:SI (match_dup 1) -+ (plus:SI (match_dup 3) - (const_int 1))) - (use (reg:SI 19))] - "TARGET_SINGLE_STRINGOP || optimize_size" -@@ -9631,21 +9631,18 @@ - (set_attr "memory" "both") - (set_attr "mode" "QI")]) - --;; It might seem that operands 3 & 4 could use predicate register_operand. --;; But strength reduction might offset the MEM expression. So we let --;; reload put the address into %edi & %esi. -- - (define_insn "rep_movsi" - [(set (match_operand:SI 2 "register_operand" "=c") (const_int 0)) -- (use (match_operand:SI 5 "register_operand" "2")) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_operand:SI 3 "address_operand" "0") -- (ashift:SI (match_dup 5) (const_int 2)))) -+ (plus:SI (ashift:SI (match_operand:SI 5 "register_operand" "2") -+ (const_int 2)) -+ (match_operand:SI 3 "register_operand" "0"))) - (set (match_operand:SI 1 "register_operand" "=S") -- (plus:SI (match_operand:SI 4 "address_operand" "1") -- (ashift:SI (match_dup 5) (const_int 2)))) -+ (plus:SI (ashift:SI (match_dup 5) (const_int 2)) -+ (match_operand:SI 4 "register_operand" "1"))) - (set (mem:BLK (match_dup 3)) - (mem:BLK (match_dup 4))) -+ (use (match_dup 5)) - (use (reg:SI 19))] - "" - "rep\;movsl|rep movsd" -@@ -9656,13 +9653,14 @@ - - (define_insn "rep_movqi" - [(set (match_operand:SI 2 "register_operand" "=c") (const_int 0)) -- (use (match_operand:SI 5 "register_operand" "2")) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_operand:SI 3 "address_operand" "0") (match_dup 5))) -+ (plus:SI (match_operand:SI 3 "register_operand" "0") -+ (match_operand:SI 5 "register_operand" "2"))) - (set (match_operand:SI 1 "register_operand" "=S") -- (plus:SI (match_operand:SI 4 "address_operand" "1") (match_dup 5))) -+ (plus:SI (match_operand:SI 4 "register_operand" "1") (match_dup 5))) - (set (mem:BLK (match_dup 3)) - (mem:BLK (match_dup 4))) -+ (use (match_dup 5)) - (use (reg:SI 19))] - "" - "rep\;movsb|rep movsb" -@@ -9891,7 +9889,7 @@ - [(set (mem:SI (match_operand:SI 1 "register_operand" "0")) - (match_operand:SI 2 "register_operand" "a")) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_dup 0) -+ (plus:SI (match_dup 1) - (const_int 4))) - (use (reg:SI 19))] - "TARGET_SINGLE_STRINGOP || optimize_size" -@@ -9904,7 +9902,7 @@ - [(set (mem:HI (match_operand:SI 1 "register_operand" "0")) - (match_operand:HI 2 "register_operand" "a")) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_dup 0) -+ (plus:SI (match_dup 1) - (const_int 2))) - (use (reg:SI 19))] - "TARGET_SINGLE_STRINGOP || optimize_size" -@@ -9917,7 +9915,7 @@ - [(set (mem:QI (match_operand:SI 1 "register_operand" "0")) - (match_operand:QI 2 "register_operand" "a")) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_dup 0) -+ (plus:SI (match_dup 1) - (const_int 1))) - (use (reg:SI 19))] - "TARGET_SINGLE_STRINGOP || optimize_size" -@@ -9926,19 +9924,16 @@ - (set_attr "memory" "store") - (set_attr "mode" "QI")]) - --;; It might seem that operand 0 could use predicate register_operand. --;; But strength reduction might offset the MEM expression. So we let --;; reload put the address into %edi. -- - (define_insn "rep_stossi" - [(set (match_operand:SI 1 "register_operand" "=c") (const_int 0)) -- (use (match_operand:SI 2 "register_operand" "a")) -- (use (match_operand:SI 4 "register_operand" "1")) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_operand:SI 3 "address_operand" "0") -- (ashift:SI (match_dup 3) (const_int 2)))) -+ (plus:SI (ashift:SI (match_operand:SI 4 "register_operand" "1") -+ (const_int 2)) -+ (match_operand:SI 3 "register_operand" "0"))) - (set (mem:BLK (match_dup 3)) - (const_int 0)) -+ (use (match_operand:SI 2 "register_operand" "a")) -+ (use (match_dup 4)) - (use (reg:SI 19))] - "" - "rep\;stosl|rep stosd" -@@ -9949,12 +9944,13 @@ - - (define_insn "rep_stosqi" - [(set (match_operand:SI 1 "register_operand" "=c") (const_int 0)) -- (use (match_operand:QI 2 "register_operand" "a")) -- (use (match_operand:SI 4 "register_operand" "1")) - (set (match_operand:SI 0 "register_operand" "=D") -- (plus:SI (match_operand:SI 3 "address_operand" "0") (match_dup 3))) -+ (plus:SI (match_operand:SI 3 "register_operand" "0") -+ (match_operand:SI 4 "register_operand" "1"))) - (set (mem:BLK (match_dup 3)) - (const_int 0)) -+ (use (match_operand:QI 2 "register_operand" "a")) -+ (use (match_dup 4)) - (use (reg:SI 19))] - "" - "rep\;stosb|rep stosb" -@@ -9997,12 +9993,14 @@ - emit_move_insn (operands[0], const0_rtx); - DONE; - } -- emit_insn (gen_cmpstrsi_nz_1 (addr1, addr2, countreg, align)); -+ emit_insn (gen_cmpstrsi_nz_1 (addr1, addr2, countreg, align, -+ addr1, addr2, countreg)); - } - else - { - emit_insn (gen_cmpsi_1 (countreg, countreg)); -- emit_insn (gen_cmpstrsi_1 (addr1, addr2, countreg, align)); -+ emit_insn (gen_cmpstrsi_1 (addr1, addr2, countreg, align, -+ addr1, addr2, countreg)); - } - - outlow = gen_lowpart (QImode, out); -@@ -10032,21 +10030,17 @@ - - ;; memcmp recognizers. The `cmpsb' opcode does nothing if the count is - ;; zero. Emit extra code to make sure that a zero-length compare is EQ. --;; --;; It might seem that operands 0 & 1 could use predicate register_operand. --;; But strength reduction might offset the MEM expression. So we let --;; reload put the address into %edi & %esi. - - (define_insn "cmpstrsi_nz_1" - [(set (reg:CC 17) -- (compare:CC (mem:BLK (match_operand:SI 0 "address_operand" "S")) -- (mem:BLK (match_operand:SI 1 "address_operand" "D")))) -- (use (match_operand:SI 2 "register_operand" "c")) -+ (compare:CC (mem:BLK (match_operand:SI 4 "register_operand" "0")) -+ (mem:BLK (match_operand:SI 5 "register_operand" "1")))) -+ (use (match_operand:SI 6 "register_operand" "2")) - (use (match_operand:SI 3 "immediate_operand" "i")) - (use (reg:SI 19)) -- (clobber (match_dup 0)) -- (clobber (match_dup 1)) -- (clobber (match_dup 2))] -+ (clobber (match_operand:SI 0 "register_operand" "=S")) -+ (clobber (match_operand:SI 1 "register_operand" "=D")) -+ (clobber (match_operand:SI 2 "register_operand" "=c"))] - "" - "repz{\;| }cmpsb" - [(set_attr "type" "str") -@@ -10057,17 +10051,17 @@ - - (define_insn "cmpstrsi_1" - [(set (reg:CC 17) -- (if_then_else:CC (ne (match_operand:SI 2 "register_operand" "c") -+ (if_then_else:CC (ne (match_operand:SI 6 "register_operand" "2") - (const_int 0)) -- (compare:SI (mem:BLK (match_operand:SI 0 "address_operand" "S")) -- (mem:BLK (match_operand:SI 1 "address_operand" "D"))) -+ (compare:SI (mem:BLK (match_operand:SI 4 "register_operand" "0")) -+ (mem:BLK (match_operand:SI 5 "register_operand" "1"))) - (const_int 0))) - (use (match_operand:SI 3 "immediate_operand" "i")) - (use (reg:CC 17)) - (use (reg:SI 19)) -- (clobber (match_dup 0)) -- (clobber (match_dup 1)) -- (clobber (match_dup 2))] -+ (clobber (match_operand:SI 0 "register_operand" "=S")) -+ (clobber (match_operand:SI 1 "register_operand" "=D")) -+ (clobber (match_operand:SI 2 "register_operand" "=c"))] - "" - "repz{\;| }cmpsb" - [(set_attr "type" "str") -@@ -10131,25 +10125,21 @@ - - emit_insn (gen_cld ()); - emit_insn (gen_strlensi_1 (scratch1, scratch3, eoschar, -- align, constm1_rtx)); -+ align, constm1_rtx, scratch3)); - emit_insn (gen_one_cmplsi2 (scratch2, scratch1)); - emit_insn (gen_addsi3 (out, scratch2, constm1_rtx)); - } - DONE; - }") - --;; It might seem that operands 0 & 1 could use predicate register_operand. --;; But strength reduction might offset the MEM expression. So we let --;; reload put the address into %edi. -- - (define_insn "strlensi_1" - [(set (match_operand:SI 0 "register_operand" "=&c") -- (unspec:SI [(mem:BLK (match_operand:SI 1 "address_operand" "D")) -+ (unspec:SI [(mem:BLK (match_operand:SI 5 "register_operand" "1")) - (match_operand:QI 2 "general_operand" "a") - (match_operand:SI 3 "immediate_operand" "i") - (match_operand:SI 4 "immediate_operand" "0")] 0)) - (use (reg:SI 19)) -- (clobber (match_dup 1)) -+ (clobber (match_operand:SI 1 "register_operand" "=D")) - (clobber (reg:CC 17))] - "" - "repnz{\;| }scasb" diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-incomplete-aggregate-alias.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-incomplete-aggregate-alias.patch deleted file mode 100644 index 1d23b1c2e38b..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-incomplete-aggregate-alias.patch +++ /dev/null @@ -1,61 +0,0 @@ -2000-10-25 Jakub Jelinek <jakub@redhat.com> - - * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the - incomplete type force it into alias set 0. - - * gcc.c-torture/execute/20001024-1.c: New test. - ---- gcc/testsuite/gcc.c-torture/execute/20001024-1.c.jj Tue Oct 24 13:32:08 2000 -+++ gcc/testsuite/gcc.c-torture/execute/20001024-1.c Tue Oct 24 10:16:57 2000 -@@ -0,0 +1,34 @@ -+struct a; -+ -+extern int baz (struct a *__restrict x); -+ -+struct a { -+ long v; -+ long w; -+}; -+ -+struct b { -+ struct a c; -+ struct a d; -+}; -+ -+int bar (int x, const struct b *__restrict y, struct b *__restrict z) -+{ -+ if (y->c.v || y->c.w != 250000 || y->d.v || y->d.w != 250000) -+ abort(); -+} -+ -+void foo(void) -+{ -+ struct b x; -+ x.c.v = 0; -+ x.c.w = 250000; -+ x.d = x.c; -+ bar(0, &x, ((void *)0)); -+} -+ -+int main() -+{ -+ foo(); -+ exit(0); -+} ---- gcc/stor-layout.c.jj Mon Oct 23 15:24:47 2000 -+++ gcc/stor-layout.c Wed Oct 25 10:46:57 2000 -@@ -1507,6 +1507,14 @@ layout_type (type) - record it so set_sizetype can fix it up. */ - if (! sizetype_set) - early_type_list = tree_cons (NULL_TREE, type, early_type_list); -+ -+ /* If an alias set has been set for this aggregate when it was incomplete, -+ force it into alias set 0. -+ This is too conservative, but we cannot call record_component_aliases -+ here because some frontends still change the aggregates after -+ layout_type. */ -+ if (AGGREGATE_TYPE_P (type) && TYPE_ALIAS_SET_KNOWN_P (type)) -+ TYPE_ALIAS_SET (type) = 0; - } - - /* Create and return a type for signed integers of PRECISION bits. */ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-incomplete-struct.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-incomplete-struct.patch deleted file mode 100644 index 7bb740240859..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-incomplete-struct.patch +++ /dev/null @@ -1,33 +0,0 @@ -2000-06-06 Jakub Jelinek <jakub@redhat.com> - - * expr.c (get_inner_reference): If decl was done with incomplete - type which was later defined, try to use its type alignment. - - * gcc.c-torture/compile/20000606-1.c: New test. - ---- gcc/testsuite/gcc.c-torture/compile/20000606-1.c.jj Tue Jun 6 19:09:18 2000 -+++ gcc/testsuite/gcc.c-torture/compile/20000606-1.c Tue Jun 6 18:13:45 2000 -@@ -0,0 +1,10 @@ -+typedef struct _foo foo; -+extern foo bar; -+struct _foo { -+ int a; -+}; -+ -+void baz(void) -+{ -+ bar.a = 0; -+} ---- gcc/expr.c.jj Fri Jun 2 16:00:46 2000 -+++ gcc/expr.c Tue Jun 6 19:07:44 2000 -@@ -5142,7 +5142,9 @@ get_inner_reference (exp, pbitsize, pbit - exp = TREE_OPERAND (exp, 0); - } - -- if (DECL_P (exp)) -+ if (DECL_P (exp) -+ && (DECL_ALIGN (exp) != 1 -+ || ! TREE_TYPE (exp))) - alignment = MIN (alignment, DECL_ALIGN (exp)); - else if (TREE_TYPE (exp) != 0) - alignment = MIN (alignment, TYPE_ALIGN (TREE_TYPE (exp))); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-iso-not-ansi.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-iso-not-ansi.patch deleted file mode 100644 index d2d3c1695dc5..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-iso-not-ansi.patch +++ /dev/null @@ -1,762 +0,0 @@ -2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-common.c (combine_strings, check_format_info): Refer to ISO C - or ISO C89 instead of ANSI C. - * c-decl.c (grokdeclarator, xref_tag, finish_struct, - build_enumerator, do_case): Likewise. - * c-lex.c (parse_float, yylex): Likewise. - * c-parse.in: Likewise. - * c-typeck.c (common_type, build_array_ref, build_binary_op, - build_unary_op, pedantic_lvalue_warning, build_conditional_expr, - build_c_cast, convert_for_assignment, set_init_index, - set_init_label, c_expand_start_case): Likewise. - * toplev.c (documented_lang_options, display_help): Likewise. - ---- gcc/c-common.c Sun Aug 6 18:08:43 2000 -+++ gcc/c-common.c Tue Aug 8 19:27:49 2000 -@@ -375,8 +375,8 @@ combine_strings (strings) - nchars = wide_flag ? length / wchar_bytes : length; - - if (pedantic && nchars > nchars_max) -- pedwarn ("string length `%d' is greater than the minimum length `%d' ANSI C is required to support", -- nchars, nchars_max); -+ pedwarn ("string length `%d' is greater than the minimum length `%d' ISO C%d is required to support", -+ nchars, nchars_max, flag_isoc99 ? 99 : 89); - - /* Create the array type for the string constant. - -Wwrite-strings says make the string constant an array of const char -@@ -1653,7 +1653,7 @@ check_format_info (info, params) - while (*format_chars != 0 && index ("_-0^#", *format_chars) != 0) - { - if (pedantic) -- warning ("ANSI C does not support the strftime `%c' flag", -+ warning ("ISO C does not support the strftime `%c' flag", - *format_chars); - if (index (flag_chars, *format_chars) != 0) - { -@@ -1674,7 +1674,7 @@ check_format_info (info, params) - ++format_chars; - } - if (wide && pedantic) -- warning ("ANSI C does not support strftime format width"); -+ warning ("ISO C does not support strftime format width"); - if (*format_chars == 'E' || *format_chars == 'O') - { - i = strlen (flag_chars); -@@ -1704,7 +1704,7 @@ check_format_info (info, params) - int opnum = atoi (format_chars); - - if (pedantic) -- warning ("ANSI C does not support printf %%n$"); -+ warning ("ISO C does not support printf %%n$"); - - params = first_fillin_param; - format_chars = p + 1; -@@ -1743,7 +1743,7 @@ check_format_info (info, params) - && index (flag_chars, '-') != 0) - warning ("use of both `0' and `-' flags in format"); - if (index (flag_chars, '\'') && pedantic) -- warning ("ANSI C does not support the `'' format flag"); -+ warning ("ISO C does not support the `'' format flag"); - if (*format_chars == '*') - { - wide = TRUE; -@@ -1826,21 +1826,27 @@ check_format_info (info, params) - { - length_char = *format_chars++; - if (length_char == 'q' && pedantic) -- warning ("ANSI C does not support the `%c' length modifier", -+ warning ("ISO C does not support the `%c' length modifier", - length_char); - } - else if (*format_chars == 'Z' || *format_chars == 'z') - { - length_char = *format_chars++; -- if (pedantic && (length_char == 'Z' || !flag_isoc99)) -- warning ("ANSI C does not support the `%c' length modifier", -- length_char); -+ if (pedantic) -+ { -+ if (length_char == 'Z') -+ warning ("ISO C does not support the `%c' length modifier", -+ length_char); -+ else if (!flag_isoc99) -+ warning ("ISO C89 does not support the `%c' length modifier", -+ length_char); -+ } - } - else if (*format_chars == 't' || *format_chars == 'j') - { - length_char = *format_chars++; - if (pedantic && !flag_isoc99) -- warning ("ANSI C does not support the `%c' length modifier", -+ warning ("ISO C89 does not support the `%c' length modifier", - length_char); - } - else -@@ -1849,13 +1855,13 @@ check_format_info (info, params) - { - length_char = 'q', format_chars++; - if (pedantic && !flag_isoc99) -- warning ("ANSI C does not support the `ll' length modifier"); -+ warning ("ISO C89 does not support the `ll' length modifier"); - } - else if (length_char == 'h' && *format_chars == 'h') - { - length_char = 'H', format_chars++; - if (pedantic && !flag_isoc99) -- warning ("ANSI C does not support the `hh' length modifier"); -+ warning ("ISO C89 does not support the `hh' length modifier"); - } - if (*format_chars == 'a' && info->format_type == scanf_format_type) - { -@@ -1880,12 +1886,12 @@ check_format_info (info, params) - /* The m, C, and S formats are GNU extensions. */ - if (pedantic && info->format_type != strftime_format_type - && (format_char == 'm' || format_char == 'C' || format_char == 'S')) -- warning ("ANSI C does not support the `%c' format", format_char); -+ warning ("ISO C does not support the `%c' format", format_char); - /* The a, A and F formats are C99 extensions. */ - if (pedantic && info->format_type != strftime_format_type - && (format_char == 'a' || format_char == 'A' || format_char == 'F') - && !flag_isoc99) -- warning ("ANSI C does not support the `%c' format", format_char); -+ warning ("ISO C89 does not support the `%c' format", format_char); - format_chars++; - switch (info->format_type) - { -@@ -1917,15 +1923,18 @@ check_format_info (info, params) - if (pedantic) - { - if (index (fci->flag_chars, 'G') != 0) -- warning ("ANSI C does not support `%%%c'", format_char); -+ warning ("ISO C does not support `%%%c'", format_char); - if (index (fci->flag_chars, '9') != 0 && !flag_isoc99) -- warning ("ANSI C does not support `%%%c'", format_char); -- if ((index (fci->flag_chars, 'o') != 0 -- || (!flag_isoc99 && index (fci->flag_chars, 'O') != 0)) -- && index (flag_chars, 'O') != 0) -- warning ("ANSI C does not support `%%O%c'", format_char); -+ warning ("ISO C89 does not support `%%%c'", format_char); -+ if (index (flag_chars, 'O') != 0) -+ { -+ if (index (fci->flag_chars, 'o') != 0) -+ warning ("ISO C does not support `%%O%c'", format_char); -+ else if (!flag_isoc99 && index (fci->flag_chars, 'O') != 0) -+ warning ("ISO C89 does not support `%%O%c'", format_char); -+ } - if (!flag_isoc99 && index (flag_chars, 'E')) -- warning ("ANSI C does not support `%%E%c'", format_char); -+ warning ("ISO C89 does not support `%%E%c'", format_char); - } - if (wide && index (fci->flag_chars, 'w') == 0) - warning ("width used with `%c' format", format_char); -@@ -1944,7 +1953,7 @@ check_format_info (info, params) - } - /* The a flag is a GNU extension. */ - else if (pedantic && aflag) -- warning ("ANSI C does not support the `a' flag"); -+ warning ("ISO C does not support the `a' flag"); - if (info->format_type == scanf_format_type && format_char == '[') - { - /* Skip over scan set, in case it happens to have '%' in it. */ -@@ -2004,20 +2013,20 @@ check_format_info (info, params) - || format_char == 'e' || format_char == 'E' - || format_char == 'f' || format_char == 'F' - || format_char == 'g' || format_char == 'G')) -- warning ("ANSI C does not support the `L' length modifier with the `%c' type character", -+ warning ("ISO C does not support the `L' length modifier with the `%c' type character", - format_char); - else if (length_char == 'l' - && (format_char == 'c' || format_char == 's' - || format_char == '[') - && pedantic && !flag_isoc94) -- warning ("ANSI C89 does not support the `l' length modifier with the `%c' type character", -+ warning ("ISO C89 does not support the `l' length modifier with the `%c' type character", - format_char); - else if (info->format_type == printf_format_type && pedantic - && !flag_isoc99 && length_char == 'l' - && (format_char == 'f' || format_char == 'e' - || format_char == 'E' || format_char == 'g' - || format_char == 'G')) -- warning ("ANSI C does not support the `l' length modifier with the `%c' type character", -+ warning ("ISO C89 does not support the `l' length modifier with the `%c' type character", - format_char); - - /* Finally. . .check type of argument against desired type! */ ---- gcc/c-decl.c Sun Aug 6 18:08:43 2000 -+++ gcc/c-decl.c Tue Aug 8 19:31:02 2000 -@@ -4005,7 +4005,7 @@ grokdeclarator (declarator, declspecs, d - { - if (pedantic && !flag_isoc99 && ! in_system_header - && warn_long_long) -- pedwarn ("ANSI C does not support `long long'"); -+ pedwarn ("ISO C89 does not support `long long'"); - longlong = 1; - } - } -@@ -4385,7 +4385,7 @@ grokdeclarator (declarator, declspecs, d - } - - if (pedantic && integer_zerop (size)) -- pedwarn ("ANSI C forbids zero-size array `%s'", name); -+ pedwarn ("ISO C forbids zero-size array `%s'", name); - - if (TREE_CODE (size) == INTEGER_CST) - { -@@ -4405,9 +4405,9 @@ grokdeclarator (declarator, declspecs, d - if (pedantic) - { - if (TREE_CONSTANT (size)) -- pedwarn ("ANSI C forbids array `%s' whose size can't be evaluated", name); -+ pedwarn ("ISO C89 forbids array `%s' whose size can't be evaluated", name); - else -- pedwarn ("ANSI C forbids variable-size array `%s'", name); -+ pedwarn ("ISO C89 forbids variable-size array `%s'", name); - } - } - -@@ -4539,7 +4539,7 @@ grokdeclarator (declarator, declspecs, d - - if (pedantic && TREE_CODE (type) == FUNCTION_TYPE - && type_quals) -- pedwarn ("ANSI C forbids qualified function types"); -+ pedwarn ("ISO C forbids qualified function types"); - if (type_quals) - type = c_build_qualified_type (type, type_quals); - type_quals = TYPE_UNQUALIFIED; -@@ -4612,7 +4612,7 @@ grokdeclarator (declarator, declspecs, d - in typenames, fields or parameters */ - if (pedantic && TREE_CODE (type) == FUNCTION_TYPE - && type_quals) -- pedwarn ("ANSI C forbids qualified function types"); -+ pedwarn ("ISO C forbids qualified function types"); - if (type_quals) - type = c_build_qualified_type (type, type_quals); - decl = build_decl (TYPE_DECL, declarator, type); -@@ -4646,7 +4646,7 @@ grokdeclarator (declarator, declspecs, d - in typenames, fields or parameters */ - if (pedantic && TREE_CODE (type) == FUNCTION_TYPE - && type_quals) -- pedwarn ("ANSI C forbids const or volatile function types"); -+ pedwarn ("ISO C forbids const or volatile function types"); - if (type_quals) - type = c_build_qualified_type (type, type_quals); - return type; -@@ -4696,7 +4696,7 @@ grokdeclarator (declarator, declspecs, d - else if (TREE_CODE (type) == FUNCTION_TYPE) - { - if (pedantic && type_quals) -- pedwarn ("ANSI C forbids qualified function types"); -+ pedwarn ("ISO C forbids qualified function types"); - if (type_quals) - type = c_build_qualified_type (type, type_quals); - type = build_pointer_type (type); -@@ -4782,13 +4782,13 @@ grokdeclarator (declarator, declspecs, d - decl = build_decl_attribute_variant (decl, decl_machine_attr); - - if (pedantic && type_quals && ! DECL_IN_SYSTEM_HEADER (decl)) -- pedwarn ("ANSI C forbids qualified function types"); -+ pedwarn ("ISO C forbids qualified function types"); - - if (pedantic - && VOID_TYPE_P (TREE_TYPE (TREE_TYPE (decl))) - && TYPE_QUALS (TREE_TYPE (TREE_TYPE (decl))) - && ! DECL_IN_SYSTEM_HEADER (decl)) -- pedwarn ("ANSI C forbids qualified void function return type"); -+ pedwarn ("ISO C forbids qualified void function return type"); - - /* GNU C interprets a `volatile void' return type to indicate - that the function does not return. */ -@@ -5161,7 +5161,7 @@ xref_tag (code, name) - { - /* (In ANSI, Enums can be referred to only if already defined.) */ - if (pedantic) -- pedwarn ("ANSI C forbids forward references to `enum' types"); -+ pedwarn ("ISO C forbids forward references to `enum' types"); - /* Give the type a default layout like unsigned int - to avoid crashing if it does not get defined. */ - TYPE_MODE (ref) = TYPE_MODE (unsigned_type_node); -@@ -5354,7 +5354,7 @@ finish_struct (t, fieldlist, attributes) - && !(TREE_CODE (TREE_TYPE (x)) == ENUMERAL_TYPE - && (TYPE_PRECISION (TREE_TYPE (x)) - == TYPE_PRECISION (integer_type_node)))) -- pedwarn_with_decl (x, "bit-field `%s' type invalid in ANSI C"); -+ pedwarn_with_decl (x, "bit-field `%s' type invalid in ISO C"); - - /* Detect and ignore out of range field width and process valid - field widths. */ -@@ -5749,7 +5749,7 @@ build_enumerator (name, value) - - if (pedantic && ! int_fits_type_p (value, integer_type_node)) - { -- pedwarn ("ANSI C restricts enumerator values to range of `int'"); -+ pedwarn ("ISO C restricts enumerator values to range of `int'"); - value = convert (integer_type_node, value); - } - -@@ -6924,7 +6924,7 @@ do_case (low_value, high_value) - label = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE); - - if (pedantic && (high_value != NULL_TREE)) -- pedwarn ("ANSI C forbids case ranges"); -+ pedwarn ("ISO C forbids case ranges"); - - if (value1 != error_mark_node && value2 != error_mark_node) - { -@@ -6933,7 +6933,7 @@ do_case (low_value, high_value) - - if (high_value == NULL_TREE && value1 != NULL_TREE && - pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value1))) -- pedwarn ("label must have integral type in ANSI C"); -+ pedwarn ("label must have integral type in ISO C"); - - if (low_value == NULL_TREE) - success = pushcase (NULL_TREE, 0, label, &duplicate); ---- gcc/c-lex.c Tue Aug 8 08:17:48 2000 -+++ gcc/c-lex.c Tue Aug 8 19:32:14 2000 -@@ -1122,7 +1122,7 @@ parse_float (data) - if (args->imag) - error ("more than one `i' or `j' in numeric constant"); - else if (pedantic) -- pedwarn ("ANSI C forbids imaginary numeric constants"); -+ pedwarn ("ISO C forbids imaginary numeric constants"); - args->imag = 1; - break; - -@@ -1789,7 +1789,7 @@ yylex () - error ("`Ll' and `lL' are not valid integer suffixes"); - else if (pedantic && ! flag_isoc99 - && ! in_system_header && warn_long_long) -- pedwarn ("ANSI C forbids long long integer constants"); -+ pedwarn ("ISO C89 forbids long long integer constants"); - spec_long_long = 1; - } - spec_long = c; -@@ -1799,7 +1799,7 @@ yylex () - if (spec_imag) - error ("more than one `i' or `j' in numeric constant"); - else if (pedantic) -- pedwarn ("ANSI C forbids imaginary numeric constants"); -+ pedwarn ("ISO C forbids imaginary numeric constants"); - spec_imag = 1; - } - else -@@ -1914,7 +1914,7 @@ yylex () - warning ("width of integer constant changes with -traditional"); - else if (TREE_UNSIGNED (traditional_type) - != TREE_UNSIGNED (ansi_type)) -- warning ("integer constant is unsigned in ANSI C, signed with -traditional"); -+ warning ("integer constant is unsigned in ISO C, signed with -traditional"); - else - warning ("width of integer constant may change on other systems with -traditional"); - } -@@ -2018,7 +2018,7 @@ yylex () - else if (c == '\n') - { - if (pedantic) -- pedwarn ("ANSI C forbids newline in character constant"); -+ pedwarn ("ISO C forbids newline in character constant"); - lineno++; - } - else -@@ -2175,7 +2175,7 @@ yylex () - else if (c == '\n') - { - if (pedantic) -- pedwarn ("ANSI C forbids newline in string constant"); -+ pedwarn ("ISO C forbids newline in string constant"); - lineno++; - } - else ---- gcc/c-parse.in Mon Aug 7 09:46:01 2000 -+++ gcc/c-parse.in Tue Aug 8 19:35:46 2000 -@@ -277,7 +277,7 @@ end ifobjc - %% - program: /* empty */ - { if (pedantic) -- pedwarn ("ANSI C forbids an empty source file"); -+ pedwarn ("ISO C forbids an empty source file"); - finish_file (); - } - | extdefs -@@ -320,7 +320,7 @@ end ifobjc - datadef: - setspecs notype_initdecls ';' - { if (pedantic) -- error ("ANSI C forbids data definition with no type or storage class"); -+ error ("ISO C forbids data definition with no type or storage class"); - else if (!flag_traditional) - warning ("data definition has no type or storage class"); - -@@ -343,7 +343,7 @@ datadef: - | error '}' - | ';' - { if (pedantic) -- pedwarn ("ANSI C does not allow extra `;' outside of a function"); } -+ pedwarn ("ISO C does not allow extra `;' outside of a function"); } - ; - - fndef: -@@ -459,7 +459,7 @@ unary_expr: - | ANDAND identifier - { tree label = lookup_label ($2); - if (pedantic) -- pedwarn ("ANSI C forbids `&&'"); -+ pedwarn ("ISO C forbids `&&'"); - if (label == 0) - $$ = null_pointer_node; - else -@@ -479,7 +479,7 @@ unary_expr: - else - { - if (pedantic) -- pedwarn ("ANSI C forbids `&...'"); -+ pedwarn ("ISO C forbids `&...'"); - $$ = tree_last (DECL_ARGUMENTS (current_function_decl)); - $$ = build_unary_op (ADDR_EXPR, $$, 0); - } } -@@ -531,7 +531,7 @@ cast_expr: - finish_init (); - - if (pedantic && ! flag_isoc99) -- pedwarn ("ANSI C forbids constructor expressions"); -+ pedwarn ("ISO C89 forbids constructor expressions"); - if (TYPE_NAME (type) != 0) - { - if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE) -@@ -600,7 +600,7 @@ expr_no_commas: - $$ = build_conditional_expr ($1, $4, $7); } - | expr_no_commas '?' - { if (pedantic) -- pedwarn ("ANSI C forbids omitting the middle term of a ?: expression"); -+ pedwarn ("ISO C forbids omitting the middle term of a ?: expression"); - /* Make sure first operand is calculated only once. */ - $<ttype>2 = save_expr ($1); - $1 = truthvalue_conversion (default_conversion ($<ttype>2)); -@@ -648,7 +648,7 @@ primary: - | compstmt_primary_start compstmt_nostart ')' - { tree rtl_exp; - if (pedantic) -- pedwarn ("ANSI C forbids braced-groups within expressions"); -+ pedwarn ("ISO C forbids braced-groups within expressions"); - pop_iterator_stack (); - pop_label_level (); - rtl_exp = expand_end_stmt_expr ($1); -@@ -769,7 +769,7 @@ old_style_parm_decls: - /* ... is used here to indicate a varargs function. */ - { c_mark_varargs (); - if (pedantic) -- pedwarn ("ANSI C does not permit use of `varargs.h'"); } -+ pedwarn ("ISO C does not permit use of `varargs.h'"); } - ; - - /* The following are analogous to lineno_decl, decls and decl -@@ -1112,7 +1112,7 @@ init: - initlist_maybe_comma: - /* empty */ - { if (pedantic) -- pedwarn ("ANSI C forbids empty initializer braces"); } -+ pedwarn ("ISO C forbids empty initializer braces"); } - | initlist1 maybecomma - ; - -@@ -1164,7 +1164,7 @@ end ifc - nested_function: - declarator - { if (pedantic) -- pedwarn ("ANSI C forbids nested functions"); -+ pedwarn ("ISO C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, $1, -@@ -1190,7 +1190,7 @@ nested_function: - notype_nested_function: - notype_declarator - { if (pedantic) -- pedwarn ("ANSI C forbids nested functions"); -+ pedwarn ("ISO C forbids nested functions"); - - push_function_context (); - if (! start_function (current_declspecs, $1, -@@ -1442,7 +1442,7 @@ component_decl: - structs or unions (which is [a] useful and [b] supports - MS P-SDK). */ - if (pedantic) -- pedwarn ("ANSI C doesn't support unnamed structs/unions"); -+ pedwarn ("ISO C doesn't support unnamed structs/unions"); - - $$ = grokfield($3, $4, NULL, current_declspecs, NULL_TREE); - current_declspecs = TREE_VALUE (declspec_stack); -@@ -1456,7 +1456,7 @@ component_decl: - declspec_stack = TREE_CHAIN (declspec_stack); } - | nonempty_type_quals - { if (pedantic) -- pedwarn ("ANSI C forbids member declarations with no members"); -+ pedwarn ("ISO C forbids member declarations with no members"); - shadow_tag($1); - $$ = NULL_TREE; } - | error -@@ -1570,7 +1570,7 @@ stmts: - lineno_stmt_or_labels - { - if (pedantic && $1) -- pedwarn ("ANSI C forbids label at end of compound statement"); -+ pedwarn ("ISO C forbids label at end of compound statement"); - } - ; - -@@ -1608,7 +1608,7 @@ maybe_label_decls: - /* empty */ - | label_decls - { if (pedantic) -- pedwarn ("ANSI C forbids label declarations"); } -+ pedwarn ("ISO C forbids label declarations"); } - ; - - label_decls: -@@ -1919,7 +1919,7 @@ stmt: - } - | GOTO '*' expr ';' - { if (pedantic) -- pedwarn ("ANSI C forbids `goto *expr;'"); -+ pedwarn ("ISO C forbids `goto *expr;'"); - stmt_count++; - emit_line_note ($<filename>-1, $<lineno>0); - expand_computed_goto (convert (ptr_type_node, $3)); } -@@ -2072,7 +2072,7 @@ parmlist_1: - | parms ';' - { tree parm; - if (pedantic) -- pedwarn ("ANSI C forbids forward parameter declarations"); -+ pedwarn ("ISO C forbids forward parameter declarations"); - /* Mark the forward decls as such. */ - for (parm = getdecls (); parm; parm = TREE_CHAIN (parm)) - TREE_ASM_WRITTEN (parm) = 1; -@@ -2095,7 +2095,7 @@ parmlist_2: /* empty */ - it caused problems with the code in expand_builtin which - tries to verify that BUILT_IN_NEXT_ARG is being used - correctly. */ -- error ("ANSI C requires a named argument before `...'"); -+ error ("ISO C requires a named argument before `...'"); - } - | parms - { $$ = get_parm_info (1); } ---- gcc/c-typeck.c Mon Jul 31 23:18:12 2000 -+++ gcc/c-typeck.c Tue Aug 8 19:39:54 2000 -@@ -388,7 +388,7 @@ common_type (t1, t2) - { - TREE_VALUE (n) = TREE_VALUE (p2); - if (pedantic) -- pedwarn ("function types not truly compatible in ANSI C"); -+ pedwarn ("function types not truly compatible in ISO C"); - goto parm_done; - } - } -@@ -402,7 +402,7 @@ common_type (t1, t2) - { - TREE_VALUE (n) = TREE_VALUE (p1); - if (pedantic) -- pedwarn ("function types not truly compatible in ANSI C"); -+ pedwarn ("function types not truly compatible in ISO C"); - goto parm_done; - } - } -@@ -1318,9 +1318,9 @@ build_array_ref (array, index) - if (pedantic && !lvalue_p (array)) - { - if (DECL_REGISTER (array)) -- pedwarn ("ANSI C forbids subscripting `register' array"); -+ pedwarn ("ISO C forbids subscripting `register' array"); - else -- pedwarn ("ANSI C forbids subscripting non-lvalue array"); -+ pedwarn ("ISO C89 forbids subscripting non-lvalue array"); - } - - if (pedantic) -@@ -1329,7 +1329,7 @@ build_array_ref (array, index) - while (TREE_CODE (foo) == COMPONENT_REF) - foo = TREE_OPERAND (foo, 0); - if (TREE_CODE (foo) == VAR_DECL && DECL_REGISTER (foo)) -- pedwarn ("ANSI C forbids subscripting non-lvalue array"); -+ pedwarn ("ISO C89 forbids subscripting non-lvalue array"); - } - - type = TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (array))); -@@ -2198,13 +2198,13 @@ build_binary_op (code, orig_op0, orig_op - whose value is 0 but which isn't a valid null ptr const. */ - if (pedantic && (!integer_zerop (op0) || op0 != orig_op0) - && TREE_CODE (tt1) == FUNCTION_TYPE) -- pedwarn ("ANSI C forbids comparison of `void *' with function pointer"); -+ pedwarn ("ISO C forbids comparison of `void *' with function pointer"); - } - else if (VOID_TYPE_P (tt1)) - { - if (pedantic && (!integer_zerop (op1) || op1 != orig_op1) - && TREE_CODE (tt0) == FUNCTION_TYPE) -- pedwarn ("ANSI C forbids comparison of `void *' with function pointer"); -+ pedwarn ("ISO C forbids comparison of `void *' with function pointer"); - } - else - pedwarn ("comparison of distinct pointer types lacks a cast"); -@@ -2244,7 +2244,7 @@ build_binary_op (code, orig_op0, orig_op - result_type = common_type (type0, type1); - if (pedantic - && TREE_CODE (TREE_TYPE (type0)) == FUNCTION_TYPE) -- pedwarn ("ANSI C forbids ordered comparisons of pointers to functions"); -+ pedwarn ("ISO C forbids ordered comparisons of pointers to functions"); - } - else - { -@@ -2272,7 +2272,7 @@ build_binary_op (code, orig_op0, orig_op - pedwarn ("comparison of complete and incomplete pointers"); - else if (pedantic - && TREE_CODE (TREE_TYPE (type0)) == FUNCTION_TYPE) -- pedwarn ("ANSI C forbids ordered comparisons of pointers to functions"); -+ pedwarn ("ISO C forbids ordered comparisons of pointers to functions"); - } - else - { -@@ -3057,7 +3057,7 @@ build_unary_op (code, xarg, noconvert) - case FIX_ROUND_EXPR: - case FIX_CEIL_EXPR: - if (pedantic) -- pedwarn ("ANSI C forbids the address of a cast expression"); -+ pedwarn ("ISO C forbids the address of a cast expression"); - return convert (build_pointer_type (TREE_TYPE (arg)), - build_unary_op (ADDR_EXPR, TREE_OPERAND (arg, 0), - 0)); -@@ -3268,13 +3268,13 @@ pedantic_lvalue_warning (code) - switch (code) - { - case COND_EXPR: -- pedwarn ("ANSI C forbids use of conditional expressions as lvalues"); -+ pedwarn ("ISO C forbids use of conditional expressions as lvalues"); - break; - case COMPOUND_EXPR: -- pedwarn ("ANSI C forbids use of compound expressions as lvalues"); -+ pedwarn ("ISO C forbids use of compound expressions as lvalues"); - break; - default: -- pedwarn ("ANSI C forbids use of cast expressions as lvalues"); -+ pedwarn ("ISO C forbids use of cast expressions as lvalues"); - break; - } - } -@@ -3490,7 +3490,7 @@ build_conditional_expr (ifexp, op1, op2) - else if (code1 == VOID_TYPE || code2 == VOID_TYPE) - { - if (pedantic && (code1 != VOID_TYPE || code2 != VOID_TYPE)) -- pedwarn ("ANSI C forbids conditional expr with only one void side"); -+ pedwarn ("ISO C forbids conditional expr with only one void side"); - result_type = void_type_node; - } - else if (code1 == POINTER_TYPE && code2 == POINTER_TYPE) -@@ -3506,13 +3506,13 @@ build_conditional_expr (ifexp, op1, op2) - else if (VOID_TYPE_P (TREE_TYPE (type1))) - { - if (pedantic && TREE_CODE (TREE_TYPE (type2)) == FUNCTION_TYPE) -- pedwarn ("ANSI C forbids conditional expr between `void *' and function pointer"); -+ pedwarn ("ISO C forbids conditional expr between `void *' and function pointer"); - result_type = qualify_type (type1, type2); - } - else if (VOID_TYPE_P (TREE_TYPE (type2))) - { - if (pedantic && TREE_CODE (TREE_TYPE (type1)) == FUNCTION_TYPE) -- pedwarn ("ANSI C forbids conditional expr between `void *' and function pointer"); -+ pedwarn ("ISO C forbids conditional expr between `void *' and function pointer"); - result_type = qualify_type (type2, type1); - } - else -@@ -3684,7 +3684,7 @@ build_c_cast (type, expr) - { - if (TREE_CODE (type) == RECORD_TYPE - || TREE_CODE (type) == UNION_TYPE) -- pedwarn ("ANSI C forbids casting nonscalar to the same type"); -+ pedwarn ("ISO C forbids casting nonscalar to the same type"); - } - } - else if (TREE_CODE (type) == UNION_TYPE) -@@ -3705,7 +3705,7 @@ build_c_cast (type, expr) - tree t; - - if (pedantic) -- pedwarn ("ANSI C forbids casts to union type"); -+ pedwarn ("ISO C forbids casts to union type"); - if (TYPE_NAME (type) != 0) - { - if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE) -@@ -4164,7 +4164,7 @@ convert_for_assignment (type, rhs, errty - } - - if (pedantic && ! DECL_IN_SYSTEM_HEADER (fundecl)) -- pedwarn ("ANSI C prohibits argument conversion to union type"); -+ pedwarn ("ISO C prohibits argument conversion to union type"); - - return build1 (NOP_EXPR, type, rhs); - } -@@ -4193,7 +4193,7 @@ convert_for_assignment (type, rhs, errty - which are not ANSI null ptr constants. */ - && (!integer_zerop (rhs) || TREE_CODE (rhs) == NOP_EXPR) - && TREE_CODE (ttl) == FUNCTION_TYPE))) -- warn_for_assignment ("ANSI forbids %s between function pointer and `void *'", -+ warn_for_assignment ("ISO C forbids %s between function pointer and `void *'", - errtype, funname, parmnum); - /* Const and volatile mean something different for function types, - so the usual warnings are not appropriate. */ -@@ -5609,7 +5609,7 @@ set_init_index (first, last) - else - { - if (pedantic) -- pedwarn ("ANSI C forbids specifying element to initialize"); -+ pedwarn ("ISO C89 forbids specifying element to initialize"); - - constructor_range_end = last ? convert (bitsizetype, last) : 0; - } -@@ -5649,7 +5649,7 @@ set_init_label (fieldname) - { - constructor_fields = tail; - if (pedantic) -- pedwarn ("ANSI C forbids specifying structure member to initialize"); -+ pedwarn ("ISO C89 forbids specifying structure member to initialize"); - } - } - -@@ -6740,7 +6740,7 @@ c_expand_start_case (exp) - && ! in_system_header - && (type == long_integer_type_node - || type == long_unsigned_type_node)) -- warning ("`long' switch expression not converted to `int' in ANSI C"); -+ warning ("`long' switch expression not converted to `int' in ISO C"); - - exp = default_conversion (exp); - type = TREE_TYPE (exp); ---- gcc/toplev.c Sun Aug 6 10:24:53 2000 -+++ gcc/toplev.c Tue Aug 8 19:41:03 2000 -@@ -1135,7 +1135,7 @@ documented_lang_options[] = - used here is to only describe those options which are not - enabled by default. */ - -- { "-ansi", "Compile just for ANSI C" }, -+ { "-ansi", "Compile just for ISO C89" }, - { "-fallow-single-precision", - "Do not promote floats to double if using -traditional" }, - { "-std= ", "Determine language standard"}, -@@ -1236,7 +1236,7 @@ documented_lang_options[] = - { "-Wno-unknown-pragmas", "" }, - { "-Wstrict-prototypes", "Warn about non-prototyped function decls" }, - { "-Wno-strict-prototypes", "" }, -- { "-Wtraditional", "Warn about constructs whose meaning change in ANSI C"}, -+ { "-Wtraditional", "Warn about constructs whose meaning change in ISO C"}, - { "-Wno-traditional", "" }, - { "-Wtrigraphs", "Warn when trigraphs are encountered" }, - { "-Wno-trigraphs", "" }, -@@ -3741,7 +3741,7 @@ display_help () - - printf (_(" -O[number] Set optimisation level to [number]\n")); - printf (_(" -Os Optimise for space rather than speed\n")); -- printf (_(" -pedantic Issue warnings needed by strict compliance to ANSI C\n")); -+ printf (_(" -pedantic Issue warnings needed by strict compliance to ISO C\n")); - printf (_(" -pedantic-errors Like -pedantic except that errors are produced\n")); - printf (_(" -w Suppress warnings\n")); - printf (_(" -W Enable extra warnings\n")); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-bytecode.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-bytecode.patch deleted file mode 100644 index 12bc9704c584..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-bytecode.patch +++ /dev/null @@ -1,42 +0,0 @@ -2000-08-14 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * jcf-write.c (generate_bytecode_conditional): Re-installed lost - Jan 6 2000 patch. - (generate_bytecode_insns): Check `nargs' before emitting it. - * verify.c (merge_type_state): Fixed typo. - * ChangeLog: Fixed typo in some jcf-write.c entries mentioning - generate_bytecode_{conditional,insns}. - ---- gcc/java/jcf-write.c 2000/08/11 22:01:37 1.66 -+++ gcc/java/jcf-write.c 2000/08/15 21:59:53 -@@ -1254,7 +1254,7 @@ generate_bytecode_conditional (exp, true - } - if (integer_zerop (exp1) || integer_zerop (exp0)) - { -- generate_bytecode_insns (integer_zerop (exp1) ? exp0 : exp0, -+ generate_bytecode_insns (integer_zerop (exp0) ? exp1 : exp0, - STACK_TARGET, state); - op = op + (OPCODE_ifnull - OPCODE_if_acmpeq); - negop = (op & 1) ? op - 1 : op + 1; -@@ -2565,6 +2565,9 @@ generate_bytecode_insns (exp, target, st - if (interface) - { - DECL_CONTEXT (f) = saved_context; -+ if (nargs <= 0) -+ fatal ("Illegal number of arguments to invokeinterface, nargs=%d", -+ nargs); - OP1 (nargs); - OP1 (0); - } ---- gcc/java/verify.c 2000/03/14 05:01:05 1.30 -+++ gcc/java/verify.c 2000/08/15 21:59:57 -@@ -212,7 +212,7 @@ int - merge_type_state (label) - tree label; - { -- int nlocals = DECL_MAX_LOCALS(current_function_decl); -+ int nlocals = DECL_MAX_LOCALS (current_function_decl); - int cur_length = stack_pointer + nlocals; - tree vec = LABEL_TYPE_STATE (label); - tree return_map; - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-catchup.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-catchup.patch deleted file mode 100644 index 1df26df3edf7..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-catchup.patch +++ /dev/null @@ -1,1598 +0,0 @@ -2000-09-09 Geoffrey Keating <geoffk@cygnus.com> - - * typeck.c (build_java_array_type): Correct first parameter - in ADJUST_FIELD_ALIGN invocation. - -2000-09-06 Tom Tromey <tromey@cygnus.com> - - * lang-specs.h: Also recognize `-femit-class-files'. - -2000-09-05 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * verify.c (merge_types): Load the types to merge if necessary. - -2000-09-02 Anthony Green <green@redhat.com> - - * jcf-io.c: Include zlib.h. - (open_in_zip): Read compressed class file archives. - * zipfile.h (ZipDirectory): Add uncompressed_size and - compression_method fields. - * zextract.c (read_zip_archive): Collect file compression info. - -2000-08-11 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * parse.y (do_merge_string_cste): New locals. Create new - STRING_CSTs each time, use memcpy. Fixes gcj/311. - -2000-08-07 Hans Boehm <boehm@acm.org> - - * boehm.c (mark_reference_fields): Set marking bits for all words in - a multiple-word record. - (get_boehm_type_descriptor): Use the procedure marking descriptor for - java.lang.Class. - -2000-08-29 Zack Weinberg <zack@wolery.cumb.org> - - * jcf-parse.c (set_source_filename): Constify a char *. - * jcf-write.c (append_innerclasses_attribute, - make_class_file_name): Constify a char *. Don't recycle a - variable for an unrelated purpose. - * parse.y: (build_alias_initializer_parameter_list): Constify a char *. - (breakdown_qualified): Do not modify IDENTIFIER_POINTER strings. - -2000-08-29 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * expr.c (can_widen_reference_to): Fixed indentation. - * java-tree.h (CLASS_METHOD_CHECKED_P): Added leading comment. - * parse.y: `finit$' replaces `$finit$' in comments. - (try_builtin_assignconv): Fixed leading comment. - -2000-08-22 Andrew Haley <aph@cygnus.com> - - * javaop.h (WORD_TO_INT): Mask lower 32 bits of a jword before - sign extending. Fixes gcj/321. - * jcf-parse.c (get_constant): Mask lower 32 bits of a jint before - combining to make a jlong. Fixes gcj/321. - -2000-08-21 Nix <nix@esperi.demon.co.uk> - - * lang-specs.h: Do not process -o or run the assembler if - -fsyntax-only. - -2000-08-16 Andrew Haley <aph@cygnus.com> - - * typeck.c (build_java_array_type): Rewrite code to do array - alignment. Take into account back-end macros when aligning array - data. Remove setting of TYPE_USER_ALIGN; Java doesn't allow the - user to set alignment. Fixes gcj/252 and 160. - -2000-08-09 Tom Tromey <tromey@cygnus.com> - - * parse.y (check_abstract_method_definitions): Now return `int'. - Check implemented interfaces. Fixes PR gcj/305. - - * parse.y (patch_switch_statement): Disallow `long' in switch - expressions. Fixes PR gcj/310. - -2000-08-15 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * decl.c (finit_leg_identifier_node): New global. - (init_decl_processing): Use `finit$' to initialize - finit_identifier_node. Use `$finit$' to initialize - finit_leg_identifier_node. - * expr.c (expand_java_field_op): Use ID_FINIT_P. - * java-tree.h (finit_identifier_node): Changed attached comment. - (finit_leg_identifier_node): New declaration. - (ID_FINIT_P): Take finit_identifier_node and - finit_leg_identifier_node into account. This is a backward - compatibility hack. - -2000-08-08 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * java-tree.h (flag_extraneous_semicolon): New extern. - * lang-options.h: (-Wextraneous-semicolon): New option. - * lang.c (flag_redundant): Fixed typo in leading comment. - (flag_extraneous_semicolon): New global. - (lang_decode_option): Set `flag_extraneous_semicolon' when - -Wall. Decode `-Wextraneous-semicolon'. - * parse.y (type_declaration:): Removed `SC_TK' hack, added - `empty_statement' rule. - (class_body_declaration): Likewise. - (method_body:): Accept `;' as a method body. - (static_initializer:): Removed `SC_TK' hack. - (constructor_block_end:): Likewise. - (empty_statement:): Report deprecated empty declaration. Fixes - gcj/295 - -2000-08-07 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * parse.y (build_dot_class_method_invocation): Changed parameter - name to `type.' Build signature from `type' and convert it to a - STRING_CST if it's an array. - (patch_incomplete_class_ref): `build_dot_class_method_invocation' - to use `ref_type' directly. - -Sun Aug 6 00:47:24 2000 Ovidiu Predescu <ovidiu@cup.hp.com> - - * lang-options.h: Added a comma after the last element to avoid - syntax errors when other languages define additional options. - -2000-08-02 Zack Weinberg <zack@wolery.cumb.org> - - * class.c (build_dtable_decl): Initialize dummy. - -2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * parse.y (maybe_yank_clinit): When generating bytecode: non empty - method bodies not to rule out discarding `<clinit>'; don't use - <clinit> to initialize static fields with constant initializers. - -2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * gjavah.c (print_method_info): Added `synth' parameter. Skip - synthetic methods. - (method_synthetic): New global. - (HANDLE_METHOD): Recognize synthetic method and tell - `print_method_info' about it. - (HANDLE_END_METHOD): Do not issue an additional `;\n' if we're - processing a synthetic method. - * jcf-reader.c (skip_attribute): New function. - ( skip_attribute): Likewise. - -2000-08-01 Alexandre Petit-Bianco <apbianco@cygnus.com> - * parse.y (build_outer_field_access): Fixed comments. - (fix_constructors): Emit the initialization of this$<n> before - calling $finit$. - (resolve_qualified_expression_name): Build an access to `decl' if - necessary. - -2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * parse-scan.y (curent_class): Non longer const. - (inner_qualifier, inner_qualifier_length): Deleted. - (current_class_length): New global. - (bracket_count): Fixed typo in leading comment. - (anonymous_count): New global. - (class_instance_creation_expression:): Handle anonymous classes. - (anonymous_class_creation:): New rule. - (push_class_context): Rewritten. - (pop_class_context): Likewise. - (INNER_QUALIFIER): Macro deleted. - (report_class_declaration): call `push_class_context' when - entering the function. `fprintf' format modified not to use - INNER_QUALIFIER. - (report_class_declaration): Assign `package_name' and - `current_class' to NULL separatly. - -2000-07-31 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * expr.c (build_invokeinterface): Call layout_class_methods on - target interface. - - ---- gcc/java/boehm.c 2000/09/10 04:41:33 1.1.1.1 -+++ gcc/java/boehm.c 2000/09/10 13:56:44 -@@ -95,17 +95,21 @@ - for (; field != NULL_TREE; field = TREE_CHAIN (field)) - { - HOST_WIDE_INT offset; -+ HOST_WIDE_INT size_bytes; - - if (FIELD_STATIC (field)) - continue; - - offset = int_byte_position (field); -+ size_bytes = int_size_in_bytes (TREE_TYPE (field)); - if (JREFERENCE_TYPE_P (TREE_TYPE (field)) - /* An `object' of type gnu.gcj.RawData is actually non-Java - data. */ - && TREE_TYPE (field) != rawdata_ptr_type_node) - { - unsigned int count; -+ unsigned int size_words; -+ unsigned int i; - - /* If this reference slot appears to overlay a slot we think - we already covered, then we are doomed. */ -@@ -113,11 +117,19 @@ - abort (); - - count = offset * BITS_PER_UNIT / POINTER_SIZE; -+ size_words = size_bytes * BITS_PER_UNIT / POINTER_SIZE; - - *last_set_index = count; -- /* First word in object corresponds to most significant byte -- of bitmap. */ -- set_bit (low, high, ubit - count - 1); -+ -+ /* First word in object corresponds to most significant byte of -+ bitmap. -+ -+ In the case of a multiple-word record, we set pointer -+ bits for all words in the record. This is conservative, but the -+ size_words != 1 case is impossible in regular java code. */ -+ for (i = 0; i < size_words; ++i) -+ set_bit (low, high, ubit - count - i - 1); -+ - if (count > ubit - 2) - *pointer_after_end = 1; - -@@ -172,6 +184,9 @@ - - /* Warning avoidance. */ - ubit = (unsigned int) bit; -+ -+ if (type == class_type_node) -+ return PROCEDURE_OBJECT_DESCRIPTOR; - - field = TYPE_FIELDS (type); - mark_reference_fields (field, &low, &high, ubit, ---- gcc/java/class.c 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/class.c 2000/09/10 13:56:44 -@@ -1698,7 +1698,7 @@ - TYPE. */ - if (current_class == type) - { -- tree dummy, aomt, n; -+ tree dummy = NULL_TREE, aomt, n; - - dtype = make_node (RECORD_TYPE); - PUSH_FIELD (dtype, dummy, "class", class_ptr_type); ---- gcc/java/decl.c 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/decl.c 2000/09/10 13:56:44 -@@ -360,6 +360,7 @@ - tree init_identifier_node; - tree clinit_identifier_node; - tree finit_identifier_node; -+tree finit_leg_identifier_node; - tree void_signature_node; - tree length_identifier_node; - tree this_identifier_node; -@@ -646,7 +647,12 @@ - TYPE_identifier_node = get_identifier ("TYPE"); - init_identifier_node = get_identifier ("<init>"); - clinit_identifier_node = get_identifier ("<clinit>"); -- finit_identifier_node = get_identifier ("$finit$"); -+ /* Legacy `$finit$' special method identifier. This needs to be -+ recognized as equivalent to `finit$' but isn't generated anymore. */ -+ finit_leg_identifier_node = get_identifier ("$finit$"); -+ /* The new `finit$' special method identifier. This one is now -+ generated in place of `$finit$'. */ -+ finit_identifier_node = get_identifier ("finit$"); - void_signature_node = get_identifier ("()V"); - length_identifier_node = get_identifier ("length"); - this_identifier_node = get_identifier ("this"); ---- gcc/java/expr.c 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/expr.c 2000/09/10 13:56:44 -@@ -406,8 +406,8 @@ - (TREE_TYPE (TREE_VEC_ELT (basetype_vec, i)), - target_type)) - return 1; -- if (n == 0) -- return 0; -+ if (n == 0) -+ return 0; - } - - for ( ; source_depth > target_depth; source_depth--) -@@ -1783,6 +1783,7 @@ - lookup_field (&dtable_type, class_ident)); - - interface = DECL_CONTEXT (method); -+ layout_class_methods (interface); - - i = 1; - for (meth = TYPE_METHODS (interface); ; meth = TREE_CHAIN (meth), i++) -@@ -2209,7 +2210,7 @@ - { - tree cfndecl_name = DECL_NAME (current_function_decl); - if (! DECL_CONSTRUCTOR_P (current_function_decl) -- && (cfndecl_name != finit_identifier_node)) -+ && !ID_FINIT_P (cfndecl_name)) - error_with_decl (field_decl, "assignment to final field `%s' not in constructor"); - } - } ---- gcc/java/gjavah.c 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/gjavah.c 2000/09/10 14:44:10 -@@ -116,7 +116,7 @@ - static void print_field_info PARAMS ((FILE*, JCF*, int, int, JCF_u2)); - static void print_mangled_classname PARAMS ((FILE*, JCF*, const char*, int)); - static int print_cxx_classname PARAMS ((FILE*, const char*, JCF*, int)); --static void print_method_info PARAMS ((FILE*, JCF*, int, int, JCF_u2)); -+static void print_method_info PARAMS ((FILE*, JCF*, int, int, JCF_u2, int)); - static void print_c_decl PARAMS ((FILE*, JCF*, int, int, int, const char *, - int)); - static void print_stub_or_jni PARAMS ((FILE*, JCF*, int, int, int, -@@ -182,26 +182,45 @@ - static int method_declared = 0; - static int method_access = 0; - static int method_printed = 0; --#define HANDLE_METHOD(ACCESS_FLAGS, NAME, SIGNATURE, ATTRIBUTE_COUNT) \ -- if (method_pass) \ -- { \ -- decompiled = 0; method_printed = 0; \ -- if (out) \ -- print_method_info (out, jcf, NAME, SIGNATURE, ACCESS_FLAGS); \ -- } \ -- else \ -- { \ -- print_method_info (NULL, jcf, NAME, SIGNATURE, ACCESS_FLAGS); \ -- if (! stubs && ! flag_jni) \ -- add_class_decl (out, jcf, SIGNATURE); \ -- } -+static int method_synthetic = 0; -+#define HANDLE_METHOD(ACCESS_FLAGS, NAME, SIGNATURE, ATTRIBUTE_COUNT) \ -+ { \ -+ method_synthetic = 0; \ -+ if (ATTRIBUTE_COUNT) \ -+ method_synthetic = peek_attribute (jcf, ATTRIBUTE_COUNT, \ -+ (const char *)"Synthetic", 9); \ -+ /* If a synthetic methods have been declared, its attribute aren't \ -+ worth reading (and triggering side-effects). We skip them an \ -+ set ATTRIBUTE_COUNT to zero so that they'll be skipped in \ -+ jcf_parse_one_method. */ \ -+ if (method_synthetic) \ -+ { \ -+ skip_attribute (jcf, ATTRIBUTE_COUNT); \ -+ ATTRIBUTE_COUNT = 0; \ -+ } \ -+ if (method_pass && !method_synthetic) \ -+ { \ -+ decompiled = 0; method_printed = 0; \ -+ if (out) \ -+ print_method_info (out, jcf, NAME, SIGNATURE, \ -+ ACCESS_FLAGS, method_synthetic); \ -+ } \ -+ else if (!method_synthetic) \ -+ { \ -+ print_method_info (NULL, jcf, NAME, SIGNATURE, \ -+ ACCESS_FLAGS, method_synthetic); \ -+ if (! stubs && ! flag_jni) \ -+ add_class_decl (out, jcf, SIGNATURE); \ -+ } \ -+ } - --#define HANDLE_CODE_ATTRIBUTE(MAX_STACK, MAX_LOCALS, CODE_LENGTH) \ -+#define HANDLE_CODE_ATTRIBUTE(MAX_STACK, MAX_LOCALS, CODE_LENGTH) \ - if (out && method_declared) decompile_method (out, jcf, CODE_LENGTH); - - static int decompiled = 0; --#define HANDLE_END_METHOD() \ -- if (out && method_printed) fputs (decompiled || stubs ? "\n" : ";\n", out); -+#define HANDLE_END_METHOD() \ -+ if (out && method_printed && !method_synthetic) \ -+ fputs (decompiled || stubs ? "\n" : ";\n", out); - - #include "jcf-reader.c" - -@@ -670,9 +689,9 @@ - - - static void --DEFUN(print_method_info, (stream, jcf, name_index, sig_index, flags), -+DEFUN(print_method_info, (stream, jcf, name_index, sig_index, flags, synth), - FILE *stream AND JCF* jcf -- AND int name_index AND int sig_index AND JCF_u2 flags) -+ AND int name_index AND int sig_index AND JCF_u2 flags AND int synth) - { - const unsigned char *str; - int length, is_init = 0; -@@ -684,10 +703,15 @@ - fprintf (stream, "<not a UTF8 constant>"); - str = JPOOL_UTF_DATA (jcf, name_index); - length = JPOOL_UTF_LENGTH (jcf, name_index); -- if (str[0] == '<' || str[0] == '$') -+ -+ /* Ignore synthetic methods. */ -+ if (synth) -+ return; -+ -+ if (str[0] == '<') - { -- /* Ignore internally generated methods like <clinit> and -- $finit$. However, treat <init> as a constructor. */ -+ /* Ignore the internally generated method <clinit>. However, -+ treat <init> as a constructor. */ - if (! utf8_cmp (str, length, "<init>")) - is_init = 1; - else if (! METHOD_IS_FINAL (jcf->access_flags, flags) ---- gcc/java/javaop.h 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/javaop.h 2000/09/10 13:56:44 -@@ -1,6 +1,6 @@ - /* Utility macros to handle Java(TM) byte codes. - -- Copyright (C) 1996, 1998, 1999, 2000 Free Software Foundation, Inc. -+ Copyright (C) 1996, 1998, 1999 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by -@@ -33,7 +33,7 @@ - typedef unsigned int16 uint16; - - #ifndef int32 --#define int32 int -+#define int32 long - #endif - typedef unsigned int32 uint32; - -@@ -62,7 +62,7 @@ - #define jfloat float - #endif - --/* A 64-bit IEEE double-precision float. */ -+/* A 32-bit IEEE double-precision float. */ - #ifndef jdouble - #define jdouble double - #endif -@@ -79,11 +79,7 @@ - - - #ifndef jword --#if !defined(__alpha__) && (!defined (_ARCH_PPC) || !defined (__64BIT__)) && (!defined(__sparc__) || (!defined(__sparcv9) && !defined(__arch64__))) && (!defined(__ia64__) || !defined(__LP64__)) - #define jword uint32 --#else --#define jword uint64 --#endif - #endif - - #ifndef IMMEDIATE_u1 -@@ -113,13 +109,16 @@ - return wu.f; - } - --/* Sign extend w. */ -+/* Sign extend w. If the host on which this cross-compiler runs uses -+ a 64-bit type for jword the appropriate sign extension is -+ performed; if it's a 32-bit type the arithmetic does nothing but is -+ harmless. */ - static inline jint - WORD_TO_INT(jword w) - { -- jint n = w; -+ jint n = w & 0xffffffff; /* Mask lower 32 bits. */ - n ^= (jint)1 << 31; -- n -= (jint)1 << 31; -+ n -= (jint)1 << 31; /* Sign extend lower 32 bits to upper. */ - return n; - } - ---- gcc/java/java-tree.h 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/java-tree.h 2000/09/10 13:56:44 -@@ -141,6 +141,10 @@ - - extern int flag_jni; - -+/* When non zero, report the now deprecated empty statements. */ -+ -+extern int flag_extraneous_semicolon; -+ - /* When non zero, we emit xref strings. Values of the flag for xref - backends are defined in xref.h. */ - -@@ -253,7 +257,8 @@ - extern tree TYPE_identifier_node; /* "TYPE" */ - extern tree init_identifier_node; /* "<init>" */ - extern tree clinit_identifier_node; /* "<clinit>" */ --extern tree finit_identifier_node; /* "$finit$" */ -+extern tree finit_identifier_node; /* "finit$" */ -+extern tree finit_leg_identifier_node; /* "$finit$" */ - extern tree void_signature_node; /* "()V" */ - extern tree length_identifier_node; /* "length" */ - extern tree this_identifier_node; /* "this" */ -@@ -821,7 +826,12 @@ - /* Predicates on method identifiers. Kept close to other macros using - them */ - #define ID_INIT_P(ID) ((ID) == init_identifier_node) --#define ID_FINIT_P(ID) ((ID) == finit_identifier_node) -+/* Match ID to either `$finit$' or `finit$', so that `$finit$' -+ continues to be recognized as an equivalent to `finit$' which is -+ now the prefered name used for the field initialization special -+ method. */ -+#define ID_FINIT_P(ID) ((ID) == finit_identifier_node \ -+ || (ID) == finit_leg_identifier_node) - #define ID_CLINIT_P(ID) ((ID) == clinit_identifier_node) - - /* Access flags etc for a variable/field (a FIELD_DECL): */ -@@ -1001,6 +1011,8 @@ - initialization during its declaration */ - #define MODIFY_EXPR_FROM_INITIALIZATION_P(EXPR) TREE_LANG_FLAG_2 (EXPR) - -+/* True if EXPR (a TREE_TYPE denoting a class type) has its methods -+ already checked (for redifitions, etc, see java_check_regular_methods.) */ - #define CLASS_METHOD_CHECKED_P(EXPR) TREE_LANG_FLAG_2 (EXPR) - - /* True if EXPR (a WFL in that case) resolves into an expression name */ ---- gcc/java/jcf-io.c 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/jcf-io.c 2000/09/10 13:56:44 -@@ -30,6 +30,8 @@ - #include "toplev.h" - #include "java-tree.h" - -+#include "zlib.h" -+ - /* DOS brain-damage */ - #ifndef O_BINARY - #define O_BINARY 0 /* MS-DOS brain-damage */ -@@ -149,6 +151,7 @@ - ZipDirectory *zipd; - int i, len; - ZipFile *zipf = opendir_in_zip (zipfile, is_system); -+ z_stream d_stream; /* decompression stream */ - - if (zipf == NULL) - return -2; -@@ -156,6 +159,10 @@ - if (!zipmember) - return 0; - -+ d_stream.zalloc = (alloc_func) 0; -+ d_stream.zfree = (free_func) 0; -+ d_stream.opaque = (voidpf) 0; -+ - len = strlen (zipmember); - - zipd = (struct ZipDirectory*) zipf->central_directory; -@@ -165,17 +172,45 @@ - strncmp (ZIPDIR_FILENAME (zipd), zipmember, len) == 0) - { - JCF_ZERO (jcf); -- jcf->buffer = ALLOC (zipd->size); -- jcf->buffer_end = jcf->buffer + zipd->size; -- jcf->read_ptr = jcf->buffer; -- jcf->read_end = jcf->buffer_end; -+ - jcf->filbuf = jcf_unexpected_eof; - jcf->filename = xstrdup (zipfile); - jcf->classname = xstrdup (zipmember); - jcf->zipd = (void *)zipd; -- if (lseek (zipf->fd, zipd->filestart, 0) < 0 -- || read (zipf->fd, jcf->buffer, zipd->size) != zipd->size) -- return -2; -+ -+ if (zipd->compression_method == Z_NO_COMPRESSION) -+ { -+ jcf->buffer = ALLOC (zipd->size); -+ jcf->buffer_end = jcf->buffer + zipd->size; -+ jcf->read_ptr = jcf->buffer; -+ jcf->read_end = jcf->buffer_end; -+ if (lseek (zipf->fd, zipd->filestart, 0) < 0 -+ || read (zipf->fd, jcf->buffer, zipd->size) != zipd->size) -+ return -2; -+ } -+ else -+ { -+ char *buffer; -+ jcf->buffer = ALLOC (zipd->uncompressed_size); -+ d_stream.next_out = jcf->buffer; -+ d_stream.avail_out = zipd->uncompressed_size; -+ jcf->buffer_end = jcf->buffer + zipd->uncompressed_size; -+ jcf->read_ptr = jcf->buffer; -+ jcf->read_end = jcf->buffer_end; -+ buffer = ALLOC (zipd->size); -+ d_stream.next_in = buffer; -+ d_stream.avail_in = zipd->size; -+ if (lseek (zipf->fd, zipd->filestart, 0) < 0 -+ || read (zipf->fd, buffer, zipd->size) != zipd->size) -+ return -2; -+ /* Handle NO_HEADER using undocumented zlib feature. -+ This is a very common hack. */ -+ inflateInit2 (&d_stream, -MAX_WBITS); -+ inflate (&d_stream, Z_NO_FLUSH); -+ inflateEnd (&d_stream); -+ FREE (buffer); -+ } -+ - return 0; - } - } ---- gcc/java/jcf-parse.c 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/jcf-parse.c 2000/09/10 13:56:44 -@@ -99,7 +99,7 @@ - int index; - { - tree sfname_id = get_name_constant (jcf, index); -- char *sfname = IDENTIFIER_POINTER (sfname_id); -+ const char *sfname = IDENTIFIER_POINTER (sfname_id); - if (input_filename != NULL) - { - int old_len = strlen (input_filename); -@@ -270,8 +270,8 @@ - jint num = JPOOL_INT (jcf, index); - HOST_WIDE_INT lo, hi; - lshift_double (num, 0, 32, 64, &lo, &hi, 0); -- num = JPOOL_INT (jcf, index+1); -- add_double (lo, hi, (uint32)num, 0, &lo, &hi); -+ num = JPOOL_INT (jcf, index+1) & 0xffffffff; -+ add_double (lo, hi, num, 0, &lo, &hi); - value = build_int_2 (lo, hi); - TREE_TYPE (value) = long_type_node; - force_fit_type (value, 0); ---- gcc/java/jcf-reader.c 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/jcf-reader.c 2000/09/10 13:56:44 -@@ -27,6 +27,8 @@ - #include "zipfile.h" - - static int get_attribute PARAMS ((JCF *)); -+static int peek_attribute PARAMS ((JCF *, int, const char *, int)); -+static void skip_attribute PARAMS ((JCF *, int)); - static int jcf_parse_preamble PARAMS ((JCF *)); - static int jcf_parse_constant_pool PARAMS ((JCF *)); - static void jcf_parse_class PARAMS ((JCF *)); -@@ -34,6 +36,64 @@ - static int jcf_parse_one_method PARAMS ((JCF *)); - static int jcf_parse_methods PARAMS ((JCF *)); - static int jcf_parse_final_attributes PARAMS ((JCF *)); -+ -+/* Go through all available attribute (ATTRIBUTE_NUMER) and try to -+ identify PEEKED_NAME. Return 1 if PEEKED_NAME was found, 0 -+ otherwise. JCF is restored to its initial position before -+ returning. */ -+ -+static int -+peek_attribute (jcf, attribute_number, peeked_name, peeked_name_length) -+ JCF *jcf; -+ int attribute_number; -+ const char *peeked_name; -+ int peeked_name_length; -+{ -+ int to_return = 0; -+ long absolute_offset = (long)JCF_TELL (jcf); -+ int i; -+ -+ for (i = 0; !to_return && i < attribute_number; i++) -+ { -+ uint16 attribute_name = (JCF_FILL (jcf, 6), JCF_readu2 (jcf)); -+ uint32 attribute_length = JCF_readu4 (jcf); -+ int name_length; -+ const unsigned char *name_data; -+ -+ JCF_FILL (jcf, (long) attribute_length); -+ if (attribute_name <= 0 || attribute_name >= JPOOL_SIZE(jcf) -+ || JPOOL_TAG (jcf, attribute_name) != CONSTANT_Utf8) -+ continue; -+ -+ name_length = JPOOL_UTF_LENGTH (jcf, attribute_name); -+ name_data = JPOOL_UTF_DATA (jcf, attribute_name); -+ -+ if (name_length == peeked_name_length -+ && ! memcmp (name_data, peeked_name, peeked_name_length)) -+ { -+ to_return = 1; -+ break; -+ } -+ -+ JCF_SKIP (jcf, attribute_length); -+ } -+ -+ JCF_SEEK (jcf, absolute_offset); -+ return to_return; -+} -+ -+static void -+skip_attribute (jcf, number_of_attribute) -+ JCF *jcf; -+ int number_of_attribute; -+{ -+ while (number_of_attribute--) -+ { -+ JCF_FILL (jcf, 6); -+ (void) JCF_readu2 (jcf); -+ JCF_SKIP (jcf, JCF_readu4 (jcf)); -+ } -+} - - static int - DEFUN(get_attribute, (jcf), ---- gcc/java/jcf-write.c 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/jcf-write.c 2000/09/10 13:56:44 -@@ -3161,7 +3161,7 @@ - process: itself, up and down. */ - while (class && INNER_CLASS_TYPE_P (class)) - { -- char *n; -+ const char *n; - - decl = TYPE_NAME (class); - n = IDENTIFIER_POINTER (DECL_NAME (decl)) + -@@ -3218,8 +3218,8 @@ - make_class_file_name (clas) - tree clas; - { -- const char *dname, *slash; -- char *cname, *r; -+ const char *dname, *cname, *slash; -+ char *r; - struct stat sb; - - cname = IDENTIFIER_POINTER (identifier_subst (DECL_NAME (TYPE_NAME (clas)), -@@ -3261,10 +3261,10 @@ - dname = r + (slash - dname) + 1; - while (1) - { -- cname = strchr (dname, DIR_SEPARATOR); -- if (cname == NULL) -+ char *s = strchr (dname, DIR_SEPARATOR); -+ if (s == NULL) - break; -- *cname = '\0'; -+ *s = '\0'; - if (stat (r, &sb) == -1) - { - /* Try to make it. */ -@@ -3275,9 +3275,9 @@ - return NULL; - } - } -- *cname = DIR_SEPARATOR; -+ *s = DIR_SEPARATOR; - /* Skip consecutive separators. */ -- for (dname = cname + 1; *dname && *dname == DIR_SEPARATOR; ++dname) -+ for (dname = s + 1; *dname && *dname == DIR_SEPARATOR; ++dname) - ; - } - ---- gcc/java/jvspec.c 2000/09/10 04:41:32 1.1.1.1 -+++ gcc/java/jvspec.c 2000/09/10 15:02:09 -@@ -181,7 +181,7 @@ - int argc; - - /* The argument list. */ -- char **argv; -+ char *const *argv; - - /* The number of libraries added in. */ - int added_libraries; -@@ -392,6 +392,7 @@ - if (saw_g + saw_O == 0) - num_args++; - num_args++; -+ - arglist = (const char **) - (real_arglist = (char **) xmalloc ((num_args + 1) * sizeof (char *))); - ---- gcc/java/lang.c 2000/09/10 04:41:32 1.1.1.1 -+++ gcc/java/lang.c 2000/09/10 14:44:45 -@@ -98,7 +98,7 @@ - /* When non zero, -Wall was turned on. */ - int flag_wall = 0; - --/* When non zero, check for redundant modifier uses. */ -+/* When non zero, check for redundant modifier uses. */ - int flag_redundant = 0; - - /* When non zero, warns about overridings that don't occur. */ -@@ -121,6 +121,9 @@ - JNI, not CNI. */ - int flag_jni = 0; - -+/* When non zero, report the now deprecated empty statements. */ -+int flag_extraneous_semicolon; -+ - /* From gcc/flags.h, and indicates if exceptions are turned on or not. */ - - extern int flag_new_exceptions; -@@ -256,6 +259,7 @@ - { - flag_wall = 1; - flag_redundant = 1; -+ flag_extraneous_semicolon = 1; - /* When -Wall given, enable -Wunused. We do this because the C - compiler does it, and people expect it. */ - set_Wunused (1); -@@ -271,6 +275,12 @@ - if (strcmp (p, "-Wredundant-modifiers") == 0) - { - flag_redundant = 1; -+ return 1; -+ } -+ -+ if (strcmp (p, "-Wextraneous-semicolon") == 0) -+ { -+ flag_extraneous_semicolon = 1; - return 1; - } - ---- gcc/java/lang-options.h 2000/09/10 04:41:32 1.1.1.1 -+++ gcc/java/lang-options.h 2000/09/10 13:56:44 -@@ -50,4 +50,5 @@ - { "-fno-use-divide-subroutine", "Use built-in instructions for division" }, - { "-Wredundant-modifiers", - "Warn if modifiers are specified when not necessary"}, -- { "-Wunsupported-jdk11", "Warn if `final' local variables are specified"} -+ { "-Wunsupported-jdk11", "Warn if `final' local variables are specified"}, -+ { "-Wextraneous-semicolon", "Warn if deprecated empty statements are found"}, ---- gcc/java/lang-specs.h 2000/09/10 04:41:32 1.1.1.1 -+++ gcc/java/lang-specs.h 2000/09/10 13:56:44 -@@ -30,7 +30,8 @@ - {".zip", "@java" }, - {".jar", "@java" }, - {"@java", -- "%{fjni:%{femit-class-file:%e-fjni and -femit-class-file are incompatible}}\ -+ "%{fjni:%{femit-class-files:%e-fjni and -femit-class-files are incompatible}}\ -+ %{fjni:%{femit-class-file:%e-fjni and -femit-class-file are incompatible}}\ - %{!E:jc1 %i %(jc1) %(cc1_options) %{+e*} %{I*} %{MD} %{MMD} %{M} %{MM}\ -- %{!S:-o %{|!pipe:%g.s} |\n\ -- as %(asm_options) %{!pipe:%g.s} %A }}"}, -+ %{!fsyntax-only:%{!S:-o %{|!pipe:%g.s} |\n\ -+ as %(asm_options) %{!pipe:%g.s} %A }}}"}, ---- gcc/java/Makefile.in 2000/09/10 04:41:30 1.1.1.1 -+++ gcc/java/Makefile.in 2000/09/10 14:48:00 -@@ -148,9 +148,12 @@ - # This is where we get libiberty.a from. - LIBIBERTY = ../../libiberty/libiberty.a - -+# As a special hack for this RPM, always use the system zlib. -+ZLIB = -lz -+ - # How to link with both our special library facilities - # and the system's installed libraries. --LIBS = $(INTLLIBS) $(LIBIBERTY) $(CLIB) -+LIBS = $(ZLIB) $(INTLLIBS) $(LIBIBERTY) $(CLIB) - LIBDEPS = $(INTLLIBS) $(LIBIBERTY) ../errors.o - - # Specify the directories to be searched for header files. ---- gcc/java/parse-scan.y 2000/09/10 04:41:32 1.1.1.1 -+++ gcc/java/parse-scan.y 2000/09/10 13:56:44 -@@ -63,12 +63,11 @@ - #define USE_ABSORBER absorber = 0 - - /* Keep track of the current class name and package name. */ --static const char *current_class; -+static char *current_class; - static const char *package_name; - - /* Keep track of the current inner class qualifier. */ --static char *inner_qualifier; --static int inner_qualifier_length; -+static int current_class_length; - - /* Keep track of whether things have be listed before. */ - static int previous_output; -@@ -76,10 +75,13 @@ - /* Record modifier uses */ - static int modifier_value; - --/* Keep track of number of bracket pairs after a variable declarator -+/* Keeps track of number of bracket pairs after a variable declarator - id. */ - static int bracket_count; - -+/* Numbers anonymous classes */ -+static int anonymous_count; -+ - /* Record a method declaration */ - struct method_declarator { - const char *method_name; -@@ -897,20 +899,22 @@ - class_instance_creation_expression: - NEW_TK class_type OP_TK argument_list CP_TK - | NEW_TK class_type OP_TK CP_TK -- /* Added, JDK1.1 inner classes but modified to use -- 'class_type' instead of 'TypeName' (type_name) mentionned -- in the documentation but doesn't exist. */ --| NEW_TK class_type OP_TK argument_list CP_TK class_body --| NEW_TK class_type OP_TK CP_TK class_body -- /* Added, JDK1.1 inner classes, modified to use name or -- primary instead of primary solely which couldn't work in -- all situations. */ -+| anonymous_class_creation - | something_dot_new identifier OP_TK CP_TK - | something_dot_new identifier OP_TK CP_TK class_body - | something_dot_new identifier OP_TK argument_list CP_TK - | something_dot_new identifier OP_TK argument_list CP_TK class_body - ; - -+anonymous_class_creation: -+ NEW_TK class_type OP_TK CP_TK -+ { report_class_declaration (NULL); } -+ class_body -+| NEW_TK class_type OP_TK argument_list CP_TK -+ { report_class_declaration (NULL); } -+ class_body -+; -+ - something_dot_new: /* Added, not part of the specs. */ - name DOT_TK NEW_TK - { USE_ABSORBER; } -@@ -1128,29 +1132,61 @@ - push_class_context (name) - const char *name; - { -- size_t name_length = strlen (name); -- inner_qualifier = xrealloc (inner_qualifier, -- inner_qualifier_length + name_length+2); -- memcpy (inner_qualifier+inner_qualifier_length, name, name_length); -- inner_qualifier_length += name_length; -- inner_qualifier [inner_qualifier_length] = '$'; -- inner_qualifier [++inner_qualifier_length] = '\0'; -+ /* If we already have CURRENT_CLASS set, we're in an inter -+ class. Mangle its name. */ -+ if (current_class) -+ { -+ const char *p; -+ char anonymous [3]; -+ int additional_length; -+ -+ /* NAME set to NULL indicates an anonymous class, which are named by -+ numbering them. */ -+ if (!name) -+ { -+ sprintf (anonymous, "%d", ++anonymous_count); -+ p = anonymous; -+ } -+ else -+ p = name; -+ -+ additional_length = strlen (p)+1; /* +1 for `$' */ -+ current_class = xrealloc (current_class, -+ current_class_length + additional_length + 1); -+ current_class [current_class_length] = '$'; -+ strcpy (¤t_class [current_class_length+1], p); -+ current_class_length += additional_length; -+ } -+ else -+ { -+ if (!name) -+ return; -+ current_class_length = strlen (name); -+ current_class = xmalloc (current_class_length+1); -+ strcpy (current_class, name); -+ } - } - - static void - pop_class_context () - { -- while (--inner_qualifier_length > 0 -- && inner_qualifier [inner_qualifier_length-1] != '$') -+ /* Go back to the last `$' and cut. */ -+ while (--current_class_length > 0 -+ && current_class [current_class_length] != '$') - ; -- inner_qualifier = xrealloc (inner_qualifier, inner_qualifier_length+1); -- if (inner_qualifier_length == -1) -- inner_qualifier_length = 0; -- inner_qualifier [inner_qualifier_length] = '\0'; -+ if (current_class_length) -+ { -+ current_class = xrealloc (current_class, current_class_length+1); -+ current_class [current_class_length] = '\0'; -+ } -+ else -+ { -+ current_class = NULL; -+ anonymous_count = 0; -+ } - } - - /* Actions defined here */ --#define INNER_QUALIFIER (inner_qualifier ? inner_qualifier : "") - - static void - report_class_declaration (name) -@@ -1158,6 +1194,7 @@ - { - extern int flag_dump_class, flag_list_filename; - -+ push_class_context (name); - if (flag_dump_class) - { - if (!previous_output) -@@ -1168,13 +1205,10 @@ - } - - if (package_name) -- fprintf (out, "%s.%s%s ", package_name, INNER_QUALIFIER, name); -+ fprintf (out, "%s.%s ", package_name, current_class); - else -- fprintf (out, "%s%s ", INNER_QUALIFIER, name); -+ fprintf (out, "%s ", current_class); - } -- -- push_class_context (name); -- current_class = name; - } - - static void -@@ -1208,7 +1242,8 @@ - void reset_report () - { - previous_output = 0; -- current_class = package_name = NULL; -+ package_name = NULL; -+ current_class = NULL; - } - - void ---- gcc/java/parse.y 2000/09/10 04:41:32 1.1.1.1 -+++ gcc/java/parse.y 2000/09/10 14:45:33 -@@ -276,7 +276,7 @@ - static int binop_compound_p PARAMS ((enum tree_code)); - static tree search_loop PARAMS ((tree)); - static int labeled_block_contains_loop_p PARAMS ((tree, tree)); --static void check_abstract_method_definitions PARAMS ((int, tree, tree)); -+static int check_abstract_method_definitions PARAMS ((int, tree, tree)); - static void java_check_abstract_method_definitions PARAMS ((tree)); - static void java_debug_context_do PARAMS ((int)); - static void java_parser_context_push_initialized_field PARAMS ((void)); -@@ -755,8 +755,7 @@ - { end_class_declaration (0); } - | interface_declaration - { end_class_declaration (0); } --| SC_TK -- { $$ = NULL; } -+| empty_statement - | error - { - YYERROR_NOW; -@@ -880,13 +879,12 @@ - - class_member_declaration: - field_declaration --| field_declaration SC_TK -- { $$ = $1; } - | method_declaration - | class_declaration /* Added, JDK1.1 inner classes */ - { end_class_declaration (1); } - | interface_declaration /* Added, JDK1.1 inner interfaces */ - { end_class_declaration (1); } -+| empty_statement - ; - - /* 19.8.2 Productions from 8.3: Field Declarations */ -@@ -1085,9 +1083,7 @@ - - method_body: - block --| block SC_TK --| SC_TK -- { $$ = NULL_TREE; } /* Probably not the right thing to do. */ -+| SC_TK { $$ = NULL_TREE; } - ; - - /* 19.8.4 Productions from 8.5: Static Initializers */ -@@ -1097,11 +1093,6 @@ - TREE_CHAIN ($2) = CPC_STATIC_INITIALIZER_STMT (ctxp); - SET_CPC_STATIC_INITIALIZER_STMT (ctxp, $2); - } --| static block SC_TK /* Shouldn't be here. FIXME */ -- { -- TREE_CHAIN ($2) = CPC_STATIC_INITIALIZER_STMT (ctxp); -- SET_CPC_STATIC_INITIALIZER_STMT (ctxp, $2); -- } - ; - - static: /* Test lval.sub_token here */ -@@ -1166,7 +1157,7 @@ - - constructor_block_end: - block_end --| block_end SC_TK -+; - - /* Error recovery for that rule moved down expression_statement: rule. */ - explicit_constructor_invocation: -@@ -1397,7 +1388,14 @@ - - empty_statement: - SC_TK -- { $$ = empty_stmt_node; } -+ { -+ if (flag_extraneous_semicolon) -+ { -+ EXPR_WFL_SET_LINECOL (wfl_operator, lineno, -1); -+ parse_warning_context (wfl_operator, "An empty declaration is a deprecated feature that should not be used"); -+ } -+ $$ = empty_stmt_node; -+ } - ; - - label_decl: -@@ -2767,7 +2765,7 @@ - } - - /* Pop the lists of initialized field. If this lists aren't empty, -- remember them so we can use it to create and populate the $finit$ -+ remember them so we can use it to create and populate the finit$ - or <clinit> functions. */ - - static void -@@ -3861,7 +3859,7 @@ - } - - /* End a class declaration: register the statements used to create -- $finit$ and <clinit>, pop the current class and resume the prior -+ finit$ and <clinit>, pop the current class and resume the prior - parser context if necessary. */ - - static void -@@ -3919,9 +3917,9 @@ - wfl = build_wfl_node (get_identifier (name)); - init = build_wfl_node (get_identifier (pname)); - /* Build an initialization for the field: it will be -- initialized by a parameter added to $finit$, bearing a -+ initialized by a parameter added to finit$, bearing a - mangled name of the field itself (param$<n>.) The -- parameter is provided to $finit$ by the constructor -+ parameter is provided to finit$ by the constructor - invoking it (hence the constructor will also feature a - hidden parameter, set to the value of the outer context - local at the time the inner class is created.) -@@ -3930,7 +3928,7 @@ - be accessed by the inner class. It's actually not trivial - to minimize these aliases down to the ones really - used. One way to do that would be to expand all regular -- methods first, then $finit$ to get a picture of what's -+ methods first, then finit$ to get a picture of what's - used. It works with the exception that we would have to - go back on all constructor invoked in regular methods to - have their invokation reworked (to include the right amount -@@ -3942,7 +3940,7 @@ - use. - - On the other hand, it only affect local inner classes, -- whose constructors (and $finit$ call) will be featuring -+ whose constructors (and finit$ call) will be featuring - unecessary arguments. It's easy for a developper to keep - this number of parameter down by using the `final' - keyword only when necessary. For the time being, we can -@@ -4148,7 +4146,7 @@ - - /* If the couple initializer/initialized is marked ARG_FINAL_P, we - mark the created field FIELD_LOCAL_ALIAS, so that we can -- hide parameters to this inner class $finit$ and constructors. */ -+ hide parameters to this inner class finit$ and constructors. */ - if (ARG_FINAL_P (current)) - FIELD_LOCAL_ALIAS (field_decl) = 1; - -@@ -4189,8 +4187,8 @@ - lineno = saved_lineno; - } - --/* Generate $finit$, using the list of initialized fields to populate -- its body. $finit$'s parameter(s) list is adjusted to include the -+/* Generate finit$, using the list of initialized fields to populate -+ its body. finit$'s parameter(s) list is adjusted to include the - one(s) used to initialized the field(s) caching outer context - local(s). */ - -@@ -5003,7 +5001,7 @@ - count is kept of the number of crafted parameters. MODE governs - what eventually gets created: something suitable for a function - creation or a function invocation, either the constructor or -- $finit$. */ -+ finit$. */ - - static tree - build_alias_initializer_parameter_list (mode, class_type, parm, artificial) -@@ -5017,7 +5015,7 @@ - for (field = TYPE_FIELDS (class_type); field; field = TREE_CHAIN (field)) - if (FIELD_LOCAL_ALIAS (field)) - { -- char *buffer = IDENTIFIER_POINTER (DECL_NAME (field)); -+ const char *buffer = IDENTIFIER_POINTER (DECL_NAME (field)); - tree purpose = NULL_TREE, value = NULL_TREE, name = NULL_TREE; - - switch (mode) -@@ -5798,7 +5796,7 @@ - tree redef, name; - tree cl = DECL_NAME (method); - tree sig = TYPE_ARGUMENT_SIGNATURE (TREE_TYPE (method)); -- /* decl name of artificial <clinit> and $finit$ doesn't need to be -+ /* decl name of artificial <clinit> and finit$ doesn't need to be - fixed and checked */ - - /* Reset the method name before running the check. If it returns 1, -@@ -5825,13 +5823,15 @@ - return 0; - } - --static void -+/* Return 1 if check went ok, 0 otherwise. */ -+static int - check_abstract_method_definitions (do_interface, class_decl, type) - int do_interface; - tree class_decl, type; - { - tree class = TREE_TYPE (class_decl); - tree method, end_type; -+ int ok = 1; - - end_type = (do_interface ? object_type_node : type); - for (method = TYPE_METHODS (type); method; method = TREE_CHAIN (method)) -@@ -5904,13 +5904,27 @@ - IDENTIFIER_POINTER (ccn), - (CLASS_INTERFACE (class_decl) ? "interface" : "class"), - IDENTIFIER_POINTER (DECL_NAME (class_decl))); -- -+ ok = 0; - free (t); -- -+ - if (saved_wfl) - DECL_NAME (method) = saved_wfl; - } - } -+ -+ if (ok && do_interface) -+ { -+ /* Check for implemented interfaces. */ -+ int i; -+ tree vector = TYPE_BINFO_BASETYPES (type); -+ for (i = 1; ok && vector && i < TREE_VEC_LENGTH (vector); i++) -+ { -+ tree super = BINFO_TYPE (TREE_VEC_ELT (vector, i)); -+ ok = check_abstract_method_definitions (1, class_decl, super); -+ } -+ } -+ -+ return ok; - } - - /* Check that CLASS_DECL somehow implements all inherited abstract -@@ -7380,7 +7394,7 @@ - we expand regular methods first. This allows us get an estimate on - how outer context local alias fields are really used so we can add - to the constructor just enough code to initialize them properly (it -- also lets us generate $finit$ correctly.) Then we expand the -+ also lets us generate finit$ correctly.) Then we expand the - constructors and then <clinit>. */ - - static void -@@ -7401,7 +7415,7 @@ - first_decl = TYPE_METHODS (current_class); - clinit = maybe_generate_pre_expand_clinit (current_class); - -- /* Then generate $finit$ (if we need to) because constructor will -+ /* Then generate finit$ (if we need to) because constructor will - try to use it.*/ - if (TYPE_FINIT_STMT_LIST (current_class)) - { -@@ -7550,12 +7564,14 @@ - - if (!DECL_CLINIT_P (mdecl)) - return 0; -- -- /* If the body isn't empty, then we keep <clinit> */ -+ -+ /* If the body isn't empty, then we keep <clinit>. Note that if -+ we're emitting classfiles, this isn't enough not to rule it -+ out. */ - fbody = DECL_FUNCTION_BODY (mdecl); - if ((bbody = BLOCK_EXPR_BODY (fbody))) - bbody = BLOCK_EXPR_BODY (bbody); -- if (bbody && bbody != empty_stmt_node) -+ if (bbody && ! flag_emit_class_files && bbody != empty_stmt_node) - return 0; - - type = DECL_CONTEXT (mdecl); -@@ -7563,10 +7579,35 @@ - - for (current = (current ? TREE_CHAIN (current) : current); - current; current = TREE_CHAIN (current)) -- if (!(FIELD_STATIC (current) && FIELD_FINAL (current) -- && DECL_INITIAL (current) && TREE_CONSTANT (DECL_INITIAL (current)))) -- break; -+ { -+ tree f_init; -+ -+ /* We're not interested in non static field */ -+ if (!FIELD_STATIC (current)) -+ continue; - -+ /* Anything that isn't String or a basic type is ruled out -- or -+ if we now how to deal with it (when doing things natively) we -+ should generated an empty <clinit> so that SUID are computed -+ correctly. */ -+ if (! JSTRING_TYPE_P (TREE_TYPE (current)) -+ && ! JNUMERIC_TYPE_P (TREE_TYPE (current))) -+ break; -+ -+ f_init = DECL_INITIAL (current); -+ /* If we're emitting native code, we want static final fields to -+ have constant initializers. If we don't meet these -+ conditions, we keep <clinit> */ -+ if (!flag_emit_class_files -+ && !(FIELD_FINAL (current) && f_init && TREE_CONSTANT (f_init))) -+ break; -+ /* If we're emitting bytecode, we want static fields to have -+ constant initializers or no initializer. If we don't meet -+ these conditions, we keep <clinit> */ -+ if (flag_emit_class_files && f_init && !TREE_CONSTANT (f_init)) -+ break; -+ } -+ - if (current) - return 0; - -@@ -7688,7 +7729,7 @@ - tree ctx = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (current_class))); - - /* If decl's class is the direct outer class of the current_class, -- build the access as `this$<n>.<field>'. Not that we will break -+ build the access as `this$<n>.<field>'. Note that we will break - the `private' barrier if we're not emitting bytecodes. */ - if (ctx == DECL_CONTEXT (decl) - && (!FIELD_PRIVATE (decl) || !flag_emit_class_files )) -@@ -7704,7 +7745,7 @@ - int lc = EXPR_WFL_LINECOL (id); - - /* Now we chain the required number of calls to the access$0 to -- get a hold to the enclosing instance we need, and the we -+ get a hold to the enclosing instance we need, and then we - build the field access. */ - access = build_access_to_thisn (ctx, DECL_CONTEXT (decl), lc); - -@@ -8296,14 +8337,21 @@ - } - - static tree --build_dot_class_method_invocation (name) -- tree name; -+build_dot_class_method_invocation (type) -+ tree type; - { -- tree s = make_node (STRING_CST); -- TREE_STRING_LENGTH (s) = IDENTIFIER_LENGTH (name); -+ tree sig_id, s; -+ -+ if (TYPE_ARRAY_P (type)) -+ sig_id = build_java_signature (type); -+ else -+ sig_id = DECL_NAME (TYPE_NAME (type)); -+ -+ s = make_node (STRING_CST); -+ TREE_STRING_LENGTH (s) = IDENTIFIER_LENGTH (sig_id); - TREE_STRING_POINTER (s) = obstack_alloc (expression_obstack, - TREE_STRING_LENGTH (s)+1); -- strcpy (TREE_STRING_POINTER (s), IDENTIFIER_POINTER (name)); -+ strcpy (TREE_STRING_POINTER (s), IDENTIFIER_POINTER (sig_id)); - return build_method_invocation (build_wfl_node (get_identifier ("class$")), - build_tree_list (NULL_TREE, s)); - } -@@ -8345,6 +8393,11 @@ - CLASSNAME() constructor */ - start_artificial_method_body (mdecl); - -+ /* Insert an assignment to the this$<n> hidden field, if -+ necessary */ -+ if ((thisn_assign = build_thisn_assign ())) -+ java_method_add_stmt (mdecl, thisn_assign); -+ - /* We don't generate a super constructor invocation if we're - compiling java.lang.Object. build_super_invocation takes care - of that. */ -@@ -8354,11 +8407,6 @@ - super invocation. */ - add_instance_initializer (mdecl); - -- /* Insert an assignment to the this$<n> hidden field, if -- necessary */ -- if ((thisn_assign = build_thisn_assign ())) -- java_method_add_stmt (mdecl, thisn_assign); -- - end_artificial_method_body (mdecl); - } - /* Search for an explicit constructor invocation */ -@@ -8390,14 +8438,14 @@ - compound = add_stmt_to_compound (compound, NULL_TREE, - build_super_invocation (mdecl)); - -- /* Insert the instance initializer block right here, after the -- super invocation. */ -- add_instance_initializer (mdecl); -- - /* Generate the assignment to this$<n>, if necessary */ - if ((thisn_assign = build_thisn_assign ())) - compound = add_stmt_to_compound (compound, NULL_TREE, thisn_assign); - -+ /* Insert the instance initializer block right here, after the -+ super invocation. */ -+ add_instance_initializer (mdecl); -+ - /* Fix the constructor main block if we're adding extra stmts */ - if (compound) - { -@@ -9199,6 +9247,8 @@ - current_class); - return 1; - } -+ if (outer_field_access_p (current_class, decl)) -+ decl = build_outer_field_access (qual_wfl, decl); - } - else - { -@@ -9835,7 +9885,7 @@ - { - tree finit_parms, finit_call; - -- /* Prepare to pass hidden parameters to $finit$, if any. */ -+ /* Prepare to pass hidden parameters to finit$, if any. */ - finit_parms = build_alias_initializer_parameter_list - (AIPL_FUNCTION_FINIT_INVOCATION, current_class, NULL_TREE, NULL); - -@@ -10697,12 +10747,14 @@ - breakdown_qualified (left, right, source) - tree *left, *right, source; - { -- char *p = IDENTIFIER_POINTER (source), *base; -+ char *p, *base; - int l = IDENTIFIER_LENGTH (source); - -+ base = alloca (l + 1); -+ memcpy (base, IDENTIFIER_POINTER (source), l + 1); -+ - /* Breakdown NAME into REMAINDER . IDENTIFIER */ -- base = p; -- p += (l-1); -+ p = base + l - 1; - while (*p != '.' && p != base) - p--; - -@@ -10713,8 +10765,7 @@ - *p = '\0'; - if (right) - *right = get_identifier (p+1); -- *left = get_identifier (IDENTIFIER_POINTER (source)); -- *p = '.'; -+ *left = get_identifier (base); - - return 0; - } -@@ -12124,7 +12175,7 @@ - } - - /* Return 1 if RHS_TYPE can be converted to LHS_TYPE by identity -- conversion (5.1.1) or widening primitve conversion (5.1.2). Return -+ conversion (5.1.1) or widening primitive conversion (5.1.2). Return - 0 is the conversion test fails. This implements parts the method - invocation convertion (5.3). */ - -@@ -12842,20 +12893,26 @@ - const char *string; - int string_len, after; - { -- int len = TREE_STRING_LENGTH (cste) + string_len; - const char *old = TREE_STRING_POINTER (cste); -+ int old_len = TREE_STRING_LENGTH (cste); -+ int len = old_len + string_len; -+ char *new; -+ -+ cste = make_node (STRING_CST); - TREE_STRING_LENGTH (cste) = len; -- TREE_STRING_POINTER (cste) = obstack_alloc (expression_obstack, len+1); -+ new = TREE_STRING_POINTER (cste) = obstack_alloc (expression_obstack, len+1); -+ - if (after) - { -- strcpy (TREE_STRING_POINTER (cste), string); -- strcat (TREE_STRING_POINTER (cste), old); -+ memcpy (new, string, string_len); -+ memcpy (&new [string_len], old, old_len); - } - else - { -- strcpy (TREE_STRING_POINTER (cste), old); -- strcat (TREE_STRING_POINTER (cste), string); -+ memcpy (new, old, old_len); -+ memcpy (&new [old_len], string, string_len); - } -+ new [len] = '\0'; - return cste; - } - -@@ -13158,8 +13215,7 @@ - synthetic static method `class$'. */ - if (!TYPE_DOT_CLASS (current_class)) - build_dot_class_method (current_class); -- ref_type = -- build_dot_class_method_invocation (DECL_NAME (TYPE_NAME (ref_type))); -+ ref_type = build_dot_class_method_invocation (ref_type); - return java_complete_tree (ref_type); - } - -@@ -14378,7 +14434,7 @@ - se_type = TREE_TYPE (se); - /* The type of the switch expression must be char, byte, short or - int */ -- if (!JINTEGRAL_TYPE_P (se_type)) -+ if (! JINTEGRAL_TYPE_P (se_type) || se_type == long_type_node) - { - EXPR_WFL_LINECOL (wfl_operator) = EXPR_WFL_LINECOL (node); - parse_error_context (wfl_operator, ---- gcc/java/typeck.c 2000/09/10 04:41:32 1.1.1.1 -+++ gcc/java/typeck.c 2000/09/10 13:56:44 -@@ -417,13 +417,34 @@ - { - tree atype = build_prim_array_type (element_type, length); - tree arfld = build_decl (FIELD_DECL, get_identifier ("data"), atype); -+ - DECL_CONTEXT (arfld) = t; - TREE_CHAIN (fld) = arfld; -+ -+ /* We need to force the data field to begin at an alignment at -+ least equal to the biggest alignment in an object type node -+ in order to be compatible with the way that JArray is defined -+ in CNI. However, we can't exceed BIGGEST_FIELD_ALIGNMENT. */ -+ { -+ unsigned desired_align = TYPE_ALIGN (object_type_node); -+ desired_align = MAX (desired_align, TYPE_ALIGN (element_type)); -+#ifdef BIGGEST_FIELD_ALIGNMENT -+ desired_align = MIN (desired_align, -+ (unsigned) BIGGEST_FIELD_ALIGNMENT); -+#endif -+#ifdef ADJUST_FIELD_ALIGN -+ desired_align = ADJUST_FIELD_ALIGN (fld, desired_align); -+#endif -+ DECL_ALIGN (arfld) = desired_align; -+ } - } - else - { -- TYPE_ALIGN (t) = TYPE_ALIGN (element_type); -- TYPE_USER_ALIGN (t) = TYPE_USER_ALIGN (element_type); -+ unsigned desired_align = TYPE_ALIGN (element_type); -+#ifdef BIGGEST_FIELD_ALIGNMENT -+ desired_align = MIN (desired_align, (unsigned) BIGGEST_FIELD_ALIGNMENT); -+#endif -+ TYPE_ALIGN (t) = desired_align; - } - pop_obstacks (); - ---- gcc/java/verify.c 2000/09/10 04:41:33 1.1.1.1 -+++ gcc/java/verify.c 2000/09/10 13:56:44 -@@ -131,6 +131,20 @@ - tt1 = HANDLE_TO_CLASS_TYPE (TREE_TYPE (type1)); - tt2 = HANDLE_TO_CLASS_TYPE (TREE_TYPE (type2)); - -+ /* If tt{1,2} haven't been properly loaded, now is a good time -+ to do it. */ -+ if (!TYPE_SIZE (tt1)) -+ { -+ load_class (tt1, 1); -+ safe_layout_class (tt1); -+ } -+ -+ if (!TYPE_SIZE (tt2)) -+ { -+ load_class (tt2, 1); -+ safe_layout_class (tt2); -+ } -+ - if (TYPE_ARRAY_P (tt1) || TYPE_ARRAY_P (tt2)) - { - if (TYPE_ARRAY_P (tt1) == TYPE_ARRAY_P (tt2)) ---- gcc/java/zextract.c 2000/09/10 04:41:33 1.1.1.1 -+++ gcc/java/zextract.c 2000/09/10 13:56:44 -@@ -318,6 +318,8 @@ - for (i = 0; i < zipf->count; i++) - { - ZipDirectory *zipd = (ZipDirectory*)(dir_ptr + dir_last_pad); -+ int compression_method = (int) dir_ptr[4+C_COMPRESSION_METHOD]; -+ long size = makelong (&dir_ptr[4+C_COMPRESSED_SIZE]); - long uncompressed_size = makelong (&dir_ptr[4+C_UNCOMPRESSED_SIZE]); - long filename_length = makeword (&dir_ptr[4+C_FILENAME_LENGTH]); - long extra_field_length = makeword (&dir_ptr[4+C_EXTRA_FIELD_LENGTH]); -@@ -326,7 +328,9 @@ - return -1; - - zipd->filename_length = filename_length; -- zipd->size = uncompressed_size; -+ zipd->compression_method = compression_method; -+ zipd->size = size; -+ zipd->uncompressed_size = uncompressed_size; - #ifdef __GNUC__ - #define DIR_ALIGN __alignof__(ZipDirectory) - #else ---- gcc/java/zipfile.h 2000/09/10 04:41:33 1.1.1.1 -+++ gcc/java/zipfile.h 2000/09/10 13:56:44 -@@ -34,7 +34,9 @@ - struct ZipDirectory { - int direntry_size; - int filename_offset; -+ int compression_method; - long size; /* length of file */ -+ long uncompressed_size; /* length of uncompressed data */ - long filestart; /* start of file in archive */ - long filename_length; - /* char mid_padding[...]; */ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-jword.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-jword.patch deleted file mode 100644 index 5417ab7a7142..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-jword.patch +++ /dev/null @@ -1,26 +0,0 @@ -2000-04-29 Jakub Jelinek <jakub@redhat.com> - - * javaop.h (jword): Define to uint64 on 64bit architectures. - ---- gcc/java/javaop.h.jj Thu Feb 17 16:31:18 2000 -+++ gcc/java/javaop.h Sat Apr 29 22:50:12 2000 -@@ -1,6 +1,6 @@ - /* Utility macros to handle Java(TM) byte codes. - -- Copyright (C) 1996, 1998, 1999 Free Software Foundation, Inc. -+ Copyright (C) 1996, 1998, 1999, 2000 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by -@@ -79,7 +79,11 @@ union Word { - - - #ifndef jword -+#if !defined(__alpha__) && (!defined (_ARCH_PPC) || !defined (__64BIT__)) && (!defined(__sparc__) || (!defined(__sparcv9) && !defined(__arch64__))) && (!defined(__ia64__) || !defined(__LP64__)) - #define jword uint32 -+#else -+#define jword uint64 -+#endif - #endif - - #ifndef IMMEDIATE_u1 diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-misc.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-misc.patch deleted file mode 100644 index 3b07be3b8023..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-misc.patch +++ /dev/null @@ -1,353 +0,0 @@ -2000-08-10 Alexandre Petit-Bianco <apbianco@cygnus.com> - - * class.c (maybe_layout_super_class): Fixed indentation. - * java-tree.h (CLASS_METHOD_CHECKED_P): New macro. - (java_check_methods): New function declaration. - * jcf-parse.c (get_constant): Let `char_len' go up to 3. Use `str' - instead of `str_ptr'. - * jcf-write.c (generate_bytecode_insns): Emit number the of args - of a `invokeinterface' at the right time. - * parse.h (WFL_STRIP_BRACKET): New macro. - (SET_TYPE_FOR_RESOLUTION): Use it. - * parse.y (build_unresolved_array_type): Reuse `type_or_wfl.' - (check_class_interface_creation): Don't check for cross package - innerclass name clashes. - (method_header): Behave properly if MDECL is `error_mark_node.' - (method_declarator): Return `error_mark_node' if bogus current - class. - (resolve_class): Apply WFL_STRIP_BRACKET on `cl' if necessary. - (resolve_and_layout): New local `decl_type', set and used. Call - java_check_methods. - (java_check_methods): New method. - (java_layout_classes): Use it. - (resolve_qualified_expression_name): No EH check necessary in - access$<n>. - (java_complete_lhs): Use VAR_DECL's DECL_INITIAL when evaluating - `case' statement. - (patch_assignment): Set DECL_INITIAL on integral final local. - ---- gcc/java/class.c 2000/08/02 17:01:13 1.73 -+++ gcc/java/class.c 2000/08/11 21:31:47 -@@ -1748,8 +1748,7 @@ maybe_layout_super_class (super_class, t - { - if (TREE_CODE (super_class) == RECORD_TYPE) - { -- if (!CLASS_LOADED_P (super_class) -- && CLASS_FROM_SOURCE_P (super_class)) -+ if (!CLASS_LOADED_P (super_class) && CLASS_FROM_SOURCE_P (super_class)) - safe_layout_class (super_class); - if (!CLASS_LOADED_P (super_class)) - load_class (super_class, 1); ---- gcc/java/java-tree.h 2000/07/21 00:01:43 1.76 -+++ gcc/java/java-tree.h 2000/08/11 21:31:51 -@@ -52,6 +52,7 @@ struct JCF; - QUALIFIED_P (in IDENTIFIER_NODE) - PRIMARY_P (in EXPR_WITH_FILE_LOCATION) - MODIFY_EXPR_FROM_INITIALIZATION_P (in MODIFY_EXPR) -+ CLASS_METHOD_CHECKED_P (in RECORD_TYPE) - 3: IS_AN_IMPORT_ON_DEMAND_P (in IDENTIFIER_NODE) - RESOLVE_PACKAGE_NAME_P (in EXPR_WITH_FILE_LOCATION) - SWITCH_HAS_DEFAULT (in SWITCH_EXPR) -@@ -788,6 +789,7 @@ extern tree get_boehm_type_descriptor PA - extern unsigned long java_hash_hash_tree_node PARAMS ((hash_table_key)); - extern boolean java_hash_compare_tree_node PARAMS ((hash_table_key, - hash_table_key)); -+extern void java_check_methods PARAMS ((tree)); - - /* We use ARGS_SIZE_RTX to indicate that gcc/expr.h has been included - to declare `enum expand_modifier'. */ -@@ -998,6 +1000,8 @@ extern tree *type_map; - /* True if EXPR (a MODIFY_EXPR in that case) is the result of variable - initialization during its declaration */ - #define MODIFY_EXPR_FROM_INITIALIZATION_P(EXPR) TREE_LANG_FLAG_2 (EXPR) -+ -+#define CLASS_METHOD_CHECKED_P(EXPR) TREE_LANG_FLAG_2 (EXPR) - - /* True if EXPR (a WFL in that case) resolves into an expression name */ - #define RESOLVE_EXPRESSION_NAME_P(WFL) TREE_LANG_FLAG_0 (WFL) ---- gcc/java/jcf-parse.c 2000/07/27 11:13:51 1.50 -+++ gcc/java/jcf-parse.c 2000/08/11 21:31:53 -@@ -341,8 +341,8 @@ get_constant (jcf, index) - for (str_len = 0; i > 0; str_len++) - { - int char_len = UT8_CHAR_LENGTH (*str); -- if (char_len < 0 || char_len > 2 || char_len > i) -- fatal ("bad string constant"); -+ if (char_len < 0 || char_len > 3 || char_len > i) -+ fatal ("bad string constant"); - str += char_len; - i -= char_len; - } -@@ -368,7 +368,7 @@ get_constant (jcf, index) - char_value = (char_value << 6) | (*str++ & 0x3F); - break; - case 3: -- char_value = *str_ptr++ & 0x0F; -+ char_value = *str++ & 0x0F; - char_value = (char_value << 6) | (*str++ & 0x3F); - char_value = (char_value << 6) | (*str++ & 0x3F); - break; ---- gcc/java/jcf-write.c 2000/07/13 19:23:57 1.65 -+++ gcc/java/jcf-write.c 2000/08/11 21:32:00 -@@ -2561,9 +2561,13 @@ generate_bytecode_insns (exp, target, st - TREE_TYPE (TREE_TYPE (TREE_VALUE (TREE_OPERAND (exp, 1)))); - } - index = find_methodref_index (&state->cpool, f); -- if (interface) -- DECL_CONTEXT (f) = saved_context; - OP2 (index); -+ if (interface) -+ { -+ DECL_CONTEXT (f) = saved_context; -+ OP1 (nargs); -+ OP1 (0); -+ } - f = TREE_TYPE (TREE_TYPE (f)); - if (TREE_CODE (f) != VOID_TYPE) - { -@@ -2572,11 +2576,6 @@ generate_bytecode_insns (exp, target, st - emit_pop (size, state); - else - NOTE_PUSH (size); -- } -- if (interface) -- { -- OP1 (nargs); -- OP1 (0); - } - break; - } ---- gcc/java/parse.h 2000/07/21 18:11:52 1.56 -+++ gcc/java/parse.h 2000/08/11 21:32:03 -@@ -535,27 +535,50 @@ typedef struct _jdeplist { - java.lang.Object. */ - #define SET_TYPE_FOR_RESOLUTION(TYPE, SAVE, CHAIN) \ - { \ -- tree returned_type; \ -+ tree _returned_type; \ - (CHAIN) = 0; \ - if (TREE_TYPE (GET_CPC ()) == object_type_node \ -- && TREE_CODE (TYPE) == EXPR_WITH_FILE_LOCATION \ -+ && TREE_CODE (TYPE) == EXPR_WITH_FILE_LOCATION \ - && EXPR_WFL_NODE (TYPE) == unqualified_object_id_node) \ - (TYPE) = object_type_node; \ - else \ - { \ -- if (unresolved_type_p (type, &returned_type)) \ -+ if (unresolved_type_p (type, &_returned_type)) \ - { \ -- if (returned_type) \ -- (TYPE) = returned_type; \ -+ if (_returned_type) \ -+ (TYPE) = _returned_type; \ - else \ - { \ -- (SAVE) = (TYPE); \ -+ tree _type; \ -+ WFL_STRIP_BRACKET (_type, TYPE); \ -+ (SAVE) = (_type); \ - (TYPE) = obtain_incomplete_type (TYPE); \ - CHAIN = 1; \ - } \ - } \ - } \ - } -+ -+#define WFL_STRIP_BRACKET(TARGET, TYPE) \ -+{ \ -+ tree __type = (TYPE); \ -+ if (TYPE && TREE_CODE (TYPE) == EXPR_WITH_FILE_LOCATION) \ -+ { \ -+ tree _node = EXPR_WFL_NODE (TYPE); \ -+ const char *_ptr = IDENTIFIER_POINTER (_node); \ -+ const char *_ref = _ptr; \ -+ while (_ptr[0] == '[') \ -+ _ptr++; \ -+ if (_ref != _ptr) \ -+ { \ -+ tree _new = copy_node (TYPE); \ -+ EXPR_WFL_NODE (_new) = get_identifier (_ptr); \ -+ __type = _new; \ -+ } \ -+ } \ -+ (TARGET) = __type; \ -+} -+ - /* Promote a type if it won't be registered as a patch */ - #define PROMOTE_RECORD_IF_COMPLETE(TYPE, IS_INCOMPLETE) \ - { \ ---- gcc/java/parse.y 2000/08/08 03:33:36 1.199 -+++ gcc/java/parse.y 2000/08/11 21:32:37 -@@ -3265,10 +3265,8 @@ build_unresolved_array_type (type_or_wfl - IDENTIFIER_POINTER (EXPR_WFL_NODE (type_or_wfl)), - IDENTIFIER_LENGTH (EXPR_WFL_NODE (type_or_wfl))); - ptr = obstack_finish (&temporary_obstack); -- return build_expr_wfl (get_identifier (ptr), -- EXPR_WFL_FILENAME (type_or_wfl), -- EXPR_WFL_LINENO (type_or_wfl), -- EXPR_WFL_COLNO (type_or_wfl)); -+ EXPR_WFL_NODE (type_or_wfl) = get_identifier (ptr); -+ return type_or_wfl; - } - - static void -@@ -3303,7 +3301,8 @@ check_class_interface_creation (is_inter - - Can't be imported by a single type import - - Can't already exists in the package */ - if (IS_A_SINGLE_IMPORT_CLASSFILE_NAME_P (raw_name) -- && (node = find_name_in_single_imports (raw_name))) -+ && (node = find_name_in_single_imports (raw_name)) -+ && !CPC_INNER_P ()) - { - parse_error_context - (cl, "%s name `%s' clashes with imported type `%s'", -@@ -4260,14 +4259,18 @@ method_header (flags, type, mdecl, throw - int flags; - tree type, mdecl, throws; - { -- tree meth = TREE_VALUE (mdecl); -- tree id = TREE_PURPOSE (mdecl); - tree type_wfl = NULL_TREE; - tree meth_name = NULL_TREE; - tree current, orig_arg, this_class = NULL; -+ tree id, meth; - int saved_lineno; - int constructor_ok = 0, must_chain; - int count; -+ -+ if (mdecl == error_mark_node) -+ return error_mark_node; -+ meth = TREE_VALUE (mdecl); -+ id = TREE_PURPOSE (mdecl); - - check_modifiers_consistency (flags); - -@@ -4665,6 +4668,9 @@ method_declarator (id, list) - - patch_stage = JDEP_NO_PATCH; - -+ if (GET_CPC () == error_mark_node) -+ return error_mark_node; -+ - /* If we're dealing with an inner class constructor, we hide the - this$<n> decl in the name field of its parameter declaration. We - also might have to hide the outer context local alias -@@ -5391,7 +5397,10 @@ resolve_class (enclosing, class_type, de - while (name[0] == '[') - name++; - if (base != name) -- TYPE_NAME (class_type) = get_identifier (name); -+ { -+ TYPE_NAME (class_type) = get_identifier (name); -+ WFL_STRIP_BRACKET (cl, cl); -+ } - - /* 2- Resolve the bare type */ - if (!(resolved_type_decl = do_resolve_class (enclosing, class_type, -@@ -5562,7 +5571,7 @@ resolve_and_layout (something, cl) - tree something; - tree cl; - { -- tree decl; -+ tree decl, decl_type; - - /* Don't do that on the current class */ - if (something == current_class) -@@ -5605,13 +5614,14 @@ resolve_and_layout (something, cl) - return NULL_TREE; - - /* Resolve and layout if necessary */ -- layout_class_methods (TREE_TYPE (decl)); -- /* Check methods, but only once */ -- if (CLASS_FROM_SOURCE_P (TREE_TYPE (decl)) -- && !CLASS_LOADED_P (TREE_TYPE (decl))) -- CHECK_METHODS (decl); -- if (TREE_TYPE (decl) != current_class && !CLASS_LOADED_P (TREE_TYPE (decl))) -- safe_layout_class (TREE_TYPE (decl)); -+ decl_type = TREE_TYPE (decl); -+ layout_class_methods (decl_type); -+ /* Check methods */ -+ if (CLASS_FROM_SOURCE_P (decl_type)) -+ java_check_methods (decl); -+ /* Layout the type if necessary */ -+ if (decl_type != current_class && !CLASS_LOADED_P (decl_type)) -+ safe_layout_class (decl_type); - - return decl; - } -@@ -5957,6 +5967,23 @@ check_method_types_complete (decl) - return 1; - } - -+/* Visible interface to check methods contained in CLASS_DECL */ -+ -+void -+java_check_methods (class_decl) -+ tree class_decl; -+{ -+ if (CLASS_METHOD_CHECKED_P (TREE_TYPE (class_decl))) -+ return; -+ -+ if (CLASS_INTERFACE (class_decl)) -+ java_check_abstract_methods (class_decl); -+ else -+ java_check_regular_methods (class_decl); -+ -+ CLASS_METHOD_CHECKED_P (TREE_TYPE (class_decl)) = 1; -+} -+ - /* Check all the methods of CLASS_DECL. Methods are first completed - then checked according to regular method existance rules. If no - constructor for CLASS_DECL were encountered, then build its -@@ -7288,7 +7315,7 @@ java_layout_classes () - /* Then check the methods of all parsed classes */ - for (current = ctxp->gclass_list; current; current = TREE_CHAIN (current)) - if (CLASS_FROM_SOURCE_P (TREE_TYPE (TREE_VALUE (current)))) -- CHECK_METHODS (TREE_VALUE (current)); -+ java_check_methods (TREE_VALUE (current)); - java_parse_abort_on_error (); - - for (current = ctxp->gclass_list; current; current = TREE_CHAIN (current)) -@@ -8951,8 +8978,10 @@ resolve_qualified_expression_name (wfl, - instantiation using a primary qualified by a `new' */ - RESTORE_THIS_AND_CURRENT_CLASS; - -- /* EH check */ -- if (location) -+ /* EH check. No check on access$<n> functions */ -+ if (location -+ && !OUTER_FIELD_ACCESS_IDENTIFIER_P -+ (DECL_NAME (current_function_decl))) - check_thrown_exceptions (location, ret_decl); - - /* If the previous call was static and this one is too, -@@ -10988,6 +11017,8 @@ java_complete_lhs (node) - /* Multiple instance of a case label bearing the same - value is checked during code generation. The case - expression is allright so far. */ -+ if (TREE_CODE (cn) == VAR_DECL) -+ cn = DECL_INITIAL (cn); - TREE_OPERAND (node, 0) = cn; - TREE_TYPE (node) = void_type_node; - CAN_COMPLETE_NORMALLY (node) = 1; -@@ -12035,6 +12066,19 @@ patch_assignment (node, wfl_op1, wfl_op2 - else - lvalue = build (COMPOUND_EXPR, lhs_type, check, lvalue); - } -+ } -+ -+ /* Final locals can be used as case values in switch -+ statement. Prepare them for this eventuality. */ -+ if (TREE_CODE (lvalue) == VAR_DECL -+ && LOCAL_FINAL (lvalue) -+ && TREE_CONSTANT (new_rhs) -+ && IDENTIFIER_LOCAL_VALUE (DECL_NAME (lvalue)) -+ && JINTEGRAL_TYPE_P (TREE_TYPE (lvalue)) -+ ) -+ { -+ TREE_CONSTANT (lvalue) = 1; -+ DECL_INITIAL (lvalue) = new_rhs; - } - - TREE_OPERAND (node, 0) = lvalue; - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-no-super-layout.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-no-super-layout.patch deleted file mode 100644 index 10853a4cd261..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-no-super-layout.patch +++ /dev/null @@ -1,28 +0,0 @@ -2000-09-10 Anthony Green <green@redhat.com> - - * class.c (layout_class): Handle case where superclass can't be - layed out yet. - -*** gcc/java/class.c 2000/08/11 22:01:37 1.74 ---- gcc/java/class.c 2000/09/11 00:43:33 -*************** layout_class (this_class) -*** 1811,1818 **** - - if (super_class) - { -! super_class = maybe_layout_super_class (super_class, this_class); -! if (TREE_CODE (TYPE_SIZE (super_class)) == ERROR_MARK) - { - TYPE_SIZE (this_class) = error_mark_node; - CLASS_BEING_LAIDOUT (this_class) = 0; ---- 1811,1820 ---- - - if (super_class) - { -! tree maybe_super_class -! = maybe_layout_super_class (super_class, this_class); -! if (maybe_super_class == NULL -! || TREE_CODE (TYPE_SIZE (maybe_super_class)) == ERROR_MARK) - { - TYPE_SIZE (this_class) = error_mark_node; - CLASS_BEING_LAIDOUT (this_class) = 0; diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-pg.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-pg.patch deleted file mode 100644 index b87a5b340c38..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-java-pg.patch +++ /dev/null @@ -1,15 +0,0 @@ -Sun Aug 13 09:41:49 2000 Anthony Green <green@redhat.com> - - * check-init.c (check_init): Add case for BIT_FIELD_REF (required - for -pg builds). - ---- gcc/java/check-init.c 2000/06/22 05:17:33 1.23 -+++ gcc/java/check-init.c 2000/08/13 16:43:15 -@@ -611,6 +611,7 @@ check_init (exp, before) - case BIT_NOT_EXPR: - case CONVERT_EXPR: - case COMPONENT_REF: -+ case BIT_FIELD_REF: - case NOP_EXPR: - case FLOAT_EXPR: - case FIX_TRUNC_EXPR: diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm1.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm1.patch deleted file mode 100644 index 2510cfab41ab..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm1.patch +++ /dev/null @@ -1,178 +0,0 @@ -2000-08-09 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/c90-array-lval-1.c, gcc.dg/c90-scope-1.c, - gcc.dg/c99-array-lval-1.c, gcc.dg/c99-const-expr-1.c, - gcc.dg/c99-func-1.c, gcc.dg/c99-func-2.c, gcc.dg/c99-scope-1.c: - New tests. - ---- gcc/testsuite/gcc.dg/c90-array-lval-1.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c90-array-lval-1.c Wed Aug 9 19:43:51 2000 -@@ -0,0 +1,21 @@ -+/* Test for non-lvalue arrays decaying to pointers: in C99 only. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */ -+ -+struct s { char c[1]; }; -+ -+extern struct s foo (void); -+ -+void -+bar (void) -+{ -+ char *t; -+ (foo ()).c[0]; /* { dg-bogus "warning" "warning in place of error" } */ -+ t = (foo ()).c; /* { dg-bogus "warning" "warning in place of error" } */ -+ (foo ()).c + 1; /* { dg-bogus "warning" "warning in place of error" } */ -+} -+/* { dg-error "non-lvalue" "array not decaying to lvalue" { target *-*-* } 14 } -+ { dg-error "non-lvalue" "array not decaying to lvalue" { target *-*-* } 15 } -+ { dg-error "non-lvalue" "array not decaying to lvalue" { target *-*-* } 16 } -+*/ ---- gcc/testsuite/gcc.dg/c90-scope-1.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c90-scope-1.c Wed Aug 9 19:43:51 2000 -@@ -0,0 +1,34 @@ -+/* Test for new block scopes in C99. Inspired by C99 Rationale (N897). */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do run } */ -+/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */ -+ -+struct foo { -+ char a; -+}; -+ -+extern void abort (void); -+extern void exit (int); -+ -+int -+sfoo (void) -+{ -+ if (sizeof (struct foo { int a; double b; char *c; void *d; })) -+ (void) 0; -+ return sizeof (struct foo); -+} -+ -+int -+main (void) -+{ -+ int t, u; -+ t = sfoo (); -+ u = sizeof (struct foo); -+ /* With C90 scoping rules the new declaration of struct foo is in scope -+ above; with C99 it is local to the if. -+ */ -+ if (t == u) -+ abort (); /* C99 rules apply. */ -+ else -+ exit (0); /* C90 rules apply. */ -+} ---- gcc/testsuite/gcc.dg/c99-array-lval-1.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c99-array-lval-1.c Wed Aug 9 19:43:51 2000 -@@ -0,0 +1,17 @@ -+/* Test for non-lvalue arrays decaying to pointers: in C99 only. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ -+ -+struct s { char c[1]; }; -+ -+extern struct s foo (void); -+ -+void -+bar (void) -+{ -+ char *t; -+ (foo ()).c[0]; /* { dg-bogus "non-lvalue" "array not decaying to lvalue" { xfail *-*-* } } */ -+ t = (foo ()).c; /* { dg-bogus "non-lvalue" "array not decaying to lvalue" { xfail *-*-* } } */ -+ (foo ()).c + 1; /* { dg-bogus "non-lvalue" "array not decaying to lvalue" { xfail *-*-* } } */ -+} ---- gcc/testsuite/gcc.dg/c99-const-expr-1.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c99-const-expr-1.c Wed Aug 9 19:43:51 2000 -@@ -0,0 +1,16 @@ -+/* Test for constraints on constant expressions. In C90 it is clear that -+ certain constructs are not permitted in unevaluated parts of an -+ expression (except in sizeof); in C99 it might fall within implementation -+ latitude; and if the operands are suitable, diagnostics should not be -+ issued. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk>; inspired by -+ http://deja.com/getdoc.xp?AN=524271595&fmt=text by Peter Seebach. -+*/ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ -+ -+/* The comma operator is in a subexpression that is not evaluated, so OK -+ by C99. In C90 a diagnostic is required since it is not in a sizeof. -+*/ -+int i = (1 ? 0 : (2, 3)); ---- gcc/testsuite/gcc.dg/c99-func-1.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c99-func-1.c Wed Aug 9 19:43:51 2000 -@@ -0,0 +1,17 @@ -+/* Test for C99 __func__. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do run } */ -+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ -+ -+extern void abort (void); -+extern int strcmp (const char *, const char *); -+extern void exit (int); -+ -+int -+main (void) -+{ -+ if (strcmp (__func__, "main") || sizeof (__func__) != 5) -+ abort (); -+ else -+ exit (0); -+} ---- gcc/testsuite/gcc.dg/c99-func-2.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c99-func-2.c Wed Aug 9 19:43:51 2000 -@@ -0,0 +1,11 @@ -+/* Test for C99 __func__: not a string constant. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ -+ -+void -+foo (void) -+{ -+ __func__ "foo"; /* { dg-bogus "warning" "warning in place of error" } */ -+ /* { dg-error "parse error" "__func__ not string constant" { xfail *-*-* } 9 } */ -+} ---- gcc/testsuite/gcc.dg/c99-scope-1.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c99-scope-1.c Wed Aug 9 19:43:51 2000 -@@ -0,0 +1,34 @@ -+/* Test for new block scopes in C99. Inspired by C99 Rationale (N897). */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do run { xfail *-*-* } } */ -+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ -+ -+struct foo { -+ char a; -+}; -+ -+extern void abort (void); -+extern void exit (int); -+ -+int -+sfoo (void) -+{ -+ if (sizeof (struct foo { int a; double b; char *c; void *d; })) -+ (void) 0; -+ return sizeof (struct foo); -+} -+ -+int -+main (void) -+{ -+ int t, u; -+ t = sfoo (); -+ u = sizeof (struct foo); -+ /* With C90 scoping rules the new declaration of struct foo is in scope -+ above; with C99 it is local to the if. -+ */ -+ if (t == u) -+ exit (0); /* C99 rules apply. */ -+ else -+ abort (); /* C90 rules apply. */ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm2.patch deleted file mode 100644 index 61d0e3c734a3..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm2.patch +++ /dev/null @@ -1,160 +0,0 @@ -2000-08-15 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/c90-array-lval-2.c, gcc.dg/c90-const-expr-2.c, - gcc.dg/c99-array-lval-2.c, gcc.dg/c99-const-expr-2.c, - gcc.dg/c99-func-3.c, gcc.dg/c99-func-4.c: New tests. - ---- gcc/testsuite/gcc.dg/c90-array-lval-2.c.jj Wed Aug 23 14:21:27 2000 -+++ gcc/testsuite/gcc.dg/c90-array-lval-2.c Wed Aug 23 14:21:27 2000 -@@ -0,0 +1,20 @@ -+/* Test for non-lvalue arrays decaying to pointers: in C99 only. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic-errors" } */ -+ -+struct s { char c[17]; }; -+ -+struct s x; -+ -+extern struct s foo (void); -+ -+#define ASSERT(v, a) char v[((a) ? 1 : -1)] -+ -+ASSERT (p, sizeof (x.c) == 17); -+ASSERT (q, sizeof (0, x.c) == sizeof (char *)); -+ASSERT (r, sizeof ((foo ()).c) == 17); -+/* The non-lvalue array does not decay to a pointer, so the comma expression -+ has (non-lvalue) array type. -+*/ -+ASSERT (s, sizeof (0, (foo ()).c) == 17); /* { dg-bogus "array" "bad non-lvalue array handling" { xfail *-*-* } } */ ---- gcc/testsuite/gcc.dg/c90-const-expr-2.c.jj Wed Aug 23 14:21:27 2000 -+++ gcc/testsuite/gcc.dg/c90-const-expr-2.c Wed Aug 23 14:21:27 2000 -@@ -0,0 +1,36 @@ -+/* Test for constant expressions: details of what is a null pointer -+ constant. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990" } */ -+/* Note: not using -pedantic since the -std option alone should be enough -+ to give the correct behavior to conforming programs. If -pedantic is -+ needed to make (say) (0, 0) not be a constant expression, this is a -+ bug. -+*/ -+ -+int *a; -+int b; -+long *c; -+ -+/* Assertion that n is a null pointer constant: so the conditional expression -+ has type 'int *' instead of 'void *'. -+*/ -+#define ASSERT_NPC(n) (b = *(1 ? a : (n))) -+/* Assertion that n is not a null pointer constant: so the conditional -+ expresions has type 'void *' instead of 'int *'. -+*/ -+#define ASSERT_NOT_NPC(n) (c = (1 ? a : (n))) -+ -+void -+foo (void) -+{ -+ ASSERT_NPC (0); -+ ASSERT_NPC ((void *)0); -+ ASSERT_NOT_NPC ((void *)(void *)0); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */ -+ ASSERT_NOT_NPC ((void *)(char *)0); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */ -+ ASSERT_NOT_NPC ((void *)(0, 0)); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */ -+ /* This last one is a null pointer constant in C99 only. */ -+ ASSERT_NOT_NPC ((void *)(1 ? 0 : (0, 0))); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */ -+} ---- gcc/testsuite/gcc.dg/c99-array-lval-2.c.jj Wed Aug 23 14:21:27 2000 -+++ gcc/testsuite/gcc.dg/c99-array-lval-2.c Wed Aug 23 14:21:27 2000 -@@ -0,0 +1,18 @@ -+/* Test for non-lvalue arrays decaying to pointers: in C99 only. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ -+ -+struct s { char c[17]; }; -+ -+struct s x; -+ -+extern struct s foo (void); -+ -+#define ASSERT(v, a) char v[((a) ? 1 : -1)] -+ -+ASSERT (p, sizeof (x.c) == 17); -+ASSERT (q, sizeof (0, x.c) == sizeof (char *)); -+ASSERT (r, sizeof ((foo ()).c) == 17); -+/* The non-lvalue array decays to a pointer in C99. */ -+ASSERT (s, sizeof (0, (foo ()).c) == sizeof (char *)); /* { dg-bogus "array" "bad non-lvalue array handling" { xfail *-*-* } } */ ---- gcc/testsuite/gcc.dg/c99-const-expr-2.c.jj Wed Aug 23 14:21:27 2000 -+++ gcc/testsuite/gcc.dg/c99-const-expr-2.c Wed Aug 23 14:21:27 2000 -@@ -0,0 +1,36 @@ -+/* Test for constant expressions: details of what is a null pointer -+ constant. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999" } */ -+/* Note: not using -pedantic since the -std option alone should be enough -+ to give the correct behavior to conforming programs. If -pedantic is -+ needed to make (say) (0, 0) not be a constant expression, this is a -+ bug. -+*/ -+ -+int *a; -+int b; -+long *c; -+ -+/* Assertion that n is a null pointer constant: so the conditional expression -+ has type 'int *' instead of 'void *'. -+*/ -+#define ASSERT_NPC(n) (b = *(1 ? a : (n))) -+/* Assertion that n is not a null pointer constant: so the conditional -+ expresions has type 'void *' instead of 'int *'. -+*/ -+#define ASSERT_NOT_NPC(n) (c = (1 ? a : (n))) -+ -+void -+foo (void) -+{ -+ ASSERT_NPC (0); -+ ASSERT_NPC ((void *)0); -+ ASSERT_NOT_NPC ((void *)(void *)0); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */ -+ ASSERT_NOT_NPC ((void *)(char *)0); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */ -+ ASSERT_NOT_NPC ((void *)(0, 0)); /* { dg-bogus "incompatible" "bogus null pointer constant" { xfail *-*-* } } */ -+ /* This last one is a null pointer constant in C99 only. */ -+ ASSERT_NPC ((void *)(1 ? 0 : (0, 0))); -+} ---- gcc/testsuite/gcc.dg/c99-func-3.c.jj Wed Aug 23 14:21:27 2000 -+++ gcc/testsuite/gcc.dg/c99-func-3.c Wed Aug 23 14:21:27 2000 -@@ -0,0 +1,16 @@ -+/* Test for C99 __func__: not merging with string literals. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do run { xfail *-*-* } } */ -+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ -+ -+extern void abort (void); -+extern void exit (int); -+ -+int -+main (void) -+{ -+ if ("main" == __func__) -+ abort (); -+ else -+ exit (0); -+} ---- gcc/testsuite/gcc.dg/c99-func-4.c.jj Wed Aug 23 14:21:27 2000 -+++ gcc/testsuite/gcc.dg/c99-func-4.c Wed Aug 23 14:21:27 2000 -@@ -0,0 +1,10 @@ -+/* Test for C99 __func__: of type const char []. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic-errors" } */ -+ -+void -+foo (void) -+{ -+ char *p = __func__; /* { dg-error "discards" "__func__ pointer to const" { xfail *-*-* } } */ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm3.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm3.patch deleted file mode 100644 index 2bc3972b2108..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm3.patch +++ /dev/null @@ -1,20 +0,0 @@ -2000-08-18 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/format-va-1.c: New test. - ---- gcc/testsuite/gcc.dg/format-va-1.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/format-va-1.c Fri Aug 18 01:31:57 2000 -@@ -0,0 +1,13 @@ -+/* Test for strange warning in format checking. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-Wformat" } */ -+ -+extern int printf (const char *, ...); -+ -+void -+foo (void *p) -+{ -+ printf ("%d", p); /* { dg-bogus "va_list" "wrong type in format warning" } */ -+ /* { dg-warning "format" "format error" { target *-*-* } 11 } */ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm4.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm4.patch deleted file mode 100644 index e5cde49d9df6..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm4.patch +++ /dev/null @@ -1,230 +0,0 @@ -gcc/ChangeLog: -2000-08-18 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-tree.h (flag_hosted): Move declaration from here... - * c-common.h (flag_hosted): ... to here. - (flag_noniso_default_format_attributes): New declaration. - * c-decl.c (flag_noniso_default_format_attributes): New variable. - (c_decode_option): Set it appropriately for options choosing - language standard variant. - * c-common.c (init_function_format_info): Only provide default - format attributes if flag_hosted. Only provide the gettext - formats if flag_noniso_default_format_attributes. Update - comments. - (check_format_info): Disable treatment of %a as a scanf flag in - C99 mode. - -gcc/cp/ChangeLog: -2000-08-18 Joseph S. Myers <jsm28@cam.ac.uk> - - * decl.c (flag_hosted, flag_noniso_default_format_attributes): New - variables. - * decl2.c (lang_decode_option): Disable gettext attributes for - -ansi. - ---- gcc/c-common.c Fri Aug 18 17:15:28 2000 -+++ gcc/c-common.c Fri Aug 18 21:22:52 2000 -@@ -1325,11 +1325,13 @@ static international_format_info *intern - static void check_format_info PARAMS ((function_format_info *, tree)); - - /* Initialize the table of functions to perform format checking on. -- The ANSI functions are always checked (whether <stdio.h> is -+ The ISO C functions are always checked (whether <stdio.h> is - included or not), since it is common to call printf without - including <stdio.h>. There shouldn't be a problem with this, -- since ANSI reserves these function names whether you include the -- header file or not. In any case, the checking is harmless. -+ since ISO C reserves these function names whether you include the -+ header file or not. In any case, the checking is harmless. With -+ -ffreestanding, these default attributes are disabled, and must be -+ specified manually if desired. - - Also initialize the name of function that modify the format string for - internationalization purposes. */ -@@ -1337,28 +1339,32 @@ static void check_format_info PARAMS ((f - void - init_function_format_info () - { -- record_function_format (get_identifier ("printf"), NULL_TREE, -- printf_format_type, 1, 2); -- record_function_format (get_identifier ("fprintf"), NULL_TREE, -- printf_format_type, 2, 3); -- record_function_format (get_identifier ("sprintf"), NULL_TREE, -- printf_format_type, 2, 3); -- record_function_format (get_identifier ("scanf"), NULL_TREE, -- scanf_format_type, 1, 2); -- record_function_format (get_identifier ("fscanf"), NULL_TREE, -- scanf_format_type, 2, 3); -- record_function_format (get_identifier ("sscanf"), NULL_TREE, -- scanf_format_type, 2, 3); -- record_function_format (get_identifier ("vprintf"), NULL_TREE, -- printf_format_type, 1, 0); -- record_function_format (get_identifier ("vfprintf"), NULL_TREE, -- printf_format_type, 2, 0); -- record_function_format (get_identifier ("vsprintf"), NULL_TREE, -- printf_format_type, 2, 0); -- record_function_format (get_identifier ("strftime"), NULL_TREE, -- strftime_format_type, 3, 0); -+ if (flag_hosted) -+ { -+ /* Functions from ISO/IEC 9899:1990. */ -+ record_function_format (get_identifier ("printf"), NULL_TREE, -+ printf_format_type, 1, 2); -+ record_function_format (get_identifier ("fprintf"), NULL_TREE, -+ printf_format_type, 2, 3); -+ record_function_format (get_identifier ("sprintf"), NULL_TREE, -+ printf_format_type, 2, 3); -+ record_function_format (get_identifier ("scanf"), NULL_TREE, -+ scanf_format_type, 1, 2); -+ record_function_format (get_identifier ("fscanf"), NULL_TREE, -+ scanf_format_type, 2, 3); -+ record_function_format (get_identifier ("sscanf"), NULL_TREE, -+ scanf_format_type, 2, 3); -+ record_function_format (get_identifier ("vprintf"), NULL_TREE, -+ printf_format_type, 1, 0); -+ record_function_format (get_identifier ("vfprintf"), NULL_TREE, -+ printf_format_type, 2, 0); -+ record_function_format (get_identifier ("vsprintf"), NULL_TREE, -+ printf_format_type, 2, 0); -+ record_function_format (get_identifier ("strftime"), NULL_TREE, -+ strftime_format_type, 3, 0); -+ } - -- if (flag_isoc99) -+ if (flag_hosted && flag_isoc99) - { - /* ISO C99 adds the snprintf and vscanf family functions. */ - record_function_format (get_identifier ("snprintf"), NULL_TREE, -@@ -1373,9 +1379,13 @@ init_function_format_info () - scanf_format_type, 2, 0); - } - -- record_international_format (get_identifier ("gettext"), NULL_TREE, 1); -- record_international_format (get_identifier ("dgettext"), NULL_TREE, 2); -- record_international_format (get_identifier ("dcgettext"), NULL_TREE, 2); -+ if (flag_hosted && flag_noniso_default_format_attributes) -+ { -+ /* Uniforum/GNU gettext functions, not in ISO C. */ -+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1); -+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2); -+ record_international_format (get_identifier ("dcgettext"), NULL_TREE, 2); -+ } - } - - /* Record information for argument format checking. FUNCTION_IDENT is -@@ -1863,7 +1873,8 @@ check_format_info (info, params) - if (pedantic && !flag_isoc99) - warning ("ISO C89 does not support the `hh' length modifier"); - } -- if (*format_chars == 'a' && info->format_type == scanf_format_type) -+ if (*format_chars == 'a' && info->format_type == scanf_format_type -+ && !flag_isoc99) - { - if (format_chars[1] == 's' || format_chars[1] == 'S' - || format_chars[1] == '[') ---- gcc/c-common.h Sun Aug 6 18:08:43 2000 -+++ gcc/c-common.h Fri Aug 18 21:17:36 2000 -@@ -195,6 +195,15 @@ extern int flag_isoc99; - - extern int flag_digraphs; - -+/* Nonzero means environment is hosted (i.e., not freestanding) */ -+ -+extern int flag_hosted; -+ -+/* Nonzero means add default format_arg attributes for functions not -+ in ISO C. */ -+ -+extern int flag_noniso_default_format_attributes; -+ - /* Nonzero means warn about suggesting putting in ()'s. */ - - extern int warn_parentheses; ---- gcc/c-decl.c Fri Aug 11 08:27:55 2000 -+++ gcc/c-decl.c Fri Aug 18 21:14:21 2000 -@@ -345,6 +345,11 @@ int flag_digraphs = 1; - - int flag_hosted = 1; - -+/* Nonzero means add default format_arg attributes for functions not -+ in ISO C. */ -+ -+int flag_noniso_default_format_attributes = 1; -+ - /* Nonzero means to allow single precision math even if we're generally - being traditional. */ - int flag_allow_single_precision = 0; -@@ -550,6 +555,7 @@ c_decode_option (argc, argv) - flag_writable_strings = 0; - flag_no_asm = 1; - flag_no_nonansi_builtin = 1; -+ flag_noniso_default_format_attributes = 0; - flag_isoc99 = 0; - } - else if (!strcmp (argstart, "iso9899:199409")) -@@ -567,6 +573,7 @@ c_decode_option (argc, argv) - flag_writable_strings = 0; - flag_no_asm = 1; - flag_no_nonansi_builtin = 1; -+ flag_noniso_default_format_attributes = 0; - flag_isoc99 = 1; - flag_digraphs = 1; - flag_isoc94 = 1; -@@ -577,6 +584,7 @@ c_decode_option (argc, argv) - flag_writable_strings = 0; - flag_no_asm = 0; - flag_no_nonansi_builtin = 0; -+ flag_noniso_default_format_attributes = 1; - flag_isoc99 = 0; - flag_digraphs = 1; - flag_isoc94 = 0; -@@ -587,6 +595,7 @@ c_decode_option (argc, argv) - flag_writable_strings = 0; - flag_no_asm = 0; - flag_no_nonansi_builtin = 0; -+ flag_noniso_default_format_attributes = 1; - flag_isoc99 = 1; - flag_digraphs = 1; - flag_isoc94 = 1; ---- gcc/c-tree.h Fri Aug 4 08:30:40 2000 -+++ gcc/c-tree.h Fri Aug 18 21:16:53 2000 -@@ -299,10 +299,6 @@ extern int flag_cond_mismatch; - - extern int flag_no_asm; - --/* Nonzero means environment is hosted (i.e., not freestanding) */ -- --extern int flag_hosted; -- - /* Nonzero means warn about implicit declarations. */ - - extern int warn_implicit; ---- gcc/cp/decl.c Fri Aug 18 17:15:28 2000 -+++ gcc/cp/decl.c Fri Aug 18 21:12:54 2000 -@@ -345,6 +345,15 @@ int flag_isoc94; - - int flag_isoc99; - -+/* Nonzero means we are a hosted implementation for code shared with C. */ -+ -+int flag_hosted = 1; -+ -+/* Nonzero means add default format_arg attributes for functions not -+ in ISO C. */ -+ -+int flag_noniso_default_format_attributes = 1; -+ - /* Nonzero means give `double' the same size as `float'. */ - - extern int flag_short_double; ---- gcc/cp/decl2.c Fri Aug 18 10:23:17 2000 -+++ gcc/cp/decl2.c Fri Aug 18 21:15:35 2000 -@@ -822,7 +822,7 @@ lang_decode_option (argc, argv) - } - else if (!strcmp (p, "-ansi")) - flag_no_nonansi_builtin = 1, flag_ansi = 1, -- flag_no_gnu_keywords = 1; -+ flag_noniso_default_format_attributes = 0, flag_no_gnu_keywords = 1; - #ifdef SPEW_DEBUG - /* Undocumented, only ever used when you're invoking cc1plus by hand, since - it's probably safe to assume no sane person would ever want to use this diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm5.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm5.patch deleted file mode 100644 index abd5568172b0..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm5.patch +++ /dev/null @@ -1,1009 +0,0 @@ -gcc/ChangeLog: -2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-common.c (init_dollar_format_checking, - maybe_read_dollar_number, finish_dollar_format_checking): New - functions. - (dollar_arguments_used, dollar_arguments_count, - dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned): - New variables. - (check_format_info): Support $ formats for scanf and printf width - and precision. Always increment format_chars to advance past the - '*' of precision, not just when the format parameters are - available to check. - -gcc/testsuite/ChangeLog: -2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/c90-printf-3.c, gcc.dg/c90-scanf-2.c, - gcc.dg/c90-scanf-3.c, gcc.dg/c90-scanf-4.c, - gcc.dg/c90-strftime-1.c, gcc.dg/c99-printf-3.c, - gcc.dg/c99-scanf-1.c, gcc.dg/c99-scanf-2.c, gcc.dg/c99-scanf-3.c, - gcc.dg/format-xopen-1.c: New tests. - ---- gcc/c-common.c Sun Aug 20 19:34:46 2000 -+++ gcc/c-common.c Sun Aug 20 22:15:15 2000 -@@ -1324,6 +1324,11 @@ static international_format_info *intern - - static void check_format_info PARAMS ((function_format_info *, tree)); - -+static void init_dollar_format_checking PARAMS ((int, tree)); -+static int maybe_read_dollar_number PARAMS ((const char **, int, -+ tree, tree *)); -+static void finish_dollar_format_checking PARAMS ((void)); -+ - /* Initialize the table of functions to perform format checking on. - The ISO C functions are always checked (whether <stdio.h> is - included or not), since it is common to call printf without -@@ -1501,6 +1506,169 @@ check_function_format (name, assembler_n - } - } - -+ -+/* Variables used by the checking of $ operand number formats. */ -+static char *dollar_arguments_used = NULL; -+static int dollar_arguments_alloc = 0; -+static int dollar_arguments_count; -+static int dollar_first_arg_num; -+static int dollar_max_arg_used; -+static int dollar_format_warned; -+ -+/* Initialize the checking for a format string that may contain $ -+ parameter number specifications; we will need to keep track of whether -+ each parameter has been used. FIRST_ARG_NUM is the number of the first -+ argument that is a parameter to the format, or 0 for a vprintf-style -+ function; PARAMS is the list of arguments starting at this argument. */ -+ -+static void -+init_dollar_format_checking (first_arg_num, params) -+ int first_arg_num; -+ tree params; -+{ -+ dollar_first_arg_num = first_arg_num; -+ dollar_arguments_count = 0; -+ dollar_max_arg_used = 0; -+ dollar_format_warned = 0; -+ if (first_arg_num > 0) -+ { -+ while (params) -+ { -+ dollar_arguments_count++; -+ params = TREE_CHAIN (params); -+ } -+ } -+ if (dollar_arguments_alloc < dollar_arguments_count) -+ { -+ if (dollar_arguments_used) -+ free (dollar_arguments_used); -+ dollar_arguments_alloc = dollar_arguments_count; -+ dollar_arguments_used = xmalloc (dollar_arguments_alloc); -+ } -+ if (dollar_arguments_alloc) -+ memset (dollar_arguments_used, 0, dollar_arguments_alloc); -+} -+ -+ -+/* Look for a decimal number followed by a $ in *FORMAT. If DOLLAR_NEEDED -+ is set, it is an error if one is not found; otherwise, it is OK. If -+ such a number is found, check whether it is within range and mark that -+ numbered operand as being used for later checking. Returns the operand -+ number if found and within range, zero if no such number was found and -+ this is OK, or -1 on error. PARAMS points to the first operand of the -+ format; PARAM_PTR is made to point to the parameter referred to. If -+ a $ format is found, *FORMAT is updated to point just after it. */ -+ -+static int -+maybe_read_dollar_number (format, dollar_needed, params, param_ptr) -+ const char **format; -+ int dollar_needed; -+ tree params; -+ tree *param_ptr; -+{ -+ int argnum; -+ int overflow_flag; -+ const char *fcp = *format; -+ if (*fcp < '0' || *fcp > '9') -+ { -+ if (dollar_needed) -+ { -+ warning ("missing $ operand number in format"); -+ return -1; -+ } -+ else -+ return 0; -+ } -+ argnum = 0; -+ overflow_flag = 0; -+ while (*fcp >= '0' && *fcp <= '9') -+ { -+ int nargnum; -+ nargnum = 10 * argnum + (*fcp - '0'); -+ if (nargnum < 0 || nargnum / 10 != argnum) -+ overflow_flag = 1; -+ argnum = nargnum; -+ fcp++; -+ } -+ if (*fcp != '$') -+ { -+ if (dollar_needed) -+ { -+ warning ("missing $ operand number in format"); -+ return -1; -+ } -+ else -+ return 0; -+ } -+ *format = fcp + 1; -+ if (pedantic && !dollar_format_warned) -+ { -+ warning ("ISO C does not support %%n$ operand number formats"); -+ dollar_format_warned = 1; -+ } -+ if (overflow_flag || argnum == 0 -+ || (dollar_first_arg_num && argnum > dollar_arguments_count)) -+ { -+ warning ("operand number out of range in format"); -+ return -1; -+ } -+ if (argnum > dollar_max_arg_used) -+ dollar_max_arg_used = argnum; -+ /* For vprintf-style functions we may need to allocate more memory to -+ track which arguments are used. */ -+ while (dollar_arguments_alloc < dollar_max_arg_used) -+ { -+ int nalloc; -+ nalloc = 2 * dollar_arguments_alloc + 16; -+ dollar_arguments_used = xrealloc (dollar_arguments_used, nalloc); -+ memset (dollar_arguments_used + dollar_arguments_alloc, 0, -+ nalloc - dollar_arguments_alloc); -+ dollar_arguments_alloc = nalloc; -+ } -+ dollar_arguments_used[argnum - 1] = 1; -+ if (dollar_first_arg_num) -+ { -+ int i; -+ *param_ptr = params; -+ for (i = 1; i < argnum && *param_ptr != 0; i++) -+ *param_ptr = TREE_CHAIN (*param_ptr); -+ -+ if (*param_ptr == 0) -+ { -+ /* This case shouldn't be caught here. */ -+ abort (); -+ } -+ } -+ else -+ *param_ptr = 0; -+ return argnum; -+} -+ -+ -+/* Finish the checking for a format string that used $ operand number formats -+ instead of non-$ formats. We check for unused operands before used ones -+ (a serious error, since the implementation of the format function -+ can't know what types to pass to va_arg to find the later arguments). -+ and for unused operands at the end of the format (if we know how many -+ arguments the format had, so not for vprintf). If there were operand -+ numbers out of range on a non-vprintf-style format, we won't have reached -+ here. */ -+ -+static void -+finish_dollar_format_checking () -+{ -+ int i; -+ for (i = 0; i < dollar_max_arg_used; i++) -+ { -+ if (!dollar_arguments_used[i]) -+ warning ("format argument %d unused before used argument %d in $-style format", -+ i + 1, dollar_max_arg_used); -+ } -+ if (dollar_first_arg_num && dollar_max_arg_used < dollar_arguments_count) -+ warning ("unused arguments in $-style format"); -+} -+ -+ - /* Check the argument list of a call to printf, scanf, etc. - INFO points to the function_format_info structure. - PARAMS is the list of argument values. */ -@@ -1524,7 +1692,9 @@ check_format_info (info, params) - const char *format_chars; - format_char_info *fci = NULL; - char flag_chars[8]; -- int has_operand_number = 0; -+ /* -1 if no conversions taking an operand have been found; 0 if one has -+ and it didn't use $; 1 if $ formats are in use. */ -+ int has_operand_number = -1; - - /* Skip to format argument. If the argument isn't available, there's - no work for us to do; prototype checking will catch the problem. */ -@@ -1624,6 +1794,7 @@ check_format_info (info, params) - } - - first_fillin_param = params; -+ init_dollar_format_checking (info->first_arg_num, first_fillin_param); - while (1) - { - int aflag; -@@ -1633,8 +1804,11 @@ check_format_info (info, params) - { - if (format_chars - TREE_STRING_POINTER (format_tree) != format_length) - warning ("embedded `\\0' in format"); -- if (info->first_arg_num != 0 && params != 0 && ! has_operand_number) -+ if (info->first_arg_num != 0 && params != 0 -+ && has_operand_number <= 0) - warning ("too many arguments for format"); -+ if (has_operand_number > 0) -+ finish_dollar_format_checking (); - return; - } - if (*format_chars++ != '%') -@@ -1657,6 +1831,22 @@ check_format_info (info, params) - suppressed = *format_chars == '*'; - if (suppressed) - ++format_chars; -+ else if (has_operand_number != 0) -+ { -+ int opnum; -+ opnum = maybe_read_dollar_number (&format_chars, -+ has_operand_number == 1, -+ first_fillin_param, ¶ms); -+ if (opnum == -1) -+ return; -+ else if (opnum > 0) -+ { -+ has_operand_number = 1; -+ arg_num = opnum + info->first_arg_num - 1; -+ } -+ else -+ has_operand_number = 0; -+ } - while (ISDIGIT (*format_chars)) - { - wide = TRUE; -@@ -1709,35 +1899,21 @@ check_format_info (info, params) - } - else if (info->format_type == printf_format_type) - { -- /* See if we have a number followed by a dollar sign. If we do, -- it is an operand number, so set PARAMS to that operand. */ -- if (*format_chars >= '0' && *format_chars <= '9') -+ if (has_operand_number != 0) - { -- const char *p = format_chars; -- -- while (*p >= '0' && *p++ <= '9') -- ; -- -- if (*p == '$') -+ int opnum; -+ opnum = maybe_read_dollar_number (&format_chars, -+ has_operand_number == 1, -+ first_fillin_param, ¶ms); -+ if (opnum == -1) -+ return; -+ else if (opnum > 0) - { -- int opnum = atoi (format_chars); -- -- if (pedantic) -- warning ("ISO C does not support printf %%n$"); -- -- params = first_fillin_param; -- format_chars = p + 1; - has_operand_number = 1; -- -- for (i = 1; i < opnum && params != 0; i++) -- params = TREE_CHAIN (params); -- -- if (opnum == 0 || params == 0) -- { -- warning ("operand number out of range in format"); -- return; -- } -+ arg_num = opnum + info->first_arg_num - 1; - } -+ else -+ has_operand_number = 0; - } - - while (*format_chars != 0 && index (" +#0-'", *format_chars) != 0) -@@ -1774,11 +1950,25 @@ check_format_info (info, params) - tfaff (); - return; - } -+ if (has_operand_number > 0) -+ { -+ int opnum; -+ opnum = maybe_read_dollar_number (&format_chars, 1, -+ first_fillin_param, -+ ¶ms); -+ if (opnum <= 0) -+ return; -+ else -+ arg_num = opnum + info->first_arg_num - 1; -+ } - if (info->first_arg_num != 0) - { - cur_param = TREE_VALUE (params); -- params = TREE_CHAIN (params); -- ++arg_num; -+ if (has_operand_number <= 0) -+ { -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ } - /* size_t is generally not valid here. - It will work on most machines, because size_t and int - have the same mode. But might as well warn anyway, -@@ -1807,17 +1997,31 @@ check_format_info (info, params) - In this case, an int argument supplies the...precision." */ - if (*format_chars == '*') - { -+ ++format_chars; -+ if (has_operand_number > 0) -+ { -+ int opnum; -+ opnum = maybe_read_dollar_number (&format_chars, 1, -+ first_fillin_param, -+ ¶ms); -+ if (opnum <= 0) -+ return; -+ else -+ arg_num = opnum + info->first_arg_num - 1; -+ } - if (info->first_arg_num != 0) - { -- ++format_chars; - if (params == 0) - { - tfaff (); - return; - } - cur_param = TREE_VALUE (params); -- params = TREE_CHAIN (params); -- ++arg_num; -+ if (has_operand_number <= 0) -+ { -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ } - if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) - != integer_type_node) - && ---- gcc/testsuite/gcc.dg/c90-printf-3.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c90-printf-3.c Sun Aug 20 21:24:20 2000 -@@ -0,0 +1,60 @@ -+/* Test for printf formats. Test that the C90 functions get their default -+ attributes in strict C90 mode, but the C99 and gettext functions -+ do not. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic -Wformat" } */ -+ -+/* This may not be correct in the particular case, but allows the -+ prototypes to be declared, and we don't try to link. -+*/ -+typedef struct _FILE FILE; -+extern FILE *stdout; -+ -+typedef __SIZE_TYPE__ size_t; -+typedef __builtin_va_list va_list; -+ -+extern int fprintf (FILE *, const char *, ...); -+extern int printf (const char *, ...); -+extern int sprintf (char *, const char *, ...); -+extern int vfprintf (FILE *, const char *, va_list); -+extern int vprintf (const char *, va_list); -+extern int vsprintf (char *, const char *, va_list); -+ -+extern int snprintf (char *, size_t, const char *, ...); -+extern int vsnprintf (char *, size_t, const char *, va_list); -+ -+extern char *gettext (const char *); -+extern char *dgettext (const char *, const char *); -+extern char *dcgettext (const char *, const char *, int); -+ -+void -+foo (int i, char *s, size_t n, va_list v0, va_list v1, va_list v2, va_list v3, -+ va_list v4, va_list v5, va_list v6, va_list v7, va_list v8) -+{ -+ fprintf (stdout, "%d", i); -+ fprintf (stdout, "%ld", i); /* { dg-warning "format" "fprintf" } */ -+ printf ("%d", i); -+ printf ("%ld", i); /* { dg-warning "format" "printf" } */ -+ sprintf (s, "%d", i); -+ sprintf (s, "%ld", i); /* { dg-warning "format" "sprintf" } */ -+ vfprintf (stdout, "%d", v0); -+ vfprintf (stdout, "%Y", v1); /* { dg-warning "format" "vfprintf" } */ -+ vprintf ("%d", v2); -+ vprintf ("%Y", v3); /* { dg-warning "format" "vprintf" } */ -+ /* The following used to give a bogus warning. */ -+ vprintf ("%*.*d", v8); -+ vsprintf (s, "%d", v4); -+ vsprintf (s, "%Y", v5); /* { dg-warning "format" "vsprintf" } */ -+ snprintf (s, n, "%d", i); -+ snprintf (s, n, "%ld", i); -+ vsnprintf (s, n, "%d", v6); -+ vsnprintf (s, n, "%Y", v7); -+ printf (gettext ("%d"), i); -+ printf (gettext ("%ld"), i); -+ printf (dgettext ("", "%d"), i); -+ printf (dgettext ("", "%ld"), i); -+ printf (dcgettext ("", "%d", 0), i); -+ printf (dcgettext ("", "%ld", 0), i); -+} ---- gcc/testsuite/gcc.dg/c90-scanf-2.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c90-scanf-2.c Fri Aug 18 22:02:24 2000 -@@ -0,0 +1,37 @@ -+/* Test for scanf formats. Formats using C99 features should be rejected -+ outside of C99 mode. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic -Wformat" } */ -+ -+typedef __SIZE_TYPE__ size_t; -+typedef __PTRDIFF_TYPE__ ptrdiff_t; -+ -+__extension__ typedef long long int llong; -+ -+/* This next definition is broken. When GCC has a <stdint.h> and -+ an internal understanding of intmax_t, it should be -+ replaced by an include of <stdint.h> or by a definition for internal -+ macros or typedefs. -+*/ -+__extension__ typedef long long int intmax_t; -+ -+extern int scanf (const char *, ...); -+ -+void -+foo (signed char *hhp, float *fp, llong *llp, intmax_t *jp, -+ size_t *zp, ptrdiff_t *tp) -+{ -+ /* Some tests already in c90-scanf-1.c. */ -+ /* The widths hh, ll, j, z, t are new. */ -+ scanf ("%hhd", hhp); /* { dg-warning "length character|C" "%hh in C90" } */ -+ scanf ("%lld", llp); /* { dg-warning "length character|C" "%ll in C90" } */ -+ scanf ("%jd", jp); /* { dg-warning "length character|C" "%j in C90" } */ -+ scanf ("%zu", zp); /* { dg-warning "length character|C" "%z in C90" } */ -+ scanf ("%td", tp); /* { dg-warning "length character|C" "%t in C90" } */ -+ /* The formats F, a, A are new. */ -+ scanf ("%F", fp); /* { dg-warning "C" "%F in C90" } */ -+ scanf ("%a", fp); /* { dg-warning "C" "%a in C90" } */ -+ scanf ("%A", fp); /* { dg-warning "C" "%A in C90" } */ -+} ---- gcc/testsuite/gcc.dg/c90-scanf-3.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c90-scanf-3.c Sat Aug 19 18:50:07 2000 -@@ -0,0 +1,21 @@ -+/* Test for scanf formats. Formats using extensions to the standard -+ should be rejected in strict pedantic mode. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic -Wformat" } */ -+ -+typedef __WCHAR_TYPE__ wchar_t; -+ -+extern int scanf (const char *, ...); -+ -+void -+foo (char **sp, wchar_t **lsp) -+{ -+ /* %a formats for allocation, only recognised in C90 mode, are a -+ GNU extension. -+ */ -+ scanf ("%as", sp); /* { dg-warning "C" "%as" } */ -+ scanf ("%aS", lsp); /* { dg-warning "C" "%aS" } */ -+ scanf ("%a[bcd]", sp); /* { dg-warning "C" "%a[]" } */ -+} ---- gcc/testsuite/gcc.dg/c90-scanf-4.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c90-scanf-4.c Sun Aug 20 01:26:02 2000 -@@ -0,0 +1,51 @@ -+/* Test for scanf formats. Test that the C90 functions get their default -+ attributes in strict C90 mode, but the C99 and gettext functions -+ do not. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic -Wformat" } */ -+ -+/* This may not be correct in the particular case, but allows the -+ prototypes to be declared, and we don't try to link. -+*/ -+typedef struct _FILE FILE; -+extern FILE *stdin; -+ -+typedef __builtin_va_list va_list; -+ -+extern int fscanf (FILE *, const char *, ...); -+extern int scanf (const char *, ...); -+extern int sscanf (const char *, const char *, ...); -+ -+extern int vfscanf (FILE *, const char *, va_list); -+extern int vscanf (const char *, va_list); -+extern int vsscanf (const char *, const char *, va_list); -+ -+extern char *gettext (const char *); -+extern char *dgettext (const char *, const char *); -+extern char *dcgettext (const char *, const char *, int); -+ -+void -+foo (int *ip, char *s, va_list v0, va_list v1, va_list v2, va_list v3, -+ va_list v4, va_list v5) -+{ -+ fscanf (stdin, "%d", ip); -+ fscanf (stdin, "%ld", ip); /* { dg-warning "format" "fscanf" } */ -+ scanf ("%d", ip); -+ scanf ("%ld", ip); /* { dg-warning "format" "scanf" } */ -+ sscanf (s, "%d", ip); -+ sscanf (s, "%ld", ip); /* { dg-warning "format" "sscanf" } */ -+ vfscanf (stdin, "%d", v0); -+ vfscanf (stdin, "%Y", v1); -+ vscanf ("%d", v2); -+ vscanf ("%Y", v3); -+ vsscanf (s, "%d", v4); -+ vsscanf (s, "%Y", v5); -+ scanf (gettext ("%d"), ip); -+ scanf (gettext ("%ld"), ip); -+ scanf (dgettext ("", "%d"), ip); -+ scanf (dgettext ("", "%ld"), ip); -+ scanf (dcgettext ("", "%d", 0), ip); -+ scanf (dcgettext ("", "%ld", 0), ip); -+} ---- gcc/testsuite/gcc.dg/c90-strftime-1.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c90-strftime-1.c Mon Aug 21 01:36:03 2000 -@@ -0,0 +1,23 @@ -+/* Test for strftime formats. Formats using C90 features. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic -Wformat" } */ -+ -+typedef __SIZE_TYPE__ size_t; -+ -+struct tm; -+ -+extern size_t strftime (char *, size_t, const char *, const struct tm *); -+ -+void -+foo (char *s, size_t m, const struct tm *tp) -+{ -+ /* See ISO/IEC 9899:1990 (E) subclause 7.12.3.5 (pages 174-175). */ -+ /* Formats which are Y2K-compliant (no 2-digit years). */ -+ strftime (s, m, "%a%A%b%B%d%H%I%j%m%M%p%S%U%w%W%X%Y%Z%%", tp); -+ /* Formats with 2-digit years. */ -+ strftime (s, m, "%y", tp); /* { dg-warning "only last 2" "2-digit year" } */ -+ /* Formats with 2-digit years in some locales. */ -+ strftime (s, m, "%c", tp); /* { dg-warning "some locales" "2-digit year" } */ -+ strftime (s, m, "%x", tp); /* { dg-warning "some locales" "2-digit year" } */ -+} ---- gcc/testsuite/gcc.dg/c99-printf-3.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c99-printf-3.c Sun Aug 20 01:28:08 2000 -@@ -0,0 +1,56 @@ -+/* Test for printf formats. Test that the C99 functions get their default -+ attributes in strict C99 mode, but the gettext functions do not. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic -Wformat" } */ -+ -+/* This may not be correct in the particular case, but allows the -+ prototypes to be declared, and we don't try to link. -+*/ -+typedef struct _FILE FILE; -+extern FILE *stdout; -+ -+typedef __SIZE_TYPE__ size_t; -+typedef __builtin_va_list va_list; -+ -+extern int fprintf (FILE *restrict, const char *restrict, ...); -+extern int printf (const char *restrict, ...); -+extern int sprintf (char *restrict, const char *restrict, ...); -+extern int vfprintf (FILE *restrict, const char *restrict, va_list); -+extern int vprintf (const char *restrict, va_list); -+extern int vsprintf (char *restrict, const char *restrict, va_list); -+extern int snprintf (char *restrict, size_t, const char *restrict, ...); -+extern int vsnprintf (char *restrict, size_t, const char *restrict, va_list); -+ -+extern char *gettext (const char *); -+extern char *dgettext (const char *, const char *); -+extern char *dcgettext (const char *, const char *, int); -+ -+void -+foo (int i, char *s, size_t n, va_list v0, va_list v1, va_list v2, va_list v3, -+ va_list v4, va_list v5, va_list v6, va_list v7) -+{ -+ fprintf (stdout, "%d", i); -+ fprintf (stdout, "%ld", i); /* { dg-warning "format" "fprintf" } */ -+ printf ("%d", i); -+ printf ("%ld", i); /* { dg-warning "format" "printf" } */ -+ sprintf (s, "%d", i); -+ sprintf (s, "%ld", i); /* { dg-warning "format" "sprintf" } */ -+ snprintf (s, n, "%d", i); -+ snprintf (s, n, "%ld", i); /* { dg-warning "format" "snprintf" } */ -+ vfprintf (stdout, "%d", v0); -+ vfprintf (stdout, "%Y", v1); /* { dg-warning "format" "vfprintf" } */ -+ vprintf ("%d", v0); -+ vprintf ("%Y", v1); /* { dg-warning "format" "vprintf" } */ -+ vsprintf (s, "%d", v0); -+ vsprintf (s, "%Y", v1); /* { dg-warning "format" "vsprintf" } */ -+ vsnprintf (s, n, "%d", v0); -+ vsnprintf (s, n, "%Y", v1); /* { dg-warning "format" "vsnprintf" } */ -+ printf (gettext ("%d"), i); -+ printf (gettext ("%ld"), i); -+ printf (dgettext ("", "%d"), i); -+ printf (dgettext ("", "%ld"), i); -+ printf (dcgettext ("", "%d", 0), i); -+ printf (dcgettext ("", "%ld", 0), i); -+} ---- gcc/testsuite/gcc.dg/c99-scanf-1.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c99-scanf-1.c Sat Aug 19 18:47:19 2000 -@@ -0,0 +1,165 @@ -+/* Test for scanf formats. Formats using C99 features, including cases -+ where C99 specifies some aspect of the format to be ignored or where -+ the behaviour is undefined. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic -Wformat" } */ -+ -+typedef __WCHAR_TYPE__ wchar_t; -+typedef __SIZE_TYPE__ size_t; -+typedef __PTRDIFF_TYPE__ ptrdiff_t; -+ -+/* Kludges to get types corresponding to size_t and ptrdiff_t. */ -+#define unsigned signed -+typedef __SIZE_TYPE__ signed_size_t; -+#undef unsigned -+#define signed /* Type might or might not have explicit 'signed'. */ -+typedef unsigned __PTRDIFF_TYPE__ unsigned_ptrdiff_t; -+#undef signed -+ -+/* These next definitions are broken. When GCC has a <stdint.h> and -+ an internal understanding of intmax_t and uintmax_t, they should be -+ replaced by an include of <stdint.h> or by definitions for internal -+ macros or typedefs, and the corresponding xfails removed. -+*/ -+typedef long long int intmax_t; -+typedef unsigned long long int uintmax_t; -+ -+extern int scanf (const char *, ...); -+ -+void -+foo (int *ip, unsigned int *uip, short int *hp, unsigned short int *uhp, -+ signed char *hhp, unsigned char *uhhp, long int *lp, -+ unsigned long int *ulp, float *fp, double *dp, long double *ldp, char *s, -+ void **pp, int *n, long long *llp, unsigned long long *ullp, wchar_t *ls, -+ short int *hn, signed char *hhn, long int *ln, long long int *lln, -+ intmax_t *jp, uintmax_t *ujp, intmax_t *jn, size_t *zp, -+ signed_size_t *szp, signed_size_t *zn, ptrdiff_t *tp, -+ unsigned_ptrdiff_t *utp, ptrdiff_t *tn) -+{ -+ /* See ISO/IEC 9899:1999 (E) subclause 7.19.6.2 (pages 281-288). -+ We do not repeat here most of the checks for correct C90 formats -+ or completely broken formats. -+ */ -+ /* Valid, invalid and silly assignment-suppression -+ and width constructions. -+ */ -+ scanf ("%*d%*i%*o%*u%*x%*X%*a%*A%*e%*E%*f%*F%*g%*G%*s%*[abc]%*c%*p"); -+ scanf ("%*2d%*8s%*3c"); -+ scanf ("%*n"); /* { dg-warning "suppress" "suppression of %n" } */ -+ scanf ("%*hd"); /* { dg-warning "together" "suppression with length" } */ -+ scanf ("%2d%3i%4o%5u%6x%7X%8a%9A%10e%11E%12f%13F%14g%15G%16s%3[abc]%4c%5p", -+ ip, ip, uip, uip, uip, uip, fp, fp, fp, fp, fp, fp, fp, fp, -+ s, s, s, pp); -+ scanf ("%0d", ip); /* { dg-warning "width" "warning for zero width" } */ -+ scanf ("%3n", n); /* { dg-warning "width" "width with %n" } */ -+ /* Valid and invalid %h, %hh, %l, %ll, %j, %z, %t, %L constructions. */ -+ scanf ("%hd%hi%ho%hu%hx%hX%hn", hp, hp, uhp, uhp, uhp, uhp, hn); -+ scanf ("%ha", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hA", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%he", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hE", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hf", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hF", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hg", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hG", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hs", s); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%h[ac]", s); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hc", s); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hp", pp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hhd%hhi%hho%hhu%hhx%hhX%hhn", hhp, hhp, uhhp, uhhp, uhhp, uhhp, -+ hhn); -+ scanf ("%hha", fp); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhA", fp); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhe", fp); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhE", fp); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhf", fp); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhF", fp); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhg", fp); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhG", fp); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhs", s); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hh[ac]", s); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhc", s); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%hhp", pp); /* { dg-warning "length character" "bad use of %hh" } */ -+ scanf ("%ld%li%lo%lu%lx%lX%ln", lp, lp, ulp, ulp, ulp, ulp, ln); -+ scanf ("%la%lA%le%lE%lf%lF%lg%lG", dp, dp, dp, dp, dp, dp, dp, dp); -+ scanf ("%lp", pp); /* { dg-warning "length character" "bad use of %l" } */ -+ scanf ("%ls", ls); -+ scanf ("%l[ac]", ls); -+ scanf ("%lc", ls); -+ scanf ("%lld%lli%llo%llu%llx%llX%lln", llp, llp, ullp, ullp, ullp, ullp, -+ lln); -+ scanf ("%lla", fp); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%llA", fp); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%lle", fp); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%llE", fp); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%llf", fp); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%llF", fp); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%llg", fp); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%llG", fp); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%lls", s); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%ll[ac]", s); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%llc", s); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%llp", pp); /* { dg-warning "length character" "bad use of %ll" } */ -+ scanf ("%jd%ji%jo%ju%jx%jX%jn", jp, jp, ujp, ujp, ujp, ujp, jn); /* { dg-bogus "length character" "bogus %j warning" { xfail *-*-* } } */ -+ scanf ("%ja", fp); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%jA", fp); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%je", fp); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%jE", fp); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%jf", fp); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%jF", fp); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%jg", fp); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%jG", fp); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%js", s); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%j[ac]", s); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%jc", s); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%jp", pp); /* { dg-warning "length character" "bad use of %j" } */ -+ scanf ("%zd%zi%zo%zu%zx%zX%zn", szp, szp, zp, zp, zp, zp, zn); -+ scanf ("%za", fp); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%zA", fp); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%ze", fp); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%zE", fp); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%zf", fp); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%zF", fp); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%zg", fp); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%zG", fp); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%zs", s); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%z[ac]", s); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%zc", s); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%zp", pp); /* { dg-warning "length character" "bad use of %z" } */ -+ scanf ("%td%ti%to%tu%tx%tX%tn", tp, tp, utp, utp, utp, utp, tn); -+ scanf ("%ta", fp); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%tA", fp); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%te", fp); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%tE", fp); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%tf", fp); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%tF", fp); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%tg", fp); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%tG", fp); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%ts", s); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%t[ac]", s); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%tc", s); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%tp", pp); /* { dg-warning "length character" "bad use of %t" } */ -+ scanf ("%La%LA%Le%LE%Lf%LF%Lg%LG", ldp, ldp, ldp, ldp, ldp, ldp, ldp, ldp); -+ scanf ("%Ld", llp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Li", llp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Lo", ullp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Lu", ullp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Lx", ullp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%LX", ullp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Ls", s); /* { dg-warning "length character" "bad use of %L" } */ -+ scanf ("%L[ac]", s); /* { dg-warning "length character" "bad use of %L" } */ -+ scanf ("%Lc", s); /* { dg-warning "length character" "bad use of %L" } */ -+ scanf ("%Lp", pp); /* { dg-warning "length character" "bad use of %L" } */ -+ scanf ("%Ln", n); /* { dg-warning "length character" "bad use of %L" } */ -+ /* Valid uses of each bare conversion. */ -+ scanf ("%d%i%o%u%x%X%a%A%e%E%f%F%g%G%s%[abc]%c%p%n%%", ip, ip, uip, uip, uip, -+ uip, fp, fp, fp, fp, fp, fp, fp, fp, s, s, s, pp, n); -+ /* Assert that %as is not treated as an extension in C99 mode. */ -+ scanf ("%as", fp); -+ scanf ("%a[", fp); -+ /* Tests for bad argument types: pointer target sign with %hh. */ -+ scanf ("%hhd", uhhp); /* { dg-warning "format" "%hhd sign" } */ -+ scanf ("%hhu", hhp); /* { dg-warning "format" "%hhu sign" } */ -+} ---- gcc/testsuite/gcc.dg/c99-scanf-2.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c99-scanf-2.c Sat Aug 19 18:46:52 2000 -@@ -0,0 +1,27 @@ -+/* Test for scanf formats. Formats using extensions to the standard -+ should be rejected in strict pedantic mode. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic -Wformat" } */ -+ -+typedef __SIZE_TYPE__ size_t; -+typedef __WCHAR_TYPE__ wchar_t; -+ -+extern int scanf (const char *, ...); -+ -+void -+foo (int *ip, long long int *llp, size_t *zp, wchar_t *ls) -+{ -+ /* The length modifiers q, Z and L as applied to integer formats are -+ extensions. -+ */ -+ scanf ("%qd", llp); /* { dg-warning "C" "%q length" } */ -+ scanf ("%Ld", llp); /* { dg-warning "C" "%L length" } */ -+ scanf ("%Zu", zp); /* { dg-warning "C" "%Z length" } */ -+ /* The conversion specifiers C and S are X/Open extensions. */ -+ scanf ("%C", ls); /* { dg-warning "C" "scanf %C" } */ -+ scanf ("%S", ls); /* { dg-warning "C" "scanf %S" } */ -+ /* The use of operand number $ formats is an X/Open extension. */ -+ scanf ("%1$d", ip); /* { dg-warning "C" "scanf $ format" } */ -+} ---- gcc/testsuite/gcc.dg/c99-scanf-3.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c99-scanf-3.c Sun Aug 20 01:32:43 2000 -@@ -0,0 +1,49 @@ -+/* Test for scanf formats. Test that the C99 functions get their default -+ attributes in strict C99 mode, but the gettext functions do not. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic -Wformat" } */ -+ -+/* This may not be correct in the particular case, but allows the -+ prototypes to be declared, and we don't try to link. -+*/ -+typedef struct _FILE FILE; -+extern FILE *stdin; -+ -+typedef __builtin_va_list va_list; -+ -+extern int fscanf (FILE *restrict, const char *restrict, ...); -+extern int scanf (const char *restrict, ...); -+extern int sscanf (const char *restrict, const char *restrict, ...); -+extern int vfscanf (FILE *restrict, const char *restrict, va_list); -+extern int vscanf (const char *restrict, va_list); -+extern int vsscanf (const char *restrict, const char *restrict, va_list); -+ -+extern char *gettext (const char *); -+extern char *dgettext (const char *, const char *); -+extern char *dcgettext (const char *, const char *, int); -+ -+void -+foo (int *ip, char *s, va_list v0, va_list v1, va_list v2, va_list v3, -+ va_list v4, va_list v5) -+{ -+ fscanf (stdin, "%d", ip); -+ fscanf (stdin, "%ld", ip); /* { dg-warning "format" "fscanf" } */ -+ scanf ("%d", ip); -+ scanf ("%ld", ip); /* { dg-warning "format" "scanf" } */ -+ sscanf (s, "%d", ip); -+ sscanf (s, "%ld", ip); /* { dg-warning "format" "sscanf" } */ -+ vfscanf (stdin, "%d", v0); -+ vfscanf (stdin, "%Y", v1); /* { dg-warning "format" "vfscanf" } */ -+ vscanf ("%d", v2); -+ vscanf ("%Y", v3); /* { dg-warning "format" "vscanf" } */ -+ vsscanf (s, "%d", v4); -+ vsscanf (s, "%Y", v5); /* { dg-warning "format" "vsscanf" } */ -+ scanf (gettext ("%d"), ip); -+ scanf (gettext ("%ld"), ip); -+ scanf (dgettext ("", "%d"), ip); -+ scanf (dgettext ("", "%ld"), ip); -+ scanf (dcgettext ("", "%d", 0), ip); -+ scanf (dcgettext ("", "%ld", 0), ip); -+} ---- gcc/testsuite/gcc.dg/format-xopen-1.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/format-xopen-1.c Mon Aug 21 17:53:08 2000 -@@ -0,0 +1,118 @@ -+/* Test for X/Open format extensions, as found in the -+ Single Unix Specification and in Austin Group draft 4, subject to some -+ Aardvark problem reports submitted. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=gnu99 -Wformat" } */ -+ -+typedef __WCHAR_TYPE__ wchar_t; -+typedef __WINT_TYPE__ wint_t; -+typedef __builtin_va_list va_list; -+ -+extern int printf (const char *, ...); -+extern int vprintf (const char *, va_list); -+extern int scanf (const char *, ...); -+ -+void -+foo (int i, unsigned int u, wint_t lc, wchar_t *ls, int *ip, double d, -+ char *s, void *p, int *n, long int l, int i2, float *fp, long int *lp, -+ va_list va) -+{ -+ /* The conversion specifiers C and S, for both printf and scanf, -+ are X/Open extensions. -+ */ -+ printf ("%C", lc); -+ printf ("%3C", lc); -+ printf ("%.3C", lc); /* { dg-warning "precision" "precision with %C" } */ -+ printf ("%hC", lc); /* { dg-warning "length character" "bad %hC" } */ -+ printf ("%hhC", lc); /* { dg-warning "length character" "bad %hhC" } */ -+ printf ("%lC", lc); /* { dg-warning "length character" "bad %lC" } */ -+ printf ("%llC", lc); /* { dg-warning "length character" "bad %llC" } */ -+ printf ("%jC", lc); /* { dg-warning "length character" "bad %jC" } */ -+ printf ("%zC", lc); /* { dg-warning "length character" "bad %zC" } */ -+ printf ("%tC", lc); /* { dg-warning "length character" "bad %tC" } */ -+ printf ("%LC", lc); /* { dg-warning "length character" "bad %LC" } */ -+ printf ("%-C", lc); -+ printf ("%+C", lc); /* { dg-warning "flag" "bad %+C" } */ -+ printf ("% C", lc); /* { dg-warning "flag" "bad % C" } */ -+ printf ("%#C", lc); /* { dg-warning "flag" "bad %#C" } */ -+ printf ("%0C", lc); /* { dg-warning "flag" "bad %0C" } */ -+ printf ("%S", ls); -+ printf ("%3S", ls); -+ printf ("%.3S", ls); -+ printf ("%hS", ls); /* { dg-warning "length character" "bad %hS" } */ -+ printf ("%hhS", ls); /* { dg-warning "length character" "bad %hhS" } */ -+ printf ("%lS", ls); /* { dg-warning "length character" "bad %lS" } */ -+ printf ("%llS", ls); /* { dg-warning "length character" "bad %llS" } */ -+ printf ("%jS", ls); /* { dg-warning "length character" "bad %jS" } */ -+ printf ("%zS", ls); /* { dg-warning "length character" "bad %zS" } */ -+ printf ("%tS", ls); /* { dg-warning "length character" "bad %tS" } */ -+ printf ("%LS", ls); /* { dg-warning "length character" "bad %LS" } */ -+ printf ("%-S", ls); -+ printf ("%+S", ls); /* { dg-warning "flag" "bad %+S" } */ -+ printf ("% S", ls); /* { dg-warning "flag" "bad % S" } */ -+ printf ("%#S", ls); /* { dg-warning "flag" "bad %#S" } */ -+ printf ("%0S", ls); /* { dg-warning "flag" "bad %0S" } */ -+ scanf ("%C", ls); -+ scanf ("%S", ls); -+ scanf ("%*C%*S"); -+ scanf ("%2C%3S", ls, ls); -+ scanf ("%hC", ls); /* { dg-warning "length character" "bad %hC" } */ -+ scanf ("%hhC", ls); /* { dg-warning "length character" "bad %hhC" } */ -+ scanf ("%lC", ls); /* { dg-warning "length character" "bad %lC" } */ -+ scanf ("%llC", ls); /* { dg-warning "length character" "bad %llC" } */ -+ scanf ("%jC", ls); /* { dg-warning "length character" "bad %jC" } */ -+ scanf ("%zC", ls); /* { dg-warning "length character" "bad %zC" } */ -+ scanf ("%tC", ls); /* { dg-warning "length character" "bad %tC" } */ -+ scanf ("%LC", ls); /* { dg-warning "length character" "bad %LC" } */ -+ scanf ("%hS", ls); /* { dg-warning "length character" "bad %hS" } */ -+ scanf ("%hhS", ls); /* { dg-warning "length character" "bad %hhS" } */ -+ scanf ("%lS", ls); /* { dg-warning "length character" "bad %lS" } */ -+ scanf ("%llS", ls); /* { dg-warning "length character" "bad %llS" } */ -+ scanf ("%jS", ls); /* { dg-warning "length character" "bad %jS" } */ -+ scanf ("%zS", ls); /* { dg-warning "length character" "bad %zS" } */ -+ scanf ("%tS", ls); /* { dg-warning "length character" "bad %tS" } */ -+ scanf ("%LS", ls); /* { dg-warning "length character" "bad %LS" } */ -+ /* In C99 mode (even with extensions), %aS is a floating point -+ format followed by an S. -+ */ -+ scanf ("%aS", fp); -+ /* The printf flag character ' is an X/Open extension. */ -+ /* Allowing %'F here presumes acceptance of the corresponding Aardvark -+ report. -+ */ -+ printf ("%'d%'i%'u%'f%'F%'g%'G", i, i, u, d, d, d, d); -+ printf ("%'o", u); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'x", u); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'X", u); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'e", d); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'E", d); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'a", d); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'A", d); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'c", i); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'s", s); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'p", p); /* { dg-warning "flag" "bad use of ' flag" } */ -+ printf ("%'n", n); /* { dg-warning "flag" "bad use of ' flag" } */ -+ /* The use of operand number $ formats is an X/Open extension. */ -+ /* Banning gaps in the arguments used with scanf, and not objecting to -+ multiple use of an argument with scanf, presumes acceptance of the -+ corresponding Aardvark reports. -+ */ -+ scanf ("%1$d", ip); -+ printf ("%1$d", i); -+ printf ("%3$*2$.*1$d", i2, i, l); -+ printf ("%4$ld%7$ld%5$d%6$d%3$d%1$d%2$d", i, i, i, l, i, i, l); -+ scanf ("%4$ld%7$ld%5$d%6$d%3$d%1$d%2$d", ip, ip, ip, lp, ip, ip, lp); -+ printf ("%1$d%d", i, i); /* { dg-warning "missing" "mixing $ and non-$ formats" } */ -+ printf ("%%%1$d%%%2$d", i, i); -+ printf ("%d%2$d", i); /* { dg-warning "type character" "mixing $ and non-$ formats" } */ -+ printf ("%1$*d", i, i); /* { dg-warning "missing" "mixing $ and non-$ formats" } */ -+ scanf ("%1$d%d", ip, ip); /* { dg-warning "missing" "mixing $ and non-$ formats" } */ -+ scanf ("%*f%%%1$d%%%2$d", ip, ip); -+ printf ("%2$d", i); /* { dg-warning "operand" "$ number too large" } */ -+ printf ("%0$d", i); /* { dg-warning "operand" "$ number too small" } */ -+ printf ("%3$d%1$d", i, i, i); /* { dg-warning "before used" "unused $ operand" } */ -+ printf ("%2$d%1$d", i, i, i); /* { dg-warning "unused" "unused $ operand" } */ -+ vprintf ("%3$d%1$d", va); /* { dg-warning "before used" "unused $ operand" } */ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm6.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm6.patch deleted file mode 100644 index 5d4d059c79da..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm6.patch +++ /dev/null @@ -1,201 +0,0 @@ -gcc/ChangeLog: -2000-08-22 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-common.c (check_format_info): Give the 'some locales' warning - for strftime %Ey rather than the unconditional 'only last 2 digits - of year' one. - -gcc/testsuite/ChangeLog: -2000-08-22 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/c90-strftime-2.c, gcc.dg/c99-strftime-1.c, - gcc.dg/c99-strftime-2.c: New tests. - ---- gcc/c-common.c Mon Aug 21 19:35:35 2000 -+++ gcc/c-common.c Mon Aug 21 22:58:40 2000 -@@ -2162,11 +2162,12 @@ - } - if (wide && index (fci->flag_chars, 'w') == 0) - warning ("width used with `%c' format", format_char); -- if (index (fci->flag_chars, '2') != 0) -- warning ("`%%%c' yields only last 2 digits of year", format_char); -- else if (index (fci->flag_chars, '3') != 0) -+ if (index (fci->flag_chars, '3') != 0 -+ || (format_char == 'y' && index (flag_chars, 'E'))) - warning ("`%%%c' yields only last 2 digits of year in some locales", - format_char); -+ else if (index (fci->flag_chars, '2') != 0) -+ warning ("`%%%c' yields only last 2 digits of year", format_char); - if (precise && index (fci->flag_chars, 'p') == 0) - warning ("precision used with `%c' format", format_char); - if (aflag && index (fci->flag_chars, 'a') == 0) ---- gcc/testsuite/gcc.dg/c90-strftime-2.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c90-strftime-2.c Mon Aug 21 22:53:41 2000 -@@ -0,0 +1,35 @@ -+/* Test for strftime formats. Rejection of formats using C99 features in -+ pedantic C90 mode. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic -Wformat" } */ -+ -+typedef __SIZE_TYPE__ size_t; -+ -+struct tm; -+ -+extern size_t strftime (char *, size_t, const char *, const struct tm *); -+ -+void -+foo (char *s, size_t m, const struct tm *tp) -+{ -+ strftime (s, m, "%C", tp); /* { dg-warning "C" "%C not in C90" } */ -+ strftime (s, m, "%D", tp); /* { dg-warning "C" "%D not in C90" } */ -+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 17 } */ -+ strftime (s, m, "%e", tp); /* { dg-warning "C" "%e not in C90" } */ -+ strftime (s, m, "%F", tp); /* { dg-warning "C" "%F not in C90" } */ -+ strftime (s, m, "%g", tp); /* { dg-warning "C" "%g not in C90" } */ -+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 21 } */ -+ strftime (s, m, "%G", tp); /* { dg-warning "C" "%G not in C90" } */ -+ strftime (s, m, "%h", tp); /* { dg-warning "C" "%h not in C90" } */ -+ strftime (s, m, "%n", tp); /* { dg-warning "C" "%n not in C90" } */ -+ strftime (s, m, "%r", tp); /* { dg-warning "C" "%r not in C90" } */ -+ strftime (s, m, "%R", tp); /* { dg-warning "C" "%R not in C90" } */ -+ strftime (s, m, "%t", tp); /* { dg-warning "C" "%t not in C90" } */ -+ strftime (s, m, "%T", tp); /* { dg-warning "C" "%T not in C90" } */ -+ strftime (s, m, "%u", tp); /* { dg-warning "C" "%u not in C90" } */ -+ strftime (s, m, "%V", tp); /* { dg-warning "C" "%V not in C90" } */ -+ strftime (s, m, "%z", tp); /* { dg-warning "C" "%z not in C90" } */ -+ strftime (s, m, "%EX", tp); /* { dg-warning "C" "%E not in C90" } */ -+ strftime (s, m, "%OW", tp); /* { dg-warning "C" "%O not in C90" } */ -+} ---- gcc/testsuite/gcc.dg/c99-strftime-1.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c99-strftime-1.c Mon Aug 21 21:50:04 2000 -@@ -0,0 +1,99 @@ -+/* Test for strftime formats. Formats using C99 features. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic -Wformat" } */ -+ -+typedef __SIZE_TYPE__ size_t; -+ -+struct tm; -+ -+extern size_t strftime (char *, size_t, const char *, const struct tm *); -+ -+void -+foo (char *s, size_t m, const struct tm *tp) -+{ -+ /* See ISO/IEC 9899:1990 (E) subclause 7.12.3.5 (pages 174-175). */ -+ /* Formats which are Y2K-compliant (no 2-digit years). */ -+ strftime (s, m, "%a%A%b%B%C%d%e%F%G%h%H%I%j%m%M%p%R%S%t%T%u%U%V%w%W%X%Y%z%Z%%", tp); -+ strftime (s, m, "%EC%EX%EY%Od%Oe%OH%OI%Om%OM%OS%Ou%OU%OV%Ow%OW", tp); -+ /* Formats with 2-digit years. */ -+ strftime (s, m, "%D", tp); /* { dg-warning "only last 2" "2-digit year" } */ -+ strftime (s, m, "%g", tp); /* { dg-warning "only last 2" "2-digit year" } */ -+ strftime (s, m, "%y", tp); /* { dg-warning "only last 2" "2-digit year" } */ -+ strftime (s, m, "%Oy", tp); /* { dg-warning "only last 2" "2-digit year" } */ -+ /* Formats with 2-digit years in some locales. */ -+ strftime (s, m, "%c", tp); /* { dg-warning "some locales" "2-digit year" } */ -+ strftime (s, m, "%Ec", tp); /* { dg-warning "some locales" "2-digit year" } */ -+ strftime (s, m, "%x", tp); /* { dg-warning "some locales" "2-digit year" } */ -+ strftime (s, m, "%Ex", tp); /* { dg-warning "some locales" "2-digit year" } */ -+ /* %Ey is explicitly an era offset not a 2-digit year; but in some -+ locales the E modifier may be ignored. -+ */ -+ strftime (s, m, "%Ey", tp); /* { dg-warning "some locales" "2-digit year" } */ -+ /* Bad uses of %E and %O. */ -+ strftime (s, m, "%EEY", tp); /* { dg-warning "multiple" "multiple %E/%O" } */ -+ strftime (s, m, "%EOY", tp); /* { dg-warning "multiple" "multiple %E/%O" } */ -+ strftime (s, m, "%OEV", tp); /* { dg-warning "multiple" "multiple %E/%O" } */ -+ strftime (s, m, "%OOV", tp); /* { dg-warning "multiple" "multiple %E/%O" } */ -+ strftime (s, m, "%Ea", tp); /* { dg-warning "flag" "bad %Ea" } */ -+ strftime (s, m, "%EA", tp); /* { dg-warning "flag" "bad %EA" } */ -+ strftime (s, m, "%Eb", tp); /* { dg-warning "flag" "bad %Eb" } */ -+ strftime (s, m, "%EB", tp); /* { dg-warning "flag" "bad %EB" } */ -+ strftime (s, m, "%Ed", tp); /* { dg-warning "flag" "bad %Ed" } */ -+ strftime (s, m, "%ED", tp); /* { dg-warning "flag" "bad %ED" } */ -+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 43 } */ -+ strftime (s, m, "%Ee", tp); /* { dg-warning "flag" "bad %Ee" } */ -+ strftime (s, m, "%EF", tp); /* { dg-warning "flag" "bad %EF" } */ -+ strftime (s, m, "%Eg", tp); /* { dg-warning "flag" "bad %Eg" } */ -+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 47 } */ -+ strftime (s, m, "%EG", tp); /* { dg-warning "flag" "bad %EG" } */ -+ strftime (s, m, "%Eh", tp); /* { dg-warning "flag" "bad %Eh" } */ -+ strftime (s, m, "%EH", tp); /* { dg-warning "flag" "bad %EH" } */ -+ strftime (s, m, "%EI", tp); /* { dg-warning "flag" "bad %EI" } */ -+ strftime (s, m, "%Ej", tp); /* { dg-warning "flag" "bad %Ej" } */ -+ strftime (s, m, "%Em", tp); /* { dg-warning "flag" "bad %Em" } */ -+ strftime (s, m, "%EM", tp); /* { dg-warning "flag" "bad %EM" } */ -+ strftime (s, m, "%En", tp); /* { dg-warning "flag" "bad %En" } */ -+ strftime (s, m, "%Ep", tp); /* { dg-warning "flag" "bad %Ep" } */ -+ strftime (s, m, "%Er", tp); /* { dg-warning "flag" "bad %Er" } */ -+ strftime (s, m, "%ER", tp); /* { dg-warning "flag" "bad %ER" } */ -+ strftime (s, m, "%ES", tp); /* { dg-warning "flag" "bad %ES" } */ -+ strftime (s, m, "%Et", tp); /* { dg-warning "flag" "bad %Et" } */ -+ strftime (s, m, "%ET", tp); /* { dg-warning "flag" "bad %ET" } */ -+ strftime (s, m, "%Eu", tp); /* { dg-warning "flag" "bad %Eu" } */ -+ strftime (s, m, "%EU", tp); /* { dg-warning "flag" "bad %EU" } */ -+ strftime (s, m, "%EV", tp); /* { dg-warning "flag" "bad %EV" } */ -+ strftime (s, m, "%Ew", tp); /* { dg-warning "flag" "bad %Ew" } */ -+ strftime (s, m, "%EW", tp); /* { dg-warning "flag" "bad %EW" } */ -+ strftime (s, m, "%Ez", tp); /* { dg-warning "flag" "bad %Ez" } */ -+ strftime (s, m, "%EZ", tp); /* { dg-warning "flag" "bad %EZ" } */ -+ strftime (s, m, "%E%", tp); /* { dg-warning "flag" "bad %E%" } */ -+ strftime (s, m, "%Oa", tp); /* { dg-warning "flag" "bad %Oa" } */ -+ strftime (s, m, "%OA", tp); /* { dg-warning "flag" "bad %OA" } */ -+ strftime (s, m, "%Ob", tp); /* { dg-warning "flag" "bad %Ob" } */ -+ strftime (s, m, "%OB", tp); /* { dg-warning "flag" "bad %OB" } */ -+ strftime (s, m, "%Oc", tp); /* { dg-warning "flag" "bad %Oc" } */ -+ /* { dg-warning "in some locales" "2-digit year" { target *-*-* } 75 } */ -+ strftime (s, m, "%OC", tp); /* { dg-warning "flag|C" "bad %OC" } */ -+ strftime (s, m, "%OD", tp); /* { dg-warning "flag" "bad %OD" } */ -+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 78 } */ -+ strftime (s, m, "%OF", tp); /* { dg-warning "flag" "bad %OF" } */ -+ strftime (s, m, "%Og", tp); /* { dg-warning "flag|C" "bad %Og" } */ -+ /* { dg-warning "only last 2" "2-digit year" { target *-*-* } 81 } */ -+ strftime (s, m, "%OG", tp); /* { dg-warning "flag|C" "bad %OG" } */ -+ strftime (s, m, "%Oh", tp); /* { dg-warning "flag" "bad %Oh" } */ -+ strftime (s, m, "%Oj", tp); /* { dg-warning "flag|C" "bad %Oj" } */ -+ strftime (s, m, "%On", tp); /* { dg-warning "flag" "bad %On" } */ -+ strftime (s, m, "%Op", tp); /* { dg-warning "flag" "bad %Op" } */ -+ strftime (s, m, "%Or", tp); /* { dg-warning "flag" "bad %Or" } */ -+ strftime (s, m, "%OR", tp); /* { dg-warning "flag" "bad %OR" } */ -+ strftime (s, m, "%Ot", tp); /* { dg-warning "flag" "bad %Ot" } */ -+ strftime (s, m, "%OT", tp); /* { dg-warning "flag" "bad %OT" } */ -+ strftime (s, m, "%Ox", tp); /* { dg-warning "flag" "bad %Ox" } */ -+ /* { dg-warning "in some locales" "2-digit year" { target *-*-* } 92 } */ -+ strftime (s, m, "%OX", tp); /* { dg-warning "flag" "bad %OX" } */ -+ strftime (s, m, "%OY", tp); /* { dg-warning "flag|C" "bad %OY" } */ -+ strftime (s, m, "%Oz", tp); /* { dg-warning "flag|C" "bad %Oz" } */ -+ strftime (s, m, "%OZ", tp); /* { dg-warning "flag" "bad %OZ" } */ -+ strftime (s, m, "%O%", tp); /* { dg-warning "flag" "bad %O%" } */ -+} ---- gcc/testsuite/gcc.dg/c99-strftime-2.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c99-strftime-2.c Mon Aug 21 23:20:20 2000 -@@ -0,0 +1,27 @@ -+/* Test for strftime formats. Rejection of extensions in pedantic mode. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic -Wformat" } */ -+ -+typedef __SIZE_TYPE__ size_t; -+ -+struct tm; -+ -+extern size_t strftime (char *, size_t, const char *, const struct tm *); -+ -+void -+foo (char *s, size_t m, const struct tm *tp) -+{ -+ /* %P is a lowercase version of %p. */ -+ strftime (s, m, "%P", tp); /* { dg-warning "C" "strftime %P" } */ -+ /* %k is %H but padded with a space rather than 0 if necessary. */ -+ strftime (s, m, "%k", tp); /* { dg-warning "C" "strftime %k" } */ -+ /* %l is %I but padded with a space rather than 0 if necessary. */ -+ strftime (s, m, "%l", tp); /* { dg-warning "C" "strftime %l" } */ -+ /* %s is the number of seconds since the Epoch. */ -+ strftime (s, m, "%s", tp); /* { dg-warning "C" "strftime %s" } */ -+ /* Extensions using %O already tested in c99-strftime-1.c. */ -+ /* Width and flags are GNU extensions for strftime. */ -+ strftime (s, m, "%20Y", tp); /* { dg-warning "C" "strftime width" } */ -+ strftime (s, m, "%^A", tp); /* { dg-warning "C" "strftime flags" } */ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm7.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm7.patch deleted file mode 100644 index 05bcf8950446..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm7.patch +++ /dev/null @@ -1,80 +0,0 @@ -2000-08-06 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/c90-printf-2.c, gcc.dg/c99-printf-2.c: New tests. - ---- gcc/testsuite/gcc.dg/c90-printf-2.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c90-printf-2.c Sun Aug 6 20:17:45 2000 -@@ -0,0 +1,36 @@ -+/* Test for printf formats. Formats using C99 features should be rejected -+ outside of C99 mode. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic -Wformat" } */ -+ -+typedef __SIZE_TYPE__ size_t; -+typedef __PTRDIFF_TYPE__ ptrdiff_t; -+ -+__extension__ typedef long long int llong; -+ -+/* This next definition is broken. When GCC has a <stdint.h> and -+ an internal understanding of intmax_t, it should be -+ replaced by an include of <stdint.h> or by a definition for internal -+ macros or typedefs. -+*/ -+__extension__ typedef long long int intmax_t; -+ -+extern int printf (const char *, ...); -+ -+void -+foo (int i, double d, llong ll, intmax_t j, size_t z, ptrdiff_t t) -+{ -+ /* Some tests already in c90-printf-1.c, e.g. %lf. */ -+ /* The widths hh, ll, j, z, t are new. */ -+ printf ("%hhd", i); /* { dg-warning "length character|C" "%hh in C90" } */ -+ printf ("%lld", ll); /* { dg-warning "length character|C" "%ll in C90" } */ -+ printf ("%jd", j); /* { dg-warning "length character|C" "%j in C90" } */ -+ printf ("%zu", z); /* { dg-warning "length character|C" "%z in C90" } */ -+ printf ("%td", t); /* { dg-warning "length character|C" "%t in C90" } */ -+ /* The formats F, a, A are new. */ -+ printf ("%F", d); /* { dg-warning "C" "%F in C90" } */ -+ printf ("%a", d); /* { dg-warning "C" "%a in C90" } */ -+ printf ("%A", d); /* { dg-warning "C" "%A in C90" } */ -+} ---- gcc/testsuite/gcc.dg/c99-printf-2.c Thu Jan 1 00:00:00 1970 -+++ gcc/testsuite/gcc.dg/c99-printf-2.c Sun Aug 6 20:17:45 2000 -@@ -0,0 +1,34 @@ -+/* Test for printf formats. Formats using extensions to the standard -+ should be rejected in strict pedantic mode. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1999 -pedantic -Wformat" } */ -+ -+typedef __SIZE_TYPE__ size_t; -+typedef __WCHAR_TYPE__ wchar_t; -+typedef __WINT_TYPE__ wint_t; -+ -+extern int printf (const char *, ...); -+ -+void -+foo (int i, long long ll, size_t z, wint_t lc, wchar_t *ls) -+{ -+ /* The length modifiers q, Z and L as applied to integer formats are -+ extensions. -+ */ -+ printf ("%qd", ll); /* { dg-warning "C" "%q length" } */ -+ printf ("%Ld", ll); /* { dg-warning "C" "%L length" } */ -+ printf ("%Zd", z); /* { dg-warning "C" "%Z length" } */ -+ /* The conversion specifiers C and S are X/Open extensions; the -+ conversion specifier m is a GNU extension. -+ */ -+ printf ("%m"); /* { dg-warning "C" "printf %m" } */ -+ printf ("%C", lc); /* { dg-warning "C" "printf %C" } */ -+ printf ("%S", ls); /* { dg-warning "C" "printf %S" } */ -+ /* The flag character ', and the use of operand number $ formats, are -+ X/Open extensions. -+ */ -+ printf ("%'d", i); /* { dg-warning "C" "printf ' flag" } */ -+ printf ("%1$d", i); /* { dg-warning "C" "printf $ format" } */ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm8.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm8.patch deleted file mode 100644 index 8af5c5faf9fd..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-jsm8.patch +++ /dev/null @@ -1,197 +0,0 @@ -gcc/ChangeLog: -2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-common.c (print_char_table): Allow 'I' flag with %d, %i and - %u. - (check_format_info): Support printf 'I' flag; warn about it with - -pedantic. - -gcc/testsuite/ChangeLog: -2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/c99-printf-2.c, gcc.dg/format-xopen-1.c: Add some more - tests. - * gcc.dg/format-ext-1.c: New test. - ---- gcc/c-common.c Tue Aug 22 14:04:45 2000 -+++ gcc/c-common.c Tue Aug 22 21:43:58 2000 -@@ -1236,9 +1236,9 @@ typedef struct { - } format_char_info; - - static format_char_info print_char_table[] = { -- { "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_SST, T_PD, T_IM, "-wp0 +'" }, -+ { "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_SST, T_PD, T_IM, "-wp0 +'I" }, - { "oxX", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_UPD, T_UIM, "-wp0#" }, -- { "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_UPD, T_UIM, "-wp0'" }, -+ { "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_UPD, T_UIM, "-wp0'I" }, - /* A GNU extension. */ - { "m", 0, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, - { "fFgG", 0, T_D, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "-wp0 +#'" }, -@@ -1916,7 +1916,7 @@ check_format_info (info, params) - has_operand_number = 0; - } - -- while (*format_chars != 0 && index (" +#0-'", *format_chars) != 0) -+ while (*format_chars != 0 && index (" +#0-'I", *format_chars) != 0) - { - if (index (flag_chars, *format_chars) != 0) - warning ("repeated `%c' flag in format", *format_chars++); -@@ -1939,6 +1939,8 @@ check_format_info (info, params) - warning ("use of both `0' and `-' flags in format"); - if (index (flag_chars, '\'') && pedantic) - warning ("ISO C does not support the `'' format flag"); -+ if (index (flag_chars, 'I') && pedantic) -+ warning ("ISO C does not support the `I' format flag"); - if (*format_chars == '*') - { - wide = TRUE; ---- gcc/testsuite/gcc.dg/c99-printf-2.c Sun Aug 6 18:16:45 2000 -+++ gcc/testsuite/gcc.dg/c99-printf-2.c Tue Aug 22 21:39:00 2000 -@@ -31,4 +31,6 @@ - */ - printf ("%'d", i); /* { dg-warning "C" "printf ' flag" } */ - printf ("%1$d", i); /* { dg-warning "C" "printf $ format" } */ -+ /* The flag character I is a GNU extension. */ -+ printf ("%Id", i); /* { dg-warning "C" "printf I flag" } */ - } ---- gcc/testsuite/gcc.dg/format-xopen-1.c Mon Aug 21 17:53:50 2000 -+++ gcc/testsuite/gcc.dg/format-xopen-1.c Tue Aug 22 21:39:54 2000 -@@ -38,6 +38,7 @@ - printf ("% C", lc); /* { dg-warning "flag" "bad % C" } */ - printf ("%#C", lc); /* { dg-warning "flag" "bad %#C" } */ - printf ("%0C", lc); /* { dg-warning "flag" "bad %0C" } */ -+ printf ("%'C", lc); /* { dg-warning "flag" "bad %'C" } */ - printf ("%S", ls); - printf ("%3S", ls); - printf ("%.3S", ls); -@@ -54,6 +55,7 @@ - printf ("% S", ls); /* { dg-warning "flag" "bad % S" } */ - printf ("%#S", ls); /* { dg-warning "flag" "bad %#S" } */ - printf ("%0S", ls); /* { dg-warning "flag" "bad %0S" } */ -+ printf ("%'S", ls); /* { dg-warning "flag" "bad %'S" } */ - scanf ("%C", ls); - scanf ("%S", ls); - scanf ("%*C%*S"); ---- gcc/testsuite/gcc.dg/format-ext-1.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/format-ext-1.c Wed Aug 23 00:47:21 2000 -@@ -0,0 +1,120 @@ -+/* Test for format extensions beyond the C standard and X/Open standard. -+ Test for printf formats. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=gnu99 -Wformat" } */ -+ -+/* %q formats want a "quad"; GCC considers this to be a long long. */ -+typedef long long int quad_t; -+typedef unsigned long long int u_quad_t; -+ -+typedef __WCHAR_TYPE__ wchar_t; -+typedef __WINT_TYPE__ wint_t; -+typedef __SIZE_TYPE__ size_t; -+ -+extern int printf (const char *, ...); -+ -+void -+foo (quad_t q, u_quad_t uq, quad_t *qn, size_t z, size_t *zn, long long int ll, -+ unsigned long long int ull, int i, unsigned int u, double d, -+ char *s, void *p, wchar_t *ls, wint_t lc, int *n) -+{ -+ /* As an extension, GCC allows the BSD length "q" for integer formats. -+ This is largely obsoleted in C99 by %j, %ll and PRId64. -+ */ -+ printf ("%qd%qi%qo%qu%qx%qX%qn", q, q, uq, uq, uq, uq, qn); -+ printf ("%qf", d); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qF", d); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qe", d); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qE", d); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qg", d); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qG", d); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qa", d); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qA", d); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qc", i); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qs", s); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qp", p); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qC", lc); /* { dg-warning "length character" "bad use of %q" } */ -+ printf ("%qS", ls); /* { dg-warning "length character" "bad use of %q" } */ -+ /* With a bad length character GCC wants some argument, any argument, -+ to devour with the format conversion, as a synchronisation heuristic. -+ This may get improved later. -+ */ -+ printf ("%qm", i); /* { dg-warning "length character" "bad use of %q" } */ -+ /* As an extension, GCC allows the length "Z" as a synonym for "z". -+ This was an extension predating C99 which should now be considered -+ deprecated; use the standard "z" instead. -+ */ -+ printf ("%Zd%Zi%Zo%Zu%Zx%ZX", z, z, z, z, z, z); -+ printf ("%Zn", zn); -+ printf ("%Zf", d); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%ZF", d); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%Ze", d); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%ZE", d); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%Zg", d); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%ZG", d); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%Za", d); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%ZA", d); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%Zc", i); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%Zs", s); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%Zp", p); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%ZC", lc); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%ZS", ls); /* { dg-warning "length character" "bad use of %Z" } */ -+ printf ("%Zm", i); /* { dg-warning "length character" "bad use of %Z" } */ -+ /* As an extension, GCC allows the length "L" on integer formats -+ (but not %n) as a synonym for "ll". -+ This should be considered deprecated. -+ */ -+ printf ("%Ld%Li%Lo%Lu%Lx%LX", ll, ll, ull, ull, ull, ull); -+ /* As an extension, derived from syslog, GCC allows the conversion -+ specifier "m" for formatting strerror(errno). This may be used -+ with width, precision and the "-" flag, the same as %s. -+ */ -+ printf ("%m%3m%.4m%5.6m"); -+ printf ("%*m", i); -+ printf ("%.*m", i); -+ printf ("%*.*m", i, i); -+ printf ("%3.*m", i); -+ printf ("%*.4m", i); -+ printf ("%-m"); -+ printf ("%+m"); /* { dg-warning "flag" "bad %+m" } */ -+ printf ("% m"); /* { dg-warning "flag" "bad % m" } */ -+ printf ("%#m"); /* { dg-warning "flag" "bad %#m" } */ -+ printf ("%0m"); /* { dg-warning "flag" "bad %0m" } */ -+ printf ("%'m"); /* { dg-warning "flag" "bad %'m" } */ -+ printf ("%hm", i); /* { dg-warning "length character" "bad %hm" } */ -+ printf ("%hhm", i); /* { dg-warning "length character" "bad %hhm" } */ -+ printf ("%lm", i); /* { dg-warning "length character" "bad %lm" } */ -+ printf ("%llm", i); /* { dg-warning "length character" "bad %llm" } */ -+ printf ("%jm", i); /* { dg-warning "length character" "bad %jm" } */ -+ printf ("%zm", i); /* { dg-warning "length character" "bad %zm" } */ -+ printf ("%tm", i); /* { dg-warning "length character" "bad %tm" } */ -+ printf ("%Lm", i); /* { dg-warning "length character" "bad %Lm" } */ -+ printf ("%qm", i); /* { dg-warning "length character" "bad %qm" } */ -+ printf ("%Zm", i); /* { dg-warning "length character" "bad %Zm" } */ -+ /* As an extension, glibc includes the "I" flag for decimal integer -+ formats, to output using the locale's digits (e.g. in Arabic). -+ In GCC, we require this to be in the standard place for flags, though -+ glibc allows it also after width or precision. -+ */ -+ printf ("%Id%Ii%Iu", i, i, u); -+ printf ("%Io", u); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%Ix", u); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%IX", u); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%In", n); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%If", d); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%IF", d); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%Ie", d); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%IE", d); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%Ig", d); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%IG", d); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%Ia", d); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%IA", d); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%Ic", i); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%Is", s); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%Ip", p); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%IC", lc); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%IS", ls); /* { dg-warning "flag" "bad use of I flag" } */ -+ printf ("%Im"); /* { dg-warning "flag" "bad use of I flag" } */ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libg++-config.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libg++-config.patch deleted file mode 100644 index fb2f1d063fa2..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libg++-config.patch +++ /dev/null @@ -1,92 +0,0 @@ -2000-08-02 Manfred Hollstein <manfredh@redhat.com> - - * configure.in: Re-enable all references to libg++ and librx. - ---- configure.in.orig Mon Oct 30 14:27:46 2000 -+++ configure.in Mon Oct 30 14:28:43 2000 -@@ -68,7 +68,9 @@ host_tools="texinfo byacc flex bison bin - target_libs="target-libiberty \ - target-libgloss \ - target-newlib \ -+ target-librx \ - ${libstdcxx_version} \ -+ target-libg++ \ - target-libf2c \ - target-libchill \ - target-libffi \ -@@ -571,7 +573,7 @@ esac - - case "${target}" in - *-*-netware) -- noconfigdirs="$noconfigdirs ${libstdcxx_version} target-newlib target-libiberty target-libgloss target-libffi" -+ noconfigdirs="$noconfigdirs target-libg++ ${libstdcxx_version} target-librx target-newlib target-libiberty target-libgloss target-libffi" - ;; - *-*-rtems*) - noconfigdirs="$noconfigdirs target-libgloss target-libffi" -@@ -629,7 +631,7 @@ case "${target}" in - noconfigdirs="$noconfigdirs target-libgloss target-libffi" - ;; - c4x-*-*) -- noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi" -+ noconfigdirs="$noconfigdirs target-libg++ ${libstdcxx_version} target-librx target-libgloss target-libffi" - ;; - c54x*-*-* | tic54x-*-*) - noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi gcc gdb newlib" -@@ -662,7 +664,7 @@ case "${target}" in - noconfigdirs="$noconfigdirs ld target-libgloss target-libffi" - ;; - d10v-*-*) -- noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi" -+ noconfigdirs="$noconfigdirs target-librx target-libg++ ${libstdcxx_version} target-libgloss target-libffi" - ;; - d30v-*-*) - ;; -@@ -673,7 +675,7 @@ case "${target}" in - ;; - h8300*-*-* | \ - h8500-*-*) -- noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi" -+ noconfigdirs="$noconfigdirs target-libg++ ${libstdcxx_version} target-librx target-libgloss target-libffi" - ;; - hppa*-*-*elf* | \ - hppa*-*-linux-gnu* | \ -@@ -702,7 +704,11 @@ case "${target}" in - ;; - i[3456]86-*-go32* | i[3456]-*-msdosdjgpp*) - # but don't build gdb -- noconfigdirs="$noconfigdirs gdb ${libstdcxx_version} target-libffi" -+ noconfigdirs="$noconfigdirs gdb target-libg++ ${libstdcxx_version} target-librx target-libffi" -+ ;; -+ *-*-linux*) -+ # linux has rx in libc -+ skipdirs="$skipdirs target-librx" - ;; - i[3456]86-*-mingw32*) - target_configdirs="$target_configdirs target-mingw" -@@ -729,7 +735,7 @@ case "${target}" in - esac - ;; - i[3456]86-*-pe) -- noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi" -+ noconfigdirs="$noconfigdirs target-libg++ ${libstdcxx_version} target-librx target-libgloss target-libffi" - ;; - i[3456]86-*-sco3.2v5*) - # The linker does not yet know about weak symbols in COFF, -@@ -881,7 +887,7 @@ case "${target}" in - fi - ;; - v810-*-*) -- noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld ${libstdcxx_version} opcodes target-libgloss target-libffi" -+ noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libg++ ${libstdcxx_version} opcodes target-libgloss target-libffi" - ;; - v850-*-*) - noconfigdirs="$noconfigdirs target-libgloss target-libffi" -@@ -1192,7 +1198,7 @@ fi - - # provide a proper gxx_include_dir. - # Note, if you change the default, make sure to fix both here and in --# the gcc, libio, and libstdc++ subdirectories. -+# the gcc, libio, libstdc++ and libg++ subdirectories. - # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. - gxx_include_dir= - if test -n "${with_gxx_include_dir}"; then diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libio-endl.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libio-endl.patch deleted file mode 100644 index 55e02e60f630..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libio-endl.patch +++ /dev/null @@ -1,35 +0,0 @@ -2000-10-18 Jakub Jelinek <jakub@redhat.com> - - * iostream.cc (ends): Release the acquired lock. - (endl): Likewise. - ---- libio/iostream.cc.jj Wed Oct 11 10:04:22 2000 -+++ libio/iostream.cc Wed Oct 18 17:18:34 2000 -@@ -965,15 +965,25 @@ int istream::_skip_ws() - - ostream& ends(ostream& outs) - { -- if (outs.opfx()) -+ if (outs.opfx()) { -+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, -+ outs._strbuf); - outs.put('\0'); -+ outs.osfx(); -+ _IO_cleanup_region_end (0); -+ } - return outs; - } - - ostream& endl(ostream& outs) - { -- if (outs.opfx()) -+ if (outs.opfx()) { -+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, -+ outs._strbuf); - flush(outs.put('\n')); -+ outs.osfx(); -+ _IO_cleanup_region_end (0); -+ } - return outs; - } - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libio-printf_fp.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libio-printf_fp.patch deleted file mode 100644 index e91f05b67359..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libio-printf_fp.patch +++ /dev/null @@ -1,38 +0,0 @@ -2000-10-11 Jakub Jelinek <jakub@redhat.com> - - * iostream.cc (ostream::operator<<(double n)) [__GLIBC_MINOR__ >= 2]: - Initialize new fields wide and i18n of struct printf_info. - (ostream::operator<<(long double n)) [__GLIBC_MINOR__ >= 2]: - Likewise. - ---- libio/iostream.cc.jj Wed May 24 09:06:07 2000 -+++ libio/iostream.cc Wed Oct 11 10:04:22 2000 -@@ -1,5 +1,5 @@ - /* This is part of libio/iostream, providing -*- C++ -*- input/output. -- Copyright (C) 1993, 1997 Free Software Foundation, Inc. -+ 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 -@@ -687,6 +687,10 @@ ostream& ostream::operator<<(double n) - /* extra: */ 0, - #if __GLIBC_MINOR__ >= 1 - /* is_char: */ 0, -+#if __GLIBC_MINOR__ >= 2 -+ /* wide: */ 0, -+ /* i18n: */ 0, -+#endif - #endif - #endif - /* pad: */ fill() -@@ -793,6 +797,10 @@ ostream& ostream::operator<<(long double - /* extra: */ 0, - #if __GLIBC_MINOR__ >= 1 - /* is_char: */ 0, -+#if __GLIBC_MINOR__ >= 2 -+ /* wide: */ 0, -+ /* i18n: */ 0, -+#endif - #endif - #endif - /* pad: */ fill() diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libio.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libio.patch deleted file mode 100644 index 8fcba4b79337..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libio.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- libio/libio.h Wed Aug 16 08:38:10 2000 -+++ libio/libio.h Mon Sep 11 08:43:14 2000 -@@ -133,6 +133,7 @@ - #define _IO_IS_APPENDING 0x1000 - #define _IO_IS_FILEBUF 0x2000 - #define _IO_BAD_SEEN 0x4000 -+#define _IO_USER_LOCK 0x8000 - - /* These are "formatting flags" matching the iostream fmtflags enum values. */ - #define _IO_SKIPWS 01 -@@ -441,6 +442,10 @@ - - #ifdef _IO_MTSAFE_IO - # define _IO_peekc(_fp) _IO_peekc_locked (_fp) -+# define _IO_flockfile(_fp) \ -+ if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_flockfile (_fp) -+# define _IO_funlockfile(_fp) \ -+ if (((_fp)->_flags & _IO_USER_LOCK) == 0) _IO_funlockfile (_fp) - #else - # define _IO_peekc(_fp) _IO_peekc_unlocked (_fp) - # define _IO_flockfile(_fp) /**/ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libstdc++-v3-wnoerror.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libstdc++-v3-wnoerror.patch deleted file mode 100644 index 21c40dfb0246..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-libstdc++-v3-wnoerror.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- libstdc++-v3/acinclude.m4.jj Mon Jul 10 02:08:44 2000 -+++ libstdc++-v3/acinclude.m4 Tue Jul 11 15:18:48 2000 -@@ -191,7 +191,7 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES - AC_LANG_CPLUSPLUS - ac_test_CXXFLAGS="${CXXFLAGS+set}" - ac_save_CXXFLAGS="$CXXFLAGS" -- WERROR='-Werror' -+ WERROR='' - - # Check for pragma system_header. - AC_MSG_CHECKING([for g++ that supports pragma system_header]) ---- libstdc++-v3/aclocal.m4.jj Mon Jul 10 02:08:44 2000 -+++ libstdc++-v3/aclocal.m4 Tue Jul 11 15:19:05 2000 -@@ -203,7 +203,7 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES - AC_LANG_CPLUSPLUS - ac_test_CXXFLAGS="${CXXFLAGS+set}" - ac_save_CXXFLAGS="$CXXFLAGS" -- WERROR='-Werror' -+ WERROR='' - - # Check for pragma system_header. - AC_MSG_CHECKING([for g++ that supports pragma system_header]) ---- libstdc++-v3/configure.jj Mon Jul 10 02:08:45 2000 -+++ libstdc++-v3/configure Tue Jul 11 15:22:19 2000 -@@ -2804,7 +2804,7 @@ cross_compiling=$ac_cv_prog_cxx_cross - - ac_test_CXXFLAGS="${CXXFLAGS+set}" - ac_save_CXXFLAGS="$CXXFLAGS" -- WERROR='-Werror' -+ WERROR='' - - # Check for pragma system_header. - echo $ac_n "checking for g++ that supports pragma system_header""... $ac_c" 1>&6 diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-giv.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-giv.patch deleted file mode 100644 index f5a7479330af..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-giv.patch +++ /dev/null @@ -1,45 +0,0 @@ -2000-09-28 Jose Luu <jluu@mainsoft.com> - Franz Sirl <Franz.Sirl-kernel@lauterbach.com> - - * loop.c (check_final_value): A GIV is not replaceable if used before the - set. - ---- gcc/loop.c.jj Wed Oct 4 18:49:29 2000 -+++ gcc/loop.c Thu Oct 5 06:19:39 2000 -@@ -5692,6 +5692,7 @@ check_final_value (loop, v) - or all uses follow that insn in the same basic block), - - its final value can be calculated (this condition is different - than the one above in record_giv) -+ - it's not used before it's set - - no assignments to the biv occur during the giv's lifetime. */ - - #if 0 -@@ -5703,7 +5704,7 @@ check_final_value (loop, v) - if ((final_value = final_giv_value (loop, v)) - && (v->always_computable || last_use_this_basic_block (v->dest_reg, v->insn))) - { -- int biv_increment_seen = 0; -+ int biv_increment_seen = 0, before_giv_insn = 0; - rtx p = v->insn; - rtx last_giv_use; - -@@ -5733,14 +5734,17 @@ check_final_value (loop, v) - { - p = NEXT_INSN (p); - if (p == loop->end) -- p = NEXT_INSN (loop->start); -+ { -+ before_giv_insn = 1; -+ p = NEXT_INSN (loop->start); -+ } - if (p == v->insn) - break; - - if (GET_CODE (p) == INSN || GET_CODE (p) == JUMP_INSN - || GET_CODE (p) == CALL_INSN) - { -- if (biv_increment_seen) -+ if (biv_increment_seen || before_giv_insn) - { - if (reg_mentioned_p (v->dest_reg, PATTERN (p))) - { diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-hack.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-hack.patch deleted file mode 100644 index 33ab22069f53..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-hack.patch +++ /dev/null @@ -1,63 +0,0 @@ -As I'm not sure whether http://gcc.gnu.org/ml/gcc-patches/2000-08/msg00843.html -is ok, I'm taking the safe way and don't allow any sequences containing -eh notes to be moved out of the loop. - ---- gcc/rtlanal.c.jj Mon Aug 21 18:27:34 2000 -+++ gcc/rtlanal.c Wed Aug 23 16:31:13 2000 -@@ -2420,8 +2420,6 @@ insns_safe_to_move_p (from, to, new_to) - rtx to; - rtx *new_to; - { -- int eh_region_count = 0; -- int past_to_p = 0; - rtx r = from; - - /* By default, assume the end of the region will be what was -@@ -2436,45 +2434,16 @@ insns_safe_to_move_p (from, to, new_to) - switch (NOTE_LINE_NUMBER (r)) - { - case NOTE_INSN_EH_REGION_BEG: -- ++eh_region_count; -- break; -- - case NOTE_INSN_EH_REGION_END: -- if (eh_region_count == 0) -- /* This sequence of instructions contains the end of -- an exception region, but not he beginning. Moving -- it will cause chaos. */ -- return 0; -- -- --eh_region_count; -- break; -+ return 0; - - default: - break; - } - } -- else if (past_to_p) -- /* If we've passed TO, and we see a non-note instruction, we -- can't extend the sequence to a movable sequence. */ -- return 0; - - if (r == to) -- { -- if (!new_to) -- /* It's OK to move the sequence if there were matched sets of -- exception region notes. */ -- return eh_region_count == 0; -- -- past_to_p = 1; -- } -- -- /* It's OK to move the sequence if there were matched sets of -- exception region notes. */ -- if (past_to_p && eh_region_count == 0) -- { -- *new_to = r; -- return 1; -- } -+ return 1; - - /* Go to the next instruction. */ - r = NEXT_INSN (r); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-noopt.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-noopt.patch deleted file mode 100644 index 20c964f0e435..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-noopt.patch +++ /dev/null @@ -1,40 +0,0 @@ -2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk> - - * loop.c: Temporarily disable some optimizations. - ---- gcc/loop.c.baseline Sat Jul 29 14:38:22 2000 -+++ gcc/loop.c Tue Aug 1 16:17:52 2000 -@@ -2547,6 +2547,10 @@ - { - rtx insn; - -+ /* Temporarily disable this optimization. */ -+ loop->cont_dominator = 0; -+ return; -+ - if (! loop->cont_dominator) - /* This can happen for an empty loop, e.g. in - gcc.c-torture/compile/920410-2.c */ -@@ -4159,7 +4163,8 @@ - /* If the loop contains volatile memory references do not allow any - replacements to take place, since this could loose the volatile - markers. */ -- if (n_extra_increment && ! loop_info->has_volatile) -+ /* Temporarily disabled. */ -+ if (0 && n_extra_increment && ! loop_info->has_volatile) - { - unsigned int nregs = first_increment_giv + n_extra_increment; - -@@ -4626,8 +4636,10 @@ - VARRAY_GROW (reg_iv_type, nregs); - VARRAY_GROW (reg_iv_info, nregs); - } -+ /* Temporarily disabled. */ -+#if 0 - recombine_givs (loop, bl, flags & LOOP_UNROLL); -- -+#endif - /* Reduce each giv that we decided to reduce. */ - - for (v = bl->giv; v; v = v->next_iv) - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-noopt2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-noopt2.patch deleted file mode 100644 index 4f01ef897744..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-noopt2.patch +++ /dev/null @@ -1,27 +0,0 @@ -2000-08-02 Bernd Schmidt <bernds@cygnus.co.uk> - - * loop.c (maybe_eliminate_biv_1): Turn off yet another case. - ---- gcc/loop.c.baseline Sat Jul 29 14:38:22 2000 -+++ gcc/loop.c Wed Aug 2 17:21:44 2000 -@@ -8625,7 +8622,8 @@ - { - /* First try to replace with any giv that has constant positive - mult_val and constant add_val. We might be able to support -- negative mult_val, but it seems complex to do it in general. */ -+ negative mult_val, but it seems complex to do it in general. -+ ??? Turn this off due to possible overflow. */ - - for (v = bl->giv; v; v = v->next_iv) - if (GET_CODE (v->mult_val) == CONST_INT && INTVAL (v->mult_val) > 0 -@@ -8635,7 +8633,8 @@ - || (GET_CODE (v->add_val) == REG - && REGNO_POINTER_FLAG (REGNO (v->add_val)))) - && ! v->ignore && ! v->maybe_dead && v->always_computable -- && v->mode == mode) -+ && v->mode == mode -+ && 0) - { - if (! biv_elimination_giv_has_0_offset (bl->biv, v, insn)) - continue; - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-scanloop.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-scanloop.patch deleted file mode 100644 index b9cb8256e91e..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-scanloop.patch +++ /dev/null @@ -1,27 +0,0 @@ -2000-08-01 Jakub Jelinek <jakub@redhat.com> - - * loop.c (scan_loop): Ensure update_end label does not - go away until reg_scan_update is run. - ---- gcc/loop.c.jj Tue Aug 1 15:42:24 2000 -+++ gcc/loop.c Tue Aug 1 17:56:58 2000 -@@ -1131,11 +1131,19 @@ scan_loop (loop, flags) - - if (flag_strength_reduce) - { -+ if (update_end && GET_CODE (update_end) == CODE_LABEL) -+ /* Ensure our label doesn't go away. */ -+ LABEL_NUSES (update_end)++; -+ - the_movables = movables; - strength_reduce (loop, insn_count, flags); - - reg_scan_update (update_start, update_end, loop_max_reg); - loop_max_reg = max_reg_num (); -+ -+ if (update_end && GET_CODE (update_end) == CODE_LABEL -+ && --LABEL_NUSES (update_end) == 0) -+ delete_insn (update_end); - } - - VARRAY_FREE (reg_single_usage); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-test1.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-test1.patch deleted file mode 100644 index 59174e9bd28c..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-test1.patch +++ /dev/null @@ -1,46 +0,0 @@ -2000-08-01 Jakub Jelinek <jakub@redhat.com> - - * gcc.c-torture/execute/20000801-1.c: New test. - ---- gcc/testsuite/gcc.c-torture/execute/20000801-1.c.jj Tue Aug 1 12:44:09 2000 -+++ gcc/testsuite/gcc.c-torture/execute/20000801-1.c Tue Aug 1 12:16:04 2000 -@@ -0,0 +1,39 @@ -+extern void abort(void); -+extern void exit(int); -+ -+void -+foo (char *bp, unsigned n) -+{ -+ register char c; -+ register char *ep = bp + n; -+ register char *sp; -+ -+ while (bp < ep) -+ { -+ sp = bp + 3; -+ c = *sp; -+ *sp = *bp; -+ *bp++ = c; -+ sp = bp + 1; -+ c = *sp; -+ *sp = *bp; -+ *bp++ = c; -+ bp += 2; -+ } -+} -+ -+int main(void) -+{ -+ int one = 1; -+ -+ if (sizeof(int) != 4 * sizeof(char)) -+ exit(0); -+ -+ foo((char *)&one, sizeof(one)); -+ foo((char *)&one, sizeof(one)); -+ -+ if (one != 1) -+ abort(); -+ -+ exit(0); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-test2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-test2.patch deleted file mode 100644 index 7d0d110cd299..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-test2.patch +++ /dev/null @@ -1,47 +0,0 @@ -2000-08-01 Jakub Jelinek <jakub@redhat.com> - - * gcc.c-torture/execute/20000801-2.c: New test. - ---- gcc/testsuite/gcc.c-torture/execute/20000801-2.c.jj Tue Aug 1 15:30:24 2000 -+++ gcc/testsuite/gcc.c-torture/execute/20000801-2.c Tue Aug 1 15:30:14 2000 -@@ -0,0 +1,40 @@ -+extern void abort(void); -+extern void exit(int); -+int bar(void); -+int baz(void); -+ -+struct foo { -+ struct foo *next; -+}; -+ -+struct foo *test(struct foo *node) -+{ -+ while (node) { -+ if (bar() && !baz()) -+ break; -+ node = node->next; -+ } -+ return node; -+} -+ -+int bar (void) -+{ -+ return 0; -+} -+ -+int baz (void) -+{ -+ return 0; -+} -+ -+int main(void) -+{ -+ struct foo a, b, *c; -+ -+ a.next = &b; -+ b.next = (struct foo *)0; -+ c = test(&a); -+ if (c) -+ abort(); -+ exit (0); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-unroll.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-unroll.patch deleted file mode 100644 index a59359d9f936..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop-unroll.patch +++ /dev/null @@ -1,38 +0,0 @@ -2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk> - - * unroll.c (unroll_loop): Disable unrolling if there are any - jumps to the start label other than the last loop insn. - -*** gcc/unroll.c 2000/05/26 00:12:51 1.128 ---- gcc/unroll.c 2000/08/01 15:15:34 -*************** unroll_loop (loop, insn_count, end_inser -*** 743,751 **** - else if (GET_CODE (insn) == JUMP_INSN) - { - if (JUMP_LABEL (insn)) -! set_label_in_map (map, -! CODE_LABEL_NUMBER (JUMP_LABEL (insn)), -! JUMP_LABEL (insn)); - else if (GET_CODE (PATTERN (insn)) == ADDR_VEC - || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC) - { ---- 743,760 ---- - else if (GET_CODE (insn) == JUMP_INSN) - { - if (JUMP_LABEL (insn)) -! { -! if (insn != last_loop_insn && JUMP_LABEL (insn) == start_label) -! { -! if (loop_dump_stream) -! fprintf (loop_dump_stream, -! "Unrolling failure: found branch to loop start\n"); -! return; -! } -! set_label_in_map (map, -! CODE_LABEL_NUMBER (JUMP_LABEL (insn)), -! JUMP_LABEL (insn)); -! } - else if (GET_CODE (PATTERN (insn)) == ADDR_VEC - || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC) - { - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop.patch deleted file mode 100644 index 1da5920429f9..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-loop.patch +++ /dev/null @@ -1,36 +0,0 @@ -2000-06-29 Jakub Jelinek <jakub@redhat.com> - - * loop.c (strength_reduce): Allow line NOTEs in the chain. - - * gcc.dg/20000629-1.c: New test. - ---- gcc/testsuite/gcc.dg/20000629-1.c.jj Thu Jun 29 11:45:49 2000 -+++ gcc/testsuite/gcc.dg/20000629-1.c Thu Jun 29 11:46:07 2000 -@@ -0,0 +1,13 @@ -+/* { dg-do compile } */ -+/* { dg-options "-O2 -g" } */ -+ -+void foo(register char *p) -+{ -+ char c, *q, *sp; -+ while (1) { -+ *p++=0; -+ sp=p+1; -+ c=*sp; -+ *p++=0; -+ } -+} ---- gcc/loop.c.jj Fri Jun 16 13:10:29 2000 -+++ gcc/loop.c Thu Jun 29 11:44:33 2000 -@@ -4249,8 +4249,9 @@ strength_reduce (loop, insn_count, flags - /* Some bivs are incremented with a multi-insn sequence. - The first insn contains the add. */ - next_loc_insn = next->insn; -- while (! loc_mentioned_in_p (next->location, -- PATTERN (next_loc_insn))) -+ while (! INSN_P (next_loc_insn) -+ || ! loc_mentioned_in_p (next->location, -+ PATTERN (next_loc_insn))) - next_loc_insn = PREV_INSN (next_loc_insn); - - if (next_loc_insn == v->insn) diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-lowpart-test.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-lowpart-test.patch deleted file mode 100644 index d999f7475ebe..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-lowpart-test.patch +++ /dev/null @@ -1,22 +0,0 @@ -2000-08-02 Jakub Jelinek <jakub@redhat.com> - - * gcc.c-torture/compile/20000802-1.c: New test. - ---- gcc/testsuite/gcc.c-torture/compile/20000802-1.c.jj Wed Aug 2 20:20:24 2000 -+++ gcc/testsuite/gcc.c-torture/compile/20000802-1.c Wed Aug 2 20:20:43 2000 -@@ -0,0 +1,15 @@ -+struct foo { -+ char a[3]; -+ char b; -+ char c; -+}; -+ -+struct foo bs; -+int x; -+char y[3]; -+ -+void bar(void) -+{ -+ memcpy(bs.a, y, 3); -+ bs.a[1] = ((x ? &bs.b : &bs.c) - (char *)&bs) - 2; -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-make-extraction.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-make-extraction.patch deleted file mode 100644 index 66eb6d34892a..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-make-extraction.patch +++ /dev/null @@ -1,29 +0,0 @@ -Sat Aug 26 14:38:22 CEST 2000 Jan Hubicka <jh@suse.cz> - - * combine.c (make_extraction): Fix rtx_cost comparison to - match the comment. - -*** gcc/combine.c.jj Sat Aug 26 11:41:35 2000 ---- gcc/combine.c Sat Aug 26 14:36:38 2000 -*************** make_extraction (mode, inner, pos, pos_r -*** 6000,6008 **** - rtx temp = gen_rtx_ZERO_EXTEND (mode, new); - rtx temp1 = gen_rtx_SIGN_EXTEND (mode, new); - -! /* Prefer ZERO_EXTENSION, since it gives more information to - backends. */ -! if (rtx_cost (temp, SET) < rtx_cost (temp1, SET)) - return temp; - return temp1; - } ---- 6000,6008 ---- - rtx temp = gen_rtx_ZERO_EXTEND (mode, new); - rtx temp1 = gen_rtx_SIGN_EXTEND (mode, new); - -! /* Prefer ZERO_EXTENSION, since it gives more information to - backends. */ -! if (rtx_cost (temp, SET) <= rtx_cost (temp1, SET)) - return temp; - return temp1; - } - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-new-abi.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-new-abi.patch deleted file mode 100644 index fb88185e76a0..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-new-abi.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- gcc/cp/decl2.c.jj Mon Jul 10 03:43:58 2000 -+++ gcc/cp/decl2.c Tue Jul 11 11:56:12 2000 -@@ -227,7 +227,7 @@ int warn_ctor_dtor_privacy = 1; - #ifndef DEFAULT_VTABLE_THUNKS - #define DEFAULT_VTABLE_THUNKS 0 - #endif --int flag_vtable_thunks = DEFAULT_VTABLE_THUNKS; -+int flag_vtable_thunks = 1; - - /* Nonzero means generate separate instantiation control files and juggle - them at link time. */ -@@ -445,7 +445,7 @@ int flag_weak = 1; - - /* Nonzero to enable experimental ABI changes. */ - --int flag_new_abi; -+int flag_new_abi = 1; - - /* Nonzero to use __cxa_atexit, rather than atexit, to register - destructors for local statics and global objects. */ -@@ -478,7 +478,7 @@ int flag_short_wchar; - /* Nonzero if squashed mangling is to be performed. - This uses the B and K codes to reference previously seen class types - and class qualifiers. */ --int flag_do_squangling; -+int flag_do_squangling = 1; - - /* Nonzero means output .vtable_{entry,inherit} for use in doing vtable gc. */ - ---- gcc/cp/lang-specs.h.jj Fri Apr 7 17:02:30 2000 -+++ gcc/cp/lang-specs.h Tue Jul 11 13:24:15 2000 -@@ -51,7 +51,7 @@ Boston, MA 02111-1307, USA. */ - -D__cplusplus\ - %{ansi:-trigraphs -D__STRICT_ANSI__} %{!undef:%{!ansi:%p} %P}\ - %{!fno-exceptions:-D__EXCEPTIONS}\ -- %{fnew-abi:-D__GXX_ABI_VERSION=100}\ -+ %{!fno-new-abi:-D__GXX_ABI_VERSION=100}\ - %c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}}\ - %{ffast-math:-D__FAST_MATH__}\ - %{fshort-wchar:-D__WCHAR_TYPE__=short\\ unsigned\\ int}\ -@@ -74,7 +74,7 @@ Boston, MA 02111-1307, USA. */ - -D__GNUC_PATCHLEVEL__=%v3} -D__cplusplus\ - %{ansi:-trigraphs -D__STRICT_ANSI__} %{!undef:%{!ansi:%p} %P}\ - %{!fno-exceptions:-D__EXCEPTIONS}\ -- %{fnew-abi:-D__GXX_ABI_VERSION=100}\ -+ %{!fno-new-abi:-D__GXX_ABI_VERSION=100}\ - %c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}} %{trigraphs}\ - %{ffast-math:-D__FAST_MATH__}\ - %{fshort-wchar:-D__WCHAR_TYPE__=short\\ unsigned\\ int}\ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-no-warn-trigraphs.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-no-warn-trigraphs.patch deleted file mode 100644 index 15ebb3586d44..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-no-warn-trigraphs.patch +++ /dev/null @@ -1,16 +0,0 @@ -Don't warn about trigraphs unless trigraphs are actually converted. -This hack should be removed as soon as cpp does not put this warning if -inside comments. - ---- gcc/cpplex.c.jj Thu Jun 22 23:09:25 2000 -+++ gcc/cpplex.c Thu Jun 22 23:10:13 2000 -@@ -734,9 +734,6 @@ trigraph_ok (pfile, end) - cpp_warning_with_line (pfile, pfile->buffer->lineno, col, - "trigraph ??%c converted to %c", - (int) *end, (int) trigraph_map[*end]); -- else -- cpp_warning_with_line (pfile, pfile->buffer->lineno, col, -- "trigraph ??%c ignored", (int) *end); - } - return accept; - } diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-place-field.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-place-field.patch deleted file mode 100644 index 3d63fc9f4a11..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-place-field.patch +++ /dev/null @@ -1,17 +0,0 @@ -Sat Sep 16 14:35:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> - - * stor-layout.c (place_field): Don't do anything if field or - its type are ERROR_MARK. - ---- gcc/stor-layout.c 2000/08/29 21:39:45 1.83 -+++ gcc/stor-layout.c 2000/09/16 18:31:00 1.84 -@@ -638,6 +638,9 @@ place_field (rli, field) - /* The type of this field. */ - tree type = TREE_TYPE (field); - -+ if (TREE_CODE (field) == ERROR_MARK || TREE_CODE (type) == ERROR_MARK) -+ return; -+ - /* If FIELD is static, then treat it like a separate variable, not - really like a structure field. If it is a FUNCTION_DECL, it's a - method. In both cases, all we do is lay out the decl, and we do diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-pt-enum.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-pt-enum.patch deleted file mode 100644 index 43c2544252c9..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-pt-enum.patch +++ /dev/null @@ -1,81 +0,0 @@ -2000-10-06 Nathan Sidwell <nathan@codesourcery.com> - - * pt.c (lookup_template_class): Set current access for enum. - (tsubst_enum): Set file & line for enum decl. - - * g++.old-deja/g++.pt/enum14.C: New test. - -*** gcc/cp/pt.c 2000/10/05 08:31:15 1.469 ---- gcc/cp/pt.c 2000/10/06 09:02:18 -*************** lookup_template_class (d1, arglist, in_d -*** 3965,3971 **** - if (TREE_CODE (template_type) == ENUMERAL_TYPE) - { - if (!is_partial_instantiation) -! t = start_enum (TYPE_IDENTIFIER (template_type)); - else - /* We don't want to call start_enum for this type, since - the values for the enumeration constants may involve ---- 3965,3974 ---- - if (TREE_CODE (template_type) == ENUMERAL_TYPE) - { - if (!is_partial_instantiation) -! { -! set_current_access_from_decl (TYPE_NAME (template_type)); -! t = start_enum (TYPE_IDENTIFIER (template_type)); -! } - else - /* We don't want to call start_enum for this type, since - the values for the enumeration constants may involve -*************** tsubst_enum (tag, newtag, args) -*** 9941,9946 **** ---- 9944,9951 ---- - } - - finish_enum (newtag); -+ DECL_SOURCE_LINE (TYPE_NAME (newtag)) = DECL_SOURCE_LINE (TYPE_NAME (tag)); -+ DECL_SOURCE_FILE (TYPE_NAME (newtag)) = DECL_SOURCE_FILE (TYPE_NAME (tag)); - } - - /* DECL is a FUNCTION_DECL that is a template specialization. Return -*** gcc/testsuite/g++.old-deja/g++.pt/enum14.C Thu Aug 24 11:00:32 2000 ---- gcc/testsuite/g++.old-deja/g++.pt/enum14.C Tue Oct 10 18:23:22 2000 -*************** -*** 0 **** ---- 1,36 ---- -+ // Build don't link: -+ // Copyright (C) 2000 Free Software Foundation, Inc. -+ // Contributed by Nathan Sidwell 4 Oct 2000 <nathan@codesourcery.com> -+ // Origin: bug 511 malte.starostik@t-online.de -+ -+ // Bug 511. We failed to set access correctly for enumeration members of -+ // template classes -+ -+ template <class> -+ class A -+ { -+ public: -+ enum foo {bar}; -+ typedef int baz; -+ }; -+ -+ struct C: public A<int> -+ { -+ void choke (foo); -+ void choke (baz); -+ }; -+ -+ template <class> -+ struct B -+ { -+ private: -+ enum foo {bar}; // ERROR - private -+ typedef int baz; // ERROR - private -+ }; -+ -+ struct D: public B<int> -+ { -+ void choke (foo); // ERROR - within this context -+ void choke (baz); // ERROR - within this context -+ }; -+ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-real-value.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-real-value.patch deleted file mode 100644 index d2857a16c8c7..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-real-value.patch +++ /dev/null @@ -1,65 +0,0 @@ -2000-10-04 Jakub Jelinek <jakub@redhat.com> - - * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion - from float to integral mode with HOST_BITS_PER_WIDE_INT 64. - * dwarf2out.c (add_const_value_attribute): Divide by 4, not - sizeof(long). - ---- gcc/emit-rtl.c.jj Fri Sep 15 16:46:31 2000 -+++ gcc/emit-rtl.c Wed Oct 4 18:03:18 2000 -@@ -1055,10 +1055,12 @@ gen_lowpart_common (mode, x) - break; - #if LONG_DOUBLE_TYPE_SIZE == 96 - case XFmode: -+ REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, i + endian); -+ i[3-3*endian] = 0; - #else - case TFmode: --#endif - REAL_VALUE_TO_TARGET_LONG_DOUBLE (r, i); -+#endif - break; - default: - abort(); -@@ -1071,14 +1073,24 @@ gen_lowpart_common (mode, x) - #else - if (HOST_BITS_PER_WIDE_INT != 64) - abort(); -+ - for (c = 0; c < 4; c++) - i[c] &= 0xffffffffL; -- -- return immed_double_const (i[endian*3] | -- (((HOST_WIDE_INT) i[1+endian]) << 32), -- i[2-endian] | -- (((HOST_WIDE_INT) i[3-endian*3]) << 32), -- mode); -+ -+ switch (GET_MODE (x)) -+ { -+ case SFmode: -+ case DFmode: -+ return immed_double_const (((unsigned long) i[endian]) | -+ (((HOST_WIDE_INT) i[1-endian]) << 32), -+ 0, mode); -+ default: -+ return immed_double_const (((unsigned long) i[endian*3]) | -+ (((HOST_WIDE_INT) i[1+endian]) << 32), -+ ((unsigned long) i[2-endian]) | -+ (((HOST_WIDE_INT) i[3-endian*3]) << 32), -+ mode); -+ } - #endif - } - #endif /* ifndef REAL_ARITHMETIC */ ---- gcc/dwarf2out.c.jj Fri Sep 15 16:46:31 2000 -+++ gcc/dwarf2out.c Wed Oct 4 17:51:48 2000 -@@ -7116,7 +7116,7 @@ add_const_value_attribute (die, rtl) - - if (GET_MODE_CLASS (mode) == MODE_FLOAT) - { -- register unsigned length = GET_MODE_SIZE (mode) / sizeof (long); -+ register unsigned length = GET_MODE_SIZE (mode) / 4; - long array[4]; - REAL_VALUE_TYPE rv; - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-regmove-asm.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-regmove-asm.patch deleted file mode 100644 index 4e08d1865f33..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-regmove-asm.patch +++ /dev/null @@ -1,92 +0,0 @@ -2000-07-25 Jakub Jelinek <jakub@redhat.com> - - * regmove.c (combine_stack_adjustments_for_block): Don't - merge stack adjustements accross ASM_OPERANDS. - - * gcc.dg/20000724-1.c: New test. - ---- gcc/regmove.c.jj Mon Jul 24 11:54:38 2000 -+++ gcc/regmove.c Tue Jul 25 00:05:00 2000 -@@ -2328,6 +2328,16 @@ combine_stack_adjustments_for_block (bb) - if (! INSN_P (insn)) - goto processed; - -+ if (asm_noperands (PATTERN (insn)) >= 0) -+ { -+ /* Asm might be given just a pointer to some local stack area. */ -+ free_csa_memlist (memlist); -+ memlist = NULL; -+ last_sp_set = NULL_RTX; -+ last_sp_adjust = 0; -+ goto processed; -+ } -+ - set = single_set_for_csa (insn); - if (set) - { ---- gcc/testsuite/gcc.dg/20000724-1.c.jj Mon Jul 24 19:50:46 2000 -+++ gcc/testsuite/gcc.dg/20000724-1.c Mon Jul 24 18:06:54 2000 -@@ -0,0 +1,63 @@ -+/* { dg-do run { target i?86-*-linux* } } */ -+/* { dg-options "-O2 -fomit-frame-pointer" } */ -+ -+extern void abort (void); -+extern void exit (int); -+ -+struct s { -+ struct { int a; } a; -+ int b; -+ struct { struct { int a; } a; struct t { struct t *a, *b; } b; } c; -+}; -+ -+int bar(int (*fn)(void *), void *arg, unsigned long flags) -+{ -+ return 0; -+} -+ -+int baz(void *x) -+{ -+ return 0; -+} -+ -+void do_check (struct s *) asm ("do_check") __attribute__((regparm(1))); -+ -+void do_check(struct s *x) -+{ -+ if (x->a.a || x->b || x->c.a.a) -+ abort(); -+ if (x->c.b.a != &x->c.b || x->c.b.b != &x->c.b) -+ abort(); -+} -+ -+asm (" -+___checkme: -+ pushl %eax; pushl %ebx; pushl %ecx; pushl %edx; pushl %esi; pushl %edi; pushl $0; pushl $0 -+ pushl $0; pushl $0; pushl $0; pushl $0; pushl $0; pushl $0; pushl $0; pushl $0 -+ movl %ecx, %eax -+ call do_check -+ popl %eax; popl %eax; popl %eax; popl %eax; popl %eax; popl %eax; popl %eax; popl %eax -+ popl %eax; popl %eax; popl %edi; popl %esi; popl %edx; popl %ecx; popl %ebx; popl %eax -+ ret -+"); -+ -+extern inline void do_asm(struct s * x) -+{ -+ asm volatile("call ___checkme" : : "c" (x) : "memory"); -+} -+ -+int foo(void) -+{ -+ struct s x = { { 0 }, 0, { { 0 }, { &x.c.b, &x.c.b } } }; -+ bar(baz, &x, 1); -+ do_asm(&x); -+ bar(baz, &x, 1); -+ do_asm(&x); -+ return 0; -+} -+ -+int main() -+{ -+ foo(); -+ exit(0); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-relational.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-relational.patch deleted file mode 100644 index 1d67da85c892..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-relational.patch +++ /dev/null @@ -1,738 +0,0 @@ -Thu Aug 3 20:18:53 MET DST 2000 Jan Hubicka <jh@suse.cz> - - * combine.c (gen_binary): Refuse relational operations. - (gen_relational): New - (combine_splify_rtx): Keep track of mode of the comparsion, - avoid creating VOIDmode comparisons. - (simplify_if_then_else): Use gen_relational at the place - we create relational operations. - (simplify_set): Avoid creating of VOIDmode compares. - (if_then_else_cond): Keep track of the comparison mode. - (simplify_comparison): New parameter pmode, update it when - mode has changed. - * recog.c (validate_replace_rtx_1): Simplify relational - operations, avoid VOIDmode compares. - * simplify-rtx.c (simplify_relational_operation): Require - mode to be valid; get valid mode from the COMPARE - expression; strip down the CONST. - ---- gcc/recog.c.jj Wed Aug 2 21:34:09 2000 -+++ gcc/recog.c Fri Aug 18 15:26:59 2000 -@@ -456,12 +456,45 @@ validate_replace_rtx_1 (loc, from, to, o - - switch (code) - { -+ case COMPARE: -+ /* Comparison of two VOIDmode values is incorrect. We get around -+ by embedding first VOIDmode value by CONST with proper mode. -+ Resulting insn would not match, but this is usefull for keeping -+ the information in REG_EQUAL notes constructed by gcse. */ -+ if (GET_MODE (to) == VOIDmode) -+ { -+ enum machine_mode mode; -+ rtx op0, op1; -+ op0 = XEXP (x, 0); -+ op1 = XEXP (x, 1); -+ mode = GET_MODE (GET_MODE (op0) != VOIDmode ? op0 : op1); -+ /* Comparison of two VOIDmode values in incorrect. */ -+ if (mode == VOIDmode) -+ abort(); -+ if (rtx_equal_p (op0, from)) -+ op0 = to; -+ if (rtx_equal_p (op1, from)) -+ op1 = to; -+ if (GET_MODE (op0) == VOIDmode -+ && GET_MODE (op1) == VOIDmode) -+ { -+ validate_change (object, &XEXP (*loc, 0), -+ gen_rtx_CONST (mode, op0), 1); -+ validate_change (object, &XEXP (*loc, 1), -+ op1, 1); -+ return; -+ } -+ } -+ break; - case PLUS: - /* If we have a PLUS whose second operand is now a CONST_INT, use - plus_constant to try to simplify it. */ - if (GET_CODE (XEXP (x, 1)) == CONST_INT && XEXP (x, 1) == to) -- validate_change (object, loc, plus_constant (XEXP (x, 0), INTVAL (to)), -- 1); -+ { -+ validate_change (object, loc, plus_constant (XEXP (x, 0), -+ INTVAL (to)), -+ 1); -+ } - return; - - case MINUS: -@@ -638,6 +671,25 @@ validate_replace_rtx_1 (loc, from, to, o - break; - - default: -+ /* We need to take care for simplifying the comparisons. In case we replace -+ both operands by VOIDmode constants, the information about the rtx type is -+ lost. */ -+ if (GET_RTX_CLASS (code) == '<' -+ && (rtx_equal_p (XEXP (x, 0), from) -+ || rtx_equal_p (XEXP (x, 1), from))) -+ { -+ rtx y; -+ enum machine_mode mode = GET_MODE (GET_MODE (XEXP (x, 0)) != VOIDmode -+ ? XEXP (x, 0) : XEXP (x, 1)); -+ y = simplify_relational_operation (code, mode, -+ rtx_equal_p (XEXP (x, 0), from) ? to : XEXP (x, 0), -+ rtx_equal_p (XEXP (x, 1), from) ? to : XEXP (x, 1)); -+ if (y) -+ { -+ validate_change (object, loc, y, 1); -+ return; -+ } -+ } - break; - } - ---- gcc/combine.c.jj Wed Aug 2 21:34:06 2000 -+++ gcc/combine.c Fri Aug 18 15:44:01 2000 -@@ -414,9 +414,14 @@ static rtx gen_rtx_combine PARAMS ((enum - ...)); - static rtx gen_binary PARAMS ((enum rtx_code, enum machine_mode, - rtx, rtx)); -+static rtx gen_relational PARAMS ((enum rtx_code, enum machine_mode, -+ enum machine_mode, -+ rtx, rtx)); - static rtx gen_unary PARAMS ((enum rtx_code, enum machine_mode, - enum machine_mode, rtx)); --static enum rtx_code simplify_comparison PARAMS ((enum rtx_code, rtx *, rtx *)); -+static enum rtx_code simplify_comparison PARAMS ((enum rtx_code, -+ enum machine_mode *, -+ rtx *, rtx *)); - static int reversible_comparison_p PARAMS ((rtx)); - static void update_table_tick PARAMS ((rtx)); - static void record_value_for_reg PARAMS ((rtx, rtx, rtx)); -@@ -3579,7 +3584,10 @@ combine_simplify_rtx (x, op0_mode, last, - || GET_RTX_CLASS (GET_CODE (false)) == '<'))) - { - rtx cop1 = const0_rtx; -- enum rtx_code cond_code = simplify_comparison (NE, &cond, &cop1); -+ enum machine_mode cond_mode = GET_MODE (cond); -+ enum rtx_code cond_code; -+ -+ cond_code = simplify_comparison (NE, &cond_mode, &cond, &cop1); - - if (cond_code == NE && GET_RTX_CLASS (GET_CODE (cond)) == '<') - return x; -@@ -3600,10 +3608,10 @@ combine_simplify_rtx (x, op0_mode, last, - /* If the result values are STORE_FLAG_VALUE and zero, we can - just make the comparison operation. */ - if (true == const_true_rtx && false == const0_rtx) -- x = gen_binary (cond_code, mode, cond, cop1); -+ x = gen_relational (cond_code, mode, cond_mode, cond, cop1); - else if (true == const0_rtx && false == const_true_rtx) -- x = gen_binary (reverse_condition (cond_code), -- mode, cond, cop1); -+ x = gen_relational (reverse_condition (cond_code), -+ mode, cond_mode, cond, cop1); - - /* Likewise, we can make the negate of a comparison operation - if the result values are - STORE_FLAG_VALUE and zero. */ -@@ -3611,17 +3619,18 @@ combine_simplify_rtx (x, op0_mode, last, - && INTVAL (true) == - STORE_FLAG_VALUE - && false == const0_rtx) - x = gen_unary (NEG, mode, mode, -- gen_binary (cond_code, mode, cond, cop1)); -+ gen_relational (cond_code, mode, cond_mode, -+ cond, cop1)); - else if (GET_CODE (false) == CONST_INT - && INTVAL (false) == - STORE_FLAG_VALUE - && true == const0_rtx) - x = gen_unary (NEG, mode, mode, -- gen_binary (reverse_condition (cond_code), -- mode, cond, cop1)); -+ gen_relational (reverse_condition (cond_code), -+ mode, cond_mode, cond, cop1)); - else - return gen_rtx_IF_THEN_ELSE (mode, -- gen_binary (cond_code, VOIDmode, -- cond, cop1), -+ gen_relational (cond_code, VOIDmode, -+ cond_mode, cond, cop1), - true, false); - - code = GET_CODE (x); -@@ -3643,6 +3652,8 @@ combine_simplify_rtx (x, op0_mode, last, - enum machine_mode cmp_mode = GET_MODE (XEXP (x, 0)); - if (cmp_mode == VOIDmode) - cmp_mode = GET_MODE (XEXP (x, 1)); -+ if (cmp_mode == VOIDmode) -+ cmp_mode = op0_mode; - temp = simplify_relational_operation (code, cmp_mode, - XEXP (x, 0), XEXP (x, 1)); - } -@@ -4165,8 +4176,8 @@ combine_simplify_rtx (x, op0_mode, last, - return SUBREG_REG (XEXP (x, 0)); - break; - --#ifdef HAVE_cc0 - case COMPARE: -+#ifdef HAVE_cc0 - /* Convert (compare FOO (const_int 0)) to FOO unless we aren't - using cc0, in which case we want to leave it as a COMPARE - so we can distinguish it from a register-register-copy. */ -@@ -4179,8 +4190,22 @@ combine_simplify_rtx (x, op0_mode, last, - || flag_fast_math) - && XEXP (x, 1) == CONST0_RTX (GET_MODE (XEXP (x, 0)))) - return XEXP (x, 0); -- break; - #endif -+ /* Comparisons in VOIDmode are not allowed and we will get into -+ deep problem in the next iteration if COMPARE was nested inside -+ comparison operator. We avoid this by placing extra CONST with -+ proper mode and taking care in simplify_condition to eliminate it -+ when it is not necesary - ugly but workable. */ -+ if (GET_MODE (XEXP (x, 0)) == VOIDmode -+ && GET_MODE (XEXP (x, 1)) == VOIDmode) -+ { -+ if (op0_mode == VOIDmode) -+ abort(); -+ SUBST (XEXP (x, 0), gen_rtx_CONST (op0_mode, XEXP (x, 0))); -+ return x; -+ } -+ break; -+ - - case CONST: - /* (const (const X)) can become (const X). Do it this way rather than -@@ -4249,9 +4274,9 @@ combine_simplify_rtx (x, op0_mode, last, - || (STORE_FLAG_VALUE == 1 && XEXP (x, 1) == constm1_rtx))) - return - gen_unary (NEG, mode, mode, -- gen_binary (reverse_condition (GET_CODE (XEXP (x, 0))), -- mode, XEXP (XEXP (x, 0), 0), -- XEXP (XEXP (x, 0), 1))); -+ gen_relational (reverse_condition (GET_CODE (XEXP (x, 0))), -+ mode, VOIDmode, XEXP (XEXP (x, 0), 0), -+ XEXP (XEXP (x, 0), 1))); - - /* If only the low-order bit of X is possibly nonzero, (plus x -1) - can become (ashiftrt (ashift (xor x 1) C) C) where C is -@@ -4297,9 +4322,9 @@ combine_simplify_rtx (x, op0_mode, last, - && XEXP (x, 0) == const1_rtx - && GET_RTX_CLASS (GET_CODE (XEXP (x, 1))) == '<' - && reversible_comparison_p (XEXP (x, 1))) -- return gen_binary (reverse_condition (GET_CODE (XEXP (x, 1))), -- mode, XEXP (XEXP (x, 1), 0), -- XEXP (XEXP (x, 1), 1)); -+ return gen_relational (reverse_condition (GET_CODE (XEXP (x, 1))), -+ mode, VOIDmode, XEXP (XEXP (x, 1), 0), -+ XEXP (XEXP (x, 1), 1)); - - /* (minus <foo> (and <foo> (const_int -pow2))) becomes - (and <foo> (const_int pow2-1)) */ -@@ -4370,9 +4395,10 @@ combine_simplify_rtx (x, op0_mode, last, - - if (GET_CODE (op0) == COMPARE) - op1 = XEXP (op0, 1), op0 = XEXP (op0, 0); -+ op0_mode = GET_MODE (GET_MODE (op0) != VOIDmode ? op0 : op1); - - /* Simplify our comparison, if possible. */ -- new_code = simplify_comparison (code, &op0, &op1); -+ new_code = simplify_comparison (code, &op0_mode, &op0, &op1); - - /* If STORE_FLAG_VALUE is 1, we can convert (ne x 0) to simply X - if only the low-order bit is possibly nonzero in X (such as when -@@ -4489,7 +4515,13 @@ combine_simplify_rtx (x, op0_mode, last, - - /* If the code changed, return a whole new comparison. */ - if (new_code != code) -- return gen_rtx_combine (new_code, mode, op0, op1); -+ return gen_relational (new_code, mode, op0_mode, op0, op1); -+ -+ /* Make sure that we won't create comparison of two -+ VOIDmodes. */ -+ temp = simplify_relational_operation (code, op0_mode, op0, op1); -+ if (temp) -+ return temp; - - /* Otherwise, keep this operation, but maybe change its operands. - This also converts (ne (compare FOO BAR) 0) to (ne FOO BAR). */ -@@ -4605,13 +4637,14 @@ simplify_if_then_else (x) - - /* Simplify storing of the truth value. */ - if (comparison_p && true == const_true_rtx && false == const0_rtx) -- return gen_binary (true_code, mode, XEXP (cond, 0), XEXP (cond, 1)); -+ return gen_relational (true_code, mode, VOIDmode, -+ XEXP (cond, 0), XEXP (cond, 1)); - - /* Also when the truth value has to be reversed. */ - if (comparison_p && reversible_comparison_p (cond) - && true == const0_rtx && false == const_true_rtx) -- return gen_binary (reverse_condition (true_code), -- mode, XEXP (cond, 0), XEXP (cond, 1)); -+ return gen_relational (reverse_condition (true_code), mode, -+ VOIDmode, XEXP (cond, 0), XEXP (cond, 1)); - - /* Sometimes we can simplify the arm of an IF_THEN_ELSE if a register used - in it is being compared against certain values. Get the true and false -@@ -4686,8 +4719,8 @@ simplify_if_then_else (x) - { - true_code = reverse_condition (true_code); - SUBST (XEXP (x, 0), -- gen_binary (true_code, GET_MODE (cond), XEXP (cond, 0), -- XEXP (cond, 1))); -+ gen_relational (true_code, GET_MODE (cond), VOIDmode, -+ XEXP (cond, 0), XEXP (cond, 1))); - - SUBST (XEXP (x, 1), false); - SUBST (XEXP (x, 2), true); -@@ -4863,7 +4896,7 @@ simplify_if_then_else (x) - - if (z) - { -- temp = subst (gen_binary (true_code, m, cond_op0, cond_op1), -+ temp = subst (gen_relational (true_code, m, VOIDmode, cond_op0, cond_op1), - pc_rtx, pc_rtx, 0, 0); - temp = gen_binary (MULT, m, temp, - gen_binary (MULT, m, c1, const_true_rtx)); -@@ -4938,17 +4971,27 @@ simplify_set (x) - { - enum rtx_code old_code = GET_CODE (*cc_use); - enum rtx_code new_code; -+ enum machine_mode mode; - rtx op0, op1; - int other_changed = 0; - enum machine_mode compare_mode = GET_MODE (dest); - - if (GET_CODE (src) == COMPARE) -- op0 = XEXP (src, 0), op1 = XEXP (src, 1); -+ { -+ op0 = XEXP (src, 0), op1 = XEXP (src, 1); -+ mode = GET_MODE (op0); -+ if (mode == VOIDmode) -+ mode = GET_MODE (op1); -+ } - else -- op0 = src, op1 = const0_rtx; -+ { -+ op0 = src, op1 = const0_rtx; -+ mode = GET_MODE (dest); -+ } -+ if (mode == VOIDmode) -+ abort(); - -- /* Simplify our comparison, if possible. */ -- new_code = simplify_comparison (old_code, &op0, &op1); -+ new_code = simplify_comparison (old_code, &mode, &op0, &op1); - - #ifdef EXTRA_CC_MODES - /* If this machine has CC modes other than CCmode, check to see if we -@@ -5032,19 +5075,27 @@ simplify_set (x) - else - #endif - -- /* Otherwise, if we didn't previously have a COMPARE in the -- correct mode, we need one. */ -- if (GET_CODE (src) != COMPARE || GET_MODE (src) != compare_mode) -- { -- SUBST (SET_SRC (x), -- gen_rtx_combine (COMPARE, compare_mode, op0, op1)); -- src = SET_SRC (x); -- } -- else -- { -- /* Otherwise, update the COMPARE if needed. */ -- SUBST (XEXP (src, 0), op0); -- SUBST (XEXP (src, 1), op1); -+ /* Otherwise, update the COMPARE if needed -+ unless both operands are VOIDmode constants. IN case -+ they are, resulting RTL is incorect and the insn won't match -+ anyway. In the next iteration combine will probably remove -+ the test entirely. */ -+ if (GET_MODE (op0) != VOIDmode -+ || GET_MODE (op1) != VOIDmode) -+ { -+ /* If we didn't previously have a COMPARE in the correct mode, -+ we need one. */ -+ if (GET_CODE (src) != COMPARE || GET_MODE (src) != compare_mode) -+ { -+ SUBST (SET_SRC (x), -+ gen_rtx_combine (COMPARE, compare_mode, op0, op1)); -+ src = SET_SRC (x); -+ } -+ else -+ { -+ SUBST (XEXP (src, 0), op0); -+ SUBST (XEXP (src, 1), op1); -+ } - } - } - else -@@ -7295,6 +7346,9 @@ if_then_else_cond (x, ptrue, pfalse) - if ((cond0 != 0 || cond1 != 0) - && ! (cond0 != 0 && cond1 != 0 && ! rtx_equal_p (cond0, cond1))) - { -+ enum machine_mode cmp_mode -+ = GET_MODE (GET_MODE (XEXP (x, 0)) != VOIDmode -+ ? XEXP (x, 0) : XEXP (x, 1)); - /* If if_then_else_cond returned zero, then true/false are the - same rtl. We must copy one of them to prevent invalid rtl - sharing. */ -@@ -7303,8 +7357,16 @@ if_then_else_cond (x, ptrue, pfalse) - else if (cond1 == 0) - true1 = copy_rtx (true1); - -- *ptrue = gen_binary (code, mode, true0, true1); -- *pfalse = gen_binary (code, mode, false0, false1); -+ if (GET_RTX_CLASS (code) == '<') -+ { -+ *ptrue = gen_relational (code, mode, cmp_mode, true0, true1); -+ *pfalse = gen_relational (code, mode, cmp_mode, false0, false1); -+ } -+ else -+ { -+ *ptrue = gen_binary (code, mode, true0, true1); -+ *pfalse = gen_binary (code, mode, false0, false1); -+ } - return cond0 ? cond0 : cond1; - } - -@@ -9897,53 +9959,69 @@ gen_binary (code, mode, op0, op1) - rtx tem; - - if (GET_RTX_CLASS (code) == 'c' -- && (GET_CODE (op0) == CONST_INT -- || (CONSTANT_P (op0) && GET_CODE (op1) != CONST_INT))) -+ && swap_commutative_operands_p (op0, op1)) - tem = op0, op0 = op1, op1 = tem; - -- if (GET_RTX_CLASS (code) == '<') -- { -- enum machine_mode op_mode = GET_MODE (op0); -- -- /* Strip the COMPARE from (REL_OP (compare X Y) 0) to get -- just (REL_OP X Y). */ -- if (GET_CODE (op0) == COMPARE && op1 == const0_rtx) -- { -- op1 = XEXP (op0, 1); -- op0 = XEXP (op0, 0); -- op_mode = GET_MODE (op0); -- } -+ if (GET_RTX_CLASS (code) == '<') -+ abort (); - -- if (op_mode == VOIDmode) -- op_mode = GET_MODE (op1); -- result = simplify_relational_operation (code, op_mode, op0, op1); -- } -- else -- result = simplify_binary_operation (code, mode, op0, op1); -+ result = simplify_binary_operation (code, mode, op0, op1); - - if (result) - return result; - -- /* Put complex operands first and constants second. */ -- if (GET_RTX_CLASS (code) == 'c' -- && ((CONSTANT_P (op0) && GET_CODE (op1) != CONST_INT) -- || (GET_RTX_CLASS (GET_CODE (op0)) == 'o' -- && GET_RTX_CLASS (GET_CODE (op1)) != 'o') -- || (GET_CODE (op0) == SUBREG -- && GET_RTX_CLASS (GET_CODE (SUBREG_REG (op0))) == 'o' -- && GET_RTX_CLASS (GET_CODE (op1)) != 'o'))) -- return gen_rtx_combine (code, mode, op1, op0); -- - /* If we are turning off bits already known off in OP0, we need not do - an AND. */ -- else if (code == AND && GET_CODE (op1) == CONST_INT -- && GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT -- && (nonzero_bits (op0, mode) & ~ INTVAL (op1)) == 0) -+ if (code == AND && GET_CODE (op1) == CONST_INT -+ && GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT -+ && (nonzero_bits (op0, mode) & ~ INTVAL (op1)) == 0) - return op0; - - return gen_rtx_combine (code, mode, op0, op1); - } - -+/* Like gen_binary, but for relational operations. The op_mode is mode -+ of the operands. It may be VOIDmode in case we are certain, that one -+ of operands is non-VOIDmode. This holds for existing patterns since -+ relationals with two VOIDmode operands are improper. */ -+static rtx -+gen_relational (code, mode, op_mode, op0, op1) -+ enum rtx_code code; -+ enum machine_mode mode, op_mode; -+ rtx op0, op1; -+{ -+ rtx result; -+ -+ if (GET_RTX_CLASS (code) != '<') -+ abort(); -+ -+ /* Strip the COMPARE from (REL_OP (compare X Y) 0) to get -+ just (REL_OP X Y). */ -+ if (GET_CODE (op0) == COMPARE && op1 == const0_rtx) -+ { -+ op1 = XEXP (op0, 1); -+ op0 = XEXP (op0, 0); -+ /* Previous pass of combine_simplify_rtx may have but -+ extra CONST to the first operator in order to avoid -+ losing of mode information - strip it. */ -+ if (GET_CODE (op0) == CONST -+ && GET_CODE (XEXP (op0, 0)) == VOIDmode) -+ op0 = XEXP (op0, 0); -+ op_mode = GET_MODE (op0); -+ } -+ if (op_mode == VOIDmode) -+ op_mode = GET_MODE (GET_MODE (op0) != VOIDmode ? op0 : op1); -+ if (op_mode == VOIDmode) -+ abort(); -+ -+ result = simplify_relational_operation (code, op_mode, op0, op1); -+ -+ if (result) -+ return result; -+ -+ return gen_rtx_combine (code, mode, op0, op1); -+} -+ - static rtx - gen_unary (code, mode, op0_mode, op0) - enum rtx_code code; -@@ -9970,8 +10048,9 @@ gen_unary (code, mode, op0_mode, op0) - should have been detected earlier. Hence we ignore all such cases. */ - - static enum rtx_code --simplify_comparison (code, pop0, pop1) -+simplify_comparison (code, pmode, pop0, pop1) - enum rtx_code code; -+ enum machine_mode *pmode; - rtx *pop0; - rtx *pop1; - { -@@ -10009,6 +10088,9 @@ simplify_comparison (code, pop0, pop1) - { - op0 = SUBREG_REG (XEXP (XEXP (op0, 0), 0)); - op1 = SUBREG_REG (XEXP (XEXP (op1, 0), 0)); -+ *pmode = GET_MODE (op0); -+ if (*pmode == VOIDmode) -+ abort(); - } - #endif - -@@ -10029,7 +10111,7 @@ simplify_comparison (code, pop0, pop1) - && INTVAL (XEXP (op0, 1)) < HOST_BITS_PER_WIDE_INT - && XEXP (op0, 1) == XEXP (op1, 1)) - { -- enum machine_mode mode = GET_MODE (op0); -+ enum machine_mode mode = *pmode; - unsigned HOST_WIDE_INT mask = GET_MODE_MASK (mode); - int shift_count = INTVAL (XEXP (op0, 1)); - -@@ -10082,6 +10164,9 @@ simplify_comparison (code, pop0, pop1) - { - op0 = SUBREG_REG (inner_op0); - op1 = SUBREG_REG (inner_op1); -+ *pmode = GET_MODE (op0); -+ if (*pmode == VOIDmode) -+ abort(); - - /* The resulting comparison is always unsigned since we masked - off the original sign bit. */ -@@ -10099,6 +10184,7 @@ simplify_comparison (code, pop0, pop1) - op0 = gen_lowpart_for_combine (tmode, inner_op0); - op1 = gen_lowpart_for_combine (tmode, inner_op1); - code = unsigned_condition (code); -+ *pmode = tmode; - changed = 1; - break; - } -@@ -10135,7 +10221,7 @@ simplify_comparison (code, pop0, pop1) - - while (GET_CODE (op1) == CONST_INT) - { -- enum machine_mode mode = GET_MODE (op0); -+ enum machine_mode mode = *pmode; - unsigned int mode_width = GET_MODE_BITSIZE (mode); - unsigned HOST_WIDE_INT mask = GET_MODE_MASK (mode); - int equality_comparison_p; -@@ -10373,6 +10459,7 @@ simplify_comparison (code, pop0, pop1) - op0 = XEXP (op0, 2); - op1 = GEN_INT (i); - const_op = i; -+ *pmode = GET_MODE (op0); - - /* Result is nonzero iff shift count is equal to I. */ - code = reverse_condition (code); -@@ -10386,6 +10473,7 @@ simplify_comparison (code, pop0, pop1) - if (tem != op0) - { - op0 = tem; -+ *pmode = GET_MODE (op0); - continue; - } - break; -@@ -10500,6 +10588,7 @@ simplify_comparison (code, pop0, pop1) - << (GET_MODE_BITSIZE (GET_MODE (XEXP (op0, 0))) - 1))))) - { - op0 = XEXP (op0, 0); -+ *pmode = GET_MODE (op0); - continue; - } - break; -@@ -10531,6 +10620,7 @@ simplify_comparison (code, pop0, pop1) - - GET_MODE_BITSIZE (mode))))) - { - op0 = SUBREG_REG (op0); -+ *pmode = GET_MODE (op0); - continue; - } - -@@ -10552,6 +10642,7 @@ simplify_comparison (code, pop0, pop1) - < GET_MODE_MASK (GET_MODE (XEXP (op0, 0))))) - { - op0 = XEXP (op0, 0); -+ *pmode = GET_MODE (op0); - continue; - } - break; -@@ -10647,7 +10738,15 @@ simplify_comparison (code, pop0, pop1) - - /* Get the two operands being compared. */ - if (GET_CODE (XEXP (op0, 0)) == COMPARE) -- tem = XEXP (XEXP (op0, 0), 0), tem1 = XEXP (XEXP (op0, 0), 1); -+ { -+ tem = XEXP (XEXP (op0, 0), 0), tem1 = XEXP (XEXP (op0, 0), 1); -+ /* Previous pass of combine_simplify_rtx may have but -+ extra CONST to the first operator in order to avoid -+ losing of mode information - strip it. */ -+ if (GET_CODE (tem) == CONST -+ && GET_CODE (XEXP (tem, 0)) == VOIDmode) -+ tem = XEXP (tem, 0); -+ } - else - tem = XEXP (op0, 0), tem1 = XEXP (op0, 1); - -@@ -10666,6 +10765,7 @@ simplify_comparison (code, pop0, pop1) - code = (code == LT || code == NE - ? GET_CODE (op0) : reverse_condition (GET_CODE (op0))); - op0 = tem, op1 = tem1; -+ *pmode = GET_MODE (GET_MODE (op0) != VOIDmode ? op0 : op1); - continue; - } - break; -@@ -10749,6 +10849,7 @@ simplify_comparison (code, pop0, pop1) - && (tmode = mode_for_size (i, MODE_INT, 1)) != BLKmode) - { - op0 = gen_lowpart_for_combine (tmode, XEXP (op0, 0)); -+ *pmode = tmode; - continue; - } - -@@ -10878,6 +10979,7 @@ simplify_comparison (code, pop0, pop1) - <= GET_MODE_MASK (tmode)))) - { - op0 = gen_lowpart_for_combine (tmode, XEXP (XEXP (op0, 0), 0)); -+ *pmode = tmode; - continue; - } - -@@ -10904,6 +11006,7 @@ simplify_comparison (code, pop0, pop1) - op0 = gen_binary (PLUS, tmode, - gen_lowpart_for_combine (tmode, inner), - new_const); -+ *pmode = tmode; - continue; - } - -@@ -10967,6 +11070,7 @@ simplify_comparison (code, pop0, pop1) - { - op0 = SUBREG_REG (op0); - op1 = gen_lowpart_for_combine (GET_MODE (op0), op1); -+ *pmode = GET_MODE (op0); - } - - else if (GET_CODE (op0) == SUBREG && subreg_lowpart_p (op0) -@@ -10980,7 +11084,10 @@ simplify_comparison (code, pop0, pop1) - op1), - (nonzero_bits (tem, GET_MODE (SUBREG_REG (op0))) - & ~ GET_MODE_MASK (GET_MODE (op0))) == 0)) -- op0 = SUBREG_REG (op0), op1 = tem; -+ { -+ op0 = SUBREG_REG (op0), op1 = tem; -+ *pmode = GET_MODE (op0); -+ } - - /* We now do the opposite procedure: Some machines don't have compare - insns in all modes. If OP0's mode is an integer mode smaller than a -@@ -10988,7 +11095,7 @@ simplify_comparison (code, pop0, pop1) - mode for which we can do the compare. There are a number of cases in - which we can use the wider mode. */ - -- mode = GET_MODE (op0); -+ mode = *pmode; - if (mode != VOIDmode && GET_MODE_CLASS (mode) == MODE_INT - && GET_MODE_SIZE (mode) < UNITS_PER_WORD - && cmp_optab->handlers[(int) mode].insn_code == CODE_FOR_nothing) -@@ -11024,6 +11131,7 @@ simplify_comparison (code, pop0, pop1) - - op0 = gen_lowpart_for_combine (tmode, op0); - op1 = gen_lowpart_for_combine (tmode, op1); -+ *pmode = tmode; - break; - } - -@@ -11037,6 +11145,7 @@ simplify_comparison (code, pop0, pop1) - gen_lowpart_for_combine (tmode, op0), - GEN_INT ((HOST_WIDE_INT) 1 - << (GET_MODE_BITSIZE (mode) - 1))); -+ *pmode = tmode; - code = (code == LT) ? NE : EQ; - break; - } ---- gcc/simplify-rtx.c.jj Mon Jul 31 20:02:12 2000 -+++ gcc/simplify-rtx.c Fri Aug 18 15:26:59 2000 -@@ -1691,14 +1691,39 @@ simplify_relational_operation (code, mod - int equal, op0lt, op0ltu, op1lt, op1ltu; - rtx tem; - -- if (mode == VOIDmode -- && (GET_MODE (op0) != VOIDmode -- || GET_MODE (op1) != VOIDmode)) -+ /* Do simple checking of mode. The mode should be never VOIDmode, since we -+ don't know the mode of operands in case they are both VOIDmode and mode -+ of the operands must match. */ -+ if (mode == VOIDmode) -+ abort(); -+ if (GET_MODE (op0) != VOIDmode && GET_MODE (op0) != mode) -+ abort(); -+ if (GET_MODE (op1) != VOIDmode && GET_MODE (op1) != mode) - abort(); - - /* If op0 is a compare, extract the comparison arguments from it. */ - if (GET_CODE (op0) == COMPARE && op1 == const0_rtx) -- op1 = XEXP (op0, 1), op0 = XEXP (op0, 0); -+ { -+ op1 = XEXP (op0, 1), op0 = XEXP (op0, 0); -+ if (GET_MODE (op0) != VOIDmode) -+ mode = GET_MODE (op0); -+ else -+ mode = GET_MODE (op1); -+ /* We can't have both operands of COMPARE VOIDmode, since we would -+ not be able to determine the mode of comparison them, we create -+ fake CONST with proper mode when such expression needs to be -+ created temporarily - this happends in the combine and in gcse -+ when we happen to propagate constant into comparison. */ -+ if (GET_CODE (op0) == CONST -+ && GET_MODE (XEXP (op0, 0)) == VOIDmode) -+ op0 = XEXP (op0, 0); -+ } -+ /* We can handle comparison only in the integral or floating point modes. -+ When CCmode or VOIDmode appears here, it means mistake elsewhere -+ most probably because the real mode of comparison got lost by replacing -+ by VOIDmode constants. */ -+ if (!INTEGRAL_MODE_P (mode) -+ && !FLOAT_MODE_P (mode)) - - /* We can't simplify MODE_CC values since we don't know what the - actual comparison is. */ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-scanf.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-scanf.patch deleted file mode 100644 index b14cdfadd988..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-scanf.patch +++ /dev/null @@ -1,291 +0,0 @@ -gcc/ChangeLog: -2000-08-18 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-common.c (scan_char_table): Add 'w' to flags for all formats - except 'n'. - (check_format_info): Set 'wide' for scanf format widths. Warn for - a zero scanf width. Make the check for writing into a constant - object at the first level of indirection; at later levels, warn if - any type qualifiers are encountered. - -gcc/testsuite/ChangeLog: -2000-08-18 Joseph S. Myers <jsm28@cam.ac.uk> - - * gcc.dg/c90-scanf-1.c, gcc.dg/c94-scanf-1.c: New tests. - ---- gcc/c-common.c Tue Aug 8 23:16:59 2000 -+++ gcc/c-common.c Fri Aug 18 01:08:24 2000 -@@ -1253,15 +1253,15 @@ static format_char_info print_char_table - }; - - static format_char_info scan_char_table[] = { -- { "di", 1, T_I, T_SC, T_S, T_L, T_LL, T_LL, T_SST, T_PD, T_IM, "*" }, -- { "ouxX", 1, T_UI, T_UC, T_US, T_UL, T_ULL, T_ULL, T_ST, T_UPD, T_UIM, "*" }, -- { "efFgEGaA", 1, T_F, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "*" }, -- { "c", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*c" }, -- { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*ac" }, -- { "[", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*ac" }, -- { "C", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*" }, -- { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*a" }, -- { "p", 2, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*" }, -+ { "di", 1, T_I, T_SC, T_S, T_L, T_LL, T_LL, T_SST, T_PD, T_IM, "*w" }, -+ { "ouxX", 1, T_UI, T_UC, T_US, T_UL, T_ULL, T_ULL, T_ST, T_UPD, T_UIM, "*w" }, -+ { "efFgEGaA", 1, T_F, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "*w" }, -+ { "c", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*cw" }, -+ { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*acw" }, -+ { "[", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "*acw" }, -+ { "C", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*w" }, -+ { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*aw" }, -+ { "p", 2, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "*w" }, - { "n", 1, T_I, T_SC, T_S, T_L, T_LL, NULL, T_SST, T_PD, T_IM, "" }, - { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } - }; -@@ -1618,6 +1618,7 @@ check_format_info (info, params) - { - int aflag; - int char_type_flag = 0; -+ int writing_in_flag = 0; - if (*format_chars == 0) - { - if (format_chars - TREE_STRING_POINTER (format_tree) != format_length) -@@ -1642,11 +1643,19 @@ check_format_info (info, params) - suppressed = wide = precise = FALSE; - if (info->format_type == scanf_format_type) - { -+ int non_zero_width_char = FALSE; - suppressed = *format_chars == '*'; - if (suppressed) - ++format_chars; - while (ISDIGIT (*format_chars)) -- ++format_chars; -+ { -+ wide = TRUE; -+ if (*format_chars != '0') -+ non_zero_width_char = TRUE; -+ ++format_chars; -+ } -+ if (wide && !non_zero_width_char) -+ warning ("zero width in scanf format"); - } - else if (info->format_type == strftime_format_type) - { -@@ -2047,6 +2056,12 @@ check_format_info (info, params) - - STRIP_NOPS (cur_param); - -+ if ((info->format_type == scanf_format_type -+ || (info->format_type == printf_format_type -+ && format_char == 'n')) -+ && wanted_type != 0) -+ writing_in_flag = 1; -+ - /* Check the types of any additional pointer arguments - that precede the "real" argument. */ - for (i = 0; i < fci->pointer_count + aflag; ++i) -@@ -2060,6 +2075,35 @@ check_format_info (info, params) - else - cur_param = 0; - -+ /* See if this is an attempt to write into a const type with -+ scanf or with printf "%n". Note: the writing in happens -+ at the first indirection only, if for example -+ void * const * is passed to scanf %p; passing -+ const void ** is simply passing an incompatible type. -+ */ -+ if (writing_in_flag -+ && i == 0 -+ && TREE_CODE (cur_type) != ERROR_MARK -+ && (TYPE_READONLY (cur_type) -+ || (cur_param != 0 -+ && (TREE_CODE_CLASS (TREE_CODE (cur_param)) == 'c' -+ || (DECL_P (cur_param) -+ && TREE_READONLY (cur_param)))))) -+ warning ("writing into constant object (arg %d)", arg_num); -+ -+ /* If there are extra type qualifiers beyond the first -+ indirection, then this makes the types technically -+ incompatible. -+ */ -+ if (i > 0 -+ && pedantic -+ && TREE_CODE (cur_type) != ERROR_MARK -+ && (TYPE_READONLY (cur_type) -+ || TYPE_VOLATILE (cur_type) -+ || TYPE_RESTRICT (cur_type))) -+ warning ("extra type qualifiers in format argument (arg %d)", -+ arg_num); -+ - continue; - } - if (TREE_CODE (cur_type) != ERROR_MARK) -@@ -2071,20 +2115,6 @@ check_format_info (info, params) - } - break; - } -- -- /* See if this is an attempt to write into a const type with -- scanf or with printf "%n". */ -- if ((info->format_type == scanf_format_type -- || (info->format_type == printf_format_type -- && format_char == 'n')) -- && i == fci->pointer_count + aflag -- && wanted_type != 0 -- && TREE_CODE (cur_type) != ERROR_MARK -- && (TYPE_READONLY (cur_type) -- || (cur_param != 0 -- && (TREE_CODE_CLASS (TREE_CODE (cur_param)) == 'c' -- || (DECL_P (cur_param) && TREE_READONLY (cur_param)))))) -- warning ("writing into constant object (arg %d)", arg_num); - - /* Check whether the argument type is a character type. This leniency - only applies to certain formats, flagged with 'c'. ---- gcc/testsuite/gcc.dg/c90-scanf-1.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c90-scanf-1.c Fri Aug 18 16:18:38 2000 -@@ -0,0 +1,125 @@ -+/* Test for scanf formats. Formats using C90 features, including cases -+ where C90 specifies some aspect of the format to be ignored or where -+ the behaviour is undefined. -+*/ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:1990 -pedantic -Wformat" } */ -+ -+typedef __WCHAR_TYPE__ wchar_t; -+ -+__extension__ typedef long long int llong; -+__extension__ typedef unsigned long long int ullong; -+ -+extern int scanf (const char *, ...); -+ -+#define NULL ((void *)0) -+ -+void -+foo (int *ip, unsigned int *uip, short int *hp, unsigned short int *uhp, -+ long int *lp, unsigned long int *ulp, float *fp, double *dp, -+ long double *ldp, char *s, signed char *ss, unsigned char *us, -+ void **pp, int *n, llong *llp, ullong *ullp, wchar_t *ls, -+ const int *cip, const int *cn, const char *cs, const void **ppc, -+ void *const *pcp, short int *hn, long int *ln, void *p, char **sp, -+ volatile void *ppv) -+{ -+ /* See ISO/IEC 9899:1990 (E) subclause 7.9.6.2 (pages 134-138). */ -+ /* Basic sanity checks for the different components of a format. */ -+ scanf ("%d", ip); -+ scanf ("%*d"); -+ scanf ("%3d", ip); -+ scanf ("%hd", hp); -+ scanf ("%3ld", lp); -+ scanf ("%*3d"); -+ scanf ("%d %ld", ip, lp); -+ /* Valid and invalid %% constructions. */ -+ scanf ("%%"); -+ scanf ("%*%"); /* { dg-warning "format" "bogus %%" } */ -+ scanf ("%*%\n"); /* { dg-warning "format" "bogus %%" } */ -+ scanf ("%4%"); /* { dg-warning "format" "bogus %%" } */ -+ scanf ("%4%\n"); /* { dg-warning "format" "bogus %%" } */ -+ scanf ("%h%"); /* { dg-warning "format" "bogus %%" } */ -+ scanf ("%h%\n"); /* { dg-warning "format" "bogus %%" } */ -+ /* Valid, invalid and silly assignment-suppression constructions. */ -+ scanf ("%*d%*i%*o%*u%*x%*X%*e%*E%*f%*g%*G%*s%*[abc]%*c%*p"); -+ scanf ("%*2d%*8s%*3c"); -+ scanf ("%*n"); /* { dg-warning "suppress" "suppression of %n" } */ -+ scanf ("%*hd"); /* { dg-warning "together" "suppression with length" } */ -+ /* Valid, invalid and silly width constructions. */ -+ scanf ("%2d%3i%4o%5u%6x%7X%8e%9E%10f%11g%12G%13s%14[abc]%15c%16p", -+ ip, ip, uip, uip, uip, uip, fp, fp, fp, fp, fp, s, s, s, pp); -+ scanf ("%0d", ip); /* { dg-warning "width" "warning for zero width" } */ -+ scanf ("%3n", n); /* { dg-warning "width" "width with %n" } */ -+ /* Valid and invalid %h, %l, %L constructions. */ -+ scanf ("%hd%hi%ho%hu%hx%hX%hn", hp, hp, uhp, uhp, uhp, uhp, hn); -+ scanf ("%he", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hE", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hf", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hg", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hG", fp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hs", s); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%h[ac]", s); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hc", s); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%hp", pp); /* { dg-warning "length character" "bad use of %h" } */ -+ scanf ("%h"); /* { dg-warning "conversion lacks type" "bare %h" } */ -+ scanf ("%h."); /* { dg-warning "conversion" "bogus %h" } */ -+ scanf ("%ld%li%lo%lu%lx%lX%ln", lp, lp, ulp, ulp, ulp, ulp, ln); -+ scanf ("%le%lE%lf%lg%lG", dp, dp, dp, dp, dp); -+ scanf ("%lp", pp); /* { dg-warning "length character" "bad use of %l" } */ -+ /* These next three formats were added in C94. */ -+ scanf ("%ls", ls); /* { dg-warning "length character|C" "bad use of %l" } */ -+ scanf ("%l[ac]", ls); /* { dg-warning "length character|C" "bad use of %l" } */ -+ scanf ("%lc", ls); /* { dg-warning "length character|C" "bad use of %l" } */ -+ scanf ("%Le%LE%Lf%Lg%LG", ldp, ldp, ldp, ldp, ldp); -+ scanf ("%Ld", llp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Li", llp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Lo", ullp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Lu", ullp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Lx", ullp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%LX", ullp); /* { dg-warning "does not support" "bad use of %L" } */ -+ scanf ("%Ls", s); /* { dg-warning "length character" "bad use of %L" } */ -+ scanf ("%L[ac]", s); /* { dg-warning "length character" "bad use of %L" } */ -+ scanf ("%Lc", s); /* { dg-warning "length character" "bad use of %L" } */ -+ scanf ("%Lp", pp); /* { dg-warning "length character" "bad use of %L" } */ -+ scanf ("%Ln", n); /* { dg-warning "length character" "bad use of %L" } */ -+ /* Valid uses of each bare conversion. */ -+ scanf ("%d%i%o%u%x%X%e%E%f%g%G%s%[abc]%c%p%n%%", ip, ip, uip, uip, uip, -+ uip, fp, fp, fp, fp, fp, s, s, s, pp, n); -+ /* Allow other character pointers with %s, %c, %[]. */ -+ scanf ("%2s%3s%4c%5c%6[abc]%7[abc]", ss, us, ss, us, ss, us); -+ /* Further tests for %[]. */ -+ scanf ("%[%d]%d", s, ip); -+ scanf ("%[^%d]%d", s, ip); -+ scanf ("%[]%d]%d", s, ip); -+ scanf ("%[^]%d]%d", s, ip); -+ scanf ("%[%d]%d", s, ip); -+ scanf ("%[]abcd", s); /* { dg-warning "no closing" "incomplete scanset" } */ -+ /* Various tests of bad argument types. Some of these are only pedantic -+ warnings. -+ */ -+ scanf ("%d", lp); /* { dg-warning "format" "bad argument types" } */ -+ scanf ("%d", uip); /* { dg-warning "format" "bad argument types" } */ -+ scanf ("%d", pp); /* { dg-warning "format" "bad argument types" } */ -+ scanf ("%p", ppc); /* { dg-warning "format" "bad argument types" } */ -+ scanf ("%p", ppv); /* { dg-warning "format" "bad argument types" } */ -+ scanf ("%s", n); /* { dg-warning "format" "bad argument types" } */ -+ scanf ("%s", p); /* { dg-warning "format" "bad argument types" } */ -+ scanf ("%p", p); /* { dg-warning "format" "bad argument types" } */ -+ scanf ("%p", sp); /* { dg-warning "format" "bad argument types" } */ -+ /* Tests for writing into constant values. */ -+ scanf ("%d", cip); /* { dg-warning "constant" "%d writing into const" } */ -+ scanf ("%n", cn); /* { dg-warning "constant" "%n writing into const" } */ -+ scanf ("%s", cs); /* { dg-warning "constant" "%s writing into const" } */ -+ scanf ("%p", pcp); /* { dg-warning "constant" "%p writing into const" } */ -+ /* Wrong number of arguments. */ -+ scanf ("%d%d", ip); /* { dg-warning "arguments" "wrong number of args" } */ -+ scanf ("%d", ip, ip); /* { dg-warning "arguments" "wrong number of args" } */ -+ /* Miscellaneous bogus constructions. */ -+ scanf (""); /* { dg-warning "zero-length" "warning for empty format" } */ -+ scanf ("\0"); /* { dg-warning "embedded" "warning for embedded NUL" } */ -+ scanf ("%d\0", ip); /* { dg-warning "embedded" "warning for embedded NUL" } */ -+ scanf ("%d\0%d", ip, ip); /* { dg-warning "embedded|too many" "warning for embedded NUL" } */ -+ scanf (NULL); /* { dg-warning "null" "null format string warning" } */ -+ scanf ("%"); /* { dg-warning "trailing" "trailing % warning" } */ -+} ---- gcc/testsuite/gcc.dg/c94-scanf-1.c Fri Sep 11 11:31:59 1998 -+++ gcc/testsuite/gcc.dg/c94-scanf-1.c Fri Aug 18 00:48:22 2000 -@@ -0,0 +1,19 @@ -+/* Test for scanf formats. Changes in C94 to C90. */ -+/* Origin: Joseph Myers <jsm28@cam.ac.uk> */ -+/* { dg-do compile } */ -+/* { dg-options "-std=iso9899:199409 -pedantic -Wformat" } */ -+ -+typedef __WCHAR_TYPE__ wchar_t; -+ -+extern int scanf (const char *, ...); -+ -+void -+foo (wchar_t *ls) -+{ -+ /* See ISO/IEC 9899:1990 (E) subclause 7.9.6.2 (pages 134-138), -+ as amended by ISO/IEC 9899:1990/Amd.1:1995 (E) (pages 5-6). -+ We do not repeat here all the C90 format checks, but just verify -+ that %ls, %lc, %l[] are accepted without warning. -+ */ -+ scanf ("%lc%ls%l[abc]", ls, ls, ls); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-segv1.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-segv1.patch deleted file mode 100644 index cf5fff540279..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-segv1.patch +++ /dev/null @@ -1,39 +0,0 @@ -2000-09-01 Jakub Jelinek <jakub@redhat.com> - - * c-decl.c (do_case): Fix a typo. - * c-typeck.c (pop_init_level): If TYPE_SIZE_UNIT() is NULL as result - of type layout error, avoid segfaulting. - - * gcc.dg/noncompile/20000901-1.c: New test. - ---- gcc/c-decl.c.jj Fri Sep 1 10:13:31 2000 -+++ gcc/c-decl.c Fri Sep 1 15:51:14 2000 -@@ -6967,7 +6967,7 @@ do_case (low_value, high_value) - error_with_decl (duplicate, "this is the first default label"); - } - else -- error ("dupicate case value"); -+ error ("duplicate case value"); - if (high_value != NULL_TREE) - error_with_decl (duplicate, "this is the first entry for that value"); - } ---- gcc/testsuite/gcc.dg/noncompile/20000901-1.c.jj Fri Sep 1 16:01:39 2000 -+++ gcc/testsuite/gcc.dg/noncompile/20000901-1.c Fri Sep 1 16:19:46 2000 -@@ -0,0 +1 @@ -+struct foo bar[] = { {"baz"} }; /* { dg-error "have incomplete type|excess elements|near" } */ ---- gcc/c-typeck.c.jj Fri Aug 25 14:22:08 2000 -+++ gcc/c-typeck.c Fri Sep 1 15:32:55 2000 -@@ -5516,10 +5516,11 @@ pop_init_level (implicit) - } - - filled -- = size_binop (MULT_EXPR, constructor_unfilled_index, -+ = TYPE_SIZE_UNIT (TREE_TYPE (constructor_type)) ? -+ size_binop (MULT_EXPR, constructor_unfilled_index, - convert (bitsizetype, - TYPE_SIZE_UNIT -- (TREE_TYPE (constructor_type)))); -+ (TREE_TYPE (constructor_type)))) : 0; - } - else - filled = 0; diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-segv2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-segv2.patch deleted file mode 100644 index 6531e641240d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-segv2.patch +++ /dev/null @@ -1,25 +0,0 @@ -2000-09-01 Jakub Jelinek <jakub@redhat.com> - - * gcc.dg/noncompile/20000901-2.c: New test. - ---- gcc/testsuite/gcc.dg/noncompile/20000901-2.c.jj Fri Sep 1 17:11:43 2000 -+++ gcc/testsuite/gcc.dg/noncompile/20000901-2.c Fri Sep 1 17:17:44 2000 -@@ -0,0 +1,18 @@ -+unsigned char c; -+ -+int foo() -+{ -+ switch (c) -+ { -+ case 0: -+ switch (a->b) /* { dg-error "undeclared|for each function" } */ -+ { -+ case 0: /* { dg-error "duplicate case" } */ -+ break; -+ } -+} -+void bar() /* { dg-error "parse error" } */ -+{ -+ n = 0; -+} -+ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-segv3.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-segv3.patch deleted file mode 100644 index d850c78b5e25..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-segv3.patch +++ /dev/null @@ -1,59 +0,0 @@ -2000-10-19 Jim Wilson <wilson@cygnus.com> - - * c-decl.c (start_decl): Check for error_mark_node type before using - COMPLETE_TYPE_P. - (finish_decl): Likewise. Don't give an error if decl type is - already error_mark_node. - -2000-10-20 Jakub Jelinek <jakub@redhat.com> - - * gcc.dg/noncompile/init-3.c: New test. - ---- gcc/c-decl.c 2000/10/17 09:34:20 1.168 -+++ gcc/c-decl.c 2000/10/20 00:58:35 1.170 -@@ -3515,7 +3506,12 @@ start_decl (declarator, declspecs, initi - default: - /* Don't allow initializations for incomplete types - except for arrays which might be completed by the initialization. */ -- if (COMPLETE_TYPE_P (TREE_TYPE (decl))) -+ -+ /* This can happen if the array size is an undefined macro. We already -+ gave a warning, so we don't need another one. */ -+ if (TREE_TYPE (decl) == error_mark_node) -+ initialized = 0; -+ else if (COMPLETE_TYPE_P (TREE_TYPE (decl))) - { - /* A complete type is ok if size is fixed. */ - -@@ -3593,7 +3589,8 @@ start_decl (declarator, declspecs, initi - && DECL_RTL (tem) == 0 - && !DECL_CONTEXT (tem)) - { -- if (COMPLETE_TYPE_P (TREE_TYPE (tem))) -+ if (TREE_TYPE (tem) != error_mark_node -+ && COMPLETE_TYPE_P (TREE_TYPE (tem))) - expand_decl (tem); - else if (TREE_CODE (TREE_TYPE (tem)) == ARRAY_TYPE - && DECL_INITIAL (tem) != 0) -@@ -3688,10 +3685,13 @@ finish_decl (decl, init, asmspec_tree) - - if (TREE_CODE (decl) == VAR_DECL) - { -- if (DECL_SIZE (decl) == 0 && COMPLETE_TYPE_P (TREE_TYPE (decl))) -+ if (DECL_SIZE (decl) == 0 && TREE_TYPE (decl) != error_mark_node -+ && COMPLETE_TYPE_P (TREE_TYPE (decl))) - layout_decl (decl, 0); - - if (DECL_SIZE (decl) == 0 -+ /* Don't give an error if we already gave one earlier. */ -+ && TREE_TYPE (decl) != error_mark_node - && (TREE_STATIC (decl) - ? - /* A static variable with an incomplete type ---- gcc/testsuite/gcc.dg/noncompile/init-3.c.jj Thu Aug 24 11:00:32 2000 -+++ gcc/testsuite/gcc.dg/noncompile/init-3.c Fri Oct 20 23:37:57 2000 -@@ -0,0 +1,4 @@ -+void die(void) -+{ -+ char foo[BAR] = "1234"; /* { dg-error "undeclared|function|incomplete type" } */ -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sibcall-eh2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sibcall-eh2.patch deleted file mode 100644 index 670a6206553d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sibcall-eh2.patch +++ /dev/null @@ -1,53 +0,0 @@ -2000-10-27 Jakub Jelinek <jakub@redhat.com> - - * calls.c (expand_call): If sibcall_failure is set during pass 1, - clear tail_call_insns as well. - - * g++.old-deja/g++.other/eh2.C: New test. - ---- gcc/testsuite/g++.old-deja/g++.other/eh2.C.jj Fri Oct 27 13:40:14 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/eh2.C Fri Oct 27 13:40:14 2000 -@@ -0,0 +1,18 @@ -+// Build don't link: -+// Origin: Jakub Jelinek <jakub@redhat.com> -+// Special g++ Options: -O2 -+ -+class a { -+public: -+ double b; -+ int c; -+ ~a() { } -+}; -+ -+int bar(a x); -+a foo(double x); -+ -+int baz(double x, int y) -+{ -+ return bar(foo(x)); -+} ---- gcc/calls.c.jj Fri Oct 27 13:34:58 2000 -+++ gcc/calls.c Fri Oct 27 13:40:14 2000 -@@ -3363,10 +3363,6 @@ expand_call (exp, target, ignore) - { - tail_call_insns = insns; - -- /* If something prevents making this a sibling call, -- zero out the sequence. */ -- if (sibcall_failure) -- tail_call_insns = NULL_RTX; - /* Restore the pending stack adjustment now that we have - finished generating the sibling call sequence. */ - -@@ -3385,6 +3381,11 @@ expand_call (exp, target, ignore) - } - else - normal_call_insns = insns; -+ -+ /* If something prevents making this a sibling call, -+ zero out the sequence. */ -+ if (sibcall_failure) -+ tail_call_insns = NULL_RTX; - } - - /* The function optimize_sibling_and_tail_recursive_calls doesn't diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sibcall-unchanging.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sibcall-unchanging.patch deleted file mode 100644 index 697d8cb81f0d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sibcall-unchanging.patch +++ /dev/null @@ -1,130 +0,0 @@ -2000-10-23 Jakub Jelinek <jakub@redhat.com> - - * sibcall.c (purge_mem_unchanging_flag): New function. - (optimize_sibling_and_tail_recursive_calls): Call it. - - * g++.old-deja/g++.other/sibcall1.C: New test. - ---- gcc/testsuite/g++.old-deja/g++.other/sibcall1.C.jj Mon Oct 23 12:49:42 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/sibcall1.C Mon Oct 23 12:57:55 2000 -@@ -0,0 +1,13 @@ -+// Special g++ Options: -O2 -+ -+#include <iostream> -+ -+ostream& foo (char *x, ostream &y) -+{ -+ return y << "" << x; -+} -+ -+int main () -+{ -+ foo ("", cout); -+} ---- gcc/sibcall.c.jj Thu Sep 28 10:33:03 2000 -+++ gcc/sibcall.c Mon Oct 23 12:44:25 2000 -@@ -41,6 +41,7 @@ static rtx skip_jump_insn PARAMS ((rtx) - static int uses_addressof PARAMS ((rtx)); - static int sequence_uses_addressof PARAMS ((rtx)); - static void purge_reg_equiv_notes PARAMS ((void)); -+static void purge_mem_unchanging_flag PARAMS ((rtx)); - - /* Examine a CALL_PLACEHOLDER pattern and determine where the call's - return value is located. P_HARD_RETURN receives the hard register -@@ -362,6 +363,45 @@ purge_reg_equiv_notes () - } - } - -+/* Clear RTX_UNCHANGING_P flag of incoming argument MEMs. */ -+ -+static void -+purge_mem_unchanging_flag (x) -+ rtx x; -+{ -+ RTX_CODE code; -+ int i, j; -+ const char *fmt; -+ -+ if (x == NULL_RTX) -+ return; -+ -+ code = GET_CODE (x); -+ -+ if (code == MEM) -+ { -+ if (RTX_UNCHANGING_P (x) -+ && (XEXP (x, 0) == current_function_internal_arg_pointer -+ || (GET_CODE (XEXP (x, 0)) == PLUS -+ && XEXP (XEXP (x, 0), 0) == -+ current_function_internal_arg_pointer -+ && GET_CODE (XEXP (XEXP (x, 0), 1)) == CONST_INT))) -+ RTX_UNCHANGING_P (x) = 0; -+ return; -+ } -+ -+ /* Scan all subexpressions. */ -+ fmt = GET_RTX_FORMAT (code); -+ for (i = 0; i < GET_RTX_LENGTH (code); i++, fmt++) -+ { -+ if (*fmt == 'e') -+ purge_mem_unchanging_flag (XEXP (x, i)); -+ else if (*fmt == 'E') -+ for (j = 0; j < XVECLEN (x, i); j++) -+ purge_mem_unchanging_flag (XVECEXP (x, i, j)); -+ } -+} -+ - /* Replace the CALL_PLACEHOLDER with one of its children. INSN should be - the CALL_PLACEHOLDER insn; USE tells which child to use. */ - -@@ -593,18 +633,39 @@ success: - } - } - -- /* A sibling call sequence invalidates any REG_EQUIV notes made for -- this function's incoming arguments. -- -- At the start of RTL generation we know the only REG_EQUIV notes -- in the rtl chain are those for incoming arguments, so we can safely -- flush any REG_EQUIV note. -- -- This is (slight) overkill. We could keep track of the highest argument -- we clobber and be more selective in removing notes, but it does not -- seem to be worth the effort. */ - if (successful_sibling_call) -- purge_reg_equiv_notes (); -+ { -+ rtx insn; -+ -+ /* A sibling call sequence invalidates any REG_EQUIV notes made for -+ this function's incoming arguments. -+ -+ At the start of RTL generation we know the only REG_EQUIV notes -+ in the rtl chain are those for incoming arguments, so we can safely -+ flush any REG_EQUIV note. -+ -+ This is (slight) overkill. We could keep track of the highest -+ argument we clobber and be more selective in removing notes, but it -+ does not seem to be worth the effort. */ -+ purge_reg_equiv_notes (); -+ -+ /* A sibling call sequence also may invalidate RTX_UNCHANGING_P -+ flag of some incoming arguments MEM RTLs, because it can write into -+ those slots. We clear all those bits now. -+ -+ This is (slight) overkill, we could keep track of which arguments -+ we actually write into. */ -+ for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) -+ { -+ if (GET_CODE (insn) == NOTE) -+ { -+ if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_BEG) -+ break; -+ } -+ else if (INSN_P (insn)) -+ purge_mem_unchanging_flag (PATTERN (insn)); -+ } -+ } - - /* There may have been NOTE_INSN_BLOCK_{BEGIN,END} notes in the - CALL_PLACEHOLDER alternatives that we didn't emit. Rebuild the diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sibcall.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sibcall.patch deleted file mode 100644 index 20fa119f2c1d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sibcall.patch +++ /dev/null @@ -1,270 +0,0 @@ -2000-08-12 Richard Henderson <rth@cygnus.com> - - * sibcall.c (uses_addressof): Accept both addressof and - current_function_internal_arg_pointer inside a mem. - (optimize_sibling_and_tail_recursive_call): Fail tail recursion - if current_function_uses_addressof. - * stmt.c (expand_return): Kill tail recursion and HAVE_return - optimizations. - -*** gcc/sibcall.c 2000/08/04 20:28:06 1.7 ---- gcc/sibcall.c 2000/08/12 16:24:33 -*************** static rtx skip_copy_to_return_value PAR -*** 37,43 **** - static rtx skip_use_of_return_value PARAMS ((rtx, enum rtx_code)); - static rtx skip_stack_adjustment PARAMS ((rtx)); - static rtx skip_jump_insn PARAMS ((rtx)); -! static int uses_addressof PARAMS ((rtx, int)); - static int sequence_uses_addressof PARAMS ((rtx)); - static void purge_reg_equiv_notes PARAMS ((void)); - ---- 37,43 ---- - static rtx skip_use_of_return_value PARAMS ((rtx, enum rtx_code)); - static rtx skip_stack_adjustment PARAMS ((rtx)); - static rtx skip_jump_insn PARAMS ((rtx)); -! static int uses_addressof PARAMS ((rtx)); - static int sequence_uses_addressof PARAMS ((rtx)); - static void purge_reg_equiv_notes PARAMS ((void)); - -*************** skip_jump_insn (orig_insn) -*** 237,252 **** - - /* Scan the rtx X for ADDRESSOF expressions or - current_function_internal_arg_pointer registers. -! INMEM argument should be 1 if we're looking at inner part of some -! MEM expression, otherwise 0. -! Return nonzero if an ADDRESSOF expresion is found or if -! current_function_internal_arg_pointer is found outside of some MEM -! expression, else return zero. */ - - static int -! uses_addressof (x, inmem) - rtx x; -- int inmem; - { - RTX_CODE code; - int i, j; ---- 237,248 ---- - - /* Scan the rtx X for ADDRESSOF expressions or - current_function_internal_arg_pointer registers. -! Return nonzero if an ADDRESSOF or current_function_internal_arg_pointer -! is found outside of some MEM expression, else return zero. */ - - static int -! uses_addressof (x) - rtx x; - { - RTX_CODE code; - int i, j; -*************** uses_addressof (x, inmem) -*** 256,270 **** - return 0; - - code = GET_CODE (x); -- -- if (code == ADDRESSOF) -- return 1; - -! if (x == current_function_internal_arg_pointer && ! inmem) - return 1; - - if (code == MEM) -! return uses_addressof (XEXP (x, 0), 1); - - /* Scan all subexpressions. */ - fmt = GET_RTX_FORMAT (code); ---- 252,263 ---- - return 0; - - code = GET_CODE (x); - -! if (code == ADDRESSOF || x == current_function_internal_arg_pointer) - return 1; - - if (code == MEM) -! return 0; - - /* Scan all subexpressions. */ - fmt = GET_RTX_FORMAT (code); -*************** uses_addressof (x, inmem) -*** 272,284 **** - { - if (*fmt == 'e') - { -! if (uses_addressof (XEXP (x, i), inmem)) - return 1; - } - else if (*fmt == 'E') - { - for (j = 0; j < XVECLEN (x, i); j++) -! if (uses_addressof (XVECEXP (x, i, j), inmem)) - return 1; - } - } ---- 265,277 ---- - { - if (*fmt == 'e') - { -! if (uses_addressof (XEXP (x, i))) - return 1; - } - else if (*fmt == 'E') - { - for (j = 0; j < XVECLEN (x, i); j++) -! if (uses_addressof (XVECEXP (x, i, j))) - return 1; - } - } -*************** sequence_uses_addressof (seq) -*** 318,325 **** - && sequence_uses_addressof (XEXP (PATTERN (insn), 2))) - return 1; - } -! else if (uses_addressof (PATTERN (insn), 0) -! || (REG_NOTES (insn) && uses_addressof (REG_NOTES (insn), 0))) - return 1; - } - return 0; ---- 311,318 ---- - && sequence_uses_addressof (XEXP (PATTERN (insn), 2))) - return 1; - } -! else if (uses_addressof (PATTERN (insn)) -! || (REG_NOTES (insn) && uses_addressof (REG_NOTES (insn)))) - return 1; - } - return 0; -*************** optimize_sibling_and_tail_recursive_call -*** 490,503 **** - if (frame_offset) - goto failure; - - /* alloca (until we have stack slot life analysis) inhibits - sibling call optimizations, but not tail recursion. -- -- Similarly if we have ADDRESSOF expressions. -- - Similarly if we use varargs or stdarg since they implicitly - may take the address of an argument. */ -! if (current_function_calls_alloca || current_function_uses_addressof - || current_function_varargs || current_function_stdarg) - sibcall = 0; - ---- 483,498 ---- - if (frame_offset) - goto failure; - -+ /* Taking the address of a local variable is fatal to tail -+ recursion if the address is used by the recursive call. */ -+ if (current_function_uses_addressof) -+ goto failure; -+ - /* alloca (until we have stack slot life analysis) inhibits - sibling call optimizations, but not tail recursion. - Similarly if we use varargs or stdarg since they implicitly - may take the address of an argument. */ -! if (current_function_calls_alloca - || current_function_varargs || current_function_stdarg) - sibcall = 0; - -*** gcc/stmt.c 2000/08/06 10:07:30 1.156 ---- gcc/stmt.c 2000/08/12 16:24:33 -*************** expand_return (retval) -*** 2809,2817 **** - rtx last_insn = 0; - rtx result_rtl = DECL_RTL (DECL_RESULT (current_function_decl)); - register rtx val = 0; -- #ifdef HAVE_return -- register rtx op0; -- #endif - tree retval_rhs; - int cleanups; - ---- 2809,2814 ---- -*************** expand_return (retval) -*** 2884,2965 **** - end_cleanup_deferral (); - return; - } -- -- /* Attempt to optimize the call if it is tail recursive. */ -- if (flag_optimize_sibling_calls -- && retval_rhs != NULL_TREE -- && frame_offset == 0 -- && TREE_CODE (retval_rhs) == CALL_EXPR -- && TREE_CODE (TREE_OPERAND (retval_rhs, 0)) == ADDR_EXPR -- && (TREE_OPERAND (TREE_OPERAND (retval_rhs, 0), 0) -- == current_function_decl) -- && optimize_tail_recursion (TREE_OPERAND (retval_rhs, 1), last_insn)) -- return; -- -- #ifdef HAVE_return -- /* This optimization is safe if there are local cleanups -- because expand_null_return takes care of them. -- ??? I think it should also be safe when there is a cleanup label, -- because expand_null_return takes care of them, too. -- Any reason why not? */ -- if (HAVE_return && cleanup_label == 0 -- && ! current_function_returns_pcc_struct -- && BRANCH_COST <= 1) -- { -- /* If this is return x == y; then generate -- if (x == y) return 1; else return 0; -- if we can do it with explicit return insns and branches are cheap, -- but not if we have the corresponding scc insn. */ -- int has_scc = 0; -- if (retval_rhs) -- switch (TREE_CODE (retval_rhs)) -- { -- case EQ_EXPR: -- #ifdef HAVE_seq -- has_scc = HAVE_seq; -- #endif -- case NE_EXPR: -- #ifdef HAVE_sne -- has_scc = HAVE_sne; -- #endif -- case GT_EXPR: -- #ifdef HAVE_sgt -- has_scc = HAVE_sgt; -- #endif -- case GE_EXPR: -- #ifdef HAVE_sge -- has_scc = HAVE_sge; -- #endif -- case LT_EXPR: -- #ifdef HAVE_slt -- has_scc = HAVE_slt; -- #endif -- case LE_EXPR: -- #ifdef HAVE_sle -- has_scc = HAVE_sle; -- #endif -- case TRUTH_ANDIF_EXPR: -- case TRUTH_ORIF_EXPR: -- case TRUTH_AND_EXPR: -- case TRUTH_OR_EXPR: -- case TRUTH_NOT_EXPR: -- case TRUTH_XOR_EXPR: -- if (! has_scc) -- { -- op0 = gen_label_rtx (); -- jumpifnot (retval_rhs, op0); -- expand_value_return (const1_rtx); -- emit_label (op0); -- expand_value_return (const0_rtx); -- return; -- } -- break; -- -- default: -- break; -- } -- } -- #endif /* HAVE_return */ - - /* If the result is an aggregate that is being returned in one (or more) - registers, load the registers here. The compiler currently can't handle ---- 2881,2886 ---- - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-simplify-relational.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-simplify-relational.patch deleted file mode 100644 index 5be09250bb47..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-simplify-relational.patch +++ /dev/null @@ -1,53 +0,0 @@ -Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com> - - * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to - simplify_relational_operation() unless both operands are of - VOIDmode. - * cse.c (fold_rtx): Likewise. - ---- gcc/simplify-rtx.c.jj Mon Jul 31 20:02:12 2000 -+++ gcc/simplify-rtx.c Wed Aug 23 14:10:27 2000 -@@ -1694,7 +1694,7 @@ simplify_relational_operation (code, mod - if (mode == VOIDmode - && (GET_MODE (op0) != VOIDmode - || GET_MODE (op1) != VOIDmode)) -- abort(); -+ abort (); - - /* If op0 is a compare, extract the comparison arguments from it. */ - if (GET_CODE (op0) == COMPARE && op1 == const0_rtx) -@@ -2091,7 +2091,10 @@ simplify_rtx (x) - XEXP (x, 0), XEXP (x, 1), XEXP (x, 2)); - - case '<': -- return simplify_relational_operation (code, GET_MODE (XEXP (x, 0)), -+ return simplify_relational_operation (code, -+ (GET_MODE (XEXP (x, 0)) != VOIDmode -+ ? GET_MODE (XEXP (x, 0)) -+ : GET_MODE (XEXP (x, 1))), - XEXP (x, 0), XEXP (x, 1)); - default: - return NULL; ---- gcc/cse.c.jj Mon Aug 21 18:27:32 2000 -+++ gcc/cse.c Wed Aug 23 14:10:27 2000 -@@ -3857,7 +3857,19 @@ fold_rtx (x, insn) - } - } - -- new = simplify_relational_operation (code, mode_arg0, -+ new = simplify_relational_operation (code, -+ (mode_arg0 != VOIDmode -+ ? mode_arg0 -+ : (GET_MODE (const_arg0 -+ ? const_arg0 -+ : folded_arg0) -+ != VOIDmode) -+ ? GET_MODE (const_arg0 -+ ? const_arg0 -+ : folded_arg0) -+ : GET_MODE (const_arg1 -+ ? const_arg1 -+ : folded_arg1)), - const_arg0 ? const_arg0 : folded_arg0, - const_arg1 ? const_arg1 : folded_arg1); - #ifdef FLOAT_STORE_FLAG_VALUE diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-4096.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-4096.patch deleted file mode 100644 index a0e8d7a290c1..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-4096.patch +++ /dev/null @@ -1,110 +0,0 @@ -2000-10-31 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and - operands[1] is constant, calculate the sum and generate movdi. - (addsi3): Similarly. Use SImode in call to arith_4096_operand. - (subsi3): Use SImode in call to arith_4096_operand. - - * gcc.c-torture/execute/20001031-1.c: New test. - ---- gcc/config/sparc/sparc.md.jj Fri Oct 13 16:51:43 2000 -+++ gcc/config/sparc/sparc.md Tue Oct 31 16:45:36 2000 -@@ -5539,6 +5539,8 @@ - "" - " - { -+ HOST_WIDE_INT i; -+ - if (! TARGET_ARCH64) - { - emit_insn (gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, -@@ -5551,9 +5553,17 @@ - } - if (arith_double_4096_operand(operands[2], DImode)) - { -- emit_insn (gen_rtx_SET (VOIDmode, operands[0], -- gen_rtx_MINUS (DImode, operands[1], -- GEN_INT(-4096)))); -+ switch (GET_CODE (operands[1])) -+ { -+ case CONST_INT: i = INTVAL (operands[1]); break; -+ case CONST_DOUBLE: i = CONST_DOUBLE_LOW (operands[1]); break; -+ default: -+ emit_insn (gen_rtx_SET (VOIDmode, operands[0], -+ gen_rtx_MINUS (DImode, operands[1], -+ GEN_INT(-4096)))); -+ DONE; -+ } -+ emit_insn (gen_movdi (operands[0], GEN_INT (i + 4096))); - DONE; - } - }") -@@ -5768,11 +5778,15 @@ - "" - " - { -- if (arith_4096_operand(operands[2], DImode)) -+ if (arith_4096_operand(operands[2], SImode)) - { -- emit_insn (gen_rtx_SET (VOIDmode, operands[0], -- gen_rtx_MINUS (SImode, operands[1], -- GEN_INT(-4096)))); -+ if (GET_CODE (operands[1]) == CONST_INT) -+ emit_insn (gen_movsi (operands[0], -+ GEN_INT (INTVAL (operands[1]) + 4096))); -+ else -+ emit_insn (gen_rtx_SET (VOIDmode, operands[0], -+ gen_rtx_MINUS (SImode, operands[1], -+ GEN_INT(-4096)))); - DONE; - } - }") -@@ -5967,7 +5981,7 @@ - "" - " - { -- if (arith_4096_operand(operands[2], DImode)) -+ if (arith_4096_operand(operands[2], SImode)) - { - emit_insn (gen_rtx_SET (VOIDmode, operands[0], - gen_rtx_PLUS (SImode, operands[1], ---- gcc/testsuite/gcc.c-torture/execute/20001031-1.c.jj Tue Oct 31 16:30:36 2000 -+++ gcc/testsuite/gcc.c-torture/execute/20001031-1.c Tue Oct 31 16:26:06 2000 -@@ -0,0 +1,37 @@ -+extern void abort (void); -+extern void exit (int); -+ -+void t1 (int x) -+{ -+ if (x != 4100) -+ abort (); -+} -+ -+int t2 (void) -+{ -+ int i; -+ t1 ((i = 4096) + 4); -+ return i; -+} -+ -+void t3 (long long x) -+{ -+ if (x != 0x80000fffULL) -+ abort (); -+} -+ -+long long t4 (void) -+{ -+ long long i; -+ t3 ((i = 4096) + 0x7fffffffULL); -+ return i; -+} -+ -+main () -+{ -+ if (t2 () != 4096) -+ abort (); -+ if (t4 () != 4096) -+ abort (); -+ exit (0); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-const-pool.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-const-pool.patch deleted file mode 100644 index dd5c6d855172..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-const-pool.patch +++ /dev/null @@ -1,78 +0,0 @@ -Not accepted, need to write something else... - -2000-09-23 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md (movsf, movdf, movtf): Look up constant pool - for SYMBOL_REFs to check for fp_zero_operand. - ---- gcc/config/sparc/sparc.md.jj Tue Aug 15 12:02:19 2000 -+++ gcc/config/sparc/sparc.md Fri Sep 22 23:04:37 2000 -@@ -3185,6 +3185,21 @@ - operands[1])); - } - -+ if (((TARGET_VIS && GET_CODE (operands[0]) == REG) -+ || GET_CODE (operands[0]) == MEM) -+ && GET_CODE (operands[1]) == MEM -+ && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF -+ && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))) -+ { -+ rtx operand = get_pool_constant (XEXP (operands[1], 0)); -+ -+ if (fp_zero_operand (operand, SFmode)) -+ { -+ operands[1] = operand; -+ goto movsf_is_ok; -+ } -+ } -+ - /* Handle sets of MEM first. */ - if (GET_CODE (operands[0]) == MEM) - { -@@ -3244,6 +3259,21 @@ - operands[1])); - } - -+ if (((TARGET_VIS && GET_CODE (operands[0]) == REG) -+ || GET_CODE (operands[0]) == MEM) -+ && GET_CODE (operands[1]) == MEM -+ && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF -+ && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))) -+ { -+ rtx operand = get_pool_constant (XEXP (operands[1], 0)); -+ -+ if (fp_zero_operand (operand, DFmode)) -+ { -+ operands[1] = operand; -+ goto movdf_is_ok; -+ } -+ } -+ - /* Handle MEM cases first. */ - if (GET_CODE (operands[0]) == MEM) - { -@@ -3681,6 +3711,21 @@ - operands[1] = validize_mem (force_const_mem (GET_MODE (operands[0]), - operands[1])); - } -+ -+ if (((TARGET_VIS && GET_CODE (operands[0]) == REG) -+ || GET_CODE (operands[0]) == MEM) -+ && GET_CODE (operands[1]) == MEM -+ && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF -+ && CONSTANT_POOL_ADDRESS_P (XEXP (operands[1], 0))) -+ { -+ rtx operand = get_pool_constant (XEXP (operands[1], 0)); -+ -+ if (fp_zero_operand (operand, TFmode)) -+ { -+ operands[1] = operand; -+ goto movtf_is_ok; -+ } -+ } - - /* Handle MEM cases first, note that only v9 guarentees - full 16-byte alignment for quads. */ - - Jakub - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-copy-leaf-remappable.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-copy-leaf-remappable.patch deleted file mode 100644 index 1fc8d640317e..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-copy-leaf-remappable.patch +++ /dev/null @@ -1,182 +0,0 @@ -2000-09-10 Alexandre Oliva <aoliva@redhat.com> - - * gcc.c-torture/execute/20000910-1.c: New test. - * gcc.c-torture/execute/20000910-2.c: Likewise. - ---- gcc/testsuite/gcc.c-torture/execute/20000910-1.c Tue May 5 13:32:27 1998 -+++ gcc/testsuite/gcc.c-torture/execute/20000910-1.c Sun Sep 10 07:31:53 2000 -@@ -0,0 +1,27 @@ -+/* Copyright (C) 2000 Free Software Foundation */ -+/* by Alexandre Oliva <aoliva@redhat.com> */ -+ -+#include <stdlib.h> -+ -+void bar (int); -+void foo (int *); -+ -+int main () { -+ static int a[] = { 0, 1, 2 }; -+ int *i = &a[sizeof(a)/sizeof(*a)]; -+ -+ while (i-- > a) -+ foo (i); -+ -+ exit (0); -+} -+ -+void baz (int, int); -+ -+void bar (int i) { baz (i, i); } -+void foo (int *i) { bar (*i); } -+ -+void baz (int i, int j) { -+ if (i != j) -+ abort (); -+} ---- gcc/testsuite/gcc.c-torture/execute/20000910-2.c Tue May 5 13:32:27 1998 -+++ gcc/testsuite/gcc.c-torture/execute/20000910-2.c Sun Sep 10 07:31:53 2000 -@@ -0,0 +1,28 @@ -+/* Copyright (C) 2000 Free Software Foundation */ -+/* by Alexandre Oliva <aoliva@redhat.com> */ -+ -+#include <stdlib.h> -+#include <string.h> -+ -+char *list[] = { "*", "e" }; -+ -+static int bar (const char *fmt) { -+ return (strchr (fmt, '*') != 0); -+} -+ -+static void foo () { -+ int i; -+ for (i = 0; i < sizeof (list) / sizeof (*list); i++) { -+ const char *fmt = list[i]; -+ if (bar (fmt)) -+ continue; -+ if (i == 0) -+ abort (); -+ else -+ exit (0); -+ } -+} -+ -+int main () { -+ foo (); -+} - -2000-09-10 Alexandre Oliva <aoliva@redhat.com> - - * print-rtl.c (debug_call_placeholder_verbose): New variable. - (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is - set. - * integrate.c (copy_rtx_and_substitute): Don't share - LEAF_REG_REMAPpable registers with the inlined function. Don't - share the function value with calling sequences. - ---- gcc/print-rtl.c 2000/08/04 20:28:05 1.58 -+++ gcc/print-rtl.c 2000/09/10 14:31:54 -@@ -63,6 +63,9 @@ int flag_dump_unnumbered = 0; - /* Nonzero if we are dumping graphical description. */ - int dump_for_graph; - -+/* Nonzero to dump all call_placeholder alternatives. */ -+static int debug_call_placeholder_verbose; -+ - /* Print IN_RTX onto OUTFILE. This is the recursive part of printing. */ - - static void -@@ -421,6 +424,37 @@ print_rtx (in_rtx) - break; - - case CALL_PLACEHOLDER: -+ if (debug_call_placeholder_verbose) -+ { -+ fputs (" (cond [\n (const_string \"normal\") (sequence [", outfile); -+ for (tem = XEXP (in_rtx, 0); tem != 0; tem = NEXT_INSN (tem)) -+ { -+ fputs ("\n ", outfile); -+ print_inline_rtx (outfile, tem, 4); -+ } -+ -+ tem = XEXP (in_rtx, 1); -+ if (tem) -+ fputs ("\n ])\n (const_string \"tail_call\") (sequence [", outfile); -+ for (; tem != 0; tem = NEXT_INSN (tem)) -+ { -+ fputs ("\n ", outfile); -+ print_inline_rtx (outfile, tem, 4); -+ } -+ -+ tem = XEXP (in_rtx, 2); -+ if (tem) -+ fputs ("\n ])\n (const_string \"tail_recursion\") (sequence [", outfile); -+ for (; tem != 0; tem = NEXT_INSN (tem)) -+ { -+ fputs ("\n ", outfile); -+ print_inline_rtx (outfile, tem, 4); -+ } -+ -+ fputs ("\n ])\n ])", outfile); -+ break; -+ } -+ - for (tem = XEXP (in_rtx, 0); tem != 0; tem = NEXT_INSN (tem)) - if (GET_CODE (tem) == CALL_INSN) - { ---- gcc/integrate.c 2000/09/02 02:54:55 1.113 -+++ gcc/integrate.c 2000/09/10 14:31:55 -@@ -1747,7 +1747,15 @@ copy_rtx_and_substitute (orig, map, for_ - { - /* Some hard registers are also mapped, - but others are not translated. */ -- if (map->reg_map[regno] != 0) -+ if (map->reg_map[regno] != 0 -+ /* We shouldn't usually have reg_map set for return -+ register, but it may happen if we have leaf-register -+ remapping and the return register is used in one of -+ the calling sequences of a call_placeholer. In this -+ case, we'll end up with a reg_map set for this -+ register, but we don't want to use for registers -+ marked as return values. */ -+ && ! REG_FUNCTION_VALUE_P (orig)) - return map->reg_map[regno]; - - /* If this is the virtual frame pointer, make space in current -@@ -1758,7 +1766,7 @@ copy_rtx_and_substitute (orig, map, for_ - equivalence for it to be the address. This will substitute the - address into insns where it can be substituted and use the new - pseudo where it can't. */ -- if (regno == VIRTUAL_STACK_VARS_REGNUM) -+ else if (regno == VIRTUAL_STACK_VARS_REGNUM) - { - rtx loc, seq; - int size = get_func_frame_size (DECL_SAVED_INSNS (map->fndecl)); -@@ -1845,7 +1853,26 @@ copy_rtx_and_substitute (orig, map, for_ - else - return map->inline_target; - } -- return orig; -+#if defined (LEAF_REGISTERS) && defined (LEAF_REG_REMAP) -+ /* If leaf_renumber_regs_insn() might remap this register to -+ some other number, make sure we don't share it with the -+ inlined function, otherwise delayed optimization of the -+ inlined function may change it in place, breaking our -+ reference to it. We may still shared it within the -+ function, so create an entry for this register in the -+ reg_map. */ -+ if (map->integrating && regno < FIRST_PSEUDO_REGISTER -+ && LEAF_REGISTERS[regno] && LEAF_REG_REMAP (regno) != regno) -+ { -+ temp = gen_rtx_REG (mode, regno); -+ map->reg_map[regno] = temp; -+ return temp; -+ } -+#endif -+ else -+ return orig; -+ -+ abort (); - } - if (map->reg_map[regno] == NULL) - { diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-may-trap.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-may-trap.patch deleted file mode 100644 index 0563bca36efb..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-may-trap.patch +++ /dev/null @@ -1,68 +0,0 @@ -2000-10-13 Jakub Jelinek <jakub@redhat.com> - - * rtlanal.c (may_trap_p): Check operand modes of COMPARE. - - * gcc.dg/20001013-1.c: New test. - ---- gcc/rtlanal.c.jj Fri Sep 15 16:46:43 2000 -+++ gcc/rtlanal.c Fri Oct 13 19:08:01 2000 -@@ -1877,6 +1877,17 @@ may_trap_p (x) - certainly may trap. */ - return 1; - -+ case COMPARE: -+ /* Any floating comparison may trap. */ -+ if (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT) -+ return 1; -+ /* But often the compare has some CC mode, so check operand -+ modes as well. */ -+ if (GET_MODE_CLASS (GET_MODE (XEXP (x, 0))) == MODE_FLOAT -+ || GET_MODE_CLASS (GET_MODE (XEXP (x, 1))) == MODE_FLOAT) -+ return 1; -+ break; -+ - default: - /* Any floating arithmetic may trap. */ - if (GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT) ---- gcc/testsuite/gcc.dg/20001013-1.c.jj Fri Oct 13 19:10:41 2000 -+++ gcc/testsuite/gcc.dg/20001013-1.c Fri Oct 13 19:10:36 2000 -@@ -0,0 +1,39 @@ -+/* { dg-do run { target sparc*-*-* } } */ -+/* { dg-options "-O2 -mvis" } */ -+ -+int l; -+ -+int baz (double x) -+{ -+ return l == 0; -+} -+ -+double bar (double x) -+{ -+ return 1.0; -+} -+ -+double foo (double x) -+{ -+ if (l == -1 || baz (x)) return x; -+ if (x < 0.0) -+ return bar (x); -+ else -+ return 0.0; -+} -+ -+union { -+ double d; -+ long long l; -+} x = { l: 0x7ff8000000000000LL }, y; -+ -+main () -+{ -+ unsigned int fsr = 0; -+ __asm __volatile ("ld %0, %%fsr" : : "m" (fsr)); -+ y.d = foo (x.d); -+ __asm __volatile ("st %%fsr, %0" : "=m" (fsr)); -+ if (x.l != y.l || (fsr & 0x3ff)) -+ abort (); -+ exit (0); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-mi-thunk.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-mi-thunk.patch deleted file mode 100644 index d842335b1f2e..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-mi-thunk.patch +++ /dev/null @@ -1,59 +0,0 @@ -2000-10-17 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make - sure linker can relax even the delay slot mov %g1,%o7, fix output - formating. - ---- gcc/config/sparc/sparc.h.jj Fri Oct 13 16:51:43 2000 -+++ gcc/config/sparc/sparc.h Tue Oct 17 14:12:58 2000 -@@ -3231,42 +3231,15 @@ do { \ - Used for C++ multiple inheritance. */ - #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ - do { \ -- int big_delta = (DELTA) >= 4096 || (DELTA) < -4096; \ -- if (big_delta) \ -- fprintf (FILE, "\tset %d,%%g1\n\tadd %%o0,%%g1,%%o0\n", (DELTA)); \ -- /* Don't use the jmp solution unless we know the target is local to \ -- the application or shared object. \ -- XXX: Wimp out and don't actually check anything except if this is \ -- an embedded target where we assume there are no shared libs. */ \ -- if (!TARGET_CM_EMBMEDANY || flag_pic) \ -- { \ -- if (! big_delta) \ -- fprintf (FILE, "\tadd %%o0,%d,%%o0\n", DELTA); \ -- fprintf (FILE, "\tmov %%o7,%%g1\n"); \ -- fprintf (FILE, "\tcall "); \ -- assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ -- fprintf (FILE, ",0\n"); \ -- } \ -- else if (TARGET_CM_EMBMEDANY) \ -- { \ -- fprintf (FILE, "\tsetx "); \ -- assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ -- fprintf (FILE, ",%%g5,%%g1\n\tjmp %%g1\n"); \ -- } \ -+ if ((DELTA) >= 4096 || (DELTA) < -4096) \ -+ fprintf (FILE, "\tset\t%d, %%g1\n\tadd\t%%o0, %%g1, %%o0\n", (DELTA));\ - else \ -- { \ -- fprintf (FILE, "\tsethi %%hi("); \ -- assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ -- fprintf (FILE, "),%%g1\n\tjmp %%g1+%%lo("); \ -- assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ -- fprintf (FILE, ")\n"); \ -- } \ -- if (!TARGET_CM_EMBMEDANY || flag_pic) \ -- fprintf (FILE, "\tmov %%g1,%%o7\n"); \ -- else if (big_delta) \ -- fprintf (FILE, "\tnop\n"); \ -- else \ -- fprintf (FILE, "\tadd %%o0,%d,%%o0\n", DELTA); \ -+ fprintf (FILE, "\tadd\t%%o0, %d, %%o0\n", DELTA); \ -+ fprintf (FILE, "\tor\t%%o7, %%g0, %%g1\n"); \ -+ fprintf (FILE, "\tcall\t"); \ -+ assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ -+ fprintf (FILE, ", 0\n"); \ -+ fprintf (FILE, "\t or\t%%g1, %%g0, %%o7\n"); \ - } while (0) - - /* Define the parentheses used to group arithmetic operations diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-output-formatting.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-output-formatting.patch deleted file mode 100644 index f130faac94c9..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-output-formatting.patch +++ /dev/null @@ -1,72 +0,0 @@ -2000-11-06 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1, - update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting. - ---- gcc/config/sparc/sparc.md.jj Mon Nov 6 09:40:07 2000 -+++ gcc/config/sparc/sparc.md Mon Nov 6 09:47:47 2000 -@@ -6240,8 +6240,8 @@ - (clobber (match_scratch:SI 4 "=X,&h"))] - "TARGET_V8PLUS" - "@ -- smul %1,%2,%0\;srlx %0,%3,%0 -- smul %1,%2,%4\;srlx %4,%3,%0" -+ smul\\t%1, %2, %0\;srlx\\t%0, %3, %0 -+ smul\\t%1, %2, %4\;srlx\\t%4, %3, %0" - [(set_attr "length" "2")]) - - ;; The combiner changes TRUNCATE in the previous pattern to SUBREG. -@@ -8100,8 +8100,8 @@ - "* - { - if (GET_CODE (operands[2]) == REG && REGNO (operands[2]) == REGNO (operands[0])) -- return \"mov 1,%L0\;sllx %L0,%2,%L0\;sub %L0,1,%L0\;srlx %L0,32,%H0\"; -- return \"mov 1,%H0\;sllx %H0,%2,%L0\;sub %L0,1,%L0\;srlx %L0,32,%H0\"; -+ return \"mov\\t1, %L0\;sllx\\t%L0, %2, %L0\;sub\\t%L0, 1, %L0\;srlx\\t%L0, 32, %H0\"; -+ return \"mov\\t1, %H0\;sllx\\t%H0, %2, %L0\;sub\\t%L0, 1, %L0\;srlx\\t%L0, 32, %H0\"; - }" - [(set_attr "length" "4")]) - -@@ -8859,7 +8859,7 @@ - [(unspec:SI [(match_operand:SI 0 "register_operand" "r") - (match_operand:SI 1 "register_operand" "r")] 1)] - "! TARGET_ARCH64" -- "cmp %1,0\;be,a .+8\;add %0,4,%0" -+ "cmp\\t%1, 0\;be,a\\t.+8\;add\\t%0, 4, %0" - [(set_attr "type" "multi")]) - - (define_insn "return" -@@ -9039,13 +9039,13 @@ - (define_insn "flush" - [(unspec_volatile [(match_operand:SI 0 "memory_operand" "m")] 3)] - "" -- "* return TARGET_V9 ? \"flush %f0\" : \"iflush %f0\";" -+ "* return TARGET_V9 ? \"flush\\t%f0\" : \"iflush\\t%f0\";" - [(set_attr "type" "misc")]) - - (define_insn "flushdi" - [(unspec_volatile [(match_operand:DI 0 "memory_operand" "m")] 3)] - "" -- "* return TARGET_V9 ? \"flush %f0\" : \"iflush %f0\";" -+ "* return TARGET_V9 ? \"flush\\t%f0\" : \"iflush\\t%f0\";" - [(set_attr "type" "misc")]) - - -@@ -9064,7 +9064,7 @@ - "TARGET_SPARCLITE || TARGET_SPARCLET" - "* - { -- return \"sub %%g0,%1,%0\;and %0,%1,%0\;scan %0,0,%0\;mov 32,%2\;sub %2,%0,%0\;sra %0,31,%2\;and %2,31,%2\;add %2,%0,%0\"; -+ return \"sub\\t%%g0, %1, %0\;and\\t%0, %1, %0\;scan\\t%0, 0, %0\;mov\\t32, %2\;sub\\t%2, %0, %0\;sra\\t%0, 31, %2\;and\\t%2, 31, %2\;add\\t%2, %0, %0\"; - }" - [(set_attr "type" "multi") - (set_attr "length" "8")]) -@@ -9080,7 +9080,7 @@ - ; (ffs:DI (match_operand:DI 1 "register_operand" "r"))) - ; (clobber (match_scratch:DI 2 "=&r"))] - ; "TARGET_ARCH64" --; "neg %1,%2\;xnor %1,%2,%2\;popc %2,%0\;movzr %1,0,%0" -+; "neg\\t%1, %2\;xnor\\t%1, %2, %2\;popc\\t%2, %0\;movzr\\t%1, 0, %0" - ; [(set_attr "type" "multi") - ; (set_attr "length" "4")]) - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-pic.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-pic.patch deleted file mode 100644 index 0971be683e07..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc-pic.patch +++ /dev/null @@ -1,160 +0,0 @@ -2000-10-11 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.md (nonlocal_goto_receiver): Remove. - (prologue, exception_receiver, builtin_setjmp_receiver): New - patterns. - * config/sparc/sparc.h (FINALIZE_PIC): Remove. - * config/sparc/sparc-protos.h (finalize_pic): Remove. - (load_pic_register): New prototype. - * config/sparc/sparc.c (pic_setup_code): Remove. - (finalize_pic): Rename to... - (load_pic_register): ...this function. - Don't look for nonlocal_goto_receivers and emit pic setup code - directly. Don't check current_function_uses_pic_offset_table. - ---- gcc/config/sparc/sparc.md.jj Fri Sep 15 16:46:30 2000 -+++ gcc/config/sparc/sparc.md Wed Oct 11 13:47:31 2000 -@@ -50,7 +50,6 @@ - ;; 2 goto_handler_and_restore - ;; 3 goto_handler_and_restore_v9* - ;; 4 flush --;; 5 nonlocal_goto_receiver - ;; - - ;; The upper 32 fp regs on the v9 can't hold SFmode values. To deal with this -@@ -9455,17 +9454,37 @@ - && in_same_eh_region (insn, operands[2]) - && in_same_eh_region (insn, ins1)" - "call\\t%a0, %1\\n\\tadd\\t%%o7, (%l2-.-4), %%o7") -+ -+(define_expand "prologue" -+ [(const_int 1)] -+ "flag_pic && current_function_uses_pic_offset_table" -+ " -+{ -+ load_pic_register (); -+ DONE; -+}") - --;; After a nonlocal goto, we need to restore the PIC register, but only --;; if we need it. So do nothing much here, but we'll check for this in --;; finalize_pic. -- --;; Make sure this unspec_volatile number agrees with finalize_pic. --(define_insn "nonlocal_goto_receiver" -- [(unspec_volatile [(const_int 0)] 5)] -- "flag_pic" -- "" -- [(set_attr "length" "0")]) -+;; We need to reload %l7 for -mflat -fpic, -+;; otherwise %l7 should be preserved simply -+;; by loading the function's register window -+(define_expand "exception_receiver" -+ [(const_int 0)] -+ "TARGET_FLAT && flag_pic" -+ " -+{ -+ load_pic_register (); -+ DONE; -+}") -+ -+;; Likewise -+(define_expand "builtin_setjmp_receiver" -+ [(label_ref (match_operand 0 "" ""))] -+ "TARGET_FLAT && flag_pic" -+ " -+{ -+ load_pic_register (); -+ DONE; -+}") - - (define_insn "trap" - [(trap_if (const_int 1) (const_int 5))] ---- gcc/config/sparc/sparc.h.jj Fri Sep 15 16:46:35 2000 -+++ gcc/config/sparc/sparc.h Wed Oct 11 12:19:05 2000 -@@ -1262,8 +1262,6 @@ extern int sparc_mode_class[]; - - #define PIC_OFFSET_TABLE_REGNUM 23 - --#define FINALIZE_PIC finalize_pic () -- - /* Pick a default value we can notice from override_options: - !v9: Default is on. - v9: Default is off. */ ---- gcc/config/sparc/sparc-protos.h.jj Fri Mar 24 22:35:06 2000 -+++ gcc/config/sparc/sparc-protos.h Wed Oct 11 12:19:29 2000 -@@ -51,7 +51,7 @@ extern enum direction function_arg_paddi - #endif /* TREE_CODE */ - - extern void ultrasparc_sched_init PARAMS ((FILE *, int)); --extern void finalize_pic PARAMS ((void)); -+extern void load_pic_register PARAMS ((void)); - extern void order_regs_for_local_alloc PARAMS ((void)); - extern void output_function_epilogue PARAMS ((FILE *, int, int)); - extern void output_function_prologue PARAMS ((FILE *, int, int)); ---- gcc/config/sparc/sparc.c.jj Fri Sep 15 16:46:34 2000 -+++ gcc/config/sparc/sparc.c Wed Oct 11 13:45:14 2000 -@@ -127,7 +127,6 @@ char sparc_leaf_regs[] = - static const char *frame_base_name; - static int frame_base_offset; - --static rtx pic_setup_code PARAMS ((void)); - static void sparc_init_modes PARAMS ((void)); - static int save_regs PARAMS ((FILE *, int, int, const char *, - int, int, int)); -@@ -2825,34 +2824,15 @@ legitimize_pic_address (orig, mode, reg) - return orig; - } - --/* Return the RTX for insns to set the PIC register. */ -- --static rtx --pic_setup_code () --{ -- rtx seq; -- -- start_sequence (); -- emit_insn (gen_get_pc (pic_offset_table_rtx, global_offset_table, -- get_pc_symbol)); -- seq = gen_sequence (); -- end_sequence (); -- -- return seq; --} -- --/* Emit special PIC prologues and epilogues. */ -+/* Emit special PIC prologues. */ - - void --finalize_pic () -+load_pic_register () - { - /* Labels to get the PC in the prologue of this function. */ - int orig_flag_pic = flag_pic; - rtx insn; - -- if (current_function_uses_pic_offset_table == 0) -- return; -- - if (! flag_pic) - abort (); - -@@ -2877,16 +2857,8 @@ finalize_pic () - get_pc_symbol = gen_rtx_SYMBOL_REF (Pmode, get_pc_symbol_name); - flag_pic = 0; - -- emit_insn_after (pic_setup_code (), get_insns ()); -- -- /* Insert the code in each nonlocal goto receiver. -- If you make changes here or to the nonlocal_goto_receiver -- pattern, make sure the unspec_volatile numbers still -- match. */ -- for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) -- if (GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE -- && XINT (PATTERN (insn), 1) == 5) -- emit_insn_after (pic_setup_code (), insn); -+ emit_insn (gen_get_pc (pic_offset_table_rtx, global_offset_table, -+ get_pc_symbol)); - - flag_pic = orig_flag_pic; - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc32-hack.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc32-hack.patch deleted file mode 100644 index 40b4cf50654b..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc32-hack.patch +++ /dev/null @@ -1,66 +0,0 @@ -This is an optimization hack which should only be present -in a sparc 32bit driver of the compiler compiled with -host/target/build sparc64-redhat-linux --with-cpu=v7. -As long long HOST_WIDE_INT slows things down, we can have in -addition to the sparc64-*/2.96/{cc1,cc1plus} -sparc-*/2.96/{cc1,cc1plus} binaries which are suitable for compiling --m32 code only, but use long HOST_WIDE_INT. - ---- gcc/gcc.c.jj Mon Jul 31 21:36:08 2000 -+++ gcc/gcc.c Mon Jul 31 21:44:42 2000 -@@ -2870,6 +2870,8 @@ process_command (argc, argv) - int have_c = 0; - int have_o = 0; - int lang_n_infiles = 0; -+ int m64 = 0; -+ int used_B = 0; - - GET_ENV_PATH_LIST (gcc_exec_prefix, "GCC_EXEC_PREFIX"); - -@@ -3203,6 +3205,7 @@ process_command (argc, argv) - spec_machine = p + 1; - - warn_std_ptr = &warn_std; -+ used_B = 1; - break; - - case 'B': -@@ -3246,6 +3249,7 @@ process_command (argc, argv) - NULL_PTR), - NULL_PTR, - PREFIX_PRIORITY_B_OPT, 0, NULL_PTR); -+ used_B = 1; - n_switches++; - } - break; -@@ -3350,6 +3354,13 @@ process_command (argc, argv) - #endif - goto normal_switch; - -+ /* HACK START */ -+ case 'm': -+ if (p[1] == '6' && p[2] == '4') -+ m64 = 1; -+ /* FALLTHROUGH */ -+ /* HACK END */ -+ - default: - normal_switch: - n_switches++; -@@ -3377,6 +3388,16 @@ process_command (argc, argv) - /* Use 2 as fourth arg meaning try just the machine as a suffix, - as well as trying the machine and the version. */ - #ifndef OS2 -+ /* HACK START */ -+ if (!m64 && !used_B && !strncmp (spec_machine, "sparc64-", 8)) -+ { -+ const char *sparc32_exec_prefix = -+ concat (standard_exec_prefix, "sparc-", spec_machine + 8, -+ dir_separator_str, spec_version, dir_separator_str, NULL_PTR); -+ add_prefix (&exec_prefixes, sparc32_exec_prefix, "GCC", -+ PREFIX_PRIORITY_LAST, 0, warn_std_ptr); -+ } -+ /* HACK END */ - add_prefix (&exec_prefixes, standard_exec_prefix, "GCC", - PREFIX_PRIORITY_LAST, 1, warn_std_ptr); - add_prefix (&exec_prefixes, standard_exec_prefix, "BINUTILS", diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc32-hack2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc32-hack2.patch deleted file mode 100644 index 373fd2dc59d1..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc32-hack2.patch +++ /dev/null @@ -1,289 +0,0 @@ ---- libchill/configure.jj Thu Jun 1 11:57:11 2000 -+++ libchill/configure Wed Jun 21 17:40:27 2000 -@@ -499,11 +499,13 @@ else - > $cache_file - fi - -+LINKCC=`echo $CC | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` -+LINKCFLAGS=`echo $CFLAGS | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` - ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - ac_exeext= -@@ -708,7 +710,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - cat > conftest.$ac_ext << EOF -@@ -736,7 +738,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 ---- libf2c/libF77/configure.jj Mon Mar 13 18:02:39 2000 -+++ libf2c/libF77/configure Wed Jun 21 17:56:39 2000 -@@ -499,11 +499,13 @@ else - > $cache_file - fi - -+LINKCC=`echo $CC | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` -+LINKCFLAGS=`echo $CFLAGS | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` - ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - ac_exeext= -@@ -646,7 +648,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - cat > conftest.$ac_ext << EOF -@@ -674,7 +676,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 ---- libf2c/libI77/configure.jj Wed Feb 24 09:15:18 1999 -+++ libf2c/libI77/configure Wed Jun 21 17:57:52 2000 -@@ -499,11 +499,13 @@ else - > $cache_file - fi - -+LINKCC=`echo $CC | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` -+LINKCFLAGS=`echo $CFLAGS | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` - ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - ac_exeext= -@@ -646,7 +648,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - cat > conftest.$ac_ext << EOF -@@ -674,7 +676,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 ---- libf2c/libU77/configure.jj Tue Oct 12 10:39:35 1999 -+++ libf2c/libU77/configure Wed Jun 21 17:57:55 2000 -@@ -499,11 +499,13 @@ else - > $cache_file - fi - -+LINKCC=`echo $CC | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` -+LINKCFLAGS=`echo $CFLAGS | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` - ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - ac_exeext= -@@ -647,7 +649,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - cat > conftest.$ac_ext << EOF -@@ -675,7 +677,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 ---- libf2c/configure.jj Sun May 21 21:13:31 2000 -+++ libf2c/configure Wed Jun 21 17:40:16 2000 -@@ -499,11 +499,13 @@ else - > $cache_file - fi - -+LINKCC=`echo $CC | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` -+LINKCFLAGS=`echo $CFLAGS | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` - ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - ac_exeext= -@@ -708,7 +710,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - cat > conftest.$ac_ext << EOF -@@ -736,7 +738,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 ---- libiberty/configure.jj Thu Jun 8 15:46:00 2000 -+++ libiberty/configure Wed Jun 21 17:39:58 2000 -@@ -505,11 +505,13 @@ else - > $cache_file - fi - -+LINKCC=`echo $CC | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` -+LINKCFLAGS=`echo $CFLAGS | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` - ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - ac_exeext= -@@ -1754,7 +1756,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - cat > conftest.$ac_ext << EOF -@@ -1782,7 +1784,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 ---- libio/configure.in.jj Mon May 15 07:16:59 2000 -+++ libio/configure.in Wed Jun 21 17:50:12 2000 -@@ -171,6 +171,11 @@ if [ -n "${with_cross_host}" ] ; then - mv -f Makefile.tem Makefile - fi - -+if [ -n "${ac_configure_args}" ]; then -+ ac_configure_args="$ac_configure_args --disable-multilib" -+else -+ arguments="$arguments --disable-multilib" -+fi - . ${topsrcdir}/config-ml.in - - gxx_include_dir= ---- libobjc/configure.jj Mon Jul 31 14:02:23 2000 -+++ libobjc/configure Thu Aug 3 05:28:07 2000 -@@ -514,11 +514,13 @@ else - > $cache_file - fi - -+LINKCC=`echo $CC | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` -+LINKCFLAGS=`echo $CFLAGS | sed -e 's/-m64//' -e 's/-mcmodel=medany//' -e 's/-mno-app-regs//'` - ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - ac_exeext= -@@ -786,7 +788,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - cat > conftest.$ac_ext << EOF -@@ -814,7 +816,7 @@ ac_ext=c - # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. - ac_cpp='$CPP $CPPFLAGS' - ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' --ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -+ac_link='${LINKCC-cc} -o conftest${ac_exeext} $LINKCFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' - cross_compiling=$ac_cv_prog_cc_cross - - echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 -@@ -2752,7 +2754,7 @@ host=${host} - target=${target} - with_target_subdir=${with_target_subdir} - with_multisubdir=${with_multisubdir} --ac_configure_args="--enable-multilib ${ac_configure_args}" -+ac_configure_args="--disable-multilib `echo ${ac_configure_args} | sed -e 's/--enable-multilib//'`" - CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - topsrcdir=${topsrcdir} - ---- libstdc++/configure.in.jj Wed May 10 15:27:37 2000 -+++ libstdc++/configure.in Wed Jun 21 17:51:08 2000 -@@ -170,11 +170,16 @@ if [ -n "${with_cross_host}" ] ; then - mv -f Makefile.tem Makefile - fi - --# enable multilib-ing by default. -+# disable multilib-ing by default. - if [ -z "${enable_multilib}" ]; then -- enable_multilib=yes -+ enable_multilib=no - fi - -+if [ -n "${ac_configure_args}" ]; then -+ ac_configure_args="$ac_configure_args --disable-multilib" -+else -+ arguments="$arguments --disable-multilib" -+fi - . ${topsrcdir}/config-ml.in - - gxx_include_dir= diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc32-vaarg.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc32-vaarg.patch deleted file mode 100644 index e329efb1c203..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc32-vaarg.patch +++ /dev/null @@ -1,50 +0,0 @@ -2000-06-27 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.c (sparc_va_arg): On sparc32 copy 8 byte objects - to temporary. - ---- gcc/config/sparc/sparc.c.jj Mon Apr 17 14:06:51 2000 -+++ gcc/config/sparc/sparc.c Tue Apr 18 17:20:14 2000 -@@ -4804,12 +4804,6 @@ sparc_va_arg (valist, type) - indirect = 1; - size = rsize = UNITS_PER_WORD; - } -- else -- { -- /* ??? The old va-sparc.h implementation, for 8 byte objects -- copied stuff to a temporary -- I don't see that that -- provides any more alignment than the stack slot did. */ -- } - } - - incr = valist; -@@ -4841,6 +4835,29 @@ sparc_va_arg (valist, type) - addr_rtx = force_reg (Pmode, addr_rtx); - addr_rtx = gen_rtx_MEM (Pmode, addr_rtx); - MEM_ALIAS_SET (addr_rtx) = get_varargs_alias_set (); -+ } -+ else if (rsize == 2 * UNITS_PER_WORD && TARGET_ARCH32) -+ { -+ /* va_list is guaranteed to be aligned to 8 bytes only -+ on sparc32. */ -+ rtx word0 = addr_rtx, word1, tword0, tword1; -+ -+ word0 = force_reg (Pmode, addr_rtx); -+ word1 = plus_constant (word0, 4); -+ word1 = force_reg (Pmode, word1); -+ word0 = gen_rtx_MEM (SImode, word0); -+ word1 = gen_rtx_MEM (SImode, word1); -+ MEM_ALIAS_SET (word0) = get_varargs_alias_set (); -+ MEM_ALIAS_SET (word1) = get_varargs_alias_set (); -+ addr_rtx = assign_temp (type, 0, 1, 1); -+ tword0 = gen_rtx_MEM (SImode, XEXP (addr_rtx, 0)); -+ MEM_ALIAS_SET (tword0) = get_varargs_alias_set (); -+ tword1 = plus_constant (XEXP (addr_rtx, 0), 4); -+ tword1 = gen_rtx_MEM (SImode, tword1); -+ MEM_ALIAS_SET (tword1) = get_varargs_alias_set (); -+ emit_move_insn (tword0, word0); -+ emit_move_insn (tword1, word1); -+ addr_rtx = XEXP (addr_rtx, 0); - } - - return addr_rtx; diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-decloffset.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-decloffset.patch deleted file mode 100644 index 31a067737f2e..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-decloffset.patch +++ /dev/null @@ -1,26 +0,0 @@ -2000-03-31 Jakub Jelinek <jakub@redhat.com> - - * stor-layout.c (place_field): Set DECL_OFFSET_ALIGN to at most - BIGGEST_ALIGNMENT to allow overflowing. Use the original - offset_align to compute actual_align. - ---- gcc/stor-layout.c.jj Thu Mar 30 17:22:29 2000 -+++ gcc/stor-layout.c Fri Mar 31 12:51:03 2000 -@@ -828,7 +828,7 @@ place_field (rli, field) - normalize_rli (rli); - DECL_FIELD_OFFSET (field) = rli->offset; - DECL_FIELD_BIT_OFFSET (field) = rli->bitpos; -- DECL_OFFSET_ALIGN (field) = rli->offset_align; -+ DECL_OFFSET_ALIGN (field) = MIN (rli->offset_align, BIGGEST_ALIGNMENT); - - /* If this field ended up more aligned than we thought it would be (we - approximate this by seeing if its position changed), lay out the field -@@ -842,7 +842,7 @@ place_field (rli, field) - * (tree_low_cst (DECL_FIELD_OFFSET (field), 1) - & - tree_low_cst (DECL_FIELD_OFFSET (field), 1))); - else -- actual_align = DECL_OFFSET_ALIGN (field); -+ actual_align = rli->offset_align; - - if (known_align != actual_align) - layout_decl (field, actual_align); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-hwint.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-hwint.patch deleted file mode 100644 index 0022437749de..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-hwint.patch +++ /dev/null @@ -1,20 +0,0 @@ -2000-06-19 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/xm-sp64.h (HOST_WIDE_INT): Define if compiling - with 32bit compiler for 64bit target. - (HOST_BITS_PER_WIDE_INT): Likewise. - ---- gcc/config/sparc/xm-sp64.h.jj Tue Dec 14 13:17:56 1999 -+++ gcc/config/sparc/xm-sp64.h Mon Jun 19 10:02:42 2000 -@@ -18,6 +18,11 @@ along with GNU CC; see the file COPYING. - the Free Software Foundation, 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -+#if !defined(__arch64__) && !defined(__sparcv9) -+#define HOST_BITS_PER_WIDE_INT 64 -+#define HOST_WIDE_INT long long -+#endif -+ - #include <sparc/xm-sparc.h> - - /* This describes the machine the compiler is hosted on. */ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-mi-thunk.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-mi-thunk.patch deleted file mode 100644 index fe5be5892752..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-mi-thunk.patch +++ /dev/null @@ -1,26 +0,0 @@ -2000-11-06 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to - adjust %o1, not %o0 if the return type is large structure. - ---- gcc/config/sparc/sparc.h.jj Fri Nov 3 10:53:39 2000 -+++ gcc/config/sparc/sparc.h Mon Nov 6 10:45:05 2000 -@@ -3231,10 +3231,16 @@ do { \ - Used for C++ multiple inheritance. */ - #define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \ - do { \ -+ int reg = 0; \ -+ \ -+ if (TARGET_ARCH64 \ -+ && aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION)))) \ -+ reg = 1; \ - if ((DELTA) >= 4096 || (DELTA) < -4096) \ -- fprintf (FILE, "\tset\t%d, %%g1\n\tadd\t%%o0, %%g1, %%o0\n", (DELTA));\ -+ fprintf (FILE, "\tset\t%d, %%g1\n\tadd\t%%o%d, %%g1, %%o%d\n", \ -+ (int)(DELTA), reg, reg); \ - else \ -- fprintf (FILE, "\tadd\t%%o0, %d, %%o0\n", DELTA); \ -+ fprintf (FILE, "\tadd\t%%o%d, %d, %%o%d\n", reg, (int)(DELTA), reg);\ - fprintf (FILE, "\tor\t%%o7, %%g0, %%g1\n"); \ - fprintf (FILE, "\tcall\t"); \ - assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-namedret.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-namedret.patch deleted file mode 100644 index 3aef9deb663d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-namedret.patch +++ /dev/null @@ -1,33 +0,0 @@ -2000-11-04 Jakub Jelinek <jakub@redhat.com> - - * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL - passed in multiple non-contiguous locations. - ---- gcc/expr.c.jj Tue Oct 31 18:00:42 2000 -+++ gcc/expr.c Sat Nov 4 22:52:38 2000 -@@ -8387,7 +8387,8 @@ expand_expr (exp, target, tmode, modifie - } - - else if (GET_CODE (op0) == REG || GET_CODE (op0) == SUBREG -- || GET_CODE (op0) == CONCAT || GET_CODE (op0) == ADDRESSOF) -+ || GET_CODE (op0) == CONCAT || GET_CODE (op0) == ADDRESSOF -+ || GET_CODE (op0) == PARALLEL) - { - /* If this object is in a register, it must be not - be BLKmode. */ -@@ -8395,7 +8396,14 @@ expand_expr (exp, target, tmode, modifie - rtx memloc = assign_temp (inner_type, 1, 1, 1); - - mark_temp_addr_taken (memloc); -- emit_move_insn (memloc, op0); -+ if (GET_CODE (op0) == PARALLEL) -+ /* Handle calls that pass values in multiple non-contiguous -+ locations. The Irix 6 ABI has examples of this. */ -+ emit_group_store (memloc, op0, -+ int_size_in_bytes (inner_type), -+ TYPE_ALIGN (inner_type)); -+ else -+ emit_move_insn (memloc, op0); - op0 = memloc; - } - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-nested-fn.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-nested-fn.patch deleted file mode 100644 index 9b690a110207..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-nested-fn.patch +++ /dev/null @@ -1,17 +0,0 @@ -2000-11-04 Jakub Jelinek <jakub@redhat.com> - - * function.c (expand_function_start): Cast GET_MODE_SIZE to - HOST_WIDE_INT before negating it. - ---- gcc/function.c.jj Mon Oct 23 15:24:47 2000 -+++ gcc/function.c Sat Nov 4 08:42:20 2000 -@@ -6200,7 +6200,8 @@ expand_function_start (subr, parms_have_ - /* Chain thru stack frames, assuming pointer to next lexical frame - is found at the place we always store it. */ - #ifdef FRAME_GROWS_DOWNWARD -- last_ptr = plus_constant (last_ptr, - GET_MODE_SIZE (Pmode)); -+ last_ptr = plus_constant (last_ptr, -+ - (HOST_WIDE_INT) GET_MODE_SIZE (Pmode)); - #endif - last_ptr = gen_rtx_MEM (Pmode, memory_address (Pmode, last_ptr)); - MEM_ALIAS_SET (last_ptr) = get_frame_alias_set (); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-reload-test.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-reload-test.patch deleted file mode 100644 index bfe5eb3b751a..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-reload-test.patch +++ /dev/null @@ -1,88 +0,0 @@ -2000-11-02 Jakub Jelinek <jakub@redhat.com> - - * gcc.dg/20001101-1.c: New test. - * gcc.dg/20001102-1.c: New test. - ---- gcc/testsuite/gcc.dg/20001101-1.c.jj Wed Nov 1 16:40:31 2000 -+++ gcc/testsuite/gcc.dg/20001101-1.c Wed Nov 1 16:40:27 2000 -@@ -0,0 +1,38 @@ -+/* { dg-do run { target sparc*-*-* } } */ -+/* { dg-options "-O2 -mvis" } */ -+ -+int foo(double a, int b, int c, double *d, int h) -+{ -+ int f, g; -+ double e; -+ -+l: -+ f = (int) a; -+ a -= (double) f; -+ if (b == 1) -+ { -+ g = c; -+ f += g; -+ c -= g; -+ } -+ if (b == 2) -+ { -+ f++; -+ h = c; -+ } -+ if (!h) -+ { -+ for (g = 0; g <= 10; g++) -+ for (h = 0; h <= 10; h++) -+ e += d [10 + g - h]; -+ goto l; -+ } -+ return f & 7; -+} -+ -+int main() -+{ -+ if (foo(0.1, 1, 3, 0, 1) != 3) -+ abort (); -+ exit (0); -+} ---- gcc/testsuite/gcc.dg/20001102-1.c.jj Thu Aug 24 05:00:32 2000 -+++ gcc/testsuite/gcc.dg/20001101-2.c Thu Nov 2 06:16:37 2000 -@@ -0,0 +1,39 @@ -+/* { dg-do run { target sparc*-*-* } } */ -+/* { dg-options "-O2 -mvis" } */ -+ -+int foo(double a, int b, int c, double *d, int h) -+{ -+ int f, g; -+ double e; -+ -+l: -+ f = (int) a; -+ a -= (double) f; -+ if (b == 1) -+ { -+ g = c; -+ f += g; -+ c -= g; -+ } -+ if (b == 2) -+ { -+ f++; -+ h = c; -+ goto l; -+ } -+ -+ asm volatile ("" : : : -+ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", -+ "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", -+ "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", -+ "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31"); -+ -+ return f & 7; -+} -+ -+int main() -+{ -+ if (foo(0.1, 1, 3, 0, 1) != 3) -+ abort (); -+ exit (0); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-reload.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-reload.patch deleted file mode 100644 index f18019a856fb..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-reload.patch +++ /dev/null @@ -1,19 +0,0 @@ -2000-01-27 Jakub Jelinek <jakub@redhat.com> - - * reload1.c (emit_input_reload_insns): Honour forcing of constants - into memory by PREFERRED_RELOAD_CLASS NO_REGS. - ---- gcc/reload1.c.jj Tue Jan 18 22:33:00 2000 -+++ gcc/reload1.c Thu Jan 27 19:26:44 2000 -@@ -6326,7 +6326,10 @@ emit_input_reload_insns (chain, rl, old, - && ((reg_equiv_memory_loc - [REGNO (SUBREG_REG (oldequiv))] != 0) - || (reg_equiv_constant -- [REGNO (SUBREG_REG (oldequiv))] != 0)))) -+ [REGNO (SUBREG_REG (oldequiv))] != 0))) -+ || (CONSTANT_P (oldequiv) -+ && PREFERRED_RELOAD_CLASS (oldequiv, -+ REGNO_REG_CLASS (REGNO (reloadreg))) == NO_REGS)) - real_oldequiv = rl->in; - gen_reload (reloadreg, real_oldequiv, rl->opnum, - rl->when_needed); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-reload2.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-reload2.patch deleted file mode 100644 index 844946dd2372..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-reload2.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- gcc/reload.c.jj Tue Oct 31 18:00:45 2000 -+++ gcc/reload.c Thu Nov 2 13:51:26 2000 -@@ -979,12 +979,17 @@ push_reload (in, out, inloc, outloc, cla - is handled differently in the following statement. */ - && (out == 0 || SUBREG_BYTE (in) == 0) - && ((GET_MODE_SIZE (inmode) <= UNITS_PER_WORD -- && (GET_MODE_SIZE (GET_MODE (SUBREG_REG (in))) -- > UNITS_PER_WORD) - && ((GET_MODE_SIZE (GET_MODE (SUBREG_REG (in))) -- / UNITS_PER_WORD) -- != HARD_REGNO_NREGS (REGNO (SUBREG_REG (in)), -- GET_MODE (SUBREG_REG (in))))) -+ > UNITS_PER_WORD) -+ && ((GET_MODE_SIZE (GET_MODE (SUBREG_REG (in))) -+ / UNITS_PER_WORD) -+ != HARD_REGNO_NREGS (REGNO (SUBREG_REG (in)), -+ GET_MODE (SUBREG_REG (in))))) -+ || ((GET_MODE_SIZE (GET_MODE (SUBREG_REG (in))) -+ < GET_MODE_SIZE (inmode)) -+ && (CLASS_MAX_NREGS (class, inmode) -+ != HARD_REGNO_NREGS (REGNO (SUBREG_REG (in)), -+ inmode)))) - || ! HARD_REGNO_MODE_OK (SUBREG_REGNO (in), inmode))) - #ifdef SECONDARY_INPUT_RELOAD_CLASS - || (SECONDARY_INPUT_RELOAD_CLASS (class, inmode, in) != NO_REGS diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-startfile.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-startfile.patch deleted file mode 100644 index 6dde5364ba30..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-startfile.patch +++ /dev/null @@ -1,227 +0,0 @@ -2000-01-25 Jakub Jelinek <jakub@redhat.com> - - * gcc.c (simple_spec): New function. - (main): Use it for MD_STARTFILE_PREFIX and MD_STARTFILE_PREFIX_1. - * config/sparc/linux64.h (MD_STARTFILE_PREFIX, - MD_STARTFILE_PREFIX_1): Define to /usr/lib64/:/lib64/ if compiling - for 64bit target. - (STARTFILE_SPEC, ENDFILE_SPEC, LINK_ARCH_SPEC): Simplify. - (link_default, LINK_DEFAULT_SPEC): Remove. - * config/sparc/sol2-sld-64.h (MD_STARTFILE_PREFIX): Define even - for SPARC_BI_ARCH compiler. - ---- gcc/config/sparc/linux64.h.jj Sun Jul 2 10:37:16 2000 -+++ gcc/config/sparc/linux64.h Mon Jul 31 20:58:10 2000 -@@ -32,7 +32,6 @@ Boston, MA 02111-1307, USA. */ - #include <sparc/sysv4.h> - - #undef MD_EXEC_PREFIX --#undef MD_STARTFILE_PREFIX - - #if TARGET_CPU_DEFAULT == TARGET_CPU_v9 || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc - /* A 64 bit v9 compiler with stack-bias, -@@ -65,6 +64,29 @@ Boston, MA 02111-1307, USA. */ - - #endif - -+/* Provide MD_STARTFILE_PREFIX{,_1}. Need to include /usr/lib64/:/lib64/ -+ if compiling for 64bit target. */ -+ -+#undef MD_STARTFILE_PREFIX -+#undef MD_STARTFILE_PREFIX_1 -+ -+#ifdef SPARC_BI_ARCH -+ -+#if DEFAULT_ARCH32_P -+#define MD_STARTFILE_PREFIX "%{m64:/usr/lib64/}" -+#define MD_STARTFILE_PREFIX_1 "%{m64:/lib64/}" -+#else -+#define MD_STARTFILE_PREFIX "%{!m32:/usr/lib64/}" -+#define MD_STARTFILE_PREFIX_1 "%{!m32:/lib64/}" -+#endif -+ -+#else -+ -+#define MD_STARTFILE_PREFIX "/usr/lib64/" -+#define MD_STARTFILE_PREFIX_1 "/lib64/" -+ -+#endif -+ - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which - provides part of the support for getting C++ file-scope static -@@ -86,14 +108,12 @@ Boston, MA 02111-1307, USA. */ - - #if DEFAULT_ARCH32_P - #define STARTFILE_SPEC "\ --%{m32:" STARTFILE_SPEC32 "} \ --%{m64:" STARTFILE_SPEC64 "} \ --%{!m32:%{!m64:" STARTFILE_SPEC32 "}}" -+%{!m64:" STARTFILE_SPEC32 "} \ -+%{m64:" STARTFILE_SPEC64 "}" - #else - #define STARTFILE_SPEC "\ - %{m32:" STARTFILE_SPEC32 "} \ --%{m64:" STARTFILE_SPEC64 "} \ --%{!m32:%{!m64:" STARTFILE_SPEC64 "}}" -+%{!m32:" STARTFILE_SPEC64 "}" - #endif - - #else -@@ -120,14 +140,12 @@ Boston, MA 02111-1307, USA. */ - - #if DEFAULT_ARCH32_P - #define ENDFILE_SPEC "\ --%{m32:" ENDFILE_SPEC32 "} \ --%{m64:" ENDFILE_SPEC64 "} \ --%{!m32:%{!m64:" ENDFILE_SPEC32 "}}" -+%{!m64:" ENDFILE_SPEC32 "} \ -+%{m64:" ENDFILE_SPEC64 "}" - #else - #define ENDFILE_SPEC "\ - %{m32:" ENDFILE_SPEC32 "} \ --%{m64:" ENDFILE_SPEC64 "} \ --%{!m32:%{!m64:" ENDFILE_SPEC64 "}}" -+%{!m32:" ENDFILE_SPEC64 "}" - #endif - - #else -@@ -212,9 +230,8 @@ Boston, MA 02111-1307, USA. */ - #define SUBTARGET_EXTRA_SPECS \ - { "link_arch32", LINK_ARCH32_SPEC }, \ - { "link_arch64", LINK_ARCH64_SPEC }, \ -- { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \ - { "link_arch", LINK_ARCH_SPEC }, -- -+ - #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ - %{!shared: \ - %{!ibcs: \ -@@ -233,14 +250,15 @@ Boston, MA 02111-1307, USA. */ - %{static:-static}}} \ - " - -+#if DEFAULT_ARCH32_P -+#define LINK_ARCH_SPEC "\ -+%{!m64:%(link_arch32)} \ -+%{m64:%(link_arch64)}" -+#else - #define LINK_ARCH_SPEC "\ - %{m32:%(link_arch32)} \ --%{m64:%(link_arch64)} \ --%{!m32:%{!m64:%(link_arch_default)}} \ --" -- --#define LINK_ARCH_DEFAULT_SPEC \ --(DEFAULT_ARCH32_P ? LINK_ARCH32_SPEC : LINK_ARCH64_SPEC) -+%{!m32:%(link_arch64)}" -+#endif - - #undef LINK_SPEC - #define LINK_SPEC "\ ---- gcc/config/sparc/sol2-sld-64.h.jj Mon Mar 6 19:40:59 2000 -+++ gcc/config/sparc/sol2-sld-64.h Mon Jul 31 20:58:10 2000 -@@ -266,10 +266,13 @@ - " - #endif - -+#undef MD_STARTFILE_PREFIX - #if DEFAULT_ARCH32_P - #define MULTILIB_DEFAULTS { "m32" } -+#define MD_STARTFILE_PREFIX "%{m64:/usr/lib/sparcv9/}" - #else - #define MULTILIB_DEFAULTS { "m64" } -+#define MD_STARTFILE_PREFIX "%{!m32:/usr/lib/sparcv9/}" - #endif - - #else /* !SPARC_BI_ARCH */ ---- gcc/gcc.c.jj Mon Jul 31 20:02:11 2000 -+++ gcc/gcc.c Mon Jul 31 21:23:08 2000 -@@ -3712,6 +3712,36 @@ do_spec (spec) - return value; - } - -+/* Process the spec SPEC and return the processed spec as a string -+ if successfull, NULL otherwise. -+ The SPEC should use only a limited subset of %-sequences (switch -+ presence testing) and should not use spaces, tabs, new-lines nor -+ pipe characters. */ -+ -+char * -+simple_spec (spec) -+ const char *spec; -+{ -+ int value; -+ -+ clear_args (); -+ arg_going = 0; -+ delete_this_arg = 0; -+ this_is_output_file = 0; -+ this_is_library_file = 0; -+ input_from_pipe = 0; -+ -+ value = do_spec_1 (spec, 0, NULL_PTR); -+ -+ if (value == 0) -+ { -+ obstack_1grow (&obstack, 0); -+ return obstack_finish (&obstack); -+ } -+ -+ return NULL; -+} -+ - /* Process the sub-spec SPEC as a portion of a larger spec. - This is like processing a whole spec except that we do - not initialize at the beginning and we do not supply a -@@ -5284,6 +5314,8 @@ main (argc, argv) - /* If not cross-compiling, look for startfiles in the standard places. */ - if (*cross_compile == '0') - { -+ char *prefix; -+ - #ifdef MD_EXEC_PREFIX - add_prefix (&exec_prefixes, md_exec_prefix, "GCC", - PREFIX_PRIORITY_LAST, 0, NULL_PTR); -@@ -5292,13 +5324,23 @@ main (argc, argv) - #endif - - #ifdef MD_STARTFILE_PREFIX -- add_prefix (&startfile_prefixes, md_startfile_prefix, "GCC", -- PREFIX_PRIORITY_LAST, 0, NULL_PTR); -+ prefix = simple_spec(md_startfile_prefix); -+ if (prefix != NULL) -+ { -+ if (*prefix != '\0') -+ add_prefix (&startfile_prefixes, prefix, "GCC", -+ PREFIX_PRIORITY_LAST, 0, NULL_PTR); -+ } - #endif - - #ifdef MD_STARTFILE_PREFIX_1 -- add_prefix (&startfile_prefixes, md_startfile_prefix_1, "GCC", -- PREFIX_PRIORITY_LAST, 0, NULL_PTR); -+ prefix = simple_spec(md_startfile_prefix_1); -+ if (prefix != NULL) -+ { -+ if (*prefix != '\0') -+ add_prefix (&startfile_prefixes, prefix, "GCC", -+ PREFIX_PRIORITY_LAST, 0, NULL_PTR); -+ } - #endif - - /* If standard_startfile_prefix is relative, base it on -@@ -5322,10 +5364,9 @@ main (argc, argv) - concat (gcc_exec_prefix, machine_suffix, - standard_startfile_prefix, NULL_PTR), - NULL_PTR, PREFIX_PRIORITY_LAST, 0, NULL_PTR); -- add_prefix (&startfile_prefixes, -- concat (standard_exec_prefix, -- machine_suffix, -- standard_startfile_prefix, NULL_PTR), -+ prefix = concat (standard_exec_prefix, machine_suffix, -+ standard_startfile_prefix, NULL_PTR); -+ add_prefix (&startfile_prefixes, prefix, - NULL_PTR, PREFIX_PRIORITY_LAST, 0, NULL_PTR); - } - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-subreg-byte.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-subreg-byte.patch deleted file mode 100644 index a0bcbfbcda96..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-subreg-byte.patch +++ /dev/null @@ -1,5237 +0,0 @@ -2000-05-04 Jakub Jelinek <jakub@redhat.com> - - * emit-rtl.c (gen_lowpart_common): Return inner SUBREG - if it is lowpart SUBREG, not when SUBREG_BYTE is 0. - - * flow.c (mark_set_1): Remove ALTER_HARD_SUBREG. Use - SUBREG_REGNO_OFFSET instead. - * config/d30v/d30v.c (d30v_split_double): Use SUBREG_REGNO_OFFSET - instead of SUBREG_WORD. - (d30v_print_operand_memory_reference): Likewise. - - * ssa.c (coalesce_regs_in_copies): Use ! subreg_lowpart_p instead of - checking SUBREG_WORD != 0. - - * cse.c (remove_invalid_subreg_refs): Change offset argument type to - unsigned int. - * ssa.c (rename_insn_1): Use subreg_lowpart_p instead of checking - SUBREG_WORD == 0. - (rename_equivalent_regs_in_insn): Likewise. - * rtl.h (SUBREG_BYTE): Change to XCUINT from XCINT. - * emit-rtl.c (subreg_hard_regno): Make byte_offset, base_regno and - final_regno unsigned. - (subreg_lowpart_p): Likewise with offset. - (operand_subword): Likewise for partwords. - - * config/sparc/sparc.md (cmp_siqi_trunc, cmp_siqi_trunc_set, - cmp_diqi_trunc, cmp_diqi_trunc_set, lshrdi3_v8plus+1, - lshrdi3_v8plus+2, lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper - SUBREG_BYTE offset for non-paradoxical subregs in patterns. - - * emit-rtl.c (gen_lowpart_SUBREG): New function. - * rtl.h (gen_lowpart_SUBREG): Add prototype. - * calls.c (precompute_arguments): Use it. - * expr.c (store_expr, expand_expr): Likewise. - * regmove.c (optimize_reg_copy_3): Likewise. - * reload1.c (emit_reload_insns): Likewise. - * stmt.c (expand_anon_union_decl): Likewise. - - * rtl.texi: Remove all traces of SUBREG_WORD. - * reload.c (push_reload): Fix test for the new SUBREG_BYTE semantics. - * config/sparc/sparc.md (zero_extendhidi2, extendqidi2, extendhidi2): - Compute SUBREG_BYTE offset based on DImode, not SImode. - - * function.c (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P - if they are actually promoted by the caller and - PROMOTE_FOR_CALLS_ONLY is true. Otherwise combiner will not know - that their bits are already guaranteed to be zero or sign copies. - - * emit-rtl.c (constant_subword): Don't abort if - float bitsize is larger than 64 bits on 64bit host. - - * config/sparc/sparc.h (REG_SIZE): For SUBREG check float mode on - SUBREG_REG's mode. - * combine.c (simplify_rtx): For two nested SUBREGs if the mode of - the inner SUBREG is larger than both other modes we cannot simply - add both SUBREG_BYTEs on big endian. - (make_extraction): If BYTES_BIG_ENDIAN take the last few bytes - of the register, not first. - * calls.c (expand_call): For non-paradoxical SUBREG take endianess - into account. - - * config/alpha/alpha.c (print_operand_address): Fix typo. - * config/mips/mips.c (mips_move_1word, mips_move_2words, - mips_secondary_reload_class): SUBREG_REGNO_OFFSET macro - requires four arguments. - * config/pyr/pyr.c (consecutive_operands): Likewise. - * config/sh/sh.c (regs_used, machine_dependent_reorg): Likewise. - - * java/javaop.h: Default int32 to int, not long. Fix comment. - * emit-rtl.c (subreg_hard_regno): Till we remove the extensive - checks in subreg_hard_regno, propagate info on whether - HARD_REGNO_MODE_OK is allowed to fail. - * combine.c (simplify_rtx): Don't abort if SUBREG has - incompatible modes outside and inside. - * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno - to pass new argument. - * final.c (alter_subreg): Likewise. - * local-alloc.c (reg_is_born): Likewise. - * rtl.h (subreg_hard_regno): Update prototype. - - * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE - instead of SUBREG_WORD. - * config/ns32k/ns32k.md (udivmoddihi4): Fix explicit subregs in - rtl to use byte offsets. - * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE, not - SUBREG_WORD. - * config/sparc/sparc.h (REG_SIZE): Handle SUBREG arguments. - * emit-rtl.c (subreg_realpart_p): Changed to use SUBREG_BYTE. - * integrate.c (copy_rtx_and_substitute): Use byte SUBREG offsets - in CONCAT handling. - * reload.c (find_reloads_subreg_address): Use SUBREG_BYTE. Remove - byte endian corrections when fixing up MEM subregs. - * resource.c (update_live_status): Use SUBREG_REGNO. - -1998-10-03 David S. Miller <davem@pierdol.cobaltmicro.com> - - Use byte offsets in SUBREGs instead of words. - * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE. - (SUBREG_REGNO_OFFSET, SUBREG_REGNO): New macros. - (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): New - functions. - * gengenrtl.c (special_rtx): Add SUBREG. - * regs.h (REG_SIZE): Allow target to override. - (REGMODE_NATURAL_SIZE): New macro which target can override. - * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead. - * rtl.texi (subreg): Update to reflect new byte offset - representation. Add mentioning of the effect that - BYTES_BIG_ENDIAN has on subregs now. - * final.c (alter_subreg) [REG]: Remove ALTER_HARD_SUBREG - commentary and usage. Use subreg_hard_regno instead. - [MEM]: Remove endianness corrections and use SUBREG_BYTE. - Check for bogus SUBREG_BYTE values. - * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify - certain invariants about SUBREGs the compiler creates. - (subreg_hard_regno): New function. - (gen_lowpart_common): Adjust offset for BYTES_BIG_ENDIAN too. - [SUBREG]: When combining two subregs, make sure final offset is a - multiple of the SUBREG's mode. - [REG]: Remove sparc64 hard regno wordaround. Simplify rest of the - code and use SUBREG_REGNO_OFFSET. - [CONST_INT, CONST_DOUBLE]: Call constant_subword. - (subreg_realpart_p): Use SUBREG_BYTE. - (gen_lowpart): Pretty. - (gen_highpart) [MEM]: Pretty. - [SUBREG]: Use SUBREG_BYTE. - [REG]: Remove sparc64 hard regno hacks. Adjust offset for - BYTES_BIG_ENDIAN too. Use SUBREG_REGNO_OFFSET for hard regs. - (subreg_lowpart_p): Always compute endian corrected goal offset, - even at the byte level, then compare against that. - (constant_subword): New function, pulled out all constant cases - from operand_subword and changed second argument name to offset. - (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early - and call constant_subword to do the work. - [REG]: Use SUBREG_REGNO_OFFSET for hard regnos. - [SUBREG]: When combining two subregs, make sure final offset is a - multiple of the SUBREG's mode. - (operand_subword_force): Change second arg name to offset. Abort - early if reload is done and this is called. - * cse.c (mention_regs): Use SUBREG_BYTE. - (remove_invalid_subreg_refs): Second arg now named offset and is a - byte offset as per SUBREG_BYTE. Rework to use byte ranges and - comparison checks. - (canon_hash): Use SUBREG_BYTE. - (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to - operand_subword. - (gen_lowpart_if_possible): Pretty. - (cse_insn): Fix conditional formatting. - * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos - correctly. - * expmed.c (store_big_field): Use SUBREG_BYTE. - (extract_bit_field): Likewise. - (extract_split_bit_field): Likewise. - (expand_shift): Likewise. - * flow.c (life_analysis_1): Likewise. - * global.c (mark_reg_store): Remove word local and commented out - code which used it. - (mark_reg_clobber): Likewise. - (set_preference): Rework to use SUBREG_REGNO_OFFSET, - REGMODE_NATURAL_SIZE and SUBREG_BYTE where appropriate. - * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG. - (simplify_rtx): Do not fixup byte endianness of subregs, the - SUBREG_BYTE contains the correct offset. When substituting two - subregs into each other still compare against word equality for - the fast case, but otherwise make the final offset congruent to - the mode of the subreg. Also use subreg_hard_regno to compute the - hard regno of a subreg. Rework the rest to use SUBREG_BYTE. This - function is too large. - (simplify_set): Rework to use SUBREG_BYTE, also fixup another - explicit XEXP into a SUBREG_REG. - (expand_field_assignment): Use SUBREG_BYTE. - (make_extraction): Likewise. - (apply_distributive_law): Likewise and fixup subreg comments. - (gen_lowpart_for_combine): Compute full byte offset. - * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG - (mem_loc_descriptor): Likewise. - (loc_descriptor): Likewise. - * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG - (output_mem_loc_descriptor): Likewise. - (output_loc_descriptor): Likewise. This and the previous file - have a lot of common duplicated code. - * caller-save.c (set_reg_live): Use subreg_hard_regno and tweak. - * jump.c (rtx_renumbered_equal_p): Use new subreg byte offsets, - and SUBREG_REGNO_OFFSET where appropriate. Also fix bug where - reg_y was not subreg correctified for the subreg case. - (true_regnum): Use SUBREG_REGNO_OFFSET. - * function.c (fixup_var_refs_1): Fixup explicit XEXP into - a SUBREG_REG. - (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian - correction code. - (optimize_bit_field): Use SUBREG_BYTE. - * haifa-sched.c (print_value): Likewise. - * integrate.c (copy_rtx_and_substitute): Likewise and make sure - final byte offset is congruent to subreg's mode size. - (subst_constants): Use SUBREG_BYTE. - (mark_stores): Use SUBREG_REGNO_OFFSET for hard regs. - * local-alloc.c (combine_regs): Rework to use SUBREG_REGNO_OFFSET, - SUBREG_BYTE and REGMODE_NATURAL_SIZE. - (reg_is_born): Use subreg_hard_regno. - * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte - endian correction code. - (indirect_operand): Likewise. - (general_operand): Remove dead mode_altering_drug code. - (constrain_operands): Use SUBREG_REGNO_OFFSET. - * reg-stack.c (mark_regs_pat): Use SUBREG_REGNO. Abort if we see - a pseudo reg here. - (get_true_reg): Use SUBREG_REGNO_OFFSET. - * regmove.c (regmove_optimize): Use SUBREG_BYTE. - * reload.c (push_reload): Use SUBREG_BYTE in comments and code. - Also use SUBREG_REGNO_OFFSET and SUBREG_REGNO where appropriate. - (find_dummy_reload): Use SUBREG_REGNO_OFFSET. Only adjust offsets - for hard registers inside subregs. - (operands_match_p): Likewise. - (find_reloads): Only advance offset for subregs containing hard - regs. Remove "can work with subregging" final condition when - setting force_reload, it no longer makes sense with byte - offsettable subregs. Fix another XEXP into a SUBREG_REG. - (find_reload_toplev): Use SUBREG_BYTE. Remove byte endian - corrections when fixing up MEM subregs. - (find_reloads_addres_1): Use SUBREG_BYTE, SUBREG_REGNO, and - SUBREG_REGNO_OFFSET where appropriate. - (subst_reloads): When combining two subregs, make sure final - offset is congruent to subreg's mode size. - (find_replacement): Likewise, also use SUBREG_BYTE and - SUBREG_REGNO_OFFSET where appropriate. - (refers_to_regno_for_reload_p): Use SUBREG_REGNO. - (reg_overlap_mentioned_for_reload_p): Use SUBREG_REGNO_OFFSET. - * reload1.c (eliminate_regs) [SUBREG]: Use SUBREG_BYTE, fixup - another explicit XEXP into a SUBREG_REG. Remove byte endian - correction code for memory subreg fixups. - (forget_old_reload_1): Use SUBREG_REGNO_OFFSET. - (choose_reload_regs): Use SUBREG_REGNO. - (emit_reload_insns): Use SUBREG_BYTE. - (reload_combine_note_store): Use SUBREG_REGNO_OFFSET. - (move2add_note_store): Use SUBREG_REGNO_OFFSET. - * reorg.c (mark_referenced_resources): Use SUBREG_REGNO. - * rtlanal.c (refers_to_regno_p): Use SUBREG_REGNO. - (reg_overlap_mentioned_p): Likewise. - (replace_regs); Make sure final offset of combined subreg is - congruent to size of subreg's mode. - * sdbout.c (sdbout_symbol): Compute offset using alter_subreg. - - Target changes for new subregging representation. - * config/a29k/a29k.c (gpc_reg_operand): Use SUBREG_REGNO. - (a29k_get_reloaded_address): Use SUBREG_BYTE. - (print_operand): Use SUBREG_BYTE. - * config/alpha/alpha.c (get_aligned_mem): Use SUBREG_BYTE and - remove byte endianness corrections. - (get_unaligned_address): Likewise. - * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix - SUBREG creation to use byte offset. - * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit - inverted load insns): Fix explicit rtl subregs to use byte - offsets. - * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3, - udivsi3, umodsi3): Generate SUBREGs with byte offsets. - * config/i386/i386.md (HImode zero extend split): Use - SUBREG_BYTE. - * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE. - * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl - to use byte offsets. - (unnamed fmlow.dd insn): Likewise. - * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte - offsets, also make sure it is congruent to SUBREG's mode size. - (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2, - unnamed ldob insn): Likewise. - * config/m32r/m32r.md (extendqihi2, extendqisi2, extendhisi2): - Likewise. - * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2, - zero-extendqisi2): Likewise. - (umulsidi3, mulsidi3, subreghi1ashrdi_const32, - subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit - surbegs in rtl to use byte offsets. - * config/m88k/m88k.md (extendsidi2): Likewise. - * config/mips/mips.c (mips_move_1word): Use SUBREG_REGNO_OFFSET. - (mips_move_2words, mips_secondary_reload_class): Likewise. - * config/mips/mips.md (DImode plus, minus, move, and logical op - splits): Fixup explicit subregs in rtl to use byte offsets. - * config/mn10200/mn10200.c (print_operand) [SUBREG]: Use - SUBREG_REGNO and fix a reg_names indice bug. - * config/mn10300/mn10300.c (print_operand) [SUBREG]: Likewise. - * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in - rtl to use byte offsets. - * config/pa/pa.md (floatunssisf2, floatunssidf2): Likewise. - (mulsi3): Make subregs with byte offsets. - * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1): - Fixup explicit subregs in rtl to use byte offsets. - * config/pyr/pyr.c (subreg_overlap_mentioned_p): Use SUBREG_REGNO. - (consecutive_operands): Use SUBREG_REGNO_OFFSET. - * config/pyr/pyr.md (extendsidi2): Fixup explicit subregs in rtl - to use byte offsets. - * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE - and remove byte endian correction code. - * config/rs6000/rs6000.md (DImode const splits): Generate SUBREGs - with byte offsets. - * config/sh/sh.c (output_movedouble): Use SUBREG_REGNO. - (gen_ashift_hi): Use SUBREG_BYTE. - (regs_used): Use SUBREG_REGNO_OFFSET. - (machine_dependent_reorg): Likewise. - * config/sh/sh.md (DImode and DFmode move splits): Use - SUBREG_REGNO. - * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs - with byte offsets. - (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2, - extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn, - extendqidi2): Generate SUBREGs with byte offsets, also make sure - it is congruent to SUBREG's mode size. - (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte - offsets. - * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE. - * config/sparc/sparc.h (ALTER_HARD_SUBREG): Die forever... - (REG_SIZE, REGMODE_NATURAL_SIZE): Override. - * config/spur/spur.md (movqi, zero_extendhisi2, extendhisi2, - extendqihi2, extendqisi2): Generate SUBREGs with byte offsets. - * config/v850/v850.c (print_operand): Use SUBREG_REGNO. - (v850_reorg): Use SUBREG_REGNO_OFFSET. - ---- gcc/config/a29k/a29k.c.jj Mon Mar 6 18:37:47 2000 -+++ gcc/config/a29k/a29k.c Mon Jul 31 20:46:24 2000 -@@ -263,9 +263,10 @@ gpc_reg_operand (op, mode) - regno = REGNO (op); - else if (GET_CODE (op) == SUBREG && GET_CODE (SUBREG_REG (op)) == REG) - { -- regno = REGNO (SUBREG_REG (op)); - if (regno < FIRST_PSEUDO_REGISTER) -- regno += SUBREG_WORD (op); -+ regno = SUBREG_REGNO (op); -+ else -+ regno = REGNO (SUBREG_REG (op)); - } - else - return 0; -@@ -468,7 +469,7 @@ a29k_get_reloaded_address (op) - { - if (GET_CODE (op) == SUBREG) - { -- if (SUBREG_WORD (op) != 0) -+ if (SUBREG_BYTE (op) != 0) - abort (); - - op = SUBREG_REG (op); -@@ -1185,7 +1186,9 @@ print_operand (file, x, code) - if (GET_MODE (SUBREG_REG (XEXP (x, 0))) == SFmode) - fprintf (file, "$float"); - else -- fprintf (file, "$double%d", SUBREG_WORD (XEXP (x, 0))); -+ fprintf (file, "$double%d", -+ (SUBREG_BYTE (XEXP (x, 0)) / -+ GET_MODE_SIZE (GET_MODE (x)))); - bcopy ((char *) &CONST_DOUBLE_LOW (SUBREG_REG (XEXP (x, 0))), - (char *) &u, sizeof u); - fprintf (file, "(%.20e)", u.d); ---- gcc/config/alpha/alpha.c.jj Sun Jul 2 10:37:08 2000 -+++ gcc/config/alpha/alpha.c Mon Jul 31 20:46:24 2000 -@@ -3726,7 +3726,8 @@ print_operand_address (file, addr) - basereg = REGNO (addr); - else if (GET_CODE (addr) == SUBREG - && GET_CODE (SUBREG_REG (addr)) == REG) -- basereg = REGNO (SUBREG_REG (addr)) + SUBREG_WORD (addr); -+ basereg = REGNO (SUBREG_REG (addr)) -+ + SUBREG_BYTE (addr) / GET_MODE_SIZE (GET_MODE (addr)); - else if (GET_CODE (addr) == CONST_INT) - offset = INTVAL (addr); - else ---- gcc/config/arm/arm.c.jj Mon Jul 31 20:02:14 2000 -+++ gcc/config/arm/arm.c Mon Jul 31 20:46:24 2000 -@@ -4286,11 +4286,7 @@ arm_reload_in_hi (operands) - - if (GET_CODE (ref) == SUBREG) - { -- offset = SUBREG_WORD (ref) * UNITS_PER_WORD; -- if (BYTES_BIG_ENDIAN) -- offset -= (MIN (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (ref))) -- - MIN (UNITS_PER_WORD, -- GET_MODE_SIZE (GET_MODE (SUBREG_REG (ref))))); -+ offset = SUBREG_BYTE (ref); - ref = SUBREG_REG (ref); - } - -@@ -4403,11 +4399,7 @@ arm_reload_out_hi (operands) - - if (GET_CODE (ref) == SUBREG) - { -- offset = SUBREG_WORD (ref) * UNITS_PER_WORD; -- if (BYTES_BIG_ENDIAN) -- offset -= (MIN (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (ref))) -- - MIN (UNITS_PER_WORD, -- GET_MODE_SIZE (GET_MODE (SUBREG_REG (ref))))); -+ offset = SUBREG_BYTE (ref); - ref = SUBREG_REG (ref); - } - ---- gcc/config/dsp16xx/dsp16xx.md.jj Tue Jan 18 22:33:04 2000 -+++ gcc/config/dsp16xx/dsp16xx.md Mon Jul 31 20:46:24 2000 -@@ -1267,7 +1267,7 @@ - " - { - operands[2] = gen_reg_rtx (HImode); -- operands[3] = gen_rtx_SUBREG (QImode, operands[2], 1); -+ operands[3] = gen_rtx_SUBREG (QImode, operands[2], GET_MODE_SIZE (QImode)); - }") - - ;;(define_insn "extendqihi2" -@@ -1317,7 +1317,7 @@ - " - { - operands[2] = gen_reg_rtx (HImode); -- operands[3] = gen_rtx_SUBREG (QImode, operands[2], 1); -+ operands[3] = gen_rtx_SUBREG (QImode, operands[2], GET_MODE_SIZE (QImode)); - }") - - ---- gcc/config/h8300/h8300.md.jj Mon Jul 31 20:02:14 2000 -+++ gcc/config/h8300/h8300.md Mon Jul 31 20:46:24 2000 -@@ -1921,7 +1921,7 @@ - (subreg:HI (zero_extract:SI - (match_operand:HI 1 "register_operand" "r") - (const_int 1) -- (match_operand:HI 2 "immediate_operand" "n")) 1))] -+ (match_operand:HI 2 "immediate_operand" "n")) 2))] - "" - "sub.w %0,%0\;bld %Z2,%Y1\;bst #0,%X0" - [(set_attr "cc" "clobber") -@@ -1962,7 +1962,7 @@ - (subreg:HI - (lshiftrt:SI - (match_operand:SI 1 "register_operand" "Ur") -- (match_operand:SI 2 "const_int_operand" "n")) 1)) -+ (match_operand:SI 2 "const_int_operand" "n")) 2)) - (const_int 1)))] - "INTVAL (operands[2]) < 16" - "sub.w %0,%0\;bild %Z2,%Y1\;bst #0,%X0" ---- gcc/config/i370/i370.md.jj Thu Jul 27 19:46:46 2000 -+++ gcc/config/i370/i370.md Mon Jul 31 20:48:31 2000 -@@ -537,12 +537,12 @@ check_label_emit (); - emit_insn (gen_rtx_CLOBBER (VOIDmode, reg1)); - emit_move_insn (gen_rtx_SUBREG (SImode, reg1, 0), - force_operand (XEXP (mem1, 0), NULL_RTX)); -- emit_move_insn (gen_rtx_SUBREG (SImode, reg1, 1), len); -+ emit_move_insn (gen_rtx_SUBREG (SImode, reg1, GET_MODE_SIZE (SImode)), len); - - emit_insn (gen_rtx_CLOBBER (VOIDmode, reg2)); - emit_move_insn (gen_rtx_SUBREG (SImode, reg2, 0), - force_operand (XEXP (mem2, 0), NULL_RTX)); -- emit_move_insn (gen_rtx_SUBREG (SImode, reg2, 1), len); -+ emit_move_insn (gen_rtx_SUBREG (SImode, reg2, GET_MODE_SIZE (SImode)), len); - - /* Compare! */ - emit_insn (gen_cmpstrsi_1 (result, reg1, reg2)); -@@ -1409,11 +1409,11 @@ check_label_emit (); - emit_insn (gen_rtx_CLOBBER (VOIDmode, reg1)); - emit_move_insn (gen_rtx_SUBREG (SImode, reg1, 0), - force_operand (XEXP (mem1, 0), NULL_RTX)); -- emit_move_insn (gen_rtx_SUBREG (SImode, reg1, 1), len); -+ emit_move_insn (gen_rtx_SUBREG (SImode, reg1, GET_MODE_SIZE (SImode)), len); - - emit_insn (gen_rtx_CLOBBER (VOIDmode, reg2)); - emit_move_insn (gen_rtx_SUBREG (SImode, reg2, 0), zippo); -- emit_move_insn (gen_rtx_SUBREG (SImode, reg2, 1), zippo); -+ emit_move_insn (gen_rtx_SUBREG (SImode, reg2, GET_MODE_SIZE (SImode)), zippo); - - /* Copy! */ - emit_insn (gen_movstrsi_1 (reg1, reg2)); -@@ -1476,12 +1476,12 @@ check_label_emit (); - emit_insn (gen_rtx_CLOBBER (VOIDmode, reg1)); - emit_move_insn (gen_rtx_SUBREG (SImode, reg1, 0), - force_operand (XEXP (mem1, 0), NULL_RTX)); -- emit_move_insn (gen_rtx_SUBREG (SImode, reg1, 1), len); -+ emit_move_insn (gen_rtx_SUBREG (SImode, reg1, GET_MODE_SIZE (SImode)), len); - - emit_insn (gen_rtx_CLOBBER (VOIDmode, reg2)); - emit_move_insn (gen_rtx_SUBREG (SImode, reg2, 0), - force_operand (XEXP (mem2, 0), NULL_RTX)); -- emit_move_insn (gen_rtx_SUBREG (SImode, reg2, 1), len); -+ emit_move_insn (gen_rtx_SUBREG (SImode, reg2, GET_MODE_SIZE (SImode)), len); - - /* Copy! */ - emit_insn (gen_movstrsi_1 (reg1, reg2)); -@@ -2425,11 +2425,12 @@ check_label_emit (); - * Dunno how to untwist it elegantly; but it seems to work for now. - */ - emit_insn (gen_rtx_SET (VOIDmode, -- gen_rtx_SUBREG (SImode, r, 1), operands[1])); -+ gen_rtx_SUBREG (SImode, r, GET_MODE_SIZE (SImode)), -+ operands[1])); - emit_insn (gen_rtx_SET (VOIDmode, r, - gen_rtx_MULT (DImode, r, operands[2]))); - emit_insn (gen_rtx_SET (VOIDmode, operands[0], -- gen_rtx_SUBREG (SImode, r, 1))); -+ gen_rtx_SUBREG (SImode, r, GET_MODE_SIZE (SImode)))); - } - DONE; - }") -@@ -2534,7 +2535,7 @@ check_label_emit (); - emit_insn (gen_rtx_SET (VOIDmode, r, - gen_rtx_DIV (DImode, r, operands[2]))); - emit_insn (gen_rtx_SET (VOIDmode, operands[0], -- gen_rtx_SUBREG (SImode, r, 1))); -+ gen_rtx_SUBREG (SImode, r, GET_MODE_SIZE (SImode)))); - DONE; - }") - -@@ -2552,7 +2553,7 @@ check_label_emit (); - { - rtx dr = gen_reg_rtx (DImode); - rtx dr_0 = gen_rtx_SUBREG (SImode, dr, 0); -- rtx dr_1 = gen_rtx_SUBREG (SImode, dr, 1); -+ rtx dr_1 = gen_rtx_SUBREG (SImode, dr, GET_MODE_SIZE (SImode)); - - - if (GET_CODE (operands[2]) == CONST_INT) -@@ -2714,7 +2715,7 @@ check_label_emit (); - { - rtx dr = gen_reg_rtx (DImode); - rtx dr_0 = gen_rtx_SUBREG (SImode, dr, 0); -- rtx dr_1 = gen_rtx_SUBREG (SImode, dr, 1); -+ rtx dr_1 = gen_rtx_SUBREG (SImode, dr, GET_MODE_SIZE (SImode)); - - emit_insn (gen_rtx_SET (VOIDmode, dr_0, operands[1])); - ---- gcc/config/i860/i860.c.jj Mon Mar 6 18:37:50 2000 -+++ gcc/config/i860/i860.c Mon Jul 31 20:46:24 2000 -@@ -341,7 +341,7 @@ single_insn_src_p (op, mode) - return 1; - - case SUBREG: -- if (SUBREG_WORD (op) != 0) -+ if (SUBREG_BYTE (op) != 0) - return 0; - return single_insn_src_p (SUBREG_REG (op), mode); - ---- gcc/config/i860/i860.md.jj Mon Jul 24 11:04:20 2000 -+++ gcc/config/i860/i860.md Mon Jul 31 20:46:24 2000 -@@ -1730,12 +1730,12 @@ - }") - - (define_expand "mulsi3_big" -- [(set (subreg:SI (match_dup 4) 1) (match_operand:SI 1 "general_operand" "")) -- (set (subreg:SI (match_dup 5) 1) (match_operand:SI 2 "general_operand" "")) -+ [(set (subreg:SI (match_dup 4) 4) (match_operand:SI 1 "general_operand" "")) -+ (set (subreg:SI (match_dup 5) 4) (match_operand:SI 2 "general_operand" "")) - (clobber (match_dup 3)) -- (set (subreg:SI (match_dup 3) 1) -- (mult:SI (subreg:SI (match_dup 4) 1) (subreg:SI (match_dup 5) 1))) -- (set (match_operand:SI 0 "register_operand" "") (subreg:SI (match_dup 3) 1))] -+ (set (subreg:SI (match_dup 3) 4) -+ (mult:SI (subreg:SI (match_dup 4) 4) (subreg:SI (match_dup 5) 4))) -+ (set (match_operand:SI 0 "register_operand" "") (subreg:SI (match_dup 3) 4))] - "WORDS_BIG_ENDIAN" - " - { -@@ -1752,9 +1752,9 @@ - "fmlow.dd %2,%1,%0") - - (define_insn "" -- [(set (subreg:SI (match_operand:DI 0 "register_operand" "=f") 1) -- (mult:SI (subreg:SI (match_operand:DI 1 "register_operand" "f") 1) -- (subreg:SI (match_operand:DI 2 "register_operand" "f") 1)))] -+ [(set (subreg:SI (match_operand:DI 0 "register_operand" "=f") 4) -+ (mult:SI (subreg:SI (match_operand:DI 1 "register_operand" "f") 4) -+ (subreg:SI (match_operand:DI 2 "register_operand" "f") 4)))] - "WORDS_BIG_ENDIAN" - "fmlow.dd %2,%1,%0") - ---- gcc/config/i960/i960.md.jj Fri Jun 2 01:09:20 2000 -+++ gcc/config/i960/i960.md Mon Jul 31 20:46:24 2000 -@@ -1211,15 +1211,17 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_16 = GEN_INT (16); -- int op1_subreg_word = 0; -+ int op1_subreg_byte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subreg_word = SUBREG_WORD (operand1); -+ op1_subreg_byte = SUBREG_BYTE (operand1); -+ op1_subreg_byte /= GET_MODE_SIZE (SImode); -+ op1_subreg_byte *= GET_MODE_SIZE (SImode); - operand1 = SUBREG_REG (operand1); - } - if (GET_MODE (operand1) != SImode) -- operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_word); -+ operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_byte); - - emit_insn (gen_ashlsi3 (temp, operand1, shift_16)); - emit_insn (gen_ashrsi3 (operand0, temp, shift_16)); -@@ -1246,15 +1248,17 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_24 = GEN_INT (24); -- int op1_subreg_word = 0; -+ int op1_subreg_byte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subreg_word = SUBREG_WORD (operand1); -+ op1_subreg_byte = SUBREG_BYTE (operand1); -+ op1_subreg_byte /= GET_MODE_SIZE (SImode); -+ op1_subreg_byte *= GET_MODE_SIZE (SImode); - operand1 = SUBREG_REG (operand1); - } - if (GET_MODE (operand1) != SImode) -- operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_word); -+ operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_byte); - - emit_insn (gen_ashlsi3 (temp, operand1, shift_24)); - emit_insn (gen_ashrsi3 (operand0, temp, shift_24)); -@@ -1282,24 +1286,28 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_24 = GEN_INT (24); -- int op0_subreg_word = 0; -- int op1_subreg_word = 0; -+ int op0_subreg_byte = 0; -+ int op1_subreg_byte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subreg_word = SUBREG_WORD (operand1); -+ op1_subreg_byte = SUBREG_BYTE (operand1); -+ op1_subreg_byte /= GET_MODE_SIZE (SImode); -+ op1_subreg_byte *= GET_MODE_SIZE (SImode); - operand1 = SUBREG_REG (operand1); - } - if (GET_MODE (operand1) != SImode) -- operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_word); -+ operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_byte); - - if (GET_CODE (operand0) == SUBREG) - { -- op0_subreg_word = SUBREG_WORD (operand0); -+ op0_subreg_byte = SUBREG_BYTE (operand0); -+ op0_subreg_byte /= GET_MODE_SIZE (SImode); -+ op0_subreg_byte *= GET_MODE_SIZE (SImode); - operand0 = SUBREG_REG (operand0); - } - if (GET_MODE (operand0) != SImode) -- operand0 = gen_rtx_SUBREG (SImode, operand0, op0_subreg_word); -+ operand0 = gen_rtx_SUBREG (SImode, operand0, op0_subreg_byte); - - emit_insn (gen_ashlsi3 (temp, operand1, shift_24)); - emit_insn (gen_ashrsi3 (operand0, temp, shift_24)); -@@ -1327,15 +1335,17 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_16 = GEN_INT (16); -- int op1_subreg_word = 0; -+ int op1_subreg_byte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subreg_word = SUBREG_WORD (operand1); -+ op1_subreg_byte = SUBREG_BYTE (operand1); -+ op1_subreg_byte /= GET_MODE_SIZE (SImode); -+ op1_subreg_byte *= GET_MODE_SIZE (SImode); - operand1 = SUBREG_REG (operand1); - } - if (GET_MODE (operand1) != SImode) -- operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_word); -+ operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_byte); - - emit_insn (gen_ashlsi3 (temp, operand1, shift_16)); - emit_insn (gen_lshrsi3 (operand0, temp, shift_16)); -@@ -1367,15 +1377,17 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_24 = GEN_INT (24); -- int op1_subreg_word = 0; -+ int op1_subreg_byte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subreg_word = SUBREG_WORD (operand1); -- operand1 = SUBREG_REG (operand1); -+ op1_subreg_byte = SUBREG_BYTE (operand1); -+ op1_subreg_byte /= GET_MODE_SIZE (SImode); -+ op1_subreg_byte *= GET_MODE_SIZE (SImode); -+ operand1 = SUBREG_REG (operand1); - } - if (GET_MODE (operand1) != SImode) -- operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_word); -+ operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_byte); - - emit_insn (gen_ashlsi3 (temp, operand1, shift_24)); - emit_insn (gen_lshrsi3 (operand0, temp, shift_24)); -@@ -1403,24 +1415,28 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_24 = GEN_INT (24); -- int op0_subreg_word = 0; -- int op1_subreg_word = 0; -+ int op0_subreg_byte = 0; -+ int op1_subreg_byte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subreg_word = SUBREG_WORD (operand1); -+ op1_subreg_byte = SUBREG_WORD (operand1); -+ op1_subreg_byte /= GET_MODE_SIZE (SImode); -+ op1_subreg_byte *= GET_MODE_SIZE (SImode); - operand1 = SUBREG_REG (operand1); - } - if (GET_MODE (operand1) != SImode) -- operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_word); -+ operand1 = gen_rtx (SUBREG, SImode, operand1, op1_subreg_byte); - - if (GET_CODE (operand0) == SUBREG) - { -- op0_subreg_word = SUBREG_WORD (operand0); -+ op0_subreg_byte = SUBREG_WORD (operand0); -+ op0_subreg_byte /= GET_MODE_SIZE (SImode); -+ op0_subreg_byte *= GET_MODE_SIZE (SImode); - operand0 = SUBREG_REG (operand0); - } - if (GET_MODE (operand0) != SImode) -- operand0 = gen_rtx_SUBREG (SImode, operand0, op0_subreg_word); -+ operand0 = gen_rtx_SUBREG (SImode, operand0, op0_subreg_byte); - - emit_insn (gen_ashlsi3 (temp, operand1, shift_24)); - emit_insn (gen_lshrsi3 (operand0, temp, shift_24)); ---- gcc/config/m68k/m68k.md.jj Wed Jun 7 08:41:10 2000 -+++ gcc/config/m68k/m68k.md Mon Jul 31 20:46:24 2000 -@@ -1554,7 +1554,7 @@ - operands[1] = make_safe_from (operands[1], operands[0]); - if (GET_CODE (operands[0]) == SUBREG) - operands[2] = gen_rtx_SUBREG (HImode, SUBREG_REG (operands[0]), -- SUBREG_WORD (operands[0])); -+ SUBREG_BYTE (operands[0])); - else - operands[2] = gen_rtx_SUBREG (HImode, operands[0], 0); - }") -@@ -1570,7 +1570,7 @@ - operands[1] = make_safe_from (operands[1], operands[0]); - if (GET_CODE (operands[0]) == SUBREG) - operands[2] = gen_rtx_SUBREG (QImode, SUBREG_REG (operands[0]), -- SUBREG_WORD (operands[0])); -+ SUBREG_BYTE (operands[0])); - else - operands[2] = gen_rtx_SUBREG (QImode, operands[0], 0); - }") -@@ -1586,7 +1586,7 @@ - operands[1] = make_safe_from (operands[1], operands[0]); - if (GET_CODE (operands[0]) == SUBREG) - operands[2] = gen_rtx_SUBREG (QImode, SUBREG_REG (operands[0]), -- SUBREG_WORD (operands[0])); -+ SUBREG_BYTE (operands[0])); - else - operands[2] = gen_rtx_SUBREG (QImode, operands[0], 0); - }") -@@ -3096,7 +3096,7 @@ - ;; the high-numbered word of the DImode operand[0] and operand[1]. - (define_expand "umulsidi3" - [(parallel -- [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 1) -+ [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4) - (mult:SI (match_operand:SI 1 "register_operand" "") - (match_operand:SI 2 "nonimmediate_operand" ""))) - (set (subreg:SI (match_dup 0) 0) -@@ -3135,7 +3135,7 @@ - - (define_expand "mulsidi3" - [(parallel -- [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 1) -+ [(set (subreg:SI (match_operand:DI 0 "register_operand" "") 4) - (mult:SI (match_operand:SI 1 "register_operand" "") - (match_operand:SI 2 "nonimmediate_operand" ""))) - (set (subreg:SI (match_dup 0) 0) -@@ -4731,7 +4731,7 @@ - (define_insn "subreghi1ashrdi_const32" - [(set (match_operand:HI 0 "general_operand" "=rm") - (subreg:HI (ashiftrt:DI (match_operand:DI 1 "general_operand" "ro") -- (const_int 32)) 1))] -+ (const_int 32)) 4))] - "" - "* - { -@@ -4743,7 +4743,7 @@ - (define_insn "subregsi1ashrdi_const32" - [(set (match_operand:SI 0 "general_operand" "=rm") - (subreg:SI (ashiftrt:DI (match_operand:DI 1 "general_operand" "ro") -- (const_int 32)) 1))] -+ (const_int 32)) 4))] - "" - "* - { -@@ -4894,10 +4894,10 @@ - ;;(define_insn "" - ;; [(set (cc0) - ;; (subreg:SI (lshiftrt:DI (match_operand:DI 0 "general_operand" "ro") --;; (const_int 32)) 1)) -+;; (const_int 32)) 4)) - ;; (set (match_operand:SI 1 "general_operand" "=dm") - ;; (subreg:SI (lshiftrt:DI (match_dup 0) --;; (const_int 32)) 1))] -+;; (const_int 32)) 4))] - ;; "" - ;; "* - ;;{ -@@ -4924,7 +4924,7 @@ - (define_insn "subreg1lshrdi_const32" - [(set (match_operand:SI 0 "general_operand" "=rm") - (subreg:SI (lshiftrt:DI (match_operand:DI 1 "general_operand" "ro") -- (const_int 32)) 1))] -+ (const_int 32)) 4))] - "" - "* - { ---- gcc/config/m88k/m88k.md.jj Mon Mar 6 18:37:52 2000 -+++ gcc/config/m88k/m88k.md Mon Jul 31 20:46:24 2000 -@@ -2295,10 +2295,10 @@ - ;;- sign extension instructions - - (define_expand "extendsidi2" -- [(set (subreg:SI (match_operand:DI 0 "register_operand" "=r") 1) -+ [(set (subreg:SI (match_operand:DI 0 "register_operand" "=r") 4) - (match_operand:SI 1 "general_operand" "g")) - (set (subreg:SI (match_dup 0) 0) -- (ashiftrt:SI (subreg:SI (match_dup 0) 1) -+ (ashiftrt:SI (subreg:SI (match_dup 0) 4) - (const_int 31)))] - "" - "") ---- gcc/config/mips/mips.c.jj Tue Jul 18 21:15:50 2000 -+++ gcc/config/mips/mips.c Mon Jul 31 20:46:24 2000 -@@ -1804,20 +1804,26 @@ mips_move_1word (operands, insn, unsigne - enum rtx_code code0 = GET_CODE (op0); - enum rtx_code code1 = GET_CODE (op1); - enum machine_mode mode = GET_MODE (op0); -- int subreg_word0 = 0; -- int subreg_word1 = 0; -+ int subreg_offset0 = 0; -+ int subreg_offset1 = 0; - enum delay_type delay = DELAY_NONE; - - while (code0 == SUBREG) - { -- subreg_word0 += SUBREG_WORD (op0); -+ subreg_offset0 += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (op0)), -+ GET_MODE (SUBREG_REG (op0)), -+ SUBREG_BYTE (op0), -+ GET_MODE (op0)); - op0 = SUBREG_REG (op0); - code0 = GET_CODE (op0); - } - - while (code1 == SUBREG) - { -- subreg_word1 += SUBREG_WORD (op1); -+ subreg_offset1 += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (op1)), -+ GET_MODE (SUBREG_REG (op1)), -+ SUBREG_BYTE (op1), -+ GET_MODE (op1)); - op1 = SUBREG_REG (op1); - code1 = GET_CODE (op1); - } -@@ -1828,11 +1834,11 @@ mips_move_1word (operands, insn, unsigne - - if (code0 == REG) - { -- int regno0 = REGNO (op0) + subreg_word0; -+ int regno0 = REGNO (op0) + subreg_offset0; - - if (code1 == REG) - { -- int regno1 = REGNO (op1) + subreg_word1; -+ int regno1 = REGNO (op1) + subreg_offset1; - - /* Just in case, don't do anything for assigning a register - to itself, unless we are filling a delay slot. */ -@@ -2117,7 +2123,7 @@ mips_move_1word (operands, insn, unsigne - - if (code1 == REG) - { -- int regno1 = REGNO (op1) + subreg_word1; -+ int regno1 = REGNO (op1) + subreg_offset1; - - if (GP_REG_P (regno1)) - { -@@ -2196,13 +2202,16 @@ mips_move_2words (operands, insn) - rtx op1 = operands[1]; - enum rtx_code code0 = GET_CODE (operands[0]); - enum rtx_code code1 = GET_CODE (operands[1]); -- int subreg_word0 = 0; -- int subreg_word1 = 0; -+ int subreg_offset0 = 0; -+ int subreg_offset1 = 0; - enum delay_type delay = DELAY_NONE; - - while (code0 == SUBREG) - { -- subreg_word0 += SUBREG_WORD (op0); -+ subreg_offset0 += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (op0)), -+ GET_MODE (SUBREG_REG (op0)), -+ SUBREG_BYTE (op0), -+ GET_MODE (op0)); - op0 = SUBREG_REG (op0); - code0 = GET_CODE (op0); - } -@@ -2215,7 +2224,10 @@ mips_move_2words (operands, insn) - - while (code1 == SUBREG) - { -- subreg_word1 += SUBREG_WORD (op1); -+ subreg_offset1 += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (op1)), -+ GET_MODE (SUBREG_REG (op1)), -+ SUBREG_BYTE (op1), -+ GET_MODE (op1)); - op1 = SUBREG_REG (op1); - code1 = GET_CODE (op1); - } -@@ -2233,11 +2245,11 @@ mips_move_2words (operands, insn) - - if (code0 == REG) - { -- int regno0 = REGNO (op0) + subreg_word0; -+ int regno0 = REGNO (op0) + subreg_offset0; - - if (code1 == REG) - { -- int regno1 = REGNO (op1) + subreg_word1; -+ int regno1 = REGNO (op1) + subreg_offset1; - - /* Just in case, don't do anything for assigning a register - to itself, unless we are filling a delay slot. */ -@@ -2574,7 +2586,7 @@ mips_move_2words (operands, insn) - { - if (code1 == REG) - { -- int regno1 = REGNO (op1) + subreg_word1; -+ int regno1 = REGNO (op1) + subreg_offset1; - - if (FP_REG_P (regno1)) - ret = "s.d\t%1,%0"; -@@ -7840,7 +7852,10 @@ mips_secondary_reload_class (class, mode - { - while (GET_CODE (x) == SUBREG) - { -- off += SUBREG_WORD (x); -+ off += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (x)), -+ GET_MODE (SUBREG_REG (x)), -+ SUBREG_BYTE (x), -+ GET_MODE (x)); - x = SUBREG_REG (x); - } - ---- gcc/config/mips/mips.md.jj Sun Jul 16 01:53:05 2000 -+++ gcc/config/mips/mips.md Mon Jul 31 20:46:24 2000 -@@ -749,12 +749,12 @@ - (ltu:SI (subreg:SI (match_dup 0) 0) - (subreg:SI (match_dup 2) 0))) - -- (set (subreg:SI (match_dup 0) 1) -- (plus:SI (subreg:SI (match_dup 1) 1) -- (subreg:SI (match_dup 2) 1))) -+ (set (subreg:SI (match_dup 0) 4) -+ (plus:SI (subreg:SI (match_dup 1) 4) -+ (subreg:SI (match_dup 2) 4))) - -- (set (subreg:SI (match_dup 0) 1) -- (plus:SI (subreg:SI (match_dup 0) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (plus:SI (subreg:SI (match_dup 0) 4) - (match_dup 3)))] - "") - -@@ -771,13 +771,13 @@ - && (REGNO (operands[0]) != REGNO (operands[1]) - || REGNO (operands[0]) != REGNO (operands[2]))" - -- [(set (subreg:SI (match_dup 0) 1) -- (plus:SI (subreg:SI (match_dup 1) 1) -- (subreg:SI (match_dup 2) 1))) -+ [(set (subreg:SI (match_dup 0) 4) -+ (plus:SI (subreg:SI (match_dup 1) 4) -+ (subreg:SI (match_dup 2) 4))) - - (set (match_dup 3) -- (ltu:SI (subreg:SI (match_dup 0) 1) -- (subreg:SI (match_dup 2) 1))) -+ (ltu:SI (subreg:SI (match_dup 0) 4) -+ (subreg:SI (match_dup 2) 4))) - - (set (subreg:SI (match_dup 0) 0) - (plus:SI (subreg:SI (match_dup 1) 0) -@@ -824,8 +824,8 @@ - (ltu:SI (subreg:SI (match_dup 0) 0) - (match_dup 2))) - -- (set (subreg:SI (match_dup 0) 1) -- (plus:SI (subreg:SI (match_dup 1) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (plus:SI (subreg:SI (match_dup 1) 4) - (match_dup 3)))] - "") - -@@ -840,12 +840,12 @@ - && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1])) - && INTVAL (operands[2]) > 0" - -- [(set (subreg:SI (match_dup 0) 1) -- (plus:SI (subreg:SI (match_dup 1) 1) -+ [(set (subreg:SI (match_dup 0) 4) -+ (plus:SI (subreg:SI (match_dup 1) 4) - (match_dup 2))) - - (set (match_dup 3) -- (ltu:SI (subreg:SI (match_dup 0) 1) -+ (ltu:SI (subreg:SI (match_dup 0) 4) - (match_dup 2))) - - (set (subreg:SI (match_dup 0) 0) -@@ -1266,12 +1266,12 @@ - (minus:SI (subreg:SI (match_dup 1) 0) - (subreg:SI (match_dup 2) 0))) - -- (set (subreg:SI (match_dup 0) 1) -- (minus:SI (subreg:SI (match_dup 1) 1) -- (subreg:SI (match_dup 2) 1))) -+ (set (subreg:SI (match_dup 0) 4) -+ (minus:SI (subreg:SI (match_dup 1) 4) -+ (subreg:SI (match_dup 2) 4))) - -- (set (subreg:SI (match_dup 0) 1) -- (minus:SI (subreg:SI (match_dup 0) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (minus:SI (subreg:SI (match_dup 0) 4) - (match_dup 3)))] - "") - -@@ -1287,12 +1287,12 @@ - && GET_CODE (operands[2]) == REG && GP_REG_P (REGNO (operands[2]))" - - [(set (match_dup 3) -- (ltu:SI (subreg:SI (match_dup 1) 1) -- (subreg:SI (match_dup 2) 1))) -+ (ltu:SI (subreg:SI (match_dup 1) 4) -+ (subreg:SI (match_dup 2) 4))) - -- (set (subreg:SI (match_dup 0) 1) -- (minus:SI (subreg:SI (match_dup 1) 1) -- (subreg:SI (match_dup 2) 1))) -+ (set (subreg:SI (match_dup 0) 4) -+ (minus:SI (subreg:SI (match_dup 1) 4) -+ (subreg:SI (match_dup 2) 4))) - - (set (subreg:SI (match_dup 0) 0) - (minus:SI (subreg:SI (match_dup 1) 0) -@@ -1337,8 +1337,8 @@ - (minus:SI (subreg:SI (match_dup 1) 0) - (match_dup 2))) - -- (set (subreg:SI (match_dup 0) 1) -- (minus:SI (subreg:SI (match_dup 1) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (minus:SI (subreg:SI (match_dup 1) 4) - (match_dup 3)))] - "") - -@@ -1354,11 +1354,11 @@ - && INTVAL (operands[2]) > 0" - - [(set (match_dup 3) -- (ltu:SI (subreg:SI (match_dup 1) 1) -+ (ltu:SI (subreg:SI (match_dup 1) 4) - (match_dup 2))) - -- (set (subreg:SI (match_dup 0) 1) -- (minus:SI (subreg:SI (match_dup 1) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (minus:SI (subreg:SI (match_dup 1) 4) - (match_dup 2))) - - (set (subreg:SI (match_dup 0) 0) -@@ -3080,7 +3080,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1]))" - - [(set (subreg:SI (match_dup 0) 0) (not:SI (subreg:SI (match_dup 1) 0))) -- (set (subreg:SI (match_dup 0) 1) (not:SI (subreg:SI (match_dup 1) 1)))] -+ (set (subreg:SI (match_dup 0) 4) (not:SI (subreg:SI (match_dup 1) 4)))] - "") - - -@@ -3183,7 +3183,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[2]) == REG && GP_REG_P (REGNO (operands[2]))" - - [(set (subreg:SI (match_dup 0) 0) (and:SI (subreg:SI (match_dup 1) 0) (subreg:SI (match_dup 2) 0))) -- (set (subreg:SI (match_dup 0) 1) (and:SI (subreg:SI (match_dup 1) 1) (subreg:SI (match_dup 2) 1)))] -+ (set (subreg:SI (match_dup 0) 4) (and:SI (subreg:SI (match_dup 1) 4) (subreg:SI (match_dup 2) 4)))] - "") - - (define_insn "anddi3_internal1" -@@ -3284,7 +3284,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[2]) == REG && GP_REG_P (REGNO (operands[2]))" - - [(set (subreg:SI (match_dup 0) 0) (ior:SI (subreg:SI (match_dup 1) 0) (subreg:SI (match_dup 2) 0))) -- (set (subreg:SI (match_dup 0) 1) (ior:SI (subreg:SI (match_dup 1) 1) (subreg:SI (match_dup 2) 1)))] -+ (set (subreg:SI (match_dup 0) 4) (ior:SI (subreg:SI (match_dup 1) 4) (subreg:SI (match_dup 2) 4)))] - "") - - (define_expand "xorsi3" -@@ -3388,7 +3388,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[2]) == REG && GP_REG_P (REGNO (operands[2]))" - - [(set (subreg:SI (match_dup 0) 0) (xor:SI (subreg:SI (match_dup 1) 0) (subreg:SI (match_dup 2) 0))) -- (set (subreg:SI (match_dup 0) 1) (xor:SI (subreg:SI (match_dup 1) 1) (subreg:SI (match_dup 2) 1)))] -+ (set (subreg:SI (match_dup 0) 4) (xor:SI (subreg:SI (match_dup 1) 4) (subreg:SI (match_dup 2) 4)))] - "") - - (define_insn "xordi3_immed" -@@ -3437,7 +3437,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[2]) == REG && GP_REG_P (REGNO (operands[2]))" - - [(set (subreg:SI (match_dup 0) 0) (and:SI (not:SI (subreg:SI (match_dup 1) 0)) (not:SI (subreg:SI (match_dup 2) 0)))) -- (set (subreg:SI (match_dup 0) 1) (and:SI (not:SI (subreg:SI (match_dup 1) 1)) (not:SI (subreg:SI (match_dup 2) 1))))] -+ (set (subreg:SI (match_dup 0) 4) (and:SI (not:SI (subreg:SI (match_dup 1) 4)) (not:SI (subreg:SI (match_dup 2) 4))))] - "") - - ;; -@@ -4876,7 +4876,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1]))" - - [(set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0)) -- (set (subreg:SI (match_dup 0) 1) (subreg:SI (match_dup 1) 1))] -+ (set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4))] - "") - - (define_insn "movdi_internal2" -@@ -6106,7 +6106,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[0]) == REG && GP_REG_P (REGNO (operands[0])) - && GET_CODE (operands[1]) == REG && GP_REG_P (REGNO (operands[1]))" - [(set (subreg:SI (match_dup 0) 0) (subreg:SI (match_dup 1) 0)) -- (set (subreg:SI (match_dup 0) 1) (subreg:SI (match_dup 1) 1))] -+ (set (subreg:SI (match_dup 0) 4) (subreg:SI (match_dup 1) 4))] - "") - - ;; Instructions to load the global pointer register. -@@ -6475,7 +6475,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[1]) == REG && REGNO (operands[1]) < FIRST_PSEUDO_REGISTER - && (INTVAL (operands[2]) & 32) != 0" - -- [(set (subreg:SI (match_dup 0) 1) (ashift:SI (subreg:SI (match_dup 1) 0) (match_dup 2))) -+ [(set (subreg:SI (match_dup 0) 4) (ashift:SI (subreg:SI (match_dup 1) 0) (match_dup 2))) - (set (subreg:SI (match_dup 0) 0) (const_int 0))] - - "operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f);") -@@ -6492,8 +6492,8 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[1]) == REG && REGNO (operands[1]) < FIRST_PSEUDO_REGISTER - && (INTVAL (operands[2]) & 32) != 0" - -- [(set (subreg:SI (match_dup 0) 0) (ashift:SI (subreg:SI (match_dup 1) 1) (match_dup 2))) -- (set (subreg:SI (match_dup 0) 1) (const_int 0))] -+ [(set (subreg:SI (match_dup 0) 0) (ashift:SI (subreg:SI (match_dup 1) 4) (match_dup 2))) -+ (set (subreg:SI (match_dup 0) 4) (const_int 0))] - - "operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f);") - -@@ -6533,16 +6533,16 @@ move\\t%0,%z4\\n\\ - && (INTVAL (operands[2]) & 63) < 32 - && (INTVAL (operands[2]) & 63) != 0" - -- [(set (subreg:SI (match_dup 0) 1) -- (ashift:SI (subreg:SI (match_dup 1) 1) -+ [(set (subreg:SI (match_dup 0) 4) -+ (ashift:SI (subreg:SI (match_dup 1) 4) - (match_dup 2))) - - (set (match_dup 3) - (lshiftrt:SI (subreg:SI (match_dup 1) 0) - (match_dup 4))) - -- (set (subreg:SI (match_dup 0) 1) -- (ior:SI (subreg:SI (match_dup 0) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (ior:SI (subreg:SI (match_dup 0) 4) - (match_dup 3))) - - (set (subreg:SI (match_dup 0) 0) -@@ -6573,15 +6573,15 @@ move\\t%0,%z4\\n\\ - (match_dup 2))) - - (set (match_dup 3) -- (lshiftrt:SI (subreg:SI (match_dup 1) 1) -+ (lshiftrt:SI (subreg:SI (match_dup 1) 4) - (match_dup 4))) - - (set (subreg:SI (match_dup 0) 0) - (ior:SI (subreg:SI (match_dup 0) 0) - (match_dup 3))) - -- (set (subreg:SI (match_dup 0) 1) -- (ashift:SI (subreg:SI (match_dup 1) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (ashift:SI (subreg:SI (match_dup 1) 4) - (match_dup 2)))] - " - { -@@ -6830,8 +6830,8 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[1]) == REG && REGNO (operands[1]) < FIRST_PSEUDO_REGISTER - && (INTVAL (operands[2]) & 32) != 0" - -- [(set (subreg:SI (match_dup 0) 0) (ashiftrt:SI (subreg:SI (match_dup 1) 1) (match_dup 2))) -- (set (subreg:SI (match_dup 0) 1) (ashiftrt:SI (subreg:SI (match_dup 1) 1) (const_int 31)))] -+ [(set (subreg:SI (match_dup 0) 0) (ashiftrt:SI (subreg:SI (match_dup 1) 4) (match_dup 2))) -+ (set (subreg:SI (match_dup 0) 4) (ashiftrt:SI (subreg:SI (match_dup 1) 4) (const_int 31)))] - - "operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f);") - -@@ -6846,7 +6846,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[1]) == REG && REGNO (operands[1]) < FIRST_PSEUDO_REGISTER - && (INTVAL (operands[2]) & 32) != 0" - -- [(set (subreg:SI (match_dup 0) 1) (ashiftrt:SI (subreg:SI (match_dup 1) 0) (match_dup 2))) -+ [(set (subreg:SI (match_dup 0) 4) (ashiftrt:SI (subreg:SI (match_dup 1) 0) (match_dup 2))) - (set (subreg:SI (match_dup 0) 0) (ashiftrt:SI (subreg:SI (match_dup 1) 0) (const_int 31)))] - - "operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f);") -@@ -6891,15 +6891,15 @@ move\\t%0,%z4\\n\\ - (match_dup 2))) - - (set (match_dup 3) -- (ashift:SI (subreg:SI (match_dup 1) 1) -+ (ashift:SI (subreg:SI (match_dup 1) 4) - (match_dup 4))) - - (set (subreg:SI (match_dup 0) 0) - (ior:SI (subreg:SI (match_dup 0) 0) - (match_dup 3))) - -- (set (subreg:SI (match_dup 0) 1) -- (ashiftrt:SI (subreg:SI (match_dup 1) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (ashiftrt:SI (subreg:SI (match_dup 1) 4) - (match_dup 2)))] - " - { -@@ -6921,16 +6921,16 @@ move\\t%0,%z4\\n\\ - && (INTVAL (operands[2]) & 63) < 32 - && (INTVAL (operands[2]) & 63) != 0" - -- [(set (subreg:SI (match_dup 0) 1) -- (lshiftrt:SI (subreg:SI (match_dup 1) 1) -+ [(set (subreg:SI (match_dup 0) 4) -+ (lshiftrt:SI (subreg:SI (match_dup 1) 4) - (match_dup 2))) - - (set (match_dup 3) - (ashift:SI (subreg:SI (match_dup 1) 0) - (match_dup 4))) - -- (set (subreg:SI (match_dup 0) 1) -- (ior:SI (subreg:SI (match_dup 0) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (ior:SI (subreg:SI (match_dup 0) 4) - (match_dup 3))) - - (set (subreg:SI (match_dup 0) 0) -@@ -7214,8 +7214,8 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[1]) == REG && REGNO (operands[1]) < FIRST_PSEUDO_REGISTER - && (INTVAL (operands[2]) & 32) != 0" - -- [(set (subreg:SI (match_dup 0) 0) (lshiftrt:SI (subreg:SI (match_dup 1) 1) (match_dup 2))) -- (set (subreg:SI (match_dup 0) 1) (const_int 0))] -+ [(set (subreg:SI (match_dup 0) 0) (lshiftrt:SI (subreg:SI (match_dup 1) 4) (match_dup 2))) -+ (set (subreg:SI (match_dup 0) 4) (const_int 0))] - - "operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f);") - -@@ -7231,7 +7231,7 @@ move\\t%0,%z4\\n\\ - && GET_CODE (operands[1]) == REG && REGNO (operands[1]) < FIRST_PSEUDO_REGISTER - && (INTVAL (operands[2]) & 32) != 0" - -- [(set (subreg:SI (match_dup 0) 1) (lshiftrt:SI (subreg:SI (match_dup 1) 0) (match_dup 2))) -+ [(set (subreg:SI (match_dup 0) 4) (lshiftrt:SI (subreg:SI (match_dup 1) 0) (match_dup 2))) - (set (subreg:SI (match_dup 0) 0) (const_int 0))] - - "operands[2] = GEN_INT (INTVAL (operands[2]) & 0x1f);") -@@ -7276,15 +7276,15 @@ move\\t%0,%z4\\n\\ - (match_dup 2))) - - (set (match_dup 3) -- (ashift:SI (subreg:SI (match_dup 1) 1) -+ (ashift:SI (subreg:SI (match_dup 1) 4) - (match_dup 4))) - - (set (subreg:SI (match_dup 0) 0) - (ior:SI (subreg:SI (match_dup 0) 0) - (match_dup 3))) - -- (set (subreg:SI (match_dup 0) 1) -- (lshiftrt:SI (subreg:SI (match_dup 1) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (lshiftrt:SI (subreg:SI (match_dup 1) 4) - (match_dup 2)))] - " - { -@@ -7306,16 +7306,16 @@ move\\t%0,%z4\\n\\ - && (INTVAL (operands[2]) & 63) < 32 - && (INTVAL (operands[2]) & 63) != 0" - -- [(set (subreg:SI (match_dup 0) 1) -- (lshiftrt:SI (subreg:SI (match_dup 1) 1) -+ [(set (subreg:SI (match_dup 0) 4) -+ (lshiftrt:SI (subreg:SI (match_dup 1) 4) - (match_dup 2))) - - (set (match_dup 3) - (ashift:SI (subreg:SI (match_dup 1) 0) - (match_dup 4))) - -- (set (subreg:SI (match_dup 0) 1) -- (ior:SI (subreg:SI (match_dup 0) 1) -+ (set (subreg:SI (match_dup 0) 4) -+ (ior:SI (subreg:SI (match_dup 0) 4) - (match_dup 3))) - - (set (subreg:SI (match_dup 0) 0) ---- gcc/config/mn10200/mn10200.c.jj Tue Jan 18 22:33:06 2000 -+++ gcc/config/mn10200/mn10200.c Mon Jul 31 20:46:24 2000 -@@ -163,8 +163,7 @@ print_operand (file, x, code) - break; - - case SUBREG: -- fprintf (file, "%s", -- reg_names[REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)]); -+ fprintf (file, "%s", reg_names[SUBREG_REGNO (x)]); - break; - - case CONST_DOUBLE: -@@ -223,8 +222,7 @@ print_operand (file, x, code) - break; - - case SUBREG: -- fprintf (file, "%s", -- reg_names[REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)] + 1); -+ fprintf (file, "%s", reg_names[SUBREG_REGNO (x) + 1]); - break; - - case CONST_DOUBLE: -@@ -323,8 +321,7 @@ print_operand (file, x, code) - break; - - case SUBREG: -- fprintf (file, "%s", -- reg_names[REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)]); -+ fprintf (file, "%s", reg_names[SUBREG_REGNO (x)]); - break; - - case CONST_INT: ---- gcc/config/mn10300/mn10300.c.jj Sun May 21 21:13:23 2000 -+++ gcc/config/mn10300/mn10300.c Mon Jul 31 20:46:24 2000 -@@ -144,8 +144,7 @@ print_operand (file, x, code) - break; - - case SUBREG: -- fprintf (file, "%s", -- reg_names[REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)]); -+ fprintf (file, "%s", reg_names[SUBREG_REGNO (x)]); - break; - - case CONST_DOUBLE: -@@ -205,8 +204,7 @@ print_operand (file, x, code) - break; - - case SUBREG: -- fprintf (file, "%s", -- reg_names[REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)] + 1); -+ fprintf (file, "%s", reg_names[SUBREG_REGNO (x) + 1]); - break; - - case CONST_DOUBLE: -@@ -290,8 +288,7 @@ print_operand (file, x, code) - break; - - case SUBREG: -- fprintf (file, "%s", -- reg_names[REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)]); -+ fprintf (file, "%s", reg_names[SUBREG_REGNO (x)]); - break; - - /* This will only be single precision.... */ ---- gcc/config/ns32k/ns32k.md.jj Mon Mar 6 18:37:53 2000 -+++ gcc/config/ns32k/ns32k.md Mon Jul 31 20:46:24 2000 -@@ -1275,7 +1275,7 @@ - ;; Retain this insn which *does* have a pattern indicating what it does, - ;; just in case the compiler is smart enough to recognize a substitution. - (define_insn "udivmoddisi4" -- [(set (subreg:SI (match_operand:DI 0 "nonimmediate_operand" "=rm") 1) -+ [(set (subreg:SI (match_operand:DI 0 "nonimmediate_operand" "=rm") 4) - (truncate:SI (udiv:DI (match_operand:DI 1 "nonimmediate_operand" "0") - (zero_extend:DI (match_operand:SI 2 "nonimmediate_operand" "rm"))))) - (set (subreg:SI (match_operand:DI 3 "nonimmediate_operand" "=0") 0) -@@ -1338,7 +1338,7 @@ - "deiw %2,%0") - - (define_insn "udivmoddihi4" -- [(set (subreg:HI (match_operand:DI 0 "register_operand" "=r") 1) -+ [(set (subreg:HI (match_operand:DI 0 "register_operand" "=r") 2) - (truncate:HI (udiv:DI (match_operand:DI 1 "register_operand" "0") - (zero_extend:DI (match_operand:HI 2 "nonimmediate_operand" "rm"))))) - (set (subreg:HI (match_operand:DI 3 "register_operand" "=0") 0) ---- gcc/config/pa/pa.md.jj Mon Jul 31 20:02:17 2000 -+++ gcc/config/pa/pa.md Mon Jul 31 20:46:24 2000 -@@ -3628,9 +3628,9 @@ - (set_attr "length" "4")]) - - (define_expand "floatunssisf2" -- [(set (subreg:SI (match_dup 2) 1) -+ [(set (subreg:SI (match_dup 2) 4) - (match_operand:SI 1 "register_operand" "")) -- (set (subreg:SI (match_dup 2) 0) -+ (set (subreg:SI (match_dup 2) 4) - (const_int 0)) - (set (match_operand:SF 0 "register_operand" "") - (float:SF (match_dup 2)))] -@@ -3646,7 +3646,7 @@ - }") - - (define_expand "floatunssidf2" -- [(set (subreg:SI (match_dup 2) 1) -+ [(set (subreg:SI (match_dup 2) 4) - (match_operand:SI 1 "register_operand" "")) - (set (subreg:SI (match_dup 2) 0) - (const_int 0)) -@@ -4014,7 +4014,7 @@ - - } - emit_insn (gen_rtx_SET (VOIDmode, operands[0], -- gen_rtx_SUBREG (SImode, scratch, 1))); -+ gen_rtx_SUBREG (SImode, scratch, GET_MODE_SIZE (SImode)))); - DONE; - } - operands[3] = gen_reg_rtx (SImode); ---- gcc/config/pa/pa.c.jj Mon Jul 31 20:02:16 2000 -+++ gcc/config/pa/pa.c Mon Jul 31 20:46:24 2000 -@@ -1175,11 +1175,11 @@ emit_move_sequence (operands, mode, scra - && GET_CODE (SUBREG_REG (operand0)) == REG - && REGNO (SUBREG_REG (operand0)) >= FIRST_PSEUDO_REGISTER) - { -- /* We must not alter SUBREG_WORD (operand0) since that would confuse -+ /* We must not alter SUBREG_BYTE (operand0) since that would confuse - the code which tracks sets/uses for delete_output_reload. */ - rtx temp = gen_rtx_SUBREG (GET_MODE (operand0), - reg_equiv_mem [REGNO (SUBREG_REG (operand0))], -- SUBREG_WORD (operand0)); -+ SUBREG_BYTE (operand0)); - operand0 = alter_subreg (temp); - } - -@@ -1192,11 +1192,11 @@ emit_move_sequence (operands, mode, scra - && GET_CODE (SUBREG_REG (operand1)) == REG - && REGNO (SUBREG_REG (operand1)) >= FIRST_PSEUDO_REGISTER) - { -- /* We must not alter SUBREG_WORD (operand0) since that would confuse -+ /* We must not alter SUBREG_BYTE (operand0) since that would confuse - the code which tracks sets/uses for delete_output_reload. */ - rtx temp = gen_rtx_SUBREG (GET_MODE (operand1), - reg_equiv_mem [REGNO (SUBREG_REG (operand1))], -- SUBREG_WORD (operand1)); -+ SUBREG_BYTE (operand1)); - operand1 = alter_subreg (temp); - } - ---- gcc/config/pdp11/pdp11.md.jj Thu May 4 15:06:13 2000 -+++ gcc/config/pdp11/pdp11.md Mon Jul 31 20:46:24 2000 -@@ -766,7 +766,7 @@ - (define_expand "zero_extendhisi2" - [(set (subreg:HI - (match_dup 0) -- 1) -+ 2) - (match_operand:HI 1 "register_operand" "r")) - (set (subreg:HI - (match_operand:SI 0 "register_operand" "=r") -@@ -1782,16 +1782,16 @@ - [(set_attr "length" "2")]) - - (define_expand "modhi3" -- [(set (subreg:HI (match_dup 1) 1) -+ [(set (subreg:HI (match_dup 1) 2) - (mod:HI (match_operand:SI 1 "general_operand" "0") - (match_operand:HI 2 "general_operand" "g"))) - (set (match_operand:HI 0 "general_operand" "=r") -- (subreg:HI (match_dup 1) 1))] -+ (subreg:HI (match_dup 1) 2))] - "TARGET_45" - "") - - (define_insn "" -- [(set (subreg:HI (match_operand:SI 0 "general_operand" "=r") 1) -+ [(set (subreg:HI (match_operand:SI 0 "general_operand" "=r") 4) - (mod:HI (match_operand:SI 1 "general_operand" "0") - (match_operand:HI 2 "general_operand" "g")))] - "TARGET_45" -@@ -1802,11 +1802,11 @@ - ; [(parallel [(set (subreg:HI (match_dup 1) 0) - ; (div:HI (match_operand:SI 1 "general_operand" "0") - ; (match_operand:HI 2 "general_operand" "g"))) --; (set (subreg:HI (match_dup 1) 1) -+; (set (subreg:HI (match_dup 1) 2) - ; (mod:HI (match_dup 1) - ; (match_dup 2)))]) - ; (set (match_operand:HI 3 "general_operand" "=r") --; (subreg:HI (match_dup 1) 1)) -+; (subreg:HI (match_dup 1) 2)) - ; (set (match_operand:HI 0 "general_operand" "=r") - ; (subreg:HI (match_dup 1) 0))] - ; "TARGET_45" -@@ -1816,7 +1816,7 @@ - ; [(set (subreg:HI (match_operand:SI 0 "general_operand" "=r") 0) - ; (div:HI (match_operand:SI 1 "general_operand" "0") - ; (match_operand:HI 2 "general_operand" "g"))) --; (set (subreg:HI (match_dup 0) 1) -+; (set (subreg:HI (match_dup 0) 2) - ; (mod:HI (match_dup 1) - ; (match_dup 2)))] - ; "TARGET_45" ---- gcc/config/pyr/pyr.c.jj Tue Sep 7 07:48:55 1999 -+++ gcc/config/pyr/pyr.c Mon Jul 31 20:46:24 2000 -@@ -404,8 +404,7 @@ int - subreg_overlap_mentioned_p (subreg, x) - rtx subreg, x; - { -- rtx reg = SUBREG_REG (subreg); -- int regno = REGNO (reg) + SUBREG_WORD (subreg); -+ int regno = SUBREG_REGNO (subreg); - int endregno = regno + HARD_REGNO_NREGS (regno, GET_MODE (subreg)); - return refers_to_regno_p (regno, endregno, x, 0); - } -@@ -432,7 +431,10 @@ consecutive_operands (op0, op1) - { - if (GET_MODE_SIZE (GET_MODE (SUBREG_REG (op0))) <= UNITS_PER_WORD) - return 0; -- regno_off0 = SUBREG_WORD (op0); -+ regno_off0 = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (op0)), -+ GET_MODE (SUBREG_REG (op0)), -+ SUBREG_BYTE (op0), -+ GET_MODE (op0)); - op0 = SUBREG_REG (op0); - code0 = REG; - } -@@ -442,7 +444,10 @@ consecutive_operands (op0, op1) - { - if (GET_MODE_SIZE (GET_MODE (SUBREG_REG (op1))) <= UNITS_PER_WORD) - return 0; -- regno_off1 = SUBREG_WORD (op1); -+ regno_off1 = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (op1)), -+ GET_MODE (SUBREG_REG (op1)), -+ SUBREG_BYTE (op1), -+ GET_MODE (op1)); - op1 = SUBREG_REG (op1); - code1 = REG; - } ---- gcc/config/pyr/pyr.md.jj Tue Sep 7 07:48:57 1999 -+++ gcc/config/pyr/pyr.md Mon Jul 31 20:46:24 2000 -@@ -1238,10 +1238,10 @@ - ;______________________________________________________________________ - - (define_expand "extendsidi2" -- [(set (subreg:SI (match_operand:DI 0 "register_operand" "=r") 1) -+ [(set (subreg:SI (match_operand:DI 0 "register_operand" "=r") 4) - (match_operand:SI 1 "general_operand" "g")) - (set (subreg:SI (match_dup 0) 0) -- (subreg:SI (match_dup 0) 1)) -+ (subreg:SI (match_dup 0) 4)) - (set (subreg:SI (match_dup 0) 0) - (ashiftrt:SI (subreg:SI (match_dup 0) 0) - (const_int 31)))] ---- gcc/config/romp/romp.c.jj Mon Mar 6 18:37:53 2000 -+++ gcc/config/romp/romp.c Mon Jul 31 20:46:24 2000 -@@ -270,12 +270,7 @@ memory_offset_in_range_p (op, mode, low, - - while (GET_CODE (op) == SUBREG) - { -- offset += SUBREG_WORD (op) * UNITS_PER_WORD; --#if BYTES_BIG_ENDIAN -- offset -= (min (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (op))) -- - min (UNITS_PER_WORD, -- GET_MODE_SIZE (GET_MODE (SUBREG_REG (op))))); --#endif -+ offset += SUBREG_BYTE (op); - op = SUBREG_REG (op); - } - ---- gcc/config/rs6000/rs6000.md.jj Mon Jul 31 20:02:17 2000 -+++ gcc/config/rs6000/rs6000.md Mon Jul 31 20:46:24 2000 -@@ -7961,8 +7961,10 @@ - " - { - HOST_WIDE_INT value = INTVAL (operands[1]); -- operands[2] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN == 0); -- operands[3] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN != 0); -+ operands[2] = gen_rtx_SUBREG (SImode, operands[0], -+ GET_MODE_SIZE(SImode) * (WORDS_BIG_ENDIAN == 0)); -+ operands[3] = gen_rtx_SUBREG (SImode, operands[0], -+ GET_MODE_SIZE(SImode) * (WORDS_BIG_ENDIAN != 0)); - #if HOST_BITS_PER_WIDE_INT == 32 - operands[4] = (value & 0x80000000) ? constm1_rtx : const0_rtx; - #else -@@ -7979,8 +7981,10 @@ - (set (match_dup 3) (match_dup 5))] - " - { -- operands[2] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN == 0); -- operands[3] = gen_rtx_SUBREG (SImode, operands[0], WORDS_BIG_ENDIAN != 0); -+ operands[2] = gen_rtx_SUBREG (SImode, operands[0], -+ (GET_MODE_SIZE (SImode) * (WORDS_BIG_ENDIAN == 0))); -+ operands[3] = gen_rtx_SUBREG (SImode, operands[0], -+ (GET_MODE_SIZE (SImode) * (WORDS_BIG_ENDIAN != 0))); - operands[4] = GEN_INT (CONST_DOUBLE_HIGH (operands[1])); - operands[5] = GEN_INT (CONST_DOUBLE_LOW (operands[1])); - }") ---- gcc/config/sh/sh.c.jj Mon Jul 31 20:02:17 2000 -+++ gcc/config/sh/sh.c Mon Jul 31 20:46:24 2000 -@@ -642,7 +642,7 @@ output_movedouble (insn, operands, mode) - if (GET_CODE (inside) == REG) - ptrreg = REGNO (inside); - else if (GET_CODE (inside) == SUBREG) -- ptrreg = REGNO (SUBREG_REG (inside)) + SUBREG_WORD (inside); -+ ptrreg = SUBREG_REGNO (inside); - else if (GET_CODE (inside) == PLUS) - { - ptrreg = REGNO (XEXP (inside, 0)); -@@ -1072,13 +1072,13 @@ gen_ashift_hi (type, n, reg) - gen_ashift_hi is only called in contexts where we know that the - sign extension works out correctly. */ - { -- int word = 0; -+ int offset = 0; - if (GET_CODE (reg) == SUBREG) - { -- word = SUBREG_WORD (reg); -+ offset = SUBREG_BYTE (reg); - reg = SUBREG_REG (reg); - } -- gen_ashift (type, n, gen_rtx_SUBREG (SImode, reg, word)); -+ gen_ashift (type, n, gen_rtx_SUBREG (SImode, reg, offset)); - break; - } - case ASHIFT: -@@ -2429,7 +2429,11 @@ regs_used (x, is_dest) - break; - if (REGNO (y) < 16) - return (((1 << HARD_REGNO_NREGS (0, GET_MODE (x))) - 1) -- << (REGNO (y) + SUBREG_WORD (x) + is_dest)); -+ << (REGNO (y) + -+ SUBREG_REGNO_OFFSET (REGNO (y), -+ GET_MODE (y), -+ SUBREG_BYTE (x), -+ GET_MOD (x)) + is_dest)); - return 0; - } - case SET: -@@ -3163,7 +3167,10 @@ machine_dependent_reorg (first) - mode = HImode; - while (GET_CODE (dst) == SUBREG) - { -- offset += SUBREG_WORD (dst); -+ offset += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (dst)), -+ GET_MODE (SUBREG_REG (dst)), -+ SUBREG_BYTE (dst), -+ GET_MODE (dst)); - dst = SUBREG_REG (dst); - } - dst = gen_rtx_REG (HImode, REGNO (dst) + offset); ---- gcc/config/sh/sh.md.jj Thu Jul 27 19:46:48 2000 -+++ gcc/config/sh/sh.md Mon Jul 31 20:46:24 2000 -@@ -2455,7 +2455,7 @@ - if (GET_CODE (operands[0]) == REG) - regno = REGNO (operands[0]); - else if (GET_CODE (operands[0]) == SUBREG) -- regno = REGNO (SUBREG_REG (operands[0])) + SUBREG_WORD (operands[0]); -+ regno = SUBREG_REGNO (operands[0]); - else if (GET_CODE (operands[0]) == MEM) - regno = -1; - -@@ -2593,7 +2593,7 @@ - mem = operands[1]; - store_p = 0; - } -- if (GET_CODE (mem) == SUBREG && SUBREG_WORD (mem) == 0) -+ if (GET_CODE (mem) == SUBREG && SUBREG_BYTE (mem) == 0) - mem = SUBREG_REG (mem); - if (GET_CODE (mem) == MEM) - { -@@ -2840,7 +2840,7 @@ - if (GET_CODE (operands[0]) == REG) - regno = REGNO (operands[0]); - else if (GET_CODE (operands[0]) == SUBREG) -- regno = REGNO (SUBREG_REG (operands[0])) + SUBREG_WORD (operands[0]); -+ regno = SUBREG_REGNO (operands[0]); - else if (GET_CODE (operands[0]) == MEM) - regno = -1; - ---- gcc/config/sh/sh.h.jj Wed Jun 14 07:08:04 2000 -+++ gcc/config/sh/sh.h Mon Jul 31 20:46:24 2000 -@@ -1321,7 +1321,7 @@ extern int current_function_anonymous_ar - ((GET_CODE (X) == REG && REG_OK_FOR_INDEX_P (X)) \ - || (GET_CODE (X) == SUBREG \ - && GET_CODE (SUBREG_REG (X)) == REG \ -- && SUBREG_OK_FOR_INDEX_P (SUBREG_REG (X), SUBREG_WORD (X)))) -+ && SUBREG_OK_FOR_INDEX_P (SUBREG_REG (X), SUBREG_BYTE (X)))) - - /* Jump to LABEL if X is a valid address RTX. This must also take - REG_OK_STRICT into account when deciding about valid registers, but it uses ---- gcc/config/sparc/sparc.c.jj Mon Jul 31 20:02:17 2000 -+++ gcc/config/sparc/sparc.c Mon Jul 31 20:46:24 2000 -@@ -7465,8 +7465,8 @@ ultra_find_type (type_mask, list, start) - && GET_CODE (SET_SRC (pat)) == SUBREG - && REGNO (SUBREG_REG (SET_DEST (slot_pat))) == - REGNO (SUBREG_REG (SET_SRC (pat))) -- && SUBREG_WORD (SET_DEST (slot_pat)) == -- SUBREG_WORD (SET_SRC (pat))))) -+ && SUBREG_BYTE (SET_DEST (slot_pat)) == -+ SUBREG_BYTE (SET_SRC (pat))))) - || (check_fpmode_conflict == 1 - && GET_CODE (slot_insn) == INSN - && GET_CODE (slot_pat) == SET ---- gcc/config/sparc/sparc.h.jj Sun Jul 2 10:37:16 2000 -+++ gcc/config/sparc/sparc.h Mon Jul 31 20:46:24 2000 -@@ -1144,25 +1144,34 @@ while (0) - : (GET_MODE_SIZE (MODE) + 3) / 4) \ - : ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)) - --/* A subreg in 64 bit mode will have the wrong offset for a floating point -- register. The least significant part is at offset 1, compared to 0 for -- integer registers. This only applies when FMODE is a larger mode. -- We also need to handle a special case of TF-->DF conversions. */ --#define ALTER_HARD_SUBREG(TMODE, WORD, FMODE, REGNO) \ -- (TARGET_ARCH64 \ -- && (REGNO) >= SPARC_FIRST_FP_REG \ -- && (REGNO) <= SPARC_LAST_V9_FP_REG \ -- && (TMODE) == SImode \ -- && !((FMODE) == QImode || (FMODE) == HImode) \ -- ? ((REGNO) + 1) \ -- : ((TMODE) == DFmode && (FMODE) == TFmode) \ -- ? ((REGNO) + ((WORD) * 2)) \ -- : ((REGNO) + (WORD))) -+/* Due to the ARCH64 descrepancy above we must override these -+ next two macros too. */ -+#define REG_SIZE(R) \ -+ (TARGET_ARCH64 \ -+ && ((GET_CODE (R) == REG \ -+ && ((REGNO (R) >= FIRST_PSEUDO_REGISTER \ -+ && FLOAT_MODE_P (GET_MODE (R))) \ -+ || (REGNO (R) < FIRST_PSEUDO_REGISTER \ -+ && REGNO (R) >= 32))) \ -+ || (GET_CODE (R) == SUBREG \ -+ && ((REGNO (SUBREG_REG (R)) >= FIRST_PSEUDO_REGISTER \ -+ && FLOAT_MODE_P (GET_MODE (SUBREG_REG (R)))) \ -+ || (REGNO (SUBREG_REG (R)) < FIRST_PSEUDO_REGISTER \ -+ && REGNO (SUBREG_REG (R)) >= 32)))) \ -+ ? (GET_MODE_SIZE (GET_MODE (R)) + 3) / 4 \ -+ : (GET_MODE_SIZE (GET_MODE (R)) + UNITS_PER_WORD - 1) / UNITS_PER_WORD) -+ -+#define REGMODE_NATURAL_SIZE(MODE) \ -+ ((TARGET_ARCH64 && FLOAT_MODE_P (MODE)) ? 4 : UNITS_PER_WORD) - - /* Value is 1 if hard register REGNO can hold a value of machine-mode MODE. - See sparc.c for how we initialize this. */ - extern int *hard_regno_mode_classes; - extern int sparc_mode_class[]; -+ -+/* ??? Because of the funny way we pass parameters we should allow certain -+ ??? types of float/complex values to be in integer registers during -+ ??? RTL generation. This only matters on arch32. */ - #define HARD_REGNO_MODE_OK(REGNO, MODE) \ - ((hard_regno_mode_classes[REGNO] & sparc_mode_class[MODE]) != 0) - ---- gcc/config/sparc/sparc.md.jj Mon Jul 31 20:02:17 2000 -+++ gcc/config/sparc/sparc.md Mon Jul 31 20:46:24 2000 -@@ -4546,15 +4546,17 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_16 = GEN_INT (16); -- int op1_subword = 0; -+ int op1_subbyte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subword = SUBREG_WORD (operand1); -+ op1_subbyte = SUBREG_BYTE (operand1); -+ op1_subbyte /= GET_MODE_SIZE (SImode); -+ op1_subbyte *= GET_MODE_SIZE (SImode); - operand1 = XEXP (operand1, 0); - } - -- emit_insn (gen_ashlsi3 (temp, gen_rtx_SUBREG (SImode, operand1, op1_subword), -+ emit_insn (gen_ashlsi3 (temp, gen_rtx_SUBREG (SImode, operand1, op1_subbyte), - shift_16)); - emit_insn (gen_lshrsi3 (operand0, temp, shift_16)); - DONE; -@@ -4624,15 +4626,17 @@ - { - rtx temp = gen_reg_rtx (DImode); - rtx shift_48 = GEN_INT (48); -- int op1_subword = 0; -+ int op1_subbyte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subword = SUBREG_WORD (operand1); -+ op1_subbyte = SUBREG_BYTE (operand1); -+ op1_subbyte /= GET_MODE_SIZE (DImode); -+ op1_subbyte *= GET_MODE_SIZE (DImode); - operand1 = XEXP (operand1, 0); - } - -- emit_insn (gen_ashldi3 (temp, gen_rtx_SUBREG (DImode, operand1, op1_subword), -+ emit_insn (gen_ashldi3 (temp, gen_rtx_SUBREG (DImode, operand1, op1_subbyte), - shift_48)); - emit_insn (gen_lshrdi3 (operand0, temp, shift_48)); - DONE; -@@ -4794,7 +4798,7 @@ - - (define_insn "*cmp_siqi_trunc" - [(set (reg:CC 100) -- (compare:CC (subreg:QI (match_operand:SI 0 "register_operand" "r") 0) -+ (compare:CC (subreg:QI (match_operand:SI 0 "register_operand" "r") 3) - (const_int 0)))] - "" - "andcc\\t%0, 0xff, %%g0" -@@ -4803,10 +4807,10 @@ - - (define_insn "*cmp_siqi_trunc_set" - [(set (reg:CC 100) -- (compare:CC (subreg:QI (match_operand:SI 1 "register_operand" "r") 0) -+ (compare:CC (subreg:QI (match_operand:SI 1 "register_operand" "r") 3) - (const_int 0))) - (set (match_operand:QI 0 "register_operand" "=r") -- (subreg:QI (match_dup 1) 0))] -+ (subreg:QI (match_dup 1) 3))] - "" - "andcc\\t%1, 0xff, %0" - [(set_attr "type" "compare") -@@ -4814,7 +4818,7 @@ - - (define_insn "*cmp_diqi_trunc" - [(set (reg:CC 100) -- (compare:CC (subreg:QI (match_operand:DI 0 "register_operand" "r") 0) -+ (compare:CC (subreg:QI (match_operand:DI 0 "register_operand" "r") 7) - (const_int 0)))] - "TARGET_ARCH64" - "andcc\\t%0, 0xff, %%g0" -@@ -4823,10 +4827,10 @@ - - (define_insn "*cmp_diqi_trunc_set" - [(set (reg:CC 100) -- (compare:CC (subreg:QI (match_operand:DI 1 "register_operand" "r") 0) -+ (compare:CC (subreg:QI (match_operand:DI 1 "register_operand" "r") 7) - (const_int 0))) - (set (match_operand:QI 0 "register_operand" "=r") -- (subreg:QI (match_dup 1) 0))] -+ (subreg:QI (match_dup 1) 7))] - "TARGET_ARCH64" - "andcc\\t%1, 0xff, %0" - [(set_attr "type" "compare") -@@ -4846,15 +4850,17 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_16 = GEN_INT (16); -- int op1_subword = 0; -+ int op1_subbyte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subword = SUBREG_WORD (operand1); -+ op1_subbyte = SUBREG_BYTE (operand1); -+ op1_subbyte /= GET_MODE_SIZE (SImode); -+ op1_subbyte *= GET_MODE_SIZE (SImode); - operand1 = XEXP (operand1, 0); - } - -- emit_insn (gen_ashlsi3 (temp, gen_rtx_SUBREG (SImode, operand1, op1_subword), -+ emit_insn (gen_ashlsi3 (temp, gen_rtx_SUBREG (SImode, operand1, op1_subbyte), - shift_16)); - emit_insn (gen_ashrsi3 (operand0, temp, shift_16)); - DONE; -@@ -4876,23 +4882,27 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_24 = GEN_INT (24); -- int op1_subword = 0; -- int op0_subword = 0; -+ int op1_subbyte = 0; -+ int op0_subbyte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subword = SUBREG_WORD (operand1); -+ op1_subbyte = SUBREG_BYTE (operand1); -+ op1_subbyte /= GET_MODE_SIZE (SImode); -+ op1_subbyte *= GET_MODE_SIZE (SImode); - operand1 = XEXP (operand1, 0); - } - if (GET_CODE (operand0) == SUBREG) - { -- op0_subword = SUBREG_WORD (operand0); -+ op0_subbyte = SUBREG_BYTE (operand0); -+ op0_subbyte /= GET_MODE_SIZE (SImode); -+ op0_subbyte *= GET_MODE_SIZE (SImode); - operand0 = XEXP (operand0, 0); - } -- emit_insn (gen_ashlsi3 (temp, gen_rtx_SUBREG (SImode, operand1, op1_subword), -+ emit_insn (gen_ashlsi3 (temp, gen_rtx_SUBREG (SImode, operand1, op1_subbyte), - shift_24)); - if (GET_MODE (operand0) != SImode) -- operand0 = gen_rtx_SUBREG (SImode, operand0, op0_subword); -+ operand0 = gen_rtx_SUBREG (SImode, operand0, op0_subbyte); - emit_insn (gen_ashrsi3 (operand0, temp, shift_24)); - DONE; - }") -@@ -4913,15 +4923,17 @@ - { - rtx temp = gen_reg_rtx (SImode); - rtx shift_24 = GEN_INT (24); -- int op1_subword = 0; -+ int op1_subbyte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subword = SUBREG_WORD (operand1); -+ op1_subbyte = SUBREG_BYTE (operand1); -+ op1_subbyte /= GET_MODE_SIZE (SImode); -+ op1_subbyte *= GET_MODE_SIZE (SImode); - operand1 = XEXP (operand1, 0); - } - -- emit_insn (gen_ashlsi3 (temp, gen_rtx_SUBREG (SImode, operand1, op1_subword), -+ emit_insn (gen_ashlsi3 (temp, gen_rtx_SUBREG (SImode, operand1, op1_subbyte), - shift_24)); - emit_insn (gen_ashrsi3 (operand0, temp, shift_24)); - DONE; -@@ -4943,15 +4955,17 @@ - { - rtx temp = gen_reg_rtx (DImode); - rtx shift_56 = GEN_INT (56); -- int op1_subword = 0; -+ int op1_subbyte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subword = SUBREG_WORD (operand1); -+ op1_subbyte = SUBREG_BYTE (operand1); -+ op1_subbyte /= GET_MODE_SIZE (DImode); -+ op1_subbyte *= GET_MODE_SIZE (DImode); - operand1 = XEXP (operand1, 0); - } - -- emit_insn (gen_ashldi3 (temp, gen_rtx_SUBREG (DImode, operand1, op1_subword), -+ emit_insn (gen_ashldi3 (temp, gen_rtx_SUBREG (DImode, operand1, op1_subbyte), - shift_56)); - emit_insn (gen_ashrdi3 (operand0, temp, shift_56)); - DONE; -@@ -4973,15 +4987,17 @@ - { - rtx temp = gen_reg_rtx (DImode); - rtx shift_48 = GEN_INT (48); -- int op1_subword = 0; -+ int op1_subbyte = 0; - - if (GET_CODE (operand1) == SUBREG) - { -- op1_subword = SUBREG_WORD (operand1); -+ op1_subbyte = SUBREG_BYTE (operand1); -+ op1_subbyte /= GET_MODE_SIZE (DImode); -+ op1_subbyte *= GET_MODE_SIZE (DImode); - operand1 = XEXP (operand1, 0); - } - -- emit_insn (gen_ashldi3 (temp, gen_rtx_SUBREG (DImode, operand1, op1_subword), -+ emit_insn (gen_ashldi3 (temp, gen_rtx_SUBREG (DImode, operand1, op1_subbyte), - shift_48)); - emit_insn (gen_ashrdi3 (operand0, temp, shift_48)); - DONE; -@@ -6254,7 +6270,7 @@ - (mult:DI (sign_extend:DI (match_operand:SI 1 "register_operand" "r,r")) - (sign_extend:DI (match_operand:SI 2 "register_operand" "r,r"))) - (match_operand:SI 3 "const_int_operand" "i,i")) -- 1)) -+ 4)) - (clobber (match_scratch:SI 4 "=X,&h"))] - "TARGET_V8PLUS" - "@ -@@ -8323,7 +8339,7 @@ - (define_insn "" - [(set (match_operand:SI 0 "register_operand" "=r") - (ashiftrt:SI (subreg:SI (lshiftrt:DI (match_operand:DI 1 "register_operand" "r") -- (const_int 32)) 0) -+ (const_int 32)) 4) - (match_operand:SI 2 "small_int_or_double" "n")))] - "TARGET_ARCH64 - && ((GET_CODE (operands[2]) == CONST_INT -@@ -8343,7 +8359,7 @@ - (define_insn "" - [(set (match_operand:SI 0 "register_operand" "=r") - (lshiftrt:SI (subreg:SI (ashiftrt:DI (match_operand:DI 1 "register_operand" "r") -- (const_int 32)) 0) -+ (const_int 32)) 4) - (match_operand:SI 2 "small_int_or_double" "n")))] - "TARGET_ARCH64 - && ((GET_CODE (operands[2]) == CONST_INT -@@ -8363,7 +8379,7 @@ - (define_insn "" - [(set (match_operand:SI 0 "register_operand" "=r") - (ashiftrt:SI (subreg:SI (ashiftrt:DI (match_operand:DI 1 "register_operand" "r") -- (match_operand:SI 2 "small_int_or_double" "n")) 0) -+ (match_operand:SI 2 "small_int_or_double" "n")) 4) - (match_operand:SI 3 "small_int_or_double" "n")))] - "TARGET_ARCH64 - && GET_CODE (operands[2]) == CONST_INT && GET_CODE (operands[3]) == CONST_INT -@@ -8382,7 +8398,7 @@ - (define_insn "" - [(set (match_operand:SI 0 "register_operand" "=r") - (lshiftrt:SI (subreg:SI (lshiftrt:DI (match_operand:DI 1 "register_operand" "r") -- (match_operand:SI 2 "small_int_or_double" "n")) 0) -+ (match_operand:SI 2 "small_int_or_double" "n")) 4) - (match_operand:SI 3 "small_int_or_double" "n")))] - "TARGET_ARCH64 - && GET_CODE (operands[2]) == CONST_INT && GET_CODE (operands[3]) == CONST_INT ---- gcc/config/spur/spur.md.jj Tue Sep 7 07:49:08 1999 -+++ gcc/config/spur/spur.md Mon Jul 31 20:46:24 2000 -@@ -291,7 +291,7 @@ - emit_move_insn (tem, gen_rtx_MEM (SImode, addr)); - if (GET_CODE (operands[0]) == SUBREG) - subreg = gen_rtx_SUBREG (SImode, SUBREG_REG (operands[0]), -- SUBREG_WORD (operands[0])); -+ SUBREG_BYTE (operands[0])); - else - subreg = gen_rtx_SUBREG (SImode, operands[0], 0); - -@@ -311,7 +311,7 @@ - { - if (GET_CODE (operands[1]) == SUBREG) - subreg = gen_rtx_SUBREG (SImode, SUBREG_REG (operands[1]), -- SUBREG_WORD (operands[1])); -+ SUBREG_BYTE (operands[1])); - else - subreg = gen_rtx_SUBREG (SImode, operands[1], 0); - } -@@ -444,7 +444,7 @@ - { - if (GET_CODE (operands[1]) == SUBREG) - operands[5] = gen_rtx_SUBREG (SImode, SUBREG_REG (operands[1]), -- SUBREG_WORD (operands[1])); -+ SUBREG_BYTE (operands[1])); - else - operands[5] = gen_rtx_SUBREG (SImode, operands[1], 0); - }") -@@ -700,7 +700,7 @@ - { - if (GET_CODE (operands[1]) == SUBREG) - operands[1] = gen_rtx_SUBREG (SImode, SUBREG_REG (operands[1]), -- SUBREG_WORD (operands[1])); -+ SUBREG_BYTE (operands[1])); - else - operands[1] = gen_rtx_SUBREG (SImode, operands[1], 0); - -@@ -737,7 +737,7 @@ - { - if (GET_CODE (operands[1]) == SUBREG) - operands[1] = gen_rtx_SUBREG (SImode, SUBREG_REG (operands[1]), -- SUBREG_WORD (operands[1])); -+ SUBREG_BYTE (operands[1])); - else - operands[1] = gen_rtx_SUBREG (SImode, operands[1], 0); - -@@ -760,7 +760,7 @@ - { - if (GET_CODE (operands[1]) == SUBREG) - operands[1] = gen_rtx_SUBREG (HImode, SUBREG_REG (operands[1]), -- SUBREG_WORD (operands[1])); -+ SUBREG_BYTE (operands[1])); - else - operands[1] = gen_rtx_SUBREG (HImode, operands[1], 0); - -@@ -780,7 +780,7 @@ - { - if (GET_CODE (operands[1]) == SUBREG) - operands[1] = gen_rtx_SUBREG (SImode, SUBREG_REG (operands[1]), -- SUBREG_WORD (operands[1])); -+ SUBREG_BYTE (operands[1])); - else - operands[1] = gen_rtx_SUBREG (SImode, operands[1], 0); - ---- gcc/config/v850/v850.c.jj Mon Mar 13 18:02:25 2000 -+++ gcc/config/v850/v850.c Mon Jul 31 20:46:24 2000 -@@ -533,7 +533,7 @@ print_operand (file, x, code) - fputs (reg_names[REGNO (x)], file); - break; - case SUBREG: -- fputs (reg_names[REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)], file); -+ fputs (reg_names[SUBREG_REGNO (x)], file); - break; - case CONST_INT: - case SYMBOL_REF: -@@ -815,7 +815,7 @@ output_move_double (operands) - if (GET_CODE (inside) == REG) - ptrreg = REGNO (inside); - else if (GET_CODE (inside) == SUBREG) -- ptrreg = REGNO (SUBREG_REG (inside)) + SUBREG_WORD (inside); -+ ptrreg = SUBREG_REGNO (inside); - else if (GET_CODE (inside) == PLUS) - ptrreg = REGNO (XEXP (inside, 0)); - else if (GET_CODE (inside) == LO_SUM) ---- gcc/config/d30v/d30v.c.jj Thu Jun 1 11:56:46 2000 -+++ gcc/config/d30v/d30v.c Mon Jul 31 20:46:24 2000 -@@ -2672,10 +2672,13 @@ d30v_split_double (value, p_high, p_low) - switch (GET_CODE (value)) - { - case SUBREG: -- offset = SUBREG_WORD (value); -- value = SUBREG_REG (value); -- if (GET_CODE (value) != REG) -+ if (GET_CODE (SUBREG_REG (value)) != REG) - abort (); -+ offset = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (value)), -+ GET_MODE (SUBREG_REG (value)), -+ SUBREG_BYTE (value), -+ GET_MODE (value)); -+ value = SUBREG_REG (value); - - /* fall through */ - -@@ -2800,7 +2803,10 @@ d30v_print_operand_memory_reference (str - - if (GET_CODE (x0) == SUBREG) - { -- offset0 = SUBREG_WORD (x0); -+ offset0 = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (x0)), -+ GET_MODE (SUBREG_REG (x0)), -+ SUBREG_BYTE (x0), -+ GET_MODE (x0)); - x0 = SUBREG_REG (x0); - } - -@@ -2833,7 +2839,10 @@ d30v_print_operand_memory_reference (str - switch (GET_CODE (x1)) - { - case SUBREG: -- offset1 = SUBREG_WORD (x1); -+ offset1 = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (x1)), -+ GET_MODE (SUBREG_REG (x1)), -+ SUBREG_BYTE (x1), -+ GET_MODE (x1)); - x1 = SUBREG_REG (x1); - if (GET_CODE (x1) != REG) - fatal_insn ("Bad insn to d30v_print_operand_memory_reference:", x); ---- gcc/java/javaop.h.jj Thu May 4 17:05:18 2000 -+++ gcc/java/javaop.h Mon Jul 31 20:46:24 2000 -@@ -33,7 +33,7 @@ typedef unsigned char uint8; - typedef unsigned int16 uint16; - - #ifndef int32 --#define int32 long -+#define int32 int - #endif - typedef unsigned int32 uint32; - -@@ -62,7 +62,7 @@ typedef void* jref; - #define jfloat float - #endif - --/* A 32-bit IEEE double-precision float. */ -+/* A 64-bit IEEE double-precision float. */ - #ifndef jdouble - #define jdouble double - #endif ---- gcc/cse.c.jj Mon Jul 31 20:02:09 2000 -+++ gcc/cse.c Mon Jul 31 20:46:24 2000 -@@ -1148,11 +1148,11 @@ mention_regs (x) - /* If reg_tick has been incremented more than once since - reg_in_table was last set, that means that the entire - register has been set before, so discard anything memorized -- for the entrire register, including all SUBREG expressions. */ -+ for the entire register, including all SUBREG expressions. */ - if (REG_IN_TABLE (i) != REG_TICK (i) - 1) - remove_invalid_refs (i); - else -- remove_invalid_subreg_refs (i, SUBREG_WORD (x), GET_MODE (x)); -+ remove_invalid_subreg_refs (i, SUBREG_BYTE (x), GET_MODE (x)); - } - - REG_IN_TABLE (i) = REG_TICK (i); -@@ -1927,33 +1927,31 @@ remove_invalid_refs (regno) - } - } - --/* Likewise for a subreg with subreg_reg WORD and mode MODE. */ -+/* Likewise for a subreg with subreg_reg REGNO and subreg_byte OFFSET. */ - static void --remove_invalid_subreg_refs (regno, word, mode) -+remove_invalid_subreg_refs (regno, offset, mode) - unsigned int regno; -- unsigned int word; -+ unsigned int offset; - enum machine_mode mode; - { - unsigned int i; - struct table_elt *p, *next; -- unsigned int end = word + (GET_MODE_SIZE (mode) - 1) / UNITS_PER_WORD; -+ unsigned int end = offset + (GET_MODE_SIZE (mode) - 1); - - for (i = 0; i < HASH_SIZE; i++) - for (p = table[i]; p; p = next) - { -- rtx exp; -+ rtx exp = p->exp; - next = p->next_same_hash; - -- exp = p->exp; -- if (GET_CODE (p->exp) != REG -+ if (GET_CODE (exp) != REG - && (GET_CODE (exp) != SUBREG - || GET_CODE (SUBREG_REG (exp)) != REG - || REGNO (SUBREG_REG (exp)) != regno -- || (((SUBREG_WORD (exp) -- + (GET_MODE_SIZE (GET_MODE (exp)) - 1) / UNITS_PER_WORD) -- >= word) -- && SUBREG_WORD (exp) <= end)) -- && refers_to_regno_p (regno, regno + 1, p->exp, NULL_PTR)) -+ || (((SUBREG_BYTE (exp) -+ + (GET_MODE_SIZE (GET_MODE (exp)) - 1)) >= offset) -+ && SUBREG_BYTE (exp) <= end)) -+ && refers_to_regno_p (regno, regno + 1, exp, NULL_PTR)) - remove_from_table (p, i); - } - } -@@ -2210,7 +2208,8 @@ canon_hash (x, mode) - if (GET_CODE (SUBREG_REG (x)) == REG) - { - hash += (((unsigned) SUBREG << 7) -- + REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)); -+ + REGNO (SUBREG_REG (x)) -+ + (SUBREG_BYTE (x) / UNITS_PER_WORD)); - return hash; - } - break; -@@ -3231,7 +3230,8 @@ fold_rtx (x, insn) - if (GET_MODE_CLASS (mode) == MODE_INT - && GET_MODE_SIZE (mode) == UNITS_PER_WORD - && GET_MODE (SUBREG_REG (x)) != VOIDmode) -- new = operand_subword (folded_arg0, SUBREG_WORD (x), 0, -+ new = operand_subword (folded_arg0, -+ (SUBREG_BYTE (x) / UNITS_PER_WORD), 0, - GET_MODE (SUBREG_REG (x))); - if (new == 0 && subreg_lowpart_p (x)) - new = gen_lowpart_if_possible (mode, folded_arg0); -@@ -4171,10 +4171,12 @@ gen_lowpart_if_possible (mode, x) - offset = (MAX (GET_MODE_SIZE (GET_MODE (x)), UNITS_PER_WORD) - - MAX (GET_MODE_SIZE (mode), UNITS_PER_WORD)); - if (BYTES_BIG_ENDIAN) -- /* Adjust the address so that the address-after-the-data is -- unchanged. */ -- offset -= (MIN (UNITS_PER_WORD, GET_MODE_SIZE (mode)) -- - MIN (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (x)))); -+ { -+ /* Adjust the address so that the address-after-the-data is -+ unchanged. */ -+ offset -= (MIN (UNITS_PER_WORD, GET_MODE_SIZE (mode)) -+ - MIN (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (x)))); -+ } - new = gen_rtx_MEM (mode, plus_constant (XEXP (x, 0), offset)); - if (! memory_address_p (mode, XEXP (new, 0))) - return 0; -@@ -5293,7 +5295,7 @@ cse_insn (insn, libcall_insn) - if (libcall_insn - && (GET_CODE (sets[i].orig_src) == REG - || GET_CODE (sets[i].orig_src) == SUBREG -- || GET_CODE (sets[i].orig_src) == MEM)) -+ || GET_CODE (sets[i].orig_src) == MEM)) - replace_rtx (REG_NOTES (libcall_insn), sets[i].orig_src, - canon_reg (SET_SRC (sets[i].rtl), insn)); - ---- gcc/rtl.h.jj Mon Jul 31 20:02:12 2000 -+++ gcc/rtl.h Mon Jul 31 20:46:24 2000 -@@ -727,10 +727,39 @@ extern const char * const note_insn_name - #define INTVAL(RTX) XCWINT(RTX, 0, CONST_INT) - - /* For a SUBREG rtx, SUBREG_REG extracts the value we want a subreg of. -- SUBREG_WORD extracts the word-number. */ -+ SUBREG_BYTE extracts the byte-number. */ - - #define SUBREG_REG(RTX) XCEXP(RTX, 0, SUBREG) --#define SUBREG_WORD(RTX) XCUINT(RTX, 1, SUBREG) -+#define SUBREG_BYTE(RTX) XCUINT(RTX, 1, SUBREG) -+#define SUBREG_WORD(RTX) ((RTX)->fld[1].subreg_word_no_longer_exists_dummy) -+ -+/* Given XREGNO, a REGNO of an inner hard SUBREG_REG (or what will become -+ one), XMODE the mode of that reg, OFFSET the byte offset, and YMODE -+ the mode of a top level SUBREG (or what may become one) return regno -+ offset which would be used. */ -+#define SUBREG_REGNO_OFFSET(XREGNO,XMODE,OFFSET,YMODE) \ -+ (XREGNO >= FIRST_PSEUDO_REGISTER ? \ -+ (abort (), 0) : \ -+ (((OFFSET) == 0 \ -+ || (HARD_REGNO_NREGS (XREGNO, XMODE) == \ -+ HARD_REGNO_NREGS (XREGNO, YMODE))) ? \ -+ 0 : \ -+ ((GET_MODE_SIZE (YMODE) > GET_MODE_SIZE (XMODE)) ? \ -+ (abort (), 0) : \ -+ (((OFFSET / GET_MODE_SIZE (YMODE)) / \ -+ ((GET_MODE_SIZE (XMODE) / GET_MODE_SIZE (YMODE)) / \ -+ (HARD_REGNO_NREGS (XREGNO, XMODE) / \ -+ HARD_REGNO_NREGS (XREGNO, YMODE)))) * \ -+ HARD_REGNO_NREGS (XREGNO, YMODE))))) -+ -+/* Given X, a SUBREG, with an inner SUBREG_REG which is -+ a hard REG, give the final regno it refers to. */ -+#define SUBREG_REGNO(X) \ -+ (REGNO (SUBREG_REG (X)) \ -+ + (SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (X)), \ -+ GET_MODE (SUBREG_REG (X)), \ -+ SUBREG_BYTE (X), \ -+ GET_MODE (X)))) - - /* 1 if the REG contained in SUBREG_REG is already known to be - sign- or zero-extended from the mode of the SUBREG to the mode of -@@ -1114,6 +1143,7 @@ extern int rtx_equal_p - extern rtvec gen_rtvec_v PARAMS ((int, rtx *)); - extern rtx gen_reg_rtx PARAMS ((enum machine_mode)); - extern rtx gen_label_rtx PARAMS ((void)); -+extern int subreg_hard_regno PARAMS ((rtx, int)); - extern rtx gen_lowpart_common PARAMS ((enum machine_mode, rtx)); - extern rtx gen_lowpart PARAMS ((enum machine_mode, rtx)); - -@@ -1126,6 +1156,8 @@ extern rtx gen_realpart PARAMS ((enum - extern rtx gen_imagpart PARAMS ((enum machine_mode, rtx)); - extern rtx operand_subword PARAMS ((rtx, unsigned int, int, - enum machine_mode)); -+extern rtx constant_subword PARAMS ((rtx, int, -+ enum machine_mode)); - - /* In emit-rtl.c */ - extern rtx operand_subword_force PARAMS ((rtx, unsigned int, -@@ -1468,7 +1500,10 @@ extern rtx gen_rtx_CONST_DOUBLE PARAMS ( - HOST_WIDE_INT, HOST_WIDE_INT)); - extern rtx gen_rtx_CONST_INT PARAMS ((enum machine_mode, HOST_WIDE_INT)); - extern rtx gen_rtx_REG PARAMS ((enum machine_mode, int)); -+extern rtx gen_rtx_SUBREG PARAMS ((enum machine_mode, rtx, int)); - extern rtx gen_rtx_MEM PARAMS ((enum machine_mode, rtx)); -+ -+extern rtx gen_lowpart_SUBREG PARAMS ((enum machine_mode, rtx)); - - /* We need the cast here to ensure that we get the same result both with - and without prototypes. */ ---- gcc/dbxout.c.jj Mon Jul 24 11:04:17 2000 -+++ gcc/dbxout.c Mon Jul 31 20:46:24 2000 -@@ -2017,20 +2017,15 @@ dbxout_symbol_location (decl, type, suff - else if (GET_CODE (home) == SUBREG) - { - rtx value = home; -- int offset = 0; -+ - while (GET_CODE (value) == SUBREG) -- { -- offset += SUBREG_WORD (value); -- value = SUBREG_REG (value); -- } -+ value = SUBREG_REG (value); - if (GET_CODE (value) == REG) - { -- regno = REGNO (value); -- if (regno >= FIRST_PSEUDO_REGISTER) -+ if (REGNO (value) >= FIRST_PSEUDO_REGISTER) - return 0; -- regno += offset; - } -- alter_subreg (home); -+ regno = REGNO (alter_subreg (home)); - } - - /* The kind-of-variable letter depends on where ---- gcc/combine.c.jj Mon Jul 31 20:02:09 2000 -+++ gcc/combine.c Mon Jul 31 20:46:24 2000 -@@ -2224,7 +2224,7 @@ try_combine (i3, i2, i1, new_direct_jump - be written as a ZERO_EXTEND. */ - if (split_code == SUBREG && GET_CODE (SUBREG_REG (*split)) == MEM) - SUBST (*split, gen_rtx_combine (ZERO_EXTEND, split_mode, -- XEXP (*split, 0))); -+ SUBREG_REG (*split))); - #endif - - newi2pat = gen_rtx_combine (SET, VOIDmode, newdest, *split); -@@ -3743,27 +3743,17 @@ combine_simplify_rtx (x, op0_mode, last, - <= GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))))) - { - rtx inner = SUBREG_REG (x); -- int endian_offset = 0; -+ int offset = SUBREG_BYTE (x); - /* Don't change the mode of the MEM - if that would change the meaning of the address. */ - if (MEM_VOLATILE_P (SUBREG_REG (x)) - || mode_dependent_address_p (XEXP (inner, 0))) - return gen_rtx_CLOBBER (mode, const0_rtx); - -- if (BYTES_BIG_ENDIAN) -- { -- if (GET_MODE_SIZE (mode) < UNITS_PER_WORD) -- endian_offset += UNITS_PER_WORD - GET_MODE_SIZE (mode); -- if (GET_MODE_SIZE (GET_MODE (inner)) < UNITS_PER_WORD) -- endian_offset -= (UNITS_PER_WORD -- - GET_MODE_SIZE (GET_MODE (inner))); -- } - /* Note if the plus_constant doesn't make a valid address - then this combination won't be accepted. */ - x = gen_rtx_MEM (mode, -- plus_constant (XEXP (inner, 0), -- (SUBREG_WORD (x) * UNITS_PER_WORD -- + endian_offset))); -+ plus_constant (XEXP (inner, 0), offset)); - MEM_COPY_ATTRIBUTES (x, inner); - return x; - } -@@ -3776,12 +3766,58 @@ combine_simplify_rtx (x, op0_mode, last, - or not at all if changing back to starting mode. */ - if (GET_CODE (SUBREG_REG (x)) == SUBREG) - { -- if (mode == GET_MODE (SUBREG_REG (SUBREG_REG (x))) -- && SUBREG_WORD (x) == 0 && SUBREG_WORD (SUBREG_REG (x)) == 0) -- return SUBREG_REG (SUBREG_REG (x)); -+ int final_offset; -+ enum machine_mode outer_mode, inner_mode; - -- SUBST_INT (SUBREG_WORD (x), -- SUBREG_WORD (x) + SUBREG_WORD (SUBREG_REG (x))); -+ /* If the innermost mode is the same as the goal mode, -+ and the low word is being referenced in both SUBREGs, -+ return the innermost element. */ -+ if (mode == GET_MODE (SUBREG_REG (SUBREG_REG (x)))) -+ { -+ int inner_word = SUBREG_BYTE (SUBREG_REG (x)); -+ int outer_word = SUBREG_BYTE (x); -+ -+ inner_word = (inner_word / UNITS_PER_WORD) * UNITS_PER_WORD; -+ outer_word = (outer_word / UNITS_PER_WORD) * UNITS_PER_WORD; -+ if (inner_word == 0 -+ && outer_word == 0) -+ return SUBREG_REG (SUBREG_REG (x)); -+ } -+ -+ outer_mode = GET_MODE (SUBREG_REG (x)); -+ inner_mode = GET_MODE (SUBREG_REG (SUBREG_REG (x))); -+ final_offset = SUBREG_BYTE (x) + SUBREG_BYTE (SUBREG_REG(x)); -+ -+ if ((WORDS_BIG_ENDIAN || BYTES_BIG_ENDIAN) -+ && GET_MODE_SIZE (outer_mode) > GET_MODE_SIZE (mode) -+ && GET_MODE_SIZE (outer_mode) > GET_MODE_SIZE (inner_mode)) -+ { -+ /* Inner SUBREG is paradoxical, outer is not. On big endian -+ we have to special case this. */ -+ if (SUBREG_BYTE (SUBREG_REG (x))) -+ abort(); /* Can a paradoxical subreg have nonzero offset? */ -+ if (WORDS_BIG_ENDIAN && BYTES_BIG_ENDIAN) -+ final_offset = SUBREG_BYTE (x) - GET_MODE_SIZE (outer_mode) -+ + GET_MODE_SIZE (inner_mode); -+ else if (WORDS_BIG_ENDIAN) -+ final_offset = (final_offset % UNITS_PER_WORD) -+ + ((SUBREG_BYTE (x) - GET_MODE_SIZE (outer_mode) -+ + GET_MODE_SIZE (inner_mode)) -+ * UNITS_PER_WORD) / UNITS_PER_WORD; -+ else -+ final_offset = ((final_offset * UNITS_PER_WORD) -+ / UNITS_PER_WORD) -+ + ((SUBREG_BYTE (x) - GET_MODE_SIZE (outer_mode) -+ + GET_MODE_SIZE (inner_mode)) -+ % UNITS_PER_WORD); -+ } -+ -+ /* The SUBREG rules are that the byte offset must be -+ some multiple of the toplevel SUBREG's mode. */ -+ final_offset = (final_offset / GET_MODE_SIZE (mode)); -+ final_offset = (final_offset * GET_MODE_SIZE (mode)); -+ -+ SUBST_INT (SUBREG_BYTE (x), final_offset); - SUBST (SUBREG_REG (x), SUBREG_REG (SUBREG_REG (x))); - } - -@@ -3801,10 +3837,10 @@ combine_simplify_rtx (x, op0_mode, last, - #endif - && REGNO (SUBREG_REG (x)) != STACK_POINTER_REGNUM) - { -- if (HARD_REGNO_MODE_OK (REGNO (SUBREG_REG (x)) + SUBREG_WORD (x), -- mode)) -- return gen_rtx_REG (mode, -- REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)); -+ int final_regno = subreg_hard_regno (x, 0); -+ -+ if (HARD_REGNO_MODE_OK (final_regno, mode)) -+ return gen_rtx_REG (mode, final_regno); - else - return gen_rtx_CLOBBER (mode, const0_rtx); - } -@@ -3819,7 +3855,8 @@ combine_simplify_rtx (x, op0_mode, last, - && GET_MODE_SIZE (op0_mode) > UNITS_PER_WORD - && GET_MODE_CLASS (mode) == MODE_INT) - { -- temp = operand_subword (SUBREG_REG (x), SUBREG_WORD (x), -+ temp = operand_subword (SUBREG_REG (x), -+ (SUBREG_BYTE (x) / UNITS_PER_WORD), - 0, op0_mode); - if (temp) - return temp; -@@ -3833,11 +3870,9 @@ combine_simplify_rtx (x, op0_mode, last, - if (CONSTANT_P (SUBREG_REG (x)) - && ((GET_MODE_SIZE (op0_mode) <= UNITS_PER_WORD - || ! WORDS_BIG_ENDIAN) -- ? SUBREG_WORD (x) == 0 -- : (SUBREG_WORD (x) -- == ((GET_MODE_SIZE (op0_mode) -- - MAX (GET_MODE_SIZE (mode), UNITS_PER_WORD)) -- / UNITS_PER_WORD))) -+ ? SUBREG_BYTE (x) == 0 -+ : (SUBREG_BYTE (x) -+ == (GET_MODE_SIZE (op0_mode) - GET_MODE_SIZE (mode)))) - && GET_MODE_SIZE (mode) <= GET_MODE_SIZE (op0_mode) - && (! WORDS_BIG_ENDIAN - || GET_MODE_BITSIZE (op0_mode) <= BITS_PER_WORD)) -@@ -3849,8 +3884,9 @@ combine_simplify_rtx (x, op0_mode, last, - && GET_MODE_SIZE (mode) > GET_MODE_SIZE (op0_mode)) - { - if (GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) > UNITS_PER_WORD -- && (WORDS_BIG_ENDIAN || SUBREG_WORD (x) != 0)) -- return operand_subword (SUBREG_REG (x), SUBREG_WORD (x), 0, mode); -+ && (WORDS_BIG_ENDIAN || SUBREG_BYTE (x) != 0)) -+ return constant_subword (SUBREG_REG (x), -+ SUBREG_BYTE (x) / UNITS_PER_WORD, mode); - return SUBREG_REG (x); - } - -@@ -5068,14 +5104,14 @@ simplify_set (x) - - if (GET_CODE (src) == SUBREG && subreg_lowpart_p (src) - && LOAD_EXTEND_OP (GET_MODE (SUBREG_REG (src))) != NIL -- && SUBREG_WORD (src) == 0 -+ && SUBREG_BYTE (src) == 0 - && (GET_MODE_SIZE (GET_MODE (src)) - > GET_MODE_SIZE (GET_MODE (SUBREG_REG (src)))) - && GET_CODE (SUBREG_REG (src)) == MEM) - { - SUBST (SET_SRC (x), - gen_rtx_combine (LOAD_EXTEND_OP (GET_MODE (SUBREG_REG (src))), -- GET_MODE (src), XEXP (src, 0))); -+ GET_MODE (src), SUBREG_REG (src))); - - src = SET_SRC (x); - } -@@ -5722,9 +5758,11 @@ expand_field_assignment (x) - if (GET_CODE (SET_DEST (x)) == STRICT_LOW_PART - && GET_CODE (XEXP (SET_DEST (x), 0)) == SUBREG) - { -+ int byte_offset = SUBREG_BYTE (XEXP (SET_DEST (x), 0)); -+ - inner = SUBREG_REG (XEXP (SET_DEST (x), 0)); - len = GET_MODE_BITSIZE (GET_MODE (XEXP (SET_DEST (x), 0))); -- pos = GEN_INT (BITS_PER_WORD * SUBREG_WORD (XEXP (SET_DEST (x), 0))); -+ pos = GEN_INT (BITS_PER_WORD * (byte_offset / UNITS_PER_WORD)); - } - else if (GET_CODE (SET_DEST (x)) == ZERO_EXTRACT - && GET_CODE (XEXP (SET_DEST (x), 1)) == CONST_INT) -@@ -5962,18 +6000,26 @@ make_extraction (mode, inner, pos, pos_r - /* We can't call gen_lowpart_for_combine here since we always want - a SUBREG and it would sometimes return a new hard register. */ - if (tmode != inner_mode) -- new = gen_rtx_SUBREG (tmode, inner, -- (WORDS_BIG_ENDIAN -- && (GET_MODE_SIZE (inner_mode) -- > UNITS_PER_WORD) -- ? (((GET_MODE_SIZE (inner_mode) -- - GET_MODE_SIZE (tmode)) -- / UNITS_PER_WORD) -- - pos / BITS_PER_WORD) -- : pos / BITS_PER_WORD)); -- else -- new = inner; -- } -+ { -+ int final_word = pos / BITS_PER_WORD; -+ -+ if (WORDS_BIG_ENDIAN -+ && GET_MODE_SIZE (inner_mode) > UNITS_PER_WORD) -+ final_word = ((GET_MODE_SIZE (inner_mode) -+ - GET_MODE_SIZE (tmode)) -+ / UNITS_PER_WORD) - final_word; -+ -+ final_word *= UNITS_PER_WORD; -+ if (BYTES_BIG_ENDIAN && -+ GET_MODE_SIZE (inner_mode) > GET_MODE_SIZE (tmode)) -+ final_word += (GET_MODE_SIZE (inner_mode) -+ - GET_MODE_SIZE (tmode)) % UNITS_PER_WORD; -+ -+ new = gen_rtx_SUBREG (tmode, inner, final_word); -+ } -+ else -+ new = inner; -+ } - else - new = force_to_mode (inner, tmode, - len >= HOST_BITS_PER_WIDE_INT -@@ -7355,10 +7401,12 @@ if_then_else_cond (x, ptrue, pfalse) - || GET_CODE (SUBREG_REG (x)) == MEM - || CONSTANT_P (SUBREG_REG (x))) - && GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) > UNITS_PER_WORD -- && (WORDS_BIG_ENDIAN || SUBREG_WORD (x) != 0)) -+ && (WORDS_BIG_ENDIAN || SUBREG_BYTE (x) != 0)) - { -- true0 = operand_subword (true0, SUBREG_WORD (x), 0, mode); -- false0 = operand_subword (false0, SUBREG_WORD (x), 0, mode); -+ true0 = operand_subword (true0, SUBREG_BYTE (x) / UNITS_PER_WORD, -+ 0, mode); -+ false0 = operand_subword (false0, SUBREG_BYTE (x) / UNITS_PER_WORD, -+ 0, mode); - } - *ptrue = force_to_mode (true0, mode, ~(HOST_WIDE_INT) 0, NULL_RTX, 0); - *pfalse -@@ -7714,7 +7762,7 @@ apply_distributive_law (x) - - case SUBREG: - /* Non-paradoxical SUBREGs distributes over all operations, provided -- the inner modes and word numbers are the same, this is an extraction -+ the inner modes and byte offsets are the same, this is an extraction - of a low-order part, we don't convert an fp operation to int or - vice versa, and we would not be converting a single-word - operation into a multi-word operation. The latter test is not -@@ -7725,7 +7773,7 @@ apply_distributive_law (x) - We produce the result slightly differently in this case. */ - - if (GET_MODE (SUBREG_REG (lhs)) != GET_MODE (SUBREG_REG (rhs)) -- || SUBREG_WORD (lhs) != SUBREG_WORD (rhs) -+ || SUBREG_BYTE (lhs) != SUBREG_BYTE (rhs) - || ! subreg_lowpart_p (lhs) - || (GET_MODE_CLASS (GET_MODE (lhs)) - != GET_MODE_CLASS (GET_MODE (SUBREG_REG (lhs)))) -@@ -9743,13 +9791,19 @@ gen_lowpart_for_combine (mode, x) - include an explicit SUBREG or we may simplify it further in combine. */ - else - { -- int word = 0; -+ int offset = 0; - -- if (WORDS_BIG_ENDIAN && GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD) -- word = ((GET_MODE_SIZE (GET_MODE (x)) -- - MAX (GET_MODE_SIZE (mode), UNITS_PER_WORD)) -- / UNITS_PER_WORD); -- return gen_rtx_SUBREG (mode, x, word); -+ if ((WORDS_BIG_ENDIAN || BYTES_BIG_ENDIAN) -+ && GET_MODE_SIZE (GET_MODE (x)) > GET_MODE_SIZE (mode)) -+ { -+ int difference = (GET_MODE_SIZE (GET_MODE (x)) -+ - GET_MODE_SIZE (mode)); -+ if (WORDS_BIG_ENDIAN) -+ offset += (difference / UNITS_PER_WORD) * UNITS_PER_WORD; -+ if (BYTES_BIG_ENDIAN) -+ offset += difference % UNITS_PER_WORD; -+ } -+ return gen_rtx_SUBREG (mode, x, offset); - } - } - -@@ -11890,6 +11944,7 @@ move_deaths (x, maybe_kill_insn, from_cu - that accesses one word of a multi-word item, some - piece of everything register in the expression is used by - this insn, so remove any old death. */ -+ /* ??? So why do we test for equality of the sizes? */ - - if (GET_CODE (dest) == ZERO_EXTRACT - || GET_CODE (dest) == STRICT_LOW_PART ---- gcc/expmed.c.jj Fri Jul 7 21:39:56 2000 -+++ gcc/expmed.c Mon Jul 31 20:46:24 2000 -@@ -261,7 +261,7 @@ store_bit_field (str_rtx, bitsize, bitnu - meaningful at a much higher level; when structures are copied - between memory and regs, the higher-numbered regs - always get higher addresses. */ -- offset += SUBREG_WORD (op0); -+ offset += (SUBREG_BYTE (op0) / UNITS_PER_WORD); - /* We used to adjust BITPOS here, but now we do the whole adjustment - right after the loop. */ - op0 = SUBREG_REG (op0); -@@ -323,7 +323,8 @@ store_bit_field (str_rtx, bitsize, bitnu - abort (); - } - if (GET_CODE (op0) == REG) -- op0 = gen_rtx_SUBREG (fieldmode, op0, offset); -+ op0 = gen_rtx_SUBREG (fieldmode, op0, -+ (offset * UNITS_PER_WORD)); - else - op0 = change_address (op0, fieldmode, - plus_constant (XEXP (op0, 0), offset)); -@@ -368,7 +369,8 @@ store_bit_field (str_rtx, bitsize, bitnu - } - - emit_insn (GEN_FCN (icode) -- (gen_rtx_SUBREG (fieldmode, op0, offset), value)); -+ (gen_rtx_SUBREG (fieldmode, op0, (offset * UNITS_PER_WORD)), -+ value)); - - return value; - } -@@ -442,7 +444,7 @@ store_bit_field (str_rtx, bitsize, bitnu - abort (); - } - op0 = gen_rtx_SUBREG (mode_for_size (BITS_PER_WORD, MODE_INT, 0), -- op0, offset); -+ op0, (offset * UNITS_PER_WORD)); - } - offset = 0; - } -@@ -545,7 +547,7 @@ store_bit_field (str_rtx, bitsize, bitnu - if (GET_CODE (xop0) == SUBREG) - /* We can't just change the mode, because this might clobber op0, - and we will need the original value of op0 if insv fails. */ -- xop0 = gen_rtx_SUBREG (maxmode, SUBREG_REG (xop0), SUBREG_WORD (xop0)); -+ xop0 = gen_rtx_SUBREG (maxmode, SUBREG_REG (xop0), SUBREG_BYTE (xop0)); - if (GET_CODE (xop0) == REG && GET_MODE (xop0) != maxmode) - xop0 = gen_rtx_SUBREG (maxmode, xop0, 0); - -@@ -905,8 +907,8 @@ store_split_bit_field (op0, bitsize, bit - the current word starting from the base register. */ - if (GET_CODE (op0) == SUBREG) - { -- word = operand_subword_force (SUBREG_REG (op0), -- SUBREG_WORD (op0) + offset, -+ int word_offset = (SUBREG_BYTE (op0) / UNITS_PER_WORD) + offset; -+ word = operand_subword_force (SUBREG_REG (op0), word_offset, - GET_MODE (SUBREG_REG (op0))); - offset = 0; - } -@@ -1003,7 +1005,7 @@ extract_bit_field (str_rtx, bitsize, bit - int outer_size = GET_MODE_BITSIZE (GET_MODE (op0)); - int inner_size = GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (op0))); - -- offset += SUBREG_WORD (op0); -+ offset += SUBREG_BYTE (op0) / UNITS_PER_WORD; - - inner_size = MIN (inner_size, BITS_PER_WORD); - -@@ -1090,7 +1092,7 @@ extract_bit_field (str_rtx, bitsize, bit - abort (); - } - if (GET_CODE (op0) == REG) -- op0 = gen_rtx_SUBREG (mode1, op0, offset); -+ op0 = gen_rtx_SUBREG (mode1, op0, (offset * UNITS_PER_WORD)); - else - op0 = change_address (op0, mode1, - plus_constant (XEXP (op0, 0), offset)); -@@ -1199,7 +1201,7 @@ extract_bit_field (str_rtx, bitsize, bit - if (GET_CODE (op0) != REG) - op0 = copy_to_reg (op0); - op0 = gen_rtx_SUBREG (mode_for_size (BITS_PER_WORD, MODE_INT, 0), -- op0, offset); -+ op0, (offset * UNITS_PER_WORD)); - } - offset = 0; - } -@@ -1794,8 +1796,8 @@ extract_split_bit_field (op0, bitsize, b - the current word starting from the base register. */ - if (GET_CODE (op0) == SUBREG) - { -- word = operand_subword_force (SUBREG_REG (op0), -- SUBREG_WORD (op0) + offset, -+ int word_offset = (SUBREG_BYTE (op0) / UNITS_PER_WORD) + offset; -+ word = operand_subword_force (SUBREG_REG (op0), word_offset, - GET_MODE (SUBREG_REG (op0))); - offset = 0; - } -@@ -1914,7 +1916,7 @@ expand_shift (code, mode, shifted, amoun - op1 = GEN_INT ((unsigned HOST_WIDE_INT) INTVAL (op1) - % GET_MODE_BITSIZE (mode)); - else if (GET_CODE (op1) == SUBREG -- && SUBREG_WORD (op1) == 0) -+ && SUBREG_BYTE (op1) == 0) - op1 = SUBREG_REG (op1); - } - #endif ---- gcc/caller-save.c.jj Thu Jun 1 11:56:21 2000 -+++ gcc/caller-save.c Mon Jul 31 20:46:24 2000 -@@ -445,18 +445,21 @@ mark_set_regs (reg, setter, data) - { - register int regno, endregno, i; - enum machine_mode mode = GET_MODE (reg); -- int word = 0; - - if (GET_CODE (reg) == SUBREG) - { -- word = SUBREG_WORD (reg); -- reg = SUBREG_REG (reg); -- } -+ rtx inner = SUBREG_REG (reg); -+ if (GET_CODE (inner) != REG || REGNO (inner) >= FIRST_PSEUDO_REGISTER) -+ return; - -- if (GET_CODE (reg) != REG || REGNO (reg) >= FIRST_PSEUDO_REGISTER) -+ regno = subreg_hard_regno (reg, 1); -+ } -+ else if (GET_CODE (reg) == REG -+ && REGNO (reg) < FIRST_PSEUDO_REGISTER) -+ regno = REGNO (reg); -+ else - return; - -- regno = REGNO (reg) + word; - endregno = regno + HARD_REGNO_NREGS (regno, mode); - - for (i = regno; i < endregno; i++) -@@ -475,21 +478,24 @@ add_stored_regs (reg, setter, data) - { - register int regno, endregno, i; - enum machine_mode mode = GET_MODE (reg); -- int word = 0; -+ int offset = 0; - - if (GET_CODE (setter) == CLOBBER) - return; - -- while (GET_CODE (reg) == SUBREG) -+ if (GET_CODE (reg) == SUBREG && GET_CODE (SUBREG_REG (reg)) == REG) - { -- word += SUBREG_WORD (reg); -+ offset = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (reg)), -+ GET_MODE (SUBREG_REG (reg)), -+ SUBREG_BYTE (reg), -+ GET_MODE (reg)); - reg = SUBREG_REG (reg); - } - - if (GET_CODE (reg) != REG || REGNO (reg) >= FIRST_PSEUDO_REGISTER) - return; - -- regno = REGNO (reg) + word; -+ regno = REGNO (reg) + offset; - endregno = regno + HARD_REGNO_NREGS (regno, mode); - - for (i = regno; i < endregno; i++) ---- gcc/dwarf2out.c.jj Mon Jul 31 20:02:10 2000 -+++ gcc/dwarf2out.c Mon Jul 31 20:46:24 2000 -@@ -3588,7 +3588,7 @@ is_pseudo_reg (rtl) - { - return ((GET_CODE (rtl) == REG && REGNO (rtl) >= FIRST_PSEUDO_REGISTER) - || (GET_CODE (rtl) == SUBREG -- && REGNO (XEXP (rtl, 0)) >= FIRST_PSEUDO_REGISTER)); -+ && REGNO (SUBREG_REG (rtl)) >= FIRST_PSEUDO_REGISTER)); - } - - /* Return a reference to a type, with its const and volatile qualifiers -@@ -6787,7 +6787,7 @@ loc_descriptor (rtl) - up an entire register. For now, just assume that it is - legitimate to make the Dwarf info refer to the whole register which - contains the given subreg. */ -- rtl = XEXP (rtl, 0); -+ rtl = SUBREG_REG (rtl); - - /* ... fall through ... */ - ---- gcc/dwarfout.c.jj Sun Jul 2 10:37:03 2000 -+++ gcc/dwarfout.c Mon Jul 31 20:46:25 2000 -@@ -875,7 +875,7 @@ is_pseudo_reg (rtl) - { - return (((GET_CODE (rtl) == REG) && (REGNO (rtl) >= FIRST_PSEUDO_REGISTER)) - || ((GET_CODE (rtl) == SUBREG) -- && (REGNO (XEXP (rtl, 0)) >= FIRST_PSEUDO_REGISTER))); -+ && (REGNO (SUBREG_REG (rtl)) >= FIRST_PSEUDO_REGISTER))); - } - - inline static tree -@@ -1688,7 +1688,7 @@ output_mem_loc_descriptor (rtl) - legitimate to make the Dwarf info refer to the whole register - which contains the given subreg. */ - -- rtl = XEXP (rtl, 0); -+ rtl = SUBREG_REG (rtl); - /* Drop thru. */ - - case REG: -@@ -1772,7 +1772,7 @@ output_loc_descriptor (rtl) - legitimate to make the Dwarf info refer to the whole register - which contains the given subreg. */ - -- rtl = XEXP (rtl, 0); -+ rtl = SUBREG_REG (rtl); - /* Drop thru. */ - - case REG: ---- gcc/emit-rtl.c.jj Mon Jul 31 20:02:10 2000 -+++ gcc/emit-rtl.c Mon Jul 31 20:46:25 2000 -@@ -347,6 +347,55 @@ gen_rtx_MEM (mode, addr) - - return rt; - } -+ -+rtx -+gen_rtx_SUBREG (mode, reg, offset) -+ enum machine_mode mode; -+ rtx reg; -+ int offset; -+{ -+ /* This is the most common failure type. -+ Catch it early so we can see who does it. */ -+ if ((offset % GET_MODE_SIZE (mode)) != 0) -+ abort (); -+ -+ /* This check isn't usable right now because combine will -+ throw arbitrary crap like a CALL into a SUBREG in -+ gen_lowpart_for_combine so we must just eat it. */ -+#if 0 -+ /* Check for this too. */ -+ if (offset >= GET_MODE_SIZE (GET_MODE (reg))) -+ abort (); -+#endif -+ return gen_rtx_fmt_ei (SUBREG, mode, reg, offset); -+} -+ -+/* Generate a SUBREG representing the least-significant part -+ * of REG if MODE is smaller than mode of REG, otherwise -+ * paradoxical SUBREG. */ -+rtx -+gen_lowpart_SUBREG (mode, reg) -+ enum machine_mode mode; -+ rtx reg; -+{ -+ enum machine_mode inmode; -+ int offset; -+ -+ inmode = GET_MODE (reg); -+ if (inmode == VOIDmode) -+ inmode = mode; -+ offset = 0; -+ if (GET_MODE_SIZE (mode) < GET_MODE_SIZE (inmode) -+ && (WORDS_BIG_ENDIAN || BYTES_BIG_ENDIAN)) -+ { -+ offset = GET_MODE_SIZE (inmode) - GET_MODE_SIZE (mode); -+ if (! BYTES_BIG_ENDIAN) -+ offset = (offset / UNITS_PER_WORD) * UNITS_PER_WORD; -+ else if (! WORDS_BIG_ENDIAN) -+ offset %= UNITS_PER_WORD; -+ } -+ return gen_rtx_SUBREG (mode, reg, offset); -+} - - /* rtx gen_rtx (code, mode, [element1, ..., elementn]) - ** -@@ -652,6 +701,52 @@ get_first_label_num () - return first_label_num; - } - -+/* Return the final regno of X, which is a SUBREG of a hard -+ register. */ -+/* ??? There is a lot of debugging here to ease our transition -+ from the old word based SUBREGs to the new byte offset scheme. -+ Remove most of it when things are stable. */ -+ -+int -+subreg_hard_regno (x, check_mode) -+ register rtx x; -+ int check_mode; -+{ -+ enum machine_mode mode = GET_MODE (x); -+ unsigned int byte_offset, base_regno, final_regno; -+ rtx reg = SUBREG_REG (x); -+ -+ /* This is where we attempt to catch illegal subregs -+ created by the compiler. */ -+ if (GET_CODE (x) != SUBREG -+ || GET_CODE (reg) != REG) -+ abort (); -+ base_regno = REGNO (reg); -+ if (base_regno >= FIRST_PSEUDO_REGISTER) -+ abort (); -+ if (! HARD_REGNO_MODE_OK (base_regno, GET_MODE (reg))) -+ abort (); -+ -+ /* Catch non-congruent offsets too. */ -+ byte_offset = SUBREG_BYTE (x); -+ if ((byte_offset % GET_MODE_SIZE (mode)) != 0) -+ abort (); -+ -+ final_regno = SUBREG_REGNO (x); -+ -+ /* Punt if what we end up with is not a valid regno in -+ the SUBREG's mode, or we went past the end of the inner -+ REG's mode, or we overflow past the last hard regno. */ -+ if ((check_mode -+ && ! HARD_REGNO_MODE_OK (final_regno, mode)) -+ || ((final_regno - base_regno) >= -+ HARD_REGNO_NREGS (base_regno, GET_MODE (reg))) -+ || final_regno >= FIRST_PSEUDO_REGISTER) -+ abort (); -+ -+ return final_regno; -+} -+ - /* Return a value representing some low-order bits of X, where the number - of low-order bits is given by MODE. Note that no conversion is done - between floating-point and fixed-point values, rather, the bit -@@ -668,22 +763,29 @@ gen_lowpart_common (mode, x) - enum machine_mode mode; - register rtx x; - { -- int word = 0; -+ int msize = GET_MODE_SIZE (mode); -+ int xsize = GET_MODE_SIZE (GET_MODE (x)); -+ int offset = 0; - - if (GET_MODE (x) == mode) - return x; - - /* MODE must occupy no more words than the mode of X. */ - if (GET_MODE (x) != VOIDmode -- && ((GET_MODE_SIZE (mode) + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD -- > ((GET_MODE_SIZE (GET_MODE (x)) + (UNITS_PER_WORD - 1)) -- / UNITS_PER_WORD))) -+ && ((msize + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD -+ > ((xsize + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD))) - return 0; - -- if (WORDS_BIG_ENDIAN && GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD) -- word = ((GET_MODE_SIZE (GET_MODE (x)) -- - MAX (GET_MODE_SIZE (mode), UNITS_PER_WORD)) -- / UNITS_PER_WORD); -+ if ((WORDS_BIG_ENDIAN || BYTES_BIG_ENDIAN) -+ && xsize > msize) -+ { -+ int difference = xsize - msize; -+ -+ if (WORDS_BIG_ENDIAN) -+ offset += (difference / UNITS_PER_WORD) * UNITS_PER_WORD; -+ if (BYTES_BIG_ENDIAN) -+ offset += difference % UNITS_PER_WORD; -+ } - - if ((GET_CODE (x) == ZERO_EXTEND || GET_CODE (x) == SIGN_EXTEND) - && (GET_MODE_CLASS (mode) == MODE_INT -@@ -699,62 +801,67 @@ gen_lowpart_common (mode, x) - - if (GET_MODE (XEXP (x, 0)) == mode) - return XEXP (x, 0); -- else if (GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (XEXP (x, 0)))) -+ else if (msize < GET_MODE_SIZE (GET_MODE (XEXP (x, 0)))) - return gen_lowpart_common (mode, XEXP (x, 0)); -- else if (GET_MODE_SIZE (mode) < GET_MODE_SIZE (GET_MODE (x))) -+ else if (msize < xsize) - return gen_rtx_fmt_e (GET_CODE (x), mode, XEXP (x, 0)); - } - else if (GET_CODE (x) == SUBREG -- && (GET_MODE_SIZE (mode) <= UNITS_PER_WORD -- || GET_MODE_SIZE (mode) == GET_MODE_UNIT_SIZE (GET_MODE (x)))) -- return (GET_MODE (SUBREG_REG (x)) == mode && SUBREG_WORD (x) == 0 -- ? SUBREG_REG (x) -- : gen_rtx_SUBREG (mode, SUBREG_REG (x), SUBREG_WORD (x) + word)); -+ && (msize <= UNITS_PER_WORD -+ || msize == GET_MODE_UNIT_SIZE (GET_MODE (x)))) -+ { -+ int final_offset; -+ -+ if (GET_MODE (SUBREG_REG (x)) == mode && subreg_lowpart_p (x)) -+ return SUBREG_REG (x); -+ -+ /* When working with SUBREGs the rule is that the byte -+ offset must be a multiple of the SUBREG's mode. */ -+ final_offset = SUBREG_BYTE (x) + offset; -+ final_offset = (final_offset / msize); -+ final_offset = (final_offset * msize); -+ return gen_rtx_SUBREG (mode, SUBREG_REG (x), final_offset); -+ } - else if (GET_CODE (x) == REG) - { -- /* Let the backend decide how many registers to skip. This is needed -- in particular for Sparc64 where fp regs are smaller than a word. */ -- /* ??? Note that subregs are now ambiguous, in that those against -- pseudos are sized by the Word Size, while those against hard -- regs are sized by the underlying register size. Better would be -- to always interpret the subreg offset parameter as bytes or bits. */ -- -- if (WORDS_BIG_ENDIAN && REGNO (x) < FIRST_PSEUDO_REGISTER) -- word = (HARD_REGNO_NREGS (REGNO (x), GET_MODE (x)) -- - HARD_REGNO_NREGS (REGNO (x), mode)); -- -- /* If the register is not valid for MODE, return 0. If we don't -- do this, there is no way to fix up the resulting REG later. -- But we do do this if the current REG is not valid for its -- mode. This latter is a kludge, but is required due to the -- way that parameters are passed on some machines, most -- notably Sparc. */ -- if (REGNO (x) < FIRST_PSEUDO_REGISTER -- && ! HARD_REGNO_MODE_OK (REGNO (x) + word, mode) -- && HARD_REGNO_MODE_OK (REGNO (x), GET_MODE (x))) -- return 0; -- else if (REGNO (x) < FIRST_PSEUDO_REGISTER -- /* integrate.c can't handle parts of a return value register. */ -- && (! REG_FUNCTION_VALUE_P (x) -- || ! rtx_equal_function_value_matters) -+ /* Hard registers are done specially in certain cases. */ -+ if (REGNO (x) < FIRST_PSEUDO_REGISTER) -+ { -+ int final_regno = REGNO (x) + -+ SUBREG_REGNO_OFFSET(REGNO (x), GET_MODE (x), offset, mode); -+ -+ /* If the final regno is not valid for MODE, punt. */ -+ /* ??? We do allow it if the current REG is not valid for -+ ??? it's mode. It is a kludge to work around how float/complex -+ ??? arguments are passed on 32-bit Sparc and should be fixed. */ -+ if (! HARD_REGNO_MODE_OK (final_regno, mode) -+ && HARD_REGNO_MODE_OK (REGNO (x), GET_MODE (x))) -+ return 0; -+ -+ /* integrate.c can't handle parts of a return value register. -+ ??? Then integrate.c should be fixed! */ -+ if ((! REG_FUNCTION_VALUE_P (x) -+ || ! rtx_equal_function_value_matters) - #ifdef CLASS_CANNOT_CHANGE_MODE -- && ! (CLASS_CANNOT_CHANGE_MODE_P (mode, GET_MODE (x)) -- && GET_MODE_CLASS (GET_MODE (x)) != MODE_COMPLEX_INT -- && GET_MODE_CLASS (GET_MODE (x)) != MODE_COMPLEX_FLOAT -- && (TEST_HARD_REG_BIT -- (reg_class_contents[(int) CLASS_CANNOT_CHANGE_MODE], -- REGNO (x)))) -+ && ! (CLASS_CANNOT_CHANGE_MODE_P (mode, GET_MODE (x)) -+ && GET_MODE_CLASS (GET_MODE (x)) != MODE_COMPLEX_INT -+ && GET_MODE_CLASS (GET_MODE (x)) != MODE_COMPLEX_FLOAT -+ && (TEST_HARD_REG_BIT -+ (reg_class_contents[(int) CLASS_CANNOT_CHANGE_MODE], -+ REGNO (x)))) - #endif -- /* We want to keep the stack, frame, and arg pointers -- special. */ -- && x != frame_pointer_rtx -+ /* We want to keep the stack, frame, and arg pointers -+ special. */ -+ && x != frame_pointer_rtx - #if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM -- && x != arg_pointer_rtx -+ && x != arg_pointer_rtx - #endif -- && x != stack_pointer_rtx) -- return gen_rtx_REG (mode, REGNO (x) + word); -- else -- return gen_rtx_SUBREG (mode, x, word); -+ && x != stack_pointer_rtx) -+ return gen_rtx_REG (mode, final_regno); -+ } -+ -+ /* Just generate a normal SUBREG. */ -+ return gen_rtx_SUBREG (mode, x, offset); - } - /* If X is a CONST_INT or a CONST_DOUBLE, extract the appropriate bits - from the low-order part of the constant. */ -@@ -852,7 +959,7 @@ gen_lowpart_common (mode, x) - && GET_CODE (x) == CONST_DOUBLE - && GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT - && GET_MODE_BITSIZE (mode) == BITS_PER_WORD) -- return operand_subword (x, word, 0, GET_MODE (x)); -+ return constant_subword (x, (offset / UNITS_PER_WORD), GET_MODE (x)); - - /* Similarly, if this is converting a floating-point value into a - two-word integer, we can do this one word at a time and make an -@@ -868,11 +975,14 @@ gen_lowpart_common (mode, x) - && GET_MODE_CLASS (GET_MODE (x)) == MODE_FLOAT - && GET_MODE_BITSIZE (mode) == 2 * BITS_PER_WORD) - { -- rtx lowpart -- = operand_subword (x, word + WORDS_BIG_ENDIAN, 0, GET_MODE (x)); -- rtx highpart -- = operand_subword (x, word + ! WORDS_BIG_ENDIAN, 0, GET_MODE (x)); -+ rtx lowpart, highpart; - -+ lowpart = constant_subword (x, -+ (offset / UNITS_PER_WORD) + WORDS_BIG_ENDIAN, -+ GET_MODE (x)); -+ highpart = constant_subword (x, -+ (offset / UNITS_PER_WORD) + (! WORDS_BIG_ENDIAN), -+ GET_MODE (x)); - if (lowpart && GET_CODE (lowpart) == CONST_INT - && highpart && GET_CODE (highpart) == CONST_INT) - return immed_double_const (INTVAL (lowpart), INTVAL (highpart), mode); -@@ -1031,7 +1141,7 @@ subreg_realpart_p (x) - if (GET_CODE (x) != SUBREG) - abort (); - -- return ((unsigned int) SUBREG_WORD (x) * UNITS_PER_WORD -+ return ((unsigned int) SUBREG_BYTE (x) - < GET_MODE_UNIT_SIZE (GET_MODE (SUBREG_REG (x)))); - } - -@@ -1089,10 +1199,13 @@ gen_highpart (mode, x) - enum machine_mode mode; - register rtx x; - { -+ int msize = GET_MODE_SIZE (mode); -+ int xsize = GET_MODE_SIZE (GET_MODE (x)); -+ - /* This case loses if X is a subreg. To catch bugs early, - complain if an invalid MODE is used even in other cases. */ -- if (GET_MODE_SIZE (mode) > UNITS_PER_WORD -- && GET_MODE_SIZE (mode) != GET_MODE_UNIT_SIZE (GET_MODE (x))) -+ if (msize > UNITS_PER_WORD -+ && msize != GET_MODE_UNIT_SIZE (GET_MODE (x))) - abort (); - if (GET_CODE (x) == CONST_DOUBLE - #if !(TARGET_FLOAT_FORMAT != HOST_FLOAT_FORMAT || defined (REAL_IS_NOT_DOUBLE)) -@@ -1109,15 +1222,14 @@ gen_highpart (mode, x) - else if (GET_CODE (x) == MEM) - { - register int offset = 0; -+ - if (! WORDS_BIG_ENDIAN) -- offset = (MAX (GET_MODE_SIZE (GET_MODE (x)), UNITS_PER_WORD) -- - MAX (GET_MODE_SIZE (mode), UNITS_PER_WORD)); -+ offset = (MAX (xsize, UNITS_PER_WORD) -+ - MAX (msize, UNITS_PER_WORD)); - - if (! BYTES_BIG_ENDIAN -- && GET_MODE_SIZE (mode) < UNITS_PER_WORD) -- offset -= (GET_MODE_SIZE (mode) -- - MIN (UNITS_PER_WORD, -- GET_MODE_SIZE (GET_MODE (x)))); -+ && msize < UNITS_PER_WORD) -+ offset -= (msize - MIN (UNITS_PER_WORD, xsize)); - - return change_address (x, mode, plus_constant (XEXP (x, 0), offset)); - } -@@ -1126,44 +1238,45 @@ gen_highpart (mode, x) - /* The only time this should occur is when we are looking at a - multi-word item with a SUBREG whose mode is the same as that of the - item. It isn't clear what we would do if it wasn't. */ -- if (SUBREG_WORD (x) != 0) -+ if (SUBREG_BYTE (x) != 0) - abort (); - return gen_highpart (mode, SUBREG_REG (x)); - } - else if (GET_CODE (x) == REG) - { -- int word; -+ int offset = 0; - -- /* Let the backend decide how many registers to skip. This is needed -- in particular for sparc64 where fp regs are smaller than a word. */ -- /* ??? Note that subregs are now ambiguous, in that those against -- pseudos are sized by the word size, while those against hard -- regs are sized by the underlying register size. Better would be -- to always interpret the subreg offset parameter as bytes or bits. */ -+ if ((! WORDS_BIG_ENDIAN || ! BYTES_BIG_ENDIAN) -+ && xsize > msize) -+ { -+ int difference = xsize - msize; - -- if (WORDS_BIG_ENDIAN) -- word = 0; -- else if (REGNO (x) < FIRST_PSEUDO_REGISTER) -- word = (HARD_REGNO_NREGS (REGNO (x), GET_MODE (x)) -- - HARD_REGNO_NREGS (REGNO (x), mode)); -- else -- word = ((GET_MODE_SIZE (GET_MODE (x)) -- - MAX (GET_MODE_SIZE (mode), UNITS_PER_WORD)) -- / UNITS_PER_WORD); -- -- if (REGNO (x) < FIRST_PSEUDO_REGISTER -- /* integrate.c can't handle parts of a return value register. */ -- && (! REG_FUNCTION_VALUE_P (x) -- || ! rtx_equal_function_value_matters) -- /* We want to keep the stack, frame, and arg pointers special. */ -- && x != frame_pointer_rtx -+ if (! WORDS_BIG_ENDIAN) -+ offset += (difference / UNITS_PER_WORD) * UNITS_PER_WORD; -+ if (! BYTES_BIG_ENDIAN) -+ offset += difference % UNITS_PER_WORD; -+ } -+ if (REGNO (x) < FIRST_PSEUDO_REGISTER) -+ { -+ int final_regno = REGNO (x) + -+ SUBREG_REGNO_OFFSET(REGNO (x), GET_MODE (x), offset, mode); -+ -+ /* integrate.c can't handle parts of a return value register. -+ ??? Then integrate.c should be fixed! -+ ??? What about CLASS_CANNOT_CHANGE_SIZE? */ -+ if ((! REG_FUNCTION_VALUE_P (x) -+ || ! rtx_equal_function_value_matters) -+ /* We want to keep the stack, frame, and arg pointers special. */ -+ && x != frame_pointer_rtx - #if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM -- && x != arg_pointer_rtx -+ && x != arg_pointer_rtx - #endif -- && x != stack_pointer_rtx) -- return gen_rtx_REG (mode, REGNO (x) + word); -- else -- return gen_rtx_SUBREG (mode, x, word); -+ && x != stack_pointer_rtx) -+ return gen_rtx_REG (mode, final_regno); -+ } -+ -+ /* Just generate a normal SUBREG. */ -+ return gen_rtx_SUBREG (mode, x, offset); - } - else - abort (); -@@ -1177,154 +1290,44 @@ int - subreg_lowpart_p (x) - rtx x; - { -+ unsigned int offset = 0; -+ int difference = (GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) -+ - GET_MODE_SIZE (GET_MODE (x))); -+ - if (GET_CODE (x) != SUBREG) - return 1; - else if (GET_MODE (SUBREG_REG (x)) == VOIDmode) - return 0; - -- if (WORDS_BIG_ENDIAN -- && GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) > UNITS_PER_WORD) -- return (SUBREG_WORD (x) -- == ((GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) -- - MAX (GET_MODE_SIZE (GET_MODE (x)), UNITS_PER_WORD)) -- / UNITS_PER_WORD)); -+ if (difference > 0) -+ { -+ if (WORDS_BIG_ENDIAN) -+ offset += (difference / UNITS_PER_WORD) * UNITS_PER_WORD; -+ if (BYTES_BIG_ENDIAN) -+ offset += difference % UNITS_PER_WORD; -+ } - -- return SUBREG_WORD (x) == 0; -+ return SUBREG_BYTE (x) == offset; - } - --/* Return subword I of operand OP. -- The word number, I, is interpreted as the word number starting at the -- low-order address. Word 0 is the low-order word if not WORDS_BIG_ENDIAN, -- otherwise it is the high-order word. - -- If we cannot extract the required word, we return zero. Otherwise, an -- rtx corresponding to the requested word will be returned. -- -- VALIDATE_ADDRESS is nonzero if the address should be validated. Before -- reload has completed, a valid address will always be returned. After -- reload, if a valid address cannot be returned, we return zero. -- -- If VALIDATE_ADDRESS is zero, we simply form the required address; validating -- it is the responsibility of the caller. -- -- MODE is the mode of OP in case it is a CONST_INT. */ -+/* Helper routine for all the constant cases of operand_subword. -+ Some places invoke this directly. */ - - rtx --operand_subword (op, i, validate_address, mode) -+constant_subword (op, offset, mode) - rtx op; -- unsigned int i; -- int validate_address; -+ int offset; - enum machine_mode mode; - { -- HOST_WIDE_INT val; - int size_ratio = HOST_BITS_PER_WIDE_INT / BITS_PER_WORD; -- -- if (mode == VOIDmode) -- mode = GET_MODE (op); -- -- if (mode == VOIDmode) -- abort (); -- -- /* If OP is narrower than a word, fail. */ -- if (mode != BLKmode -- && (GET_MODE_SIZE (mode) < UNITS_PER_WORD)) -- return 0; -- -- /* If we want a word outside OP, return zero. */ -- if (mode != BLKmode -- && (i + 1) * UNITS_PER_WORD > GET_MODE_SIZE (mode)) -- return const0_rtx; -+ HOST_WIDE_INT val; - - /* If OP is already an integer word, return it. */ - if (GET_MODE_CLASS (mode) == MODE_INT - && GET_MODE_SIZE (mode) == UNITS_PER_WORD) - return op; - -- /* If OP is a REG or SUBREG, we can handle it very simply. */ -- if (GET_CODE (op) == REG) -- { -- /* ??? There is a potential problem with this code. It does not -- properly handle extractions of a subword from a hard register -- that is larger than word_mode. Presumably the check for -- HARD_REGNO_MODE_OK catches these most of these cases. */ -- -- /* If OP is a hard register, but OP + I is not a hard register, -- then extracting a subword is impossible. -- -- For example, consider if OP is the last hard register and it is -- larger than word_mode. If we wanted word N (for N > 0) because a -- part of that hard register was known to contain a useful value, -- then OP + I would refer to a pseudo, not the hard register we -- actually wanted. */ -- if (REGNO (op) < FIRST_PSEUDO_REGISTER -- && REGNO (op) + i >= FIRST_PSEUDO_REGISTER) -- return 0; -- -- /* If the register is not valid for MODE, return 0. Note we -- have to check both OP and OP + I since they may refer to -- different parts of the register file. -- -- Consider if OP refers to the last 96bit FP register and we want -- subword 3 because that subword is known to contain a value we -- needed. */ -- if (REGNO (op) < FIRST_PSEUDO_REGISTER -- && (! HARD_REGNO_MODE_OK (REGNO (op), word_mode) -- || ! HARD_REGNO_MODE_OK (REGNO (op) + i, word_mode))) -- return 0; -- else if (REGNO (op) >= FIRST_PSEUDO_REGISTER -- || (REG_FUNCTION_VALUE_P (op) -- && rtx_equal_function_value_matters) -- /* We want to keep the stack, frame, and arg pointers -- special. */ -- || op == frame_pointer_rtx --#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM -- || op == arg_pointer_rtx --#endif -- || op == stack_pointer_rtx) -- return gen_rtx_SUBREG (word_mode, op, i); -- else -- return gen_rtx_REG (word_mode, REGNO (op) + i); -- } -- else if (GET_CODE (op) == SUBREG) -- return gen_rtx_SUBREG (word_mode, SUBREG_REG (op), i + SUBREG_WORD (op)); -- else if (GET_CODE (op) == CONCAT) -- { -- unsigned int partwords -- = GET_MODE_UNIT_SIZE (GET_MODE (op)) / UNITS_PER_WORD; -- -- if (i < partwords) -- return operand_subword (XEXP (op, 0), i, validate_address, mode); -- return operand_subword (XEXP (op, 1), i - partwords, -- validate_address, mode); -- } -- -- /* Form a new MEM at the requested address. */ -- if (GET_CODE (op) == MEM) -- { -- rtx addr = plus_constant (XEXP (op, 0), i * UNITS_PER_WORD); -- rtx new; -- -- if (validate_address) -- { -- if (reload_completed) -- { -- if (! strict_memory_address_p (word_mode, addr)) -- return 0; -- } -- else -- addr = memory_address (word_mode, addr); -- } -- -- new = gen_rtx_MEM (word_mode, addr); -- MEM_COPY_ATTRIBUTES (new, op); -- return new; -- } -- -- /* The only remaining cases are when OP is a constant. If the host and -- target floating formats are the same, handling two-word floating -- constants are easy. Note that REAL_VALUE_TO_TARGET_{SINGLE,DOUBLE} -- are defined as returning one or two 32 bit values, respectively, -- and not values of BITS_PER_WORD bits. */ - #ifdef REAL_ARITHMETIC - /* The output is some bits, the width of the target machine's word. - A wider-word host can surely hold them in a CONST_INT. A narrower-word -@@ -1351,12 +1354,12 @@ operand_subword (op, i, validate_address - So we explicitly mask and sign-extend as necessary. */ - if (BITS_PER_WORD == 32) - { -- val = k[i]; -+ val = k[offset]; - val = ((val & 0xffffffff) ^ 0x80000000) - 0x80000000; - return GEN_INT (val); - } - #if HOST_BITS_PER_WIDE_INT >= 64 -- else if (BITS_PER_WORD >= 64 && i == 0) -+ else if (BITS_PER_WORD >= 64 && offset == 0) - { - val = k[! WORDS_BIG_ENDIAN]; - val = (((val & 0xffffffff) ^ 0x80000000) - 0x80000000) << 32; -@@ -1366,8 +1369,8 @@ operand_subword (op, i, validate_address - #endif - else if (BITS_PER_WORD == 16) - { -- val = k[i >> 1]; -- if ((i & 1) == !WORDS_BIG_ENDIAN) -+ val = k[offset >> 1]; -+ if ((offset & 1) == !WORDS_BIG_ENDIAN) - val >>= 16; - val &= 0xffff; - return GEN_INT (val); -@@ -1388,16 +1391,16 @@ operand_subword (op, i, validate_address - - if (BITS_PER_WORD == 32) - { -- val = k[i]; -+ val = k[offset]; - val = ((val & 0xffffffff) ^ 0x80000000) - 0x80000000; - return GEN_INT (val); - } - #if HOST_BITS_PER_WIDE_INT >= 64 -- else if (BITS_PER_WORD >= 64 && i <= 1) -+ else if (BITS_PER_WORD >= 64 && offset <= 1) - { -- val = k[i*2 + ! WORDS_BIG_ENDIAN]; -+ val = k[offset*2 + ! WORDS_BIG_ENDIAN]; - val = (((val & 0xffffffff) ^ 0x80000000) - 0x80000000) << 32; -- val |= (HOST_WIDE_INT) k[i*2 + WORDS_BIG_ENDIAN] & 0xffffffff; -+ val |= (HOST_WIDE_INT) k[offset*2 + WORDS_BIG_ENDIAN] & 0xffffffff; - return GEN_INT (val); - } - #endif -@@ -1417,10 +1420,10 @@ operand_subword (op, i, validate_address - compilers don't like a conditional inside macro args, so we have two - copies of the return. */ - #ifdef HOST_WORDS_BIG_ENDIAN -- return GEN_INT (i == WORDS_BIG_ENDIAN -+ return GEN_INT (offset == WORDS_BIG_ENDIAN - ? CONST_DOUBLE_HIGH (op) : CONST_DOUBLE_LOW (op)); - #else -- return GEN_INT (i != WORDS_BIG_ENDIAN -+ return GEN_INT (offset != WORDS_BIG_ENDIAN - ? CONST_DOUBLE_HIGH (op) : CONST_DOUBLE_LOW (op)); - #endif - } -@@ -1446,7 +1449,7 @@ operand_subword (op, i, validate_address - - if (BITS_PER_WORD == 16) - { -- if ((i & 1) == !WORDS_BIG_ENDIAN) -+ if ((offset & 1) == !WORDS_BIG_ENDIAN) - val >>= 16; - val &= 0xffff; - } -@@ -1490,7 +1493,7 @@ operand_subword (op, i, validate_address - - /* The only remaining cases that we can handle are integers. - Convert to proper endianness now since these cases need it. -- At this point, i == 0 means the low-order word. -+ At this point, offset == 0 means the low-order word. - - We do not want to handle the case when BITS_PER_WORD <= HOST_BITS_PER_INT - in general. However, if OP is (const_int 0), we can just return -@@ -1505,24 +1508,167 @@ operand_subword (op, i, validate_address - return 0; - - if (WORDS_BIG_ENDIAN) -- i = GET_MODE_SIZE (mode) / UNITS_PER_WORD - 1 - i; -+ offset = GET_MODE_SIZE (mode) / UNITS_PER_WORD - 1 - offset; - - /* Find out which word on the host machine this value is in and get - it from the constant. */ -- val = (i / size_ratio == 0 -+ val = (offset / size_ratio == 0 - ? (GET_CODE (op) == CONST_INT ? INTVAL (op) : CONST_DOUBLE_LOW (op)) - : (GET_CODE (op) == CONST_INT - ? (INTVAL (op) < 0 ? ~0 : 0) : CONST_DOUBLE_HIGH (op))); - - /* Get the value we want into the low bits of val. */ - if (BITS_PER_WORD < HOST_BITS_PER_WIDE_INT) -- val = ((val >> ((i % size_ratio) * BITS_PER_WORD))); -+ val = ((val >> ((offset % size_ratio) * BITS_PER_WORD))); - - val = trunc_int_for_mode (val, word_mode); - - return GEN_INT (val); - } - -+/* Return subword OFFSET of operand OP. -+ The word number, OFFSET, is interpreted as the word number starting -+ at the low-order address. OFFSET 0 is the low-order word if not -+ WORDS_BIG_ENDIAN, otherwise it is the high-order word. -+ -+ If we cannot extract the required word, we return zero. Otherwise, -+ an rtx corresponding to the requested word will be returned. -+ -+ VALIDATE_ADDRESS is nonzero if the address should be validated. Before -+ reload has completed, a valid address will always be returned. After -+ reload, if a valid address cannot be returned, we return zero. -+ -+ If VALIDATE_ADDRESS is zero, we simply form the required address; validating -+ it is the responsibility of the caller. -+ -+ MODE is the mode of OP in case it is a CONST_INT. -+ -+ ??? This is still rather broken for some cases. The problem for the -+ moment is that all callers of this thing provide no 'goal mode' to -+ tell us to work with. This exists because all callers were written -+ in a word based SUBREG world. */ -+ -+rtx -+operand_subword (op, offset, validate_address, mode) -+ rtx op; -+ unsigned int offset; -+ int validate_address; -+ enum machine_mode mode; -+{ -+ if (mode == VOIDmode) -+ mode = GET_MODE (op); -+ -+ if (mode == VOIDmode) -+ abort (); -+ -+ /* If OP is narrower than a word or if we want a word outside OP, fail. */ -+ if (mode != BLKmode -+ && (GET_MODE_SIZE (mode) < UNITS_PER_WORD -+ || (offset + 1) * UNITS_PER_WORD > GET_MODE_SIZE (mode))) -+ return 0; -+ -+ switch (GET_CODE (op)) -+ { -+ case REG: -+ case SUBREG: -+ case CONCAT: -+ case MEM: -+ break; -+ -+ default: -+ /* The only remaining cases are when OP is a constant. If the host and -+ target floating formats are the same, handling two-word floating -+ constants are easy. Note that REAL_VALUE_TO_TARGET_{SINGLE,DOUBLE} -+ are defined as returning one or two 32 bit values, respectively, -+ and not values of BITS_PER_WORD bits. */ -+ return constant_subword (op, offset, mode); -+ } -+ -+ /* If OP is already an integer word, return it. */ -+ if (GET_MODE_CLASS (mode) == MODE_INT -+ && GET_MODE_SIZE (mode) == UNITS_PER_WORD) -+ return op; -+ -+ /* If OP is a REG or SUBREG, we can handle it very simply. */ -+ if (GET_CODE (op) == REG) -+ { -+ if (REGNO (op) < FIRST_PSEUDO_REGISTER) -+ { -+ int final_regno = REGNO (op) + -+ SUBREG_REGNO_OFFSET(REGNO (op), GET_MODE (op), -+ offset * UNITS_PER_WORD, -+ word_mode); -+ -+ /* If the register is not valid for MODE, return 0. If we don't -+ do this, there is no way to fix up the resulting REG later. */ -+ if (! HARD_REGNO_MODE_OK (final_regno, word_mode)) -+ return 0; -+ -+ /* integrate.c can't handle parts of a return value register. -+ ??? Then integrate.c should be fixed! -+ ??? What about CLASS_CANNOT_CHANGE_SIZE? */ -+ if ((! REG_FUNCTION_VALUE_P (op) -+ || ! rtx_equal_function_value_matters) -+ /* ??? What about CLASS_CANNOT_CHANGE_SIZE? */ -+ /* We want to keep the stack, frame, and arg pointers -+ special. */ -+ && op != frame_pointer_rtx -+#if FRAME_POINTER_REGNUM != ARG_POINTER_REGNUM -+ && op != arg_pointer_rtx -+#endif -+ && op != stack_pointer_rtx) -+ return gen_rtx_REG (word_mode, final_regno); -+ } -+ -+ /* Just return a normal SUBREG. */ -+ return gen_rtx_SUBREG (word_mode, op, -+ (offset * UNITS_PER_WORD)); -+ } -+ else if (GET_CODE (op) == SUBREG) -+ { -+ int final_offset = ((offset * UNITS_PER_WORD) + SUBREG_BYTE (op)); -+ -+ /* When working with SUBREGs the rule is that the byte -+ offset must be a multiple of the SUBREG's mode. */ -+ final_offset = (final_offset / GET_MODE_SIZE (word_mode)); -+ final_offset = (final_offset * GET_MODE_SIZE (word_mode)); -+ return gen_rtx_SUBREG (word_mode, SUBREG_REG (op), final_offset); -+ } -+ else if (GET_CODE (op) == CONCAT) -+ { -+ unsigned int partwords = GET_MODE_UNIT_SIZE (GET_MODE (op)) / UNITS_PER_WORD; -+ if (offset < partwords) -+ return operand_subword (XEXP (op, 0), offset, validate_address, mode); -+ return operand_subword (XEXP (op, 1), offset - partwords, -+ validate_address, mode); -+ } -+ -+ /* Form a new MEM at the requested address. */ -+ if (GET_CODE (op) == MEM) -+ { -+ rtx addr = plus_constant (XEXP (op, 0), (offset * UNITS_PER_WORD)); -+ rtx new; -+ -+ if (validate_address) -+ { -+ if (reload_completed) -+ { -+ if (! strict_memory_address_p (word_mode, addr)) -+ return 0; -+ } -+ else -+ addr = memory_address (word_mode, addr); -+ } -+ -+ new = gen_rtx_MEM (word_mode, addr); -+ MEM_COPY_ATTRIBUTES (new, op); -+ return new; -+ } -+ -+ /* Unreachable... (famous last words) */ -+ abort (); -+} -+ - /* Similar to `operand_subword', but never return 0. If we can't extract - the required subword, put OP into a register and try again. If that fails, - abort. We always validate the address in this case. It is not valid -@@ -1532,13 +1678,17 @@ operand_subword (op, i, validate_address - MODE is the mode of OP, in case it is CONST_INT. */ - - rtx --operand_subword_force (op, i, mode) -+operand_subword_force (op, offset, mode) - rtx op; -- unsigned int i; -+ unsigned int offset; - enum machine_mode mode; - { -- rtx result = operand_subword (op, i, 1, mode); -+ rtx result; -+ -+ if (reload_completed) -+ abort (); - -+ result = operand_subword (op, offset, 1, mode); - if (result) - return result; - -@@ -1552,7 +1702,7 @@ operand_subword_force (op, i, mode) - op = force_reg (mode, op); - } - -- result = operand_subword (op, i, 1, mode); -+ result = operand_subword (op, offset, 1, mode); - if (result == 0) - abort (); - ---- gcc/stmt.c.jj Sat Jun 24 10:09:01 2000 -+++ gcc/stmt.c Mon Jul 31 20:46:25 2000 -@@ -4239,7 +4239,7 @@ expand_anon_union_decl (decl, cleanup, d - if (mode == GET_MODE (x)) - DECL_RTL (decl_elt) = x; - else -- DECL_RTL (decl_elt) = gen_rtx_SUBREG (mode, x, 0); -+ DECL_RTL (decl_elt) = gen_lowpart_SUBREG (mode, x); - } - else - abort (); ---- gcc/alias.c.jj Fri Jul 7 21:39:32 2000 -+++ gcc/alias.c Mon Jul 31 20:46:25 2000 -@@ -1717,7 +1717,7 @@ nonlocal_reference_p (x) - { - /* Global registers are not local. */ - if (REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER -- && global_regs[REGNO (SUBREG_REG (x)) + SUBREG_WORD (x)]) -+ && global_regs[SUBREG_REGNO (x)]) - return 1; - return 0; - } ---- gcc/final.c.jj Mon Jul 31 20:02:10 2000 -+++ gcc/final.c Mon Jul 31 20:46:25 2000 -@@ -3172,20 +3172,8 @@ alter_subreg (x) - - if (GET_CODE (y) == REG) - { -- int regno; -- /* If the word size is larger than the size of this register, -- adjust the register number to compensate. */ -- /* ??? Note that this just catches stragglers created by/for -- integrate. It would be better if we either caught these -- earlier, or kept _all_ subregs until now and eliminate -- gen_lowpart and friends. */ -+ int regno = subreg_hard_regno (x, 1); - --#ifdef ALTER_HARD_SUBREG -- regno = ALTER_HARD_SUBREG(GET_MODE (x), SUBREG_WORD (x), -- GET_MODE (y), REGNO (y)); --#else -- regno = REGNO (y) + SUBREG_WORD (x); --#endif - PUT_CODE (x, REG); - REGNO (x) = regno; - /* This field has a different meaning for REGs and SUBREGs. Make sure -@@ -3194,11 +3182,12 @@ alter_subreg (x) - } - else if (GET_CODE (y) == MEM) - { -- register int offset = SUBREG_WORD (x) * UNITS_PER_WORD; -+ register int offset = SUBREG_BYTE (x); -+ -+ /* Catch these instead of generating incorrect code. */ -+ if ((offset % GET_MODE_SIZE (GET_MODE (x))) != 0) -+ abort (); - -- if (BYTES_BIG_ENDIAN) -- offset -= (MIN (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (x))) -- - MIN (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (y)))); - PUT_CODE (x, MEM); - MEM_COPY_ATTRIBUTES (x, y); - XEXP (x, 0) = plus_constant (XEXP (y, 0), offset); ---- gcc/flow.c.jj Mon Jul 31 20:02:10 2000 -+++ gcc/flow.c Mon Jul 31 20:46:25 2000 -@@ -2866,7 +2866,7 @@ set_noop_p (set) - - if (GET_CODE (src) == SUBREG && GET_CODE (dst) == SUBREG) - { -- if (SUBREG_WORD (src) != SUBREG_WORD (dst)) -+ if (SUBREG_BYTE (src) != SUBREG_BYTE (dst)) - return 0; - src = SUBREG_REG (src); - dst = SUBREG_REG (dst); -@@ -4276,12 +4276,9 @@ mark_set_1 (pbi, code, reg, cond, insn, - regno_last = regno_first = REGNO (SUBREG_REG (reg)); - if (regno_first < FIRST_PSEUDO_REGISTER) - { --#ifdef ALTER_HARD_SUBREG -- regno_first = ALTER_HARD_SUBREG (outer_mode, SUBREG_WORD (reg), -- inner_mode, regno_first); --#else -- regno_first += SUBREG_WORD (reg); --#endif -+ regno_first += SUBREG_REGNO_OFFSET (regno_first, inner_mode, -+ SUBREG_BYTE (reg), -+ outer_mode); - regno_last = (regno_first - + HARD_REGNO_NREGS (regno_first, outer_mode) - 1); - ---- gcc/expr.c.jj Thu Jul 13 14:53:31 2000 -+++ gcc/expr.c Mon Jul 31 20:46:25 2000 -@@ -3881,7 +3881,7 @@ store_expr (exp, target, want_value) - if (want_value && GET_MODE (temp) != GET_MODE (target) - && GET_MODE (temp) != VOIDmode) - { -- temp = gen_rtx_SUBREG (GET_MODE (target), temp, 0); -+ temp = gen_lowpart_SUBREG (GET_MODE (target), temp); - SUBREG_PROMOTED_VAR_P (temp) = 1; - SUBREG_PROMOTED_UNSIGNED_P (temp) - = SUBREG_PROMOTED_UNSIGNED_P (target); -@@ -6081,7 +6081,7 @@ expand_expr (exp, target, tmode, modifie - != promote_mode (type, DECL_MODE (exp), &unsignedp, 0)) - abort (); - -- temp = gen_rtx_SUBREG (mode, DECL_RTL (exp), 0); -+ temp = gen_lowpart_SUBREG (mode, DECL_RTL (exp)); - SUBREG_PROMOTED_VAR_P (temp) = 1; - SUBREG_PROMOTED_UNSIGNED_P (temp) = unsignedp; - return temp; -@@ -6198,7 +6198,7 @@ expand_expr (exp, target, tmode, modifie - - if (GET_CODE (temp) == REG && GET_MODE (temp) != mode) - { -- temp = gen_rtx_SUBREG (mode, SAVE_EXPR_RTL (exp), 0); -+ temp = gen_lowpart_SUBREG (mode, SAVE_EXPR_RTL (exp)); - SUBREG_PROMOTED_VAR_P (temp) = 1; - SUBREG_PROMOTED_UNSIGNED_P (temp) = unsignedp; - } -@@ -6221,7 +6221,7 @@ expand_expr (exp, target, tmode, modifie - { - /* Compute the signedness and make the proper SUBREG. */ - promote_mode (type, mode, &unsignedp, 0); -- temp = gen_rtx_SUBREG (mode, SAVE_EXPR_RTL (exp), 0); -+ temp = gen_lowpart_SUBREG (mode, SAVE_EXPR_RTL (exp)); - SUBREG_PROMOTED_VAR_P (temp) = 1; - SUBREG_PROMOTED_UNSIGNED_P (temp) = unsignedp; - return temp; ---- gcc/function.c.jj Mon Jul 31 20:02:10 2000 -+++ gcc/function.c Mon Jul 31 20:46:25 2000 -@@ -2165,7 +2165,7 @@ fixup_var_refs_1 (var, promoted_mode, lo - dest = XEXP (dest, 0); - - if (GET_CODE (src) == SUBREG) -- src = XEXP (src, 0); -+ src = SUBREG_REG (src); - - /* If VAR does not appear at the top level of the SET - just scan the lower levels of the tree. */ -@@ -2425,7 +2425,7 @@ fixup_memory_subreg (x, insn, uncritical - rtx insn; - int uncritical; - { -- int offset = SUBREG_WORD (x) * UNITS_PER_WORD; -+ int offset = SUBREG_BYTE (x); - rtx addr = XEXP (SUBREG_REG (x), 0); - enum machine_mode mode = GET_MODE (x); - rtx result; -@@ -2435,9 +2435,6 @@ fixup_memory_subreg (x, insn, uncritical - && ! uncritical) - abort (); - -- if (BYTES_BIG_ENDIAN) -- offset += (MIN (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))) -- - MIN (UNITS_PER_WORD, GET_MODE_SIZE (mode))); - addr = plus_constant (addr, offset); - if (!flag_force_addr && memory_address_p (mode, addr)) - /* Shortcut if no insns need be emitted. */ -@@ -2631,7 +2628,8 @@ optimize_bit_field (body, insn, equiv_me - offset /= BITS_PER_UNIT; - if (GET_CODE (XEXP (bitfield, 0)) == SUBREG) - { -- offset += SUBREG_WORD (XEXP (bitfield, 0)) * UNITS_PER_WORD; -+ offset += (SUBREG_BYTE (XEXP (bitfield, 0)) -+ / UNITS_PER_WORD) * UNITS_PER_WORD; - if (BYTES_BIG_ENDIAN) - offset -= (MIN (UNITS_PER_WORD, - GET_MODE_SIZE (GET_MODE (XEXP (bitfield, 0)))) -@@ -2656,7 +2654,7 @@ optimize_bit_field (body, insn, equiv_me - { - rtx src = SET_SRC (body); - while (GET_CODE (src) == SUBREG -- && SUBREG_WORD (src) == 0) -+ && SUBREG_BYTE (src) == 0) - src = SUBREG_REG (src); - if (GET_MODE (src) != GET_MODE (memref)) - src = gen_lowpart (GET_MODE (memref), SET_SRC (body)); -@@ -2677,7 +2675,7 @@ optimize_bit_field (body, insn, equiv_me - rtx dest = SET_DEST (body); - - while (GET_CODE (dest) == SUBREG -- && SUBREG_WORD (dest) == 0 -+ && SUBREG_BYTE (dest) == 0 - && (GET_MODE_CLASS (GET_MODE (dest)) - == GET_MODE_CLASS (GET_MODE (SUBREG_REG (dest)))) - && (GET_MODE_SIZE (GET_MODE (SUBREG_REG (dest))) -@@ -2965,7 +2963,7 @@ purge_addressof_1 (loc, insn, force, sto - code did. This is especially true of - REG_RETVAL. */ - -- if (GET_CODE (z) == SUBREG && SUBREG_WORD (z) == 0) -+ if (GET_CODE (z) == SUBREG && SUBREG_BYTE (z) == 0) - z = SUBREG_REG (z); - - if (GET_MODE_SIZE (GET_MODE (x)) > UNITS_PER_WORD -@@ -4554,6 +4552,20 @@ assign_parms (fndecl) - - push_to_sequence (conversion_insns); - tempreg = convert_to_mode (nominal_mode, tempreg, unsignedp); -+ -+ if (GET_CODE (tempreg) == SUBREG -+ && GET_MODE (tempreg) == nominal_mode -+ && GET_CODE (SUBREG_REG (tempreg)) == REG -+ && nominal_mode == passed_mode -+ && GET_MODE (SUBREG_REG (tempreg)) == GET_MODE (entry_parm) -+ && GET_MODE_SIZE (GET_MODE (tempreg)) -+ < GET_MODE_SIZE (GET_MODE (entry_parm))) -+ { -+ /* The argument is already sign/zero extended, so note it -+ into the subreg. */ -+ SUBREG_PROMOTED_VAR_P (tempreg) = 1; -+ SUBREG_PROMOTED_UNSIGNED_P (tempreg) = unsignedp; -+ } - - /* TREE_USED gets set erroneously during expand_assignment. */ - save_tree_used = TREE_USED (parm); ---- gcc/gengenrtl.c.jj Sun Jul 2 10:37:05 2000 -+++ gcc/gengenrtl.c Mon Jul 31 20:46:25 2000 -@@ -189,6 +189,7 @@ special_rtx (idx) - return (strcmp (defs[idx].enumname, "CONST_INT") == 0 - || strcmp (defs[idx].enumname, "CONST_DOUBLE") == 0 - || strcmp (defs[idx].enumname, "REG") == 0 -+ || strcmp (defs[idx].enumname, "SUBREG") == 0 - || strcmp (defs[idx].enumname, "MEM") == 0); - } - ---- gcc/global.c.jj Wed Jun 14 07:07:59 2000 -+++ gcc/global.c Mon Jul 31 20:46:25 2000 -@@ -1419,17 +1419,8 @@ mark_reg_store (reg, setter, data) - { - register int regno; - -- /* WORD is which word of a multi-register group is being stored. -- For the case where the store is actually into a SUBREG of REG. -- Except we don't use it; I believe the entire REG needs to be -- made live. */ -- int word = 0; -- - if (GET_CODE (reg) == SUBREG) -- { -- word = SUBREG_WORD (reg); -- reg = SUBREG_REG (reg); -- } -+ reg = SUBREG_REG (reg); - - if (GET_CODE (reg) != REG) - return; -@@ -1453,7 +1444,7 @@ mark_reg_store (reg, setter, data) - } - - if (reg_renumber[regno] >= 0) -- regno = reg_renumber[regno] /* + word */; -+ regno = reg_renumber[regno]; - - /* Handle hardware regs (and pseudos allocated to hard regs). */ - if (regno < FIRST_PSEUDO_REGISTER && ! fixed_regs[regno]) -@@ -1603,7 +1594,15 @@ set_preference (dest, src) - else if (GET_CODE (src) == SUBREG && GET_CODE (SUBREG_REG (src)) == REG) - { - src_regno = REGNO (SUBREG_REG (src)); -- offset += SUBREG_WORD (src); -+ -+ if (REGNO (SUBREG_REG (src)) < FIRST_PSEUDO_REGISTER) -+ offset += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (src)), -+ GET_MODE (SUBREG_REG (src)), -+ SUBREG_BYTE (src), -+ GET_MODE (src)); -+ else -+ offset += (SUBREG_BYTE (src) -+ / REGMODE_NATURAL_SIZE (GET_MODE (src))); - } - else - return; -@@ -1613,7 +1612,15 @@ set_preference (dest, src) - else if (GET_CODE (dest) == SUBREG && GET_CODE (SUBREG_REG (dest)) == REG) - { - dest_regno = REGNO (SUBREG_REG (dest)); -- offset -= SUBREG_WORD (dest); -+ -+ if (REGNO (SUBREG_REG (dest)) < FIRST_PSEUDO_REGISTER) -+ offset -= SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (dest)), -+ GET_MODE (SUBREG_REG (dest)), -+ SUBREG_BYTE (dest), -+ GET_MODE (dest)); -+ else -+ offset -= (SUBREG_BYTE (dest) -+ / REGMODE_NATURAL_SIZE (GET_MODE (dest))); - } - else - return; ---- gcc/haifa-sched.c.jj Mon Jul 31 20:02:11 2000 -+++ gcc/haifa-sched.c Mon Jul 31 20:46:25 2000 -@@ -5308,7 +5308,7 @@ print_value (buf, x, verbose) - case SUBREG: - print_value (t, SUBREG_REG (x), verbose); - cur = safe_concat (buf, cur, t); -- sprintf (t, "#%d", SUBREG_WORD (x)); -+ sprintf (t, "#%d", SUBREG_BYTE (x)); - cur = safe_concat (buf, cur, t); - break; - case SCRATCH: ---- gcc/integrate.c.jj Fri Jul 7 21:47:09 2000 -+++ gcc/integrate.c Mon Jul 31 20:46:25 2000 -@@ -1861,23 +1861,33 @@ copy_rtx_and_substitute (orig, map, for_ - copy = copy_rtx_and_substitute (SUBREG_REG (orig), map, for_lhs); - /* SUBREG is ordinary, but don't make nested SUBREGs. */ - if (GET_CODE (copy) == SUBREG) -- return gen_rtx_SUBREG (GET_MODE (orig), SUBREG_REG (copy), -- SUBREG_WORD (orig) + SUBREG_WORD (copy)); -+ { -+ int final_offset = SUBREG_BYTE (orig) + SUBREG_BYTE (copy); -+ -+ /* When working with SUBREGs the rule is that the byte -+ offset must be a multiple of the SUBREG's mode. */ -+ final_offset = (final_offset / GET_MODE_SIZE (GET_MODE (orig))); -+ final_offset = (final_offset * GET_MODE_SIZE (GET_MODE (orig))); -+ return gen_rtx_SUBREG (GET_MODE (orig), SUBREG_REG (copy), -+ final_offset); -+ } - else if (GET_CODE (copy) == CONCAT) - { - rtx retval = subreg_realpart_p (orig) ? XEXP (copy, 0) : XEXP (copy, 1); -+ int final_offset; - - if (GET_MODE (retval) == GET_MODE (orig)) - return retval; -- else -- return gen_rtx_SUBREG (GET_MODE (orig), retval, -- (SUBREG_WORD (orig) % -- (GET_MODE_UNIT_SIZE (GET_MODE (SUBREG_REG (orig))) -- / (unsigned) UNITS_PER_WORD))); -+ -+ final_offset = SUBREG_BYTE (orig) % -+ GET_MODE_UNIT_SIZE (GET_MODE (SUBREG_REG (orig))); -+ final_offset = (final_offset / GET_MODE_SIZE (GET_MODE (orig))); -+ final_offset = (final_offset * GET_MODE_SIZE (GET_MODE (orig))); -+ return gen_rtx_SUBREG (GET_MODE (orig), retval, final_offset); - } - else - return gen_rtx_SUBREG (GET_MODE (orig), copy, -- SUBREG_WORD (orig)); -+ SUBREG_BYTE (orig)); - - case ADDRESSOF: - copy = gen_rtx_ADDRESSOF (mode, -@@ -2365,8 +2375,8 @@ subst_constants (loc, insn, map, memonly - if (GET_MODE_CLASS (GET_MODE (x)) == MODE_INT - && GET_MODE_SIZE (GET_MODE (x)) == UNITS_PER_WORD - && GET_MODE (SUBREG_REG (x)) != VOIDmode) -- new = operand_subword (inner, SUBREG_WORD (x), 0, -- GET_MODE (SUBREG_REG (x))); -+ new = operand_subword (inner, SUBREG_BYTE (x) / UNITS_PER_WORD, -+ 0, GET_MODE (SUBREG_REG (x))); - - cancel_changes (num_changes); - if (new == 0 && subreg_lowpart_p (x)) -@@ -2585,7 +2595,12 @@ mark_stores (dest, x, data) - regno = REGNO (dest), mode = GET_MODE (dest); - else if (GET_CODE (dest) == SUBREG && GET_CODE (SUBREG_REG (dest)) == REG) - { -- regno = REGNO (SUBREG_REG (dest)) + SUBREG_WORD (dest); -+ regno = REGNO (SUBREG_REG (dest)); -+ if (regno < FIRST_PSEUDO_REGISTER) -+ regno += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (dest)), -+ GET_MODE (SUBREG_REG (dest)), -+ SUBREG_BYTE (dest), -+ GET_MODE (dest)); - mode = GET_MODE (SUBREG_REG (dest)); - } - ---- gcc/jump.c.jj Mon Jul 31 20:02:11 2000 -+++ gcc/jump.c Mon Jul 31 20:46:25 2000 -@@ -3506,7 +3506,7 @@ rtx_renumbered_equal_p (x, y) - && GET_CODE (SUBREG_REG (y)) == REG))) - { - int reg_x = -1, reg_y = -1; -- int word_x = 0, word_y = 0; -+ int byte_x = 0, byte_y = 0; - - if (GET_MODE (x) != GET_MODE (y)) - return 0; -@@ -3519,15 +3519,17 @@ rtx_renumbered_equal_p (x, y) - if (code == SUBREG) - { - reg_x = REGNO (SUBREG_REG (x)); -- word_x = SUBREG_WORD (x); -+ byte_x = SUBREG_BYTE (x); - - if (reg_renumber[reg_x] >= 0) - { -- reg_x = reg_renumber[reg_x] + word_x; -- word_x = 0; -+ reg_x = SUBREG_REGNO_OFFSET (reg_renumber[reg_x], -+ GET_MODE (SUBREG_REG (x)), -+ byte_x, -+ GET_MODE (x)); -+ byte_x = 0; - } - } -- - else - { - reg_x = REGNO (x); -@@ -3538,15 +3540,17 @@ rtx_renumbered_equal_p (x, y) - if (GET_CODE (y) == SUBREG) - { - reg_y = REGNO (SUBREG_REG (y)); -- word_y = SUBREG_WORD (y); -+ byte_y = SUBREG_BYTE (y); - - if (reg_renumber[reg_y] >= 0) - { -- reg_y = reg_renumber[reg_y]; -- word_y = 0; -+ reg_y = SUBREG_REGNO_OFFSET (reg_renumber[reg_y], -+ GET_MODE (SUBREG_REG (y)), -+ byte_y, -+ GET_MODE (y)); -+ byte_y = 0; - } - } -- - else - { - reg_y = REGNO (y); -@@ -3554,7 +3558,7 @@ rtx_renumbered_equal_p (x, y) - reg_y = reg_renumber[reg_y]; - } - -- return reg_x >= 0 && reg_x == reg_y && word_x == word_y; -+ return reg_x >= 0 && reg_x == reg_y && byte_x == byte_y; - } - - /* Now we have disposed of all the cases -@@ -3685,7 +3689,9 @@ true_regnum (x) - { - int base = true_regnum (SUBREG_REG (x)); - if (base >= 0 && base < FIRST_PSEUDO_REGISTER) -- return SUBREG_WORD (x) + base; -+ return base + SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (x)), -+ GET_MODE (SUBREG_REG (x)), -+ SUBREG_BYTE (x), GET_MODE (x)); - } - return -1; - } ---- gcc/local-alloc.c.jj Mon Jul 31 20:02:11 2000 -+++ gcc/local-alloc.c Mon Jul 31 20:46:25 2000 -@@ -1610,25 +1610,49 @@ combine_regs (usedreg, setreg, may_save_ - { - if (GET_MODE_SIZE (GET_MODE (SUBREG_REG (usedreg))) > UNITS_PER_WORD) - may_save_copy = 0; -- offset += SUBREG_WORD (usedreg); -+ if (REGNO (SUBREG_REG (usedreg)) < FIRST_PSEUDO_REGISTER) -+ offset += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (usedreg)), -+ GET_MODE (SUBREG_REG (usedreg)), -+ SUBREG_BYTE (usedreg), -+ GET_MODE (usedreg)); -+ else -+ offset += (SUBREG_BYTE (usedreg) -+ / REGMODE_NATURAL_SIZE (GET_MODE (usedreg))); - usedreg = SUBREG_REG (usedreg); - } - if (GET_CODE (usedreg) != REG) - return 0; - ureg = REGNO (usedreg); -- usize = REG_SIZE (usedreg); -+ if (ureg < FIRST_PSEUDO_REGISTER) -+ usize = HARD_REGNO_NREGS (ureg, GET_MODE (usedreg)); -+ else -+ usize = ((GET_MODE_SIZE (GET_MODE (usedreg)) -+ + (REGMODE_NATURAL_SIZE (GET_MODE (usedreg)) - 1)) -+ / REGMODE_NATURAL_SIZE (GET_MODE (usedreg))); - - while (GET_CODE (setreg) == SUBREG) - { - if (GET_MODE_SIZE (GET_MODE (SUBREG_REG (setreg))) > UNITS_PER_WORD) - may_save_copy = 0; -- offset -= SUBREG_WORD (setreg); -+ if (REGNO (SUBREG_REG (setreg)) < FIRST_PSEUDO_REGISTER) -+ offset -= SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (setreg)), -+ GET_MODE (SUBREG_REG (setreg)), -+ SUBREG_BYTE (setreg), -+ GET_MODE (setreg)); -+ else -+ offset -= (SUBREG_BYTE (usedreg) -+ / REGMODE_NATURAL_SIZE (GET_MODE (setreg))); - setreg = SUBREG_REG (setreg); - } - if (GET_CODE (setreg) != REG) - return 0; - sreg = REGNO (setreg); -- ssize = REG_SIZE (setreg); -+ if (sreg < FIRST_PSEUDO_REGISTER) -+ ssize = HARD_REGNO_NREGS (sreg, GET_MODE (setreg)); -+ else -+ ssize = ((GET_MODE_SIZE (GET_MODE (setreg)) -+ + (REGMODE_NATURAL_SIZE (GET_MODE (setreg)) - 1)) -+ / REGMODE_NATURAL_SIZE (GET_MODE (setreg))); - - /* If UREG is a pseudo-register that hasn't already been assigned a - quantity number, it means that it is not local to this block or dies -@@ -1834,7 +1858,11 @@ reg_is_born (reg, birth) - register int regno; - - if (GET_CODE (reg) == SUBREG) -- regno = REGNO (SUBREG_REG (reg)) + SUBREG_WORD (reg); -+ { -+ regno = REGNO (SUBREG_REG (reg)); -+ if (regno < FIRST_PSEUDO_REGISTER) -+ regno = subreg_hard_regno (reg, 1); -+ } - else - regno = REGNO (reg); - ---- gcc/recog.c.jj Mon Jul 31 20:02:12 2000 -+++ gcc/recog.c Mon Jul 31 20:46:25 2000 -@@ -510,15 +510,10 @@ validate_replace_rtx_1 (loc, from, to, o - && ! MEM_VOLATILE_P (to) - && GET_MODE_SIZE (GET_MODE (x)) <= GET_MODE_SIZE (GET_MODE (to))) - { -- int offset = SUBREG_WORD (x) * UNITS_PER_WORD; -+ int offset = SUBREG_BYTE (x); - enum machine_mode mode = GET_MODE (x); - rtx new; - -- if (BYTES_BIG_ENDIAN) -- offset += (MIN (UNITS_PER_WORD, -- GET_MODE_SIZE (GET_MODE (SUBREG_REG (x)))) -- - MIN (UNITS_PER_WORD, GET_MODE_SIZE (mode))); -- - new = gen_rtx_MEM (mode, plus_constant (XEXP (to, 0), offset)); - MEM_COPY_ATTRIBUTES (new, to); - validate_change (object, loc, new, 1); -@@ -567,8 +562,8 @@ validate_replace_rtx_1 (loc, from, to, o - int offset = pos / BITS_PER_UNIT; - rtx newmem; - -- /* If the bytes and bits are counted differently, we -- must adjust the offset. */ -+ /* If the bytes and bits are counted differently, we -+ must adjust the offset. */ - if (BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN) - offset = (GET_MODE_SIZE (is_mode) - GET_MODE_SIZE (wanted_mode) - - offset); -@@ -897,7 +892,6 @@ general_operand (op, mode) - enum machine_mode mode; - { - register enum rtx_code code = GET_CODE (op); -- int mode_altering_drug = 0; - - if (mode == VOIDmode) - mode = GET_MODE (op); -@@ -935,11 +929,6 @@ general_operand (op, mode) - - op = SUBREG_REG (op); - code = GET_CODE (op); --#if 0 -- /* No longer needed, since (SUBREG (MEM...)) -- will load the MEM into a reload reg in the MEM's own mode. */ -- mode_altering_drug = 1; --#endif - } - - if (code == REG) -@@ -970,8 +959,6 @@ general_operand (op, mode) - return 0; - - win: -- if (mode_altering_drug) -- return ! mode_dependent_address_p (XEXP (op, 0)); - return 1; - } - -@@ -1301,13 +1288,9 @@ indirect_operand (op, mode) - if (! reload_completed - && GET_CODE (op) == SUBREG && GET_CODE (SUBREG_REG (op)) == MEM) - { -- register int offset = SUBREG_WORD (op) * UNITS_PER_WORD; -+ register int offset = SUBREG_BYTE (op); - rtx inner = SUBREG_REG (op); - -- if (BYTES_BIG_ENDIAN) -- offset -= (MIN (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (op))) -- - MIN (UNITS_PER_WORD, GET_MODE_SIZE (GET_MODE (inner)))); -- - if (mode != VOIDmode && GET_MODE (op) != mode) - return 0; - -@@ -2277,7 +2260,10 @@ constrain_operands (strict) - { - if (GET_CODE (SUBREG_REG (op)) == REG - && REGNO (SUBREG_REG (op)) < FIRST_PSEUDO_REGISTER) -- offset = SUBREG_WORD (op); -+ offset = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (op)), -+ GET_MODE (SUBREG_REG (op)), -+ SUBREG_BYTE (op), -+ GET_MODE (op)); - op = SUBREG_REG (op); - } - ---- gcc/reg-stack.c.jj Thu Jul 27 19:46:44 2000 -+++ gcc/reg-stack.c Mon Jul 31 20:46:25 2000 -@@ -562,7 +562,11 @@ get_true_reg (pat) - rtx subreg; - if (FP_REG_P (subreg = SUBREG_REG (*pat))) - { -- *pat = FP_MODE_REG (REGNO (subreg) + SUBREG_WORD (*pat), -+ int regno_off = SUBREG_REGNO_OFFSET (REGNO (subreg), -+ GET_MODE (subreg), -+ SUBREG_BYTE (*pat), -+ GET_MODE (*pat)); -+ *pat = FP_MODE_REG (REGNO (subreg) + regno_off, - GET_MODE (subreg)); - default: - return pat; ---- gcc/regmove.c.jj Mon Jul 31 20:02:12 2000 -+++ gcc/regmove.c Mon Jul 31 20:46:25 2000 -@@ -706,7 +706,7 @@ optimize_reg_copy_3 (insn, dest, src) - - /* Now walk forward making additional replacements. We want to be able - to undo all the changes if a later substitution fails. */ -- subreg = gen_rtx_SUBREG (old_mode, src_reg, 0); -+ subreg = gen_lowpart_SUBREG (old_mode, src_reg); - while (p = NEXT_INSN (p), p != insn) - { - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') -@@ -1160,7 +1160,7 @@ regmove_optimize (f, nregs, regmove_dump - { - src_subreg - = gen_rtx_SUBREG (GET_MODE (SUBREG_REG (dst)), -- src, SUBREG_WORD (dst)); -+ src, SUBREG_BYTE (dst)); - dst = SUBREG_REG (dst); - } - if (GET_CODE (dst) != REG ---- gcc/regs.h.jj Wed Jun 14 07:08:00 2000 -+++ gcc/regs.h Mon Jul 31 20:46:25 2000 -@@ -24,12 +24,28 @@ Boston, MA 02111-1307, USA. */ - - #define REG_BYTES(R) mode_size[(int) GET_MODE (R)] - --/* Get the number of consecutive hard regs required to hold the REG rtx R. -+/* Get the number of consecutive hard regs required to hold the REG or -+ SUBREG rtx R. - When something may be an explicit hard reg, REG_SIZE is the only -- valid way to get this value. You cannot get it from the regno. */ -+ valid way to get this value. You cannot get it from the regno. - -+ A target may override this definition, the case where you would do -+ this is where there are registers which are smaller than WORD_SIZE -+ such as the SFmode registers on sparc64. */ -+ -+#ifndef REG_SIZE - #define REG_SIZE(R) \ - ((mode_size[(int) GET_MODE (R)] + UNITS_PER_WORD - 1) / UNITS_PER_WORD) -+#endif -+ -+/* When you only have the mode of a pseudo register before it has a hard -+ register chosen for it, this reports the size of each hard register -+ a pseudo in such a mode would get allocated to. Like REG_SIZE, a -+ target may override this. */ -+ -+#ifndef REGMODE_NATURAL_SIZE -+#define REGMODE_NATURAL_SIZE(MODE) UNITS_PER_WORD -+#endif - - #ifndef SMALL_REGISTER_CLASSES - #define SMALL_REGISTER_CLASSES 0 ---- gcc/reload.c.jj Mon Jul 31 20:02:12 2000 -+++ gcc/reload.c Mon Jul 31 20:54:15 2000 -@@ -902,13 +902,12 @@ push_reload (in, out, inloc, outloc, cla - - Finally, reload the inner expression if it is a register that is in - the class whose registers cannot be referenced in a different size -- and M1 is not the same size as M2. If SUBREG_WORD is nonzero, we -+ and M1 is not the same size as M2. If SUBREG_BYTE is nonzero, we - cannot reload just the inside since we might end up with the wrong - register class. But if it is inside a STRICT_LOW_PART, we have - no choice, so we hope we do get the right register class there. */ - - if (in != 0 && GET_CODE (in) == SUBREG -- && (SUBREG_WORD (in) == 0 || strict_low) - #ifdef CLASS_CANNOT_CHANGE_MODE - && class != CLASS_CANNOT_CHANGE_MODE - #endif -@@ -941,7 +940,7 @@ push_reload (in, out, inloc, outloc, cla - && REGNO (SUBREG_REG (in)) < FIRST_PSEUDO_REGISTER - /* The case where out is nonzero - is handled differently in the following statement. */ -- && (out == 0 || SUBREG_WORD (in) == 0) -+ && (out == 0 || SUBREG_BYTE (in) == 0) - && ((GET_MODE_SIZE (inmode) <= UNITS_PER_WORD - && (GET_MODE_SIZE (GET_MODE (SUBREG_REG (in))) - > UNITS_PER_WORD) -@@ -949,9 +948,7 @@ push_reload (in, out, inloc, outloc, cla - / UNITS_PER_WORD) - != HARD_REGNO_NREGS (REGNO (SUBREG_REG (in)), - GET_MODE (SUBREG_REG (in))))) -- || ! HARD_REGNO_MODE_OK ((REGNO (SUBREG_REG (in)) -- + SUBREG_WORD (in)), -- inmode))) -+ || ! HARD_REGNO_MODE_OK (SUBREG_REGNO (in), inmode))) - #ifdef SECONDARY_INPUT_RELOAD_CLASS - || (SECONDARY_INPUT_RELOAD_CLASS (class, inmode, in) != NO_REGS - && (SECONDARY_INPUT_RELOAD_CLASS (class, -@@ -991,15 +988,13 @@ push_reload (in, out, inloc, outloc, cla - that case. */ - - /* Similar issue for (SUBREG constant ...) if it was not handled by the -- code above. This can happen if SUBREG_WORD != 0. */ -+ code above. This can happen if SUBREG_BYTE != 0. */ - - if (in != 0 && GET_CODE (in) == SUBREG - && (CONSTANT_P (SUBREG_REG (in)) - || (GET_CODE (SUBREG_REG (in)) == REG - && REGNO (SUBREG_REG (in)) < FIRST_PSEUDO_REGISTER -- && (! HARD_REGNO_MODE_OK (REGNO (SUBREG_REG (in)) -- + SUBREG_WORD (in), -- inmode) -+ && (! HARD_REGNO_MODE_OK (SUBREG_REGNO (in), inmode) - || (GET_MODE_SIZE (inmode) <= UNITS_PER_WORD - && (GET_MODE_SIZE (GET_MODE (SUBREG_REG (in))) - > UNITS_PER_WORD) -@@ -1014,7 +1009,11 @@ push_reload (in, out, inloc, outloc, cla - RELOAD_OTHER, we are guaranteed that this inner reload will be - output before the outer reload. */ - push_reload (SUBREG_REG (in), NULL_RTX, &SUBREG_REG (in), NULL_PTR, -- find_valid_class (inmode, SUBREG_WORD (in)), -+ find_valid_class (inmode, -+ SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (in)), -+ GET_MODE (SUBREG_REG (in)), -+ SUBREG_BYTE (in), -+ GET_MODE (in))), - VOIDmode, VOIDmode, 0, 0, opnum, type); - dont_remove_subreg = 1; - } -@@ -1026,7 +1025,6 @@ push_reload (in, out, inloc, outloc, cla - (except in the case of STRICT_LOW_PART, - and in that case the constraint should label it input-output.) */ - if (out != 0 && GET_CODE (out) == SUBREG -- && (SUBREG_WORD (out) == 0 || strict_low) - #ifdef CLASS_CANNOT_CHANGE_MODE - && class != CLASS_CANNOT_CHANGE_MODE - #endif -@@ -1054,9 +1052,7 @@ push_reload (in, out, inloc, outloc, cla - / UNITS_PER_WORD) - != HARD_REGNO_NREGS (REGNO (SUBREG_REG (out)), - GET_MODE (SUBREG_REG (out))))) -- || ! HARD_REGNO_MODE_OK ((REGNO (SUBREG_REG (out)) -- + SUBREG_WORD (out)), -- outmode))) -+ || ! HARD_REGNO_MODE_OK (SUBREG_REGNO (out), outmode))) - #ifdef SECONDARY_OUTPUT_RELOAD_CLASS - || (SECONDARY_OUTPUT_RELOAD_CLASS (class, outmode, out) != NO_REGS - && (SECONDARY_OUTPUT_RELOAD_CLASS (class, -@@ -1096,8 +1092,7 @@ push_reload (in, out, inloc, outloc, cla - if (out != 0 && GET_CODE (out) == SUBREG - && GET_CODE (SUBREG_REG (out)) == REG - && REGNO (SUBREG_REG (out)) < FIRST_PSEUDO_REGISTER -- && (! HARD_REGNO_MODE_OK (REGNO (SUBREG_REG (out)) + SUBREG_WORD (out), -- outmode) -+ && (! HARD_REGNO_MODE_OK (SUBREG_REGNO (out), outmode) - || (GET_MODE_SIZE (outmode) <= UNITS_PER_WORD - && (GET_MODE_SIZE (GET_MODE (SUBREG_REG (out))) - > UNITS_PER_WORD) -@@ -1114,7 +1109,11 @@ push_reload (in, out, inloc, outloc, cla - dont_remove_subreg = 1; - push_reload (SUBREG_REG (out), SUBREG_REG (out), &SUBREG_REG (out), - &SUBREG_REG (out), -- find_valid_class (outmode, SUBREG_WORD (out)), -+ find_valid_class (outmode, -+ SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (out)), -+ GET_MODE (SUBREG_REG (out)), -+ SUBREG_BYTE (out), -+ GET_MODE (out))), - VOIDmode, VOIDmode, 0, 0, - opnum, RELOAD_OTHER); - } -@@ -1131,16 +1130,14 @@ push_reload (in, out, inloc, outloc, cla - if (in != 0 && GET_CODE (in) == SUBREG && GET_CODE (SUBREG_REG (in)) == REG - && REGNO (SUBREG_REG (in)) < FIRST_PSEUDO_REGISTER - && ! dont_remove_subreg) -- in = gen_rtx_REG (GET_MODE (in), -- REGNO (SUBREG_REG (in)) + SUBREG_WORD (in)); -+ in = gen_rtx_REG (GET_MODE (in), SUBREG_REGNO (in)); - - /* Similarly for OUT. */ - if (out != 0 && GET_CODE (out) == SUBREG - && GET_CODE (SUBREG_REG (out)) == REG - && REGNO (SUBREG_REG (out)) < FIRST_PSEUDO_REGISTER - && ! dont_remove_subreg) -- out = gen_rtx_REG (GET_MODE (out), -- REGNO (SUBREG_REG (out)) + SUBREG_WORD (out)); -+ out = gen_rtx_REG (GET_MODE (out), SUBREG_REGNO (out)); - - /* Narrow down the class of register wanted if that is - desirable on this machine for efficiency. */ -@@ -1790,15 +1787,28 @@ find_dummy_reload (real_in, real_out, in - || GET_MODE_SIZE (inmode) > UNITS_PER_WORD)) - return 0; - -+ /* Note that {in,out}_offset are needed only when 'in' or 'out' -+ respectively refers to a hard register. */ -+ - /* Find the inside of any subregs. */ - while (GET_CODE (out) == SUBREG) - { -- out_offset = SUBREG_WORD (out); -+ if (GET_CODE (SUBREG_REG (out)) == REG -+ && REGNO (SUBREG_REG (out)) < FIRST_PSEUDO_REGISTER) -+ out_offset += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (out)), -+ GET_MODE (SUBREG_REG (out)), -+ SUBREG_BYTE (out), -+ GET_MODE (out)); - out = SUBREG_REG (out); - } - while (GET_CODE (in) == SUBREG) - { -- in_offset = SUBREG_WORD (in); -+ if (GET_CODE (SUBREG_REG (in)) == REG -+ && REGNO (SUBREG_REG (in)) < FIRST_PSEUDO_REGISTER) -+ in_offset += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (in)), -+ GET_MODE (SUBREG_REG (in)), -+ SUBREG_BYTE (in), -+ GET_MODE (in)); - in = SUBREG_REG (in); - } - -@@ -2015,7 +2025,10 @@ operands_match_p (x, y) - i = REGNO (SUBREG_REG (x)); - if (i >= FIRST_PSEUDO_REGISTER) - goto slow; -- i += SUBREG_WORD (x); -+ i += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (x)), -+ GET_MODE (SUBREG_REG (x)), -+ SUBREG_BYTE (x), -+ GET_MODE (x)); - } - else - i = REGNO (x); -@@ -2025,7 +2038,10 @@ operands_match_p (x, y) - j = REGNO (SUBREG_REG (y)); - if (j >= FIRST_PSEUDO_REGISTER) - goto slow; -- j += SUBREG_WORD (y); -+ j += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (y)), -+ GET_MODE (SUBREG_REG (y)), -+ SUBREG_BYTE (y), -+ GET_MODE (y)); - } - else - j = REGNO (y); -@@ -2754,7 +2770,18 @@ find_reloads (insn, replace, ind_levels, - - while (GET_CODE (operand) == SUBREG) - { -- offset += SUBREG_WORD (operand); -+ /* Offset only matters when operand is a REG and -+ it is a hard reg. This is because it is passed -+ to reg_fits_class_p if it is a REG and all pseudos -+ return 0 from that function. */ -+ if (GET_CODE (SUBREG_REG (operand)) == REG -+ && REGNO (SUBREG_REG (operand)) < FIRST_PSEUDO_REGISTER) -+ { -+ offset += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (operand)), -+ GET_MODE (SUBREG_REG (operand)), -+ SUBREG_BYTE (operand), -+ GET_MODE (operand)); -+ } - operand = SUBREG_REG (operand); - /* Force reload if this is a constant or PLUS or if there may - be a problem accessing OPERAND in the outer mode. */ -@@ -2805,6 +2832,11 @@ find_reloads (insn, replace, ind_levels, - ) - #endif - ) -+ /* This following hunk of code should no longer be -+ needed at all with SUBREG_BYTE. If you need this -+ code back, please explain to me why so I can -+ fix the real problem. -DaveM */ -+#if 0 - /* Subreg of a hard reg which can't handle the subreg's mode - or which would handle that mode in the wrong number of - registers for subregging to work. */ -@@ -2818,7 +2850,9 @@ find_reloads (insn, replace, ind_levels, - != HARD_REGNO_NREGS (REGNO (operand), - GET_MODE (operand)))) - || ! HARD_REGNO_MODE_OK (REGNO (operand) + offset, -- operand_mode[i])))) -+ operand_mode[i]))) -+#endif -+ ) - force_reload = 1; - } - -@@ -3686,7 +3720,7 @@ find_reloads (insn, replace, ind_levels, - rtx operand = recog_data.operand[i]; - - while (GET_CODE (operand) == SUBREG) -- operand = XEXP (operand, 0); -+ operand = SUBREG_REG (operand); - if ((GET_CODE (operand) == MEM - || (GET_CODE (operand) == REG - && REGNO (operand) >= FIRST_PSEUDO_REGISTER)) -@@ -3736,7 +3770,7 @@ find_reloads (insn, replace, ind_levels, - operand = *recog_data.operand_loc[i]; - - while (GET_CODE (operand) == SUBREG) -- operand = XEXP (operand, 0); -+ operand = SUBREG_REG (operand); - if (GET_CODE (operand) == REG) - { - if (modified[i] != RELOAD_WRITE) -@@ -3759,7 +3793,7 @@ find_reloads (insn, replace, ind_levels, - rtx operand = recog_data.operand[i]; - - while (GET_CODE (operand) == SUBREG) -- operand = XEXP (operand, 0); -+ operand = SUBREG_REG (operand); - if ((GET_CODE (operand) == MEM - || (GET_CODE (operand) == REG - && REGNO (operand) >= FIRST_PSEUDO_REGISTER)) -@@ -4275,7 +4309,7 @@ find_reloads_toplev (x, opnum, type, ind - && regno >= FIRST_PSEUDO_REGISTER && reg_renumber[regno] < 0 - && reg_equiv_constant[regno] != 0 - && (tem = operand_subword (reg_equiv_constant[regno], -- SUBREG_WORD (x), 0, -+ SUBREG_BYTE (x) / UNITS_PER_WORD, 0, - GET_MODE (SUBREG_REG (x)))) != 0) - { - /* TEM is now a word sized constant for the bits from X that -@@ -4301,7 +4335,7 @@ find_reloads_toplev (x, opnum, type, ind - && (GET_MODE_SIZE (GET_MODE (x)) - < GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))))) - { -- int shift = SUBREG_WORD (x) * BITS_PER_WORD; -+ int shift = SUBREG_BYTE (x) * BITS_PER_UNIT; - if (WORDS_BIG_ENDIAN) - shift = (GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (x))) - - GET_MODE_BITSIZE (GET_MODE (x)) -@@ -4357,11 +4391,19 @@ find_reloads_toplev (x, opnum, type, ind - - if (is_set_dest) - push_reload (NULL_RTX, SUBREG_REG (x), NULL_PTR, &SUBREG_REG (x), -- find_valid_class (subreg_mode, SUBREG_WORD (x)), -+ find_valid_class (subreg_mode, -+ SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (x)), -+ GET_MODE (SUBREG_REG (x)), -+ SUBREG_BYTE (x), -+ GET_MODE (x))), - VOIDmode, subreg_mode, 0, 0, opnum, type); - else - push_reload (SUBREG_REG (x), NULL_RTX, &SUBREG_REG (x), NULL_PTR, -- find_valid_class (subreg_mode, SUBREG_WORD (x)), -+ find_valid_class (subreg_mode, -+ SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (x)), -+ GET_MODE (SUBREG_REG (x)), -+ SUBREG_BYTE (x), -+ GET_MODE (x))), - subreg_mode, VOIDmode, 0, 0, opnum, type); - } - -@@ -5017,7 +5059,11 @@ find_reloads_address_1 (mode, x, context - code0 = GET_CODE (op0); - if (code0 == REG && REGNO (op0) < FIRST_PSEUDO_REGISTER) - op0 = gen_rtx_REG (word_mode, -- REGNO (op0) + SUBREG_WORD (orig_op0)); -+ (REGNO (op0) + -+ SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (orig_op0)), -+ GET_MODE (SUBREG_REG (orig_op0)), -+ SUBREG_BYTE (orig_op0), -+ GET_MODE (orig_op0)))); - } - - if (GET_CODE (op1) == SUBREG) -@@ -5025,8 +5071,14 @@ find_reloads_address_1 (mode, x, context - op1 = SUBREG_REG (op1); - code1 = GET_CODE (op1); - if (code1 == REG && REGNO (op1) < FIRST_PSEUDO_REGISTER) -+ /* ??? Why is this given op1's mode and above for -+ ??? op0 SUBREGs we use word_mode? */ - op1 = gen_rtx_REG (GET_MODE (op1), -- REGNO (op1) + SUBREG_WORD (orig_op1)); -+ (REGNO (op1) + -+ SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (orig_op1)), -+ GET_MODE (SUBREG_REG (orig_op1)), -+ SUBREG_BYTE (orig_op1), -+ GET_MODE (orig_op1)))); - } - - if (code0 == MULT || code0 == SIGN_EXTEND || code0 == TRUNCATE -@@ -5439,7 +5491,7 @@ find_reloads_address_1 (mode, x, context - needless copies if SUBREG_REG is multi-word. */ - if (REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER) - { -- int regno = REGNO (SUBREG_REG (x)) + SUBREG_WORD (x); -+ int regno = SUBREG_REGNO (x); - - if (! (context ? REGNO_OK_FOR_INDEX_P (regno) - : REGNO_MODE_OK_FOR_BASE_P (regno, mode))) -@@ -5609,17 +5661,8 @@ find_reloads_subreg_address (x, force_re - if (force_replace - || ! rtx_equal_p (tem, reg_equiv_mem[regno])) - { -- int offset = SUBREG_WORD (x) * UNITS_PER_WORD; -- -- if (BYTES_BIG_ENDIAN) -- { -- int size; -+ int offset = SUBREG_BYTE (x); - -- size = GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))); -- offset += MIN (size, UNITS_PER_WORD); -- size = GET_MODE_SIZE (GET_MODE (x)); -- offset -= MIN (size, UNITS_PER_WORD); -- } - XEXP (tem, 0) = plus_constant (XEXP (tem, 0), offset); - PUT_MODE (tem, GET_MODE (x)); - find_reloads_address (GET_MODE (tem), &tem, XEXP (tem, 0), -@@ -5673,8 +5716,18 @@ subst_reloads () - *r->subreg_loc = SUBREG_REG (reloadreg); - else - { -+ int final_offset = -+ SUBREG_BYTE (*r->subreg_loc) + SUBREG_BYTE (reloadreg); -+ -+ /* When working with SUBREGs the rule is that the byte -+ offset must be a multiple of the SUBREG's mode. */ -+ final_offset = (final_offset / -+ GET_MODE_SIZE (GET_MODE (*r->subreg_loc))); -+ final_offset = (final_offset * -+ GET_MODE_SIZE (GET_MODE (*r->subreg_loc))); -+ - *r->where = SUBREG_REG (reloadreg); -- SUBREG_WORD (*r->subreg_loc) += SUBREG_WORD (reloadreg); -+ SUBREG_BYTE (*r->subreg_loc) = final_offset; - } - } - else -@@ -5775,12 +5828,24 @@ find_replacement (loc) - - if (GET_CODE (reloadreg) == REG) - return gen_rtx_REG (GET_MODE (*loc), -- REGNO (reloadreg) + SUBREG_WORD (*loc)); -+ (REGNO (reloadreg) + -+ SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (*loc)), -+ GET_MODE (SUBREG_REG (*loc)), -+ SUBREG_BYTE (*loc), -+ GET_MODE (*loc)))); - else if (GET_MODE (reloadreg) == GET_MODE (*loc)) - return reloadreg; - else -- return gen_rtx_SUBREG (GET_MODE (*loc), SUBREG_REG (reloadreg), -- SUBREG_WORD (reloadreg) + SUBREG_WORD (*loc)); -+ { -+ int final_offset = SUBREG_BYTE (reloadreg) + SUBREG_BYTE (*loc); -+ -+ /* When working with SUBREGs the rule is that the byte -+ offset must be a multiple of the SUBREG's mode. */ -+ final_offset = (final_offset / GET_MODE_SIZE (GET_MODE (*loc))); -+ final_offset = (final_offset * GET_MODE_SIZE (GET_MODE (*loc))); -+ return gen_rtx_SUBREG (GET_MODE (*loc), SUBREG_REG (reloadreg), -+ final_offset); -+ } - } - } - -@@ -5857,7 +5922,7 @@ refers_to_regno_for_reload_p (regno, end - if (GET_CODE (SUBREG_REG (x)) == REG - && REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER) - { -- unsigned int inner_regno = REGNO (SUBREG_REG (x)) + SUBREG_WORD (x); -+ unsigned int inner_regno = SUBREG_REGNO (x); - unsigned int inner_endregno - = inner_regno + (inner_regno < FIRST_PSEUDO_REGISTER - ? HARD_REGNO_NREGS (regno, GET_MODE (x)) : 1); -@@ -5952,7 +6017,10 @@ reg_overlap_mentioned_for_reload_p (x, i - { - regno = REGNO (SUBREG_REG (x)); - if (regno < FIRST_PSEUDO_REGISTER) -- regno += SUBREG_WORD (x); -+ regno += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (x)), -+ GET_MODE (SUBREG_REG (x)), -+ SUBREG_BYTE (x), -+ GET_MODE (x)); - } - else if (GET_CODE (x) == REG) - { ---- gcc/reload1.c.jj Mon Jul 31 20:02:12 2000 -+++ gcc/reload1.c Mon Jul 31 20:46:25 2000 -@@ -2436,7 +2436,7 @@ eliminate_regs (x, mem_mode, insn) - return x; - - case SUBREG: -- /* Similar to above processing, but preserve SUBREG_WORD. -+ /* Similar to above processing, but preserve SUBREG_BYTE. - Convert (subreg (mem)) to (mem) if not paradoxical. - Also, if we have a non-paradoxical (subreg (pseudo)) and the - pseudo didn't get a hard reg, we must replace this with the -@@ -2453,7 +2453,7 @@ eliminate_regs (x, mem_mode, insn) - else - new = eliminate_regs (SUBREG_REG (x), mem_mode, insn); - -- if (new != XEXP (x, 0)) -+ if (new != SUBREG_REG (x)) - { - int x_size = GET_MODE_SIZE (GET_MODE (x)); - int new_size = GET_MODE_SIZE (GET_MODE (new)); -@@ -2474,20 +2474,15 @@ eliminate_regs (x, mem_mode, insn) - || (x_size == new_size)) - ) - { -- int offset = SUBREG_WORD (x) * UNITS_PER_WORD; -+ int offset = SUBREG_BYTE (x); - enum machine_mode mode = GET_MODE (x); - -- if (BYTES_BIG_ENDIAN) -- offset += (MIN (UNITS_PER_WORD, -- GET_MODE_SIZE (GET_MODE (new))) -- - MIN (UNITS_PER_WORD, GET_MODE_SIZE (mode))); -- - PUT_MODE (new, mode); - XEXP (new, 0) = plus_constant (XEXP (new, 0), offset); - return new; - } - else -- return gen_rtx_SUBREG (GET_MODE (x), new, SUBREG_WORD (x)); -+ return gen_rtx_SUBREG (GET_MODE (x), new, SUBREG_BYTE (x)); - } - - return x; -@@ -4006,10 +4001,14 @@ forget_old_reloads_1 (x, ignored, data) - unsigned int nr; - int offset = 0; - -- /* note_stores does give us subregs of hard regs. */ -+ /* note_stores does give us subregs of hard regs, -+ SUBREG_REGNO_OFFSET will abort if it is not a hard reg. */ - while (GET_CODE (x) == SUBREG) - { -- offset += SUBREG_WORD (x); -+ offset += SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (x)), -+ GET_MODE (SUBREG_REG (x)), -+ SUBREG_BYTE (x), -+ GET_MODE (x)); - x = SUBREG_REG (x); - } - -@@ -5266,7 +5265,7 @@ choose_reload_regs (chain) - - if (inheritance) - { -- int word = 0; -+ int byte = 0; - register int regno = -1; - enum machine_mode mode = VOIDmode; - -@@ -5285,10 +5284,10 @@ choose_reload_regs (chain) - else if (GET_CODE (rld[r].in_reg) == SUBREG - && GET_CODE (SUBREG_REG (rld[r].in_reg)) == REG) - { -- word = SUBREG_WORD (rld[r].in_reg); -+ byte = SUBREG_BYTE (rld[r].in_reg); - regno = REGNO (SUBREG_REG (rld[r].in_reg)); - if (regno < FIRST_PSEUDO_REGISTER) -- regno += word; -+ regno = SUBREG_REGNO (rld[r].in_reg); - mode = GET_MODE (rld[r].in_reg); - } - #ifdef AUTO_INC_DEC -@@ -5309,7 +5308,7 @@ choose_reload_regs (chain) - that can invalidate an inherited reload of part of a pseudoreg. */ - else if (GET_CODE (rld[r].in) == SUBREG - && GET_CODE (SUBREG_REG (rld[r].in)) == REG) -- regno = REGNO (SUBREG_REG (rld[r].in)) + SUBREG_WORD (rld[r].in); -+ regno = SUBREG_REGNO (rld[r].in); - #endif - - if (regno >= 0 && reg_last_reload_reg[regno] != 0) -@@ -5318,10 +5317,14 @@ choose_reload_regs (chain) - rtx last_reg = reg_last_reload_reg[regno]; - enum machine_mode need_mode; - -- i = REGNO (last_reg) + word; -+ i = REGNO (last_reg) -+ + SUBREG_REGNO_OFFSET (REGNO (last_reg), -+ GET_MODE (last_reg), -+ byte, mode); -+ - last_class = REGNO_REG_CLASS (i); - -- need_mode = smallest_mode_for_size ((word+1) * UNITS_PER_WORD, -+ need_mode = smallest_mode_for_size (byte + UNITS_PER_WORD, - GET_MODE_CLASS (mode)); - - if ( -@@ -5488,7 +5491,7 @@ choose_reload_regs (chain) - Make a new REG since this might be used in an - address and not all machines support SUBREGs - there. */ -- regno = REGNO (SUBREG_REG (equiv)) + SUBREG_WORD (equiv); -+ regno = SUBREG_REGNO (equiv); - equiv = gen_rtx_REG (rld[r].mode, regno); - } - else -@@ -6102,7 +6105,7 @@ emit_input_reload_insns (chain, rl, old, - oldequiv = SUBREG_REG (oldequiv); - if (GET_MODE (oldequiv) != VOIDmode - && mode != GET_MODE (oldequiv)) -- oldequiv = gen_rtx_SUBREG (mode, oldequiv, 0); -+ oldequiv = gen_lowpart_SUBREG (mode, oldequiv); - - /* Switch to the right place to emit the reload insns. */ - switch (rl->when_needed) -@@ -8637,7 +8640,10 @@ reload_combine_note_store (dst, set, dat - - if (GET_CODE (dst) == SUBREG) - { -- regno = SUBREG_WORD (dst); -+ regno = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (dst)), -+ GET_MODE (SUBREG_REG (dst)), -+ SUBREG_BYTE (dst), -+ GET_MODE (dst)); - dst = SUBREG_REG (dst); - } - if (GET_CODE (dst) != REG) -@@ -9020,7 +9026,10 @@ move2add_note_store (dst, set, data) - - if (GET_CODE (dst) == SUBREG) - { -- regno = SUBREG_WORD (dst); -+ regno = SUBREG_REGNO_OFFSET (REGNO (SUBREG_REG (dst)), -+ GET_MODE (SUBREG_REG (dst)), -+ SUBREG_BYTE (dst), -+ GET_MODE (dst)); - dst = SUBREG_REG (dst); - } - ---- gcc/rtl.texi.jj Mon Jul 31 20:02:12 2000 -+++ gcc/rtl.texi Mon Jul 31 20:46:25 2000 -@@ -1138,16 +1138,16 @@ This virtual register is replaced by the - @end table - - @findex subreg --@item (subreg:@var{m} @var{reg} @var{wordnum}) -+@item (subreg:@var{m} @var{reg} @var{bytenum}) - @code{subreg} expressions are used to refer to a register in a machine - mode other than its natural one, or to refer to one register of --a multi-word @code{reg} that actually refers to several registers. -+a multi-part @code{reg} that actually refers to several registers. - - Each pseudo-register has a natural mode. If it is necessary to - operate on it in a different mode---for example, to perform a fullword - move instruction on a pseudo-register that contains a single - byte---the pseudo-register must be enclosed in a @code{subreg}. In --such a case, @var{wordnum} is zero. -+such a case, @var{bytenum} is zero. - - Usually @var{m} is at least as narrow as the mode of @var{reg}, in which - case it is restricting consideration to only the bits of @var{reg} that -@@ -1164,7 +1164,7 @@ a multi-register value. Machine modes s - @code{TImode} can indicate values longer than a word, values which - usually require two or more consecutive registers. To access one of the - registers, use a @code{subreg} with mode @code{SImode} and a --@var{wordnum} that says which register. -+@var{bytenum} offset that says which register. - - Storing in a non-paradoxical @code{subreg} has undefined results for - bits belonging to the same word as the @code{subreg}. This laxity makes -@@ -1174,8 +1174,13 @@ the @code{subreg}, use @code{strict_low_ - - @cindex @code{WORDS_BIG_ENDIAN}, effect on @code{subreg} - The compilation parameter @code{WORDS_BIG_ENDIAN}, if set to 1, says --that word number zero is the most significant part; otherwise, it is --the least significant part. -+that byte number zero is part of the most significant word; otherwise, -+it is part of the least significant word. -+ -+@cindex @code{BYTES_BIG_ENDIAN}, effect on @code{subreg} -+The compilation parameter @code{BYTES_BIG_ENDIAN}, if set to 1, says -+that byte number zero is the most significant byte within a word; -+otherwise, it is the least significant byte within a word. - - @cindex @code{FLOAT_WORDS_BIG_ENDIAN}, (lack of) effect on @code{subreg} - On a few targets, @code{FLOAT_WORDS_BIG_ENDIAN} disagrees with -@@ -1211,10 +1216,10 @@ a single machine register. The reload p - expressions such as these from being formed. - - @findex SUBREG_REG --@findex SUBREG_WORD -+@findex SUBREG_BYTE - The first operand of a @code{subreg} expression is customarily accessed - with the @code{SUBREG_REG} macro and the second operand is customarily --accessed with the @code{SUBREG_WORD} macro. -+accessed with the @code{SUBREG_BYTE} macro. - - @findex scratch - @cindex scratch operands ---- gcc/rtlanal.c.jj Mon Jul 31 20:05:04 2000 -+++ gcc/rtlanal.c Mon Jul 31 20:46:25 2000 -@@ -976,7 +976,7 @@ refers_to_regno_p (regno, endregno, x, l - if (GET_CODE (SUBREG_REG (x)) == REG - && REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER) - { -- unsigned int inner_regno = REGNO (SUBREG_REG (x)) + SUBREG_WORD (x); -+ unsigned int inner_regno = SUBREG_REGNO (x); - unsigned int inner_endregno - = inner_regno + (inner_regno < FIRST_PSEUDO_REGISTER - ? HARD_REGNO_NREGS (regno, GET_MODE (x)) : 1); -@@ -1063,7 +1063,7 @@ reg_overlap_mentioned_p (x, in) - case SUBREG: - regno = REGNO (SUBREG_REG (x)); - if (regno < FIRST_PSEUDO_REGISTER) -- regno += SUBREG_WORD (x); -+ regno = SUBREG_REGNO (x); - goto do_reg; - - case REG: -@@ -2065,18 +2065,32 @@ replace_regs (x, reg_map, nregs, replace - return map_inner; - else - { -+ int final_offset = SUBREG_BYTE (x) + SUBREG_BYTE (map_val); -+ -+ /* When working with REG SUBREGs the rule is that the byte -+ offset must be a multiple of the SUBREG's mode. */ -+ final_offset = (final_offset / GET_MODE_SIZE (GET_MODE (x))); -+ final_offset = (final_offset * GET_MODE_SIZE (GET_MODE (x))); -+ - /* We cannot call gen_rtx here since we may be linked with - genattrtab.c. */ - /* Let's try clobbering the incoming SUBREG and see - if this is really safe. */ - SUBREG_REG (x) = map_inner; -- SUBREG_WORD (x) += SUBREG_WORD (map_val); -+ SUBREG_BYTE (x) = final_offset; - return x; - #if 0 - rtx new = rtx_alloc (SUBREG); -+ int final_offset = SUBREG_BYTE (x) + SUBREG_BYTE (map_val); -+ -+ /* When working with REG SUBREGs the rule is that the byte -+ offset must be a multiple of the SUBREG's mode. */ -+ final_offset = (final_offset / GET_MODE_SIZE (GET_MODE (x))); -+ final_offset = (final_offset * GET_MODE_SIZE (GET_MODE (x))); -+ - PUT_MODE (new, GET_MODE (x)); - SUBREG_REG (new) = map_inner; -- SUBREG_WORD (new) = SUBREG_WORD (x) + SUBREG_WORD (map_val); -+ SUBREG_BYTE (new) = final_offset; - #endif - } - } ---- gcc/sdbout.c.jj Wed Jun 7 08:41:06 2000 -+++ gcc/sdbout.c Mon Jul 31 20:46:25 2000 -@@ -830,19 +830,15 @@ sdbout_symbol (decl, local) - else if (GET_CODE (value) == SUBREG) - { - int offset = 0; -+ - while (GET_CODE (value) == SUBREG) -- { -- offset += SUBREG_WORD (value); -- value = SUBREG_REG (value); -- } -+ value = SUBREG_REG (value); - if (GET_CODE (value) == REG) - { -- regno = REGNO (value); -- if (regno >= FIRST_PSEUDO_REGISTER) -+ if (REGNO (value) >= FIRST_PSEUDO_REGISTER) - return; -- regno += offset; - } -- alter_subreg (DECL_RTL (decl)); -+ regno = REGNO (alter_subreg (DECL_RTL (decl))); - value = DECL_RTL (decl); - } - /* Don't output anything if an auto variable ---- gcc/tm.texi.jj Mon Jul 31 20:02:13 2000 -+++ gcc/tm.texi Mon Jul 31 20:46:25 2000 -@@ -1539,17 +1539,6 @@ definition of this macro is - / UNITS_PER_WORD) - @end smallexample - --@findex ALTER_HARD_SUBREG --@item ALTER_HARD_SUBREG (@var{tgt_mode}, @var{word}, @var{src_mode}, @var{regno}) --A C expression that returns an adjusted hard register number for -- --@smallexample --(subreg:@var{tgt_mode} (reg:@var{src_mode} @var{regno}) @var{word}) --@end smallexample -- --This may be needed if the target machine has mixed sized big-endian --registers, like Sparc v9. -- - @findex HARD_REGNO_MODE_OK - @item HARD_REGNO_MODE_OK (@var{regno}, @var{mode}) - A C expression that is nonzero if it is permissible to store a value ---- gcc/calls.c.jj Mon Jul 31 20:02:09 2000 -+++ gcc/calls.c Mon Jul 31 20:46:25 2000 -@@ -1452,6 +1452,8 @@ precompute_arguments (flags, num_actuals - if ((flags & (ECF_CONST | ECF_PURE)) - || calls_function (args[i].tree_value, !ACCUMULATE_OUTGOING_ARGS)) - { -+ enum machine_mode mode; -+ - /* If this is an addressable type, we cannot pre-evaluate it. */ - if (TREE_ADDRESSABLE (TREE_TYPE (args[i].tree_value))) - abort (); -@@ -1471,11 +1473,13 @@ precompute_arguments (flags, num_actuals - args[i].initial_value = args[i].value - = protect_from_queue (args[i].value, 0); - -- if (TYPE_MODE (TREE_TYPE (args[i].tree_value)) != args[i].mode) -+ mode = TYPE_MODE (TREE_TYPE (args[i].tree_value)); -+ -+ if (mode != args[i].mode) - { -+ - args[i].value -- = convert_modes (args[i].mode, -- TYPE_MODE (TREE_TYPE (args[i].tree_value)), -+ = convert_modes (args[i].mode, mode, - args[i].value, args[i].unsignedp); - #ifdef PROMOTE_FOR_CALL_ONLY - /* CSE will replace this only if it contains args[i].value -@@ -1485,8 +1489,7 @@ precompute_arguments (flags, num_actuals - && GET_MODE_CLASS (args[i].mode) == MODE_INT) - { - args[i].initial_value -- = gen_rtx_SUBREG (TYPE_MODE (TREE_TYPE (args[i].tree_value)), -- args[i].value, 0); -+ = gen_lowpart_SUBREG (mode, args[i].value); - SUBREG_PROMOTED_VAR_P (args[i].initial_value) = 1; - SUBREG_PROMOTED_UNSIGNED_P (args[i].initial_value) - = args[i].unsignedp; -@@ -3256,13 +3259,25 @@ expand_call (exp, target, ignore) - { - tree type = TREE_TYPE (exp); - int unsignedp = TREE_UNSIGNED (type); -+ int offset = 0; - - /* If we don't promote as expected, something is wrong. */ - if (GET_MODE (target) - != promote_mode (type, TYPE_MODE (type), &unsignedp, 1)) - abort (); - -- target = gen_rtx_SUBREG (TYPE_MODE (type), target, 0); -+ if ((WORDS_BIG_ENDIAN || BYTES_BIG_ENDIAN) -+ && GET_MODE_SIZE (GET_MODE (target)) -+ > GET_MODE_SIZE (TYPE_MODE (type))) -+ { -+ offset = GET_MODE_SIZE (GET_MODE (target)) -+ - GET_MODE_SIZE (TYPE_MODE (type)); -+ if (! BYTES_BIG_ENDIAN) -+ offset = (offset / UNITS_PER_WORD) * UNITS_PER_WORD; -+ else if (! WORDS_BIG_ENDIAN) -+ offset %= UNITS_PER_WORD; -+ } -+ target = gen_rtx_SUBREG (TYPE_MODE (type), target, offset); - SUBREG_PROMOTED_VAR_P (target) = 1; - SUBREG_PROMOTED_UNSIGNED_P (target) = unsignedp; - } ---- gcc/resource.c.jj Mon Jul 31 20:02:12 2000 -+++ gcc/resource.c Mon Jul 31 20:46:25 2000 -@@ -99,7 +99,7 @@ update_live_status (dest, x, data) - return; - - if (GET_CODE (dest) == SUBREG) -- first_regno = REGNO (SUBREG_REG (dest)) + SUBREG_WORD (dest); -+ first_regno = SUBREG_REGNO (dest); - else - first_regno = REGNO (dest); - -@@ -208,7 +208,7 @@ mark_referenced_resources (x, res, inclu - mark_referenced_resources (SUBREG_REG (x), res, 0); - else - { -- unsigned int regno = REGNO (SUBREG_REG (x)) + SUBREG_WORD (x); -+ unsigned int regno = SUBREG_REGNO (x); - unsigned int last_regno - = regno + HARD_REGNO_NREGS (regno, GET_MODE (x)); - -@@ -756,7 +756,7 @@ mark_set_resources (x, res, in_dest, mar - mark_set_resources (SUBREG_REG (x), res, in_dest, mark_type); - else - { -- unsigned int regno = REGNO (SUBREG_REG (x)) + SUBREG_WORD (x); -+ unsigned int regno = SUBREG_REGNO (x); - unsigned int last_regno - = regno + HARD_REGNO_NREGS (regno, GET_MODE (x)); - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-timode.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-timode.patch deleted file mode 100644 index 2d72f3533887..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-timode.patch +++ /dev/null @@ -1,67 +0,0 @@ -2000-09-23 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when - op0 is a SUBREG. - (function_arg_slotno): Accept TImode/CTImode. - * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define - to UNITS_PER_WORD. - - * gcc.c-torture/compile/20000923-1.c: New test. - ---- gcc/config/sparc/sparc.c.jj Fri Aug 25 14:22:29 2000 -+++ gcc/config/sparc/sparc.c Sat Sep 23 17:21:56 2000 -@@ -1832,12 +1832,17 @@ sparc_emit_set_const64 (op0, op1) - rtx temp; - - /* Sanity check that we know what we are working with. */ -- if (! TARGET_ARCH64 -- || GET_CODE (op0) != REG -- || (REGNO (op0) >= SPARC_FIRST_FP_REG -- && REGNO (op0) <= SPARC_LAST_V9_FP_REG)) -+ if (! TARGET_ARCH64) - abort (); - -+ if (GET_CODE (op0) != SUBREG) -+ { -+ if (GET_CODE (op0) != REG -+ || (REGNO (op0) >= SPARC_FIRST_FP_REG -+ && REGNO (op0) <= SPARC_LAST_V9_FP_REG)) -+ abort (); -+ } -+ - if (reload_in_progress || reload_completed) - temp = op0; - else -@@ -3971,6 +3976,7 @@ function_arg_slotno (cum, mode, type, na - case HImode : case CHImode : - case SImode : case CSImode : - case DImode : case CDImode : -+ case TImode : case CTImode : - if (slotno >= SPARC_INT_ARG_MAX) - return -1; - regno = regbase + slotno; ---- gcc/config/sparc/sparc.h.jj Tue Aug 15 12:02:17 2000 -+++ gcc/config/sparc/sparc.h Sat Sep 23 17:03:00 2000 -@@ -765,7 +765,11 @@ extern struct sparc_cpu_select sparc_sel - - /* Width of a word, in units (bytes). */ - #define UNITS_PER_WORD (TARGET_ARCH64 ? 8 : 4) -+#ifdef IN_LIBGCC2 -+#define MIN_UNITS_PER_WORD UNITS_PER_WORD -+#else - #define MIN_UNITS_PER_WORD 4 -+#endif - - /* Now define the sizes of the C data types. */ - ---- gcc/testsuite/gcc.c-torture/compile/20000923-1.c.jj Sat Sep 23 18:37:24 2000 -+++ gcc/testsuite/gcc.c-torture/compile/20000923-1.c Sat Sep 23 18:36:01 2000 -@@ -0,0 +1,8 @@ -+const int a = 3; -+const int b = 50; -+ -+void foo (void) -+{ -+ long int x[a][b]; -+ asm ("" : : "r" (x) : "memory"); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-uname.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-uname.patch deleted file mode 100644 index e2fbf03413d8..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparc64-uname.patch +++ /dev/null @@ -1,156 +0,0 @@ -2000-04-12 Jakub Jelinek <jakub@redhat.com> - - * config/sparc/linux64.c: New file. - * config/sparc/linux64.h (ARCH_SPECIFIC_DRIVER): Define. - * config/sparc/t-linux64 (linux64.o): Add. - * gcc.c (process_command): Call ARCH_SPECIFIC_DRIVER - before lang_specific_driver if it is defined. - * configure.in (sparc64-linux): Add linux64.o to extra_gcc_objs. - * configure: Rebuilt. - ---- gcc/config/sparc/linux64.h.jj Mon Apr 10 19:19:31 2000 -+++ gcc/config/sparc/linux64.h Wed Apr 12 13:50:31 2000 -@@ -62,6 +62,15 @@ Boston, MA 02111-1307, USA. */ - -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int \ - -D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc)" - -+#if !defined(CROSS_COMPILE) && !(DEFAULT_ARCH32_P) -+/* For the native compiler, if none of -m32 and -m64 was specified, check -+ * if we are in 32bit or 64bit build environment and set the default based -+ * on that. */ -+extern void sparc64_linux_specific_driver PARAMS ((int *, char ***, int *)); -+#define ARCH_SPECIFIC_DRIVER sparc64_linux_specific_driver -+ -+#endif -+ - #endif - - /* Provide MD_STARTFILE_PREFIX{,_1}. Need to include /usr/lib64/:/lib64/ ---- gcc/config/sparc/linux64.c.jj Wed Apr 12 13:59:30 2000 -+++ gcc/config/sparc/linux64.c Wed Apr 12 18:37:07 2000 -@@ -0,0 +1,81 @@ -+/* Functions for 64-bit SPARC running Linux systems with ELF. -+ Copyright 2000 Free Software Foundation, Inc. -+ Contributed by Jakub Jelinek <jakub@redhat.com> -+ -+This file is part of GNU CC. -+ -+GNU CC 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. -+ -+GNU CC 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 GNU CC; see the file COPYING. If not, write to -+the Free Software Foundation, 59 Temple Place - Suite 330, -+Boston, MA 02111-1307, USA. */ -+ -+#include "config.h" -+#include "system.h" -+ -+#if defined(SPARC_BI_ARCH) && ! defined(CROSS_COMPILE) -+ -+#include <sys/utsname.h> -+ -+/* If neither -m32 nor -m64 was explicitely given on the command line, -+ supply the default based on whether uname -m is sparc64 (-m64) or -+ sparc32 (-m32). -+ Like that, users can use native 64bit and 32bit build environments -+ where they don't have to specify arch size arguments to gcc -+ by either doing the build process from sparc32(8) command or -+ outside of that. All tools starting from config.guess up to gcc -+ should use defaults from that. */ -+ -+void -+sparc64_linux_specific_driver (in_argc, in_argv, in_added_libraries) -+ int *in_argc; -+ char ***in_argv; -+ int *in_added_libraries ATTRIBUTE_UNUSED; -+{ -+ int argc = *in_argc; -+ char **argv = *in_argv, **args; -+ struct utsname un; -+ int m32 = 0, i; -+ -+ /* See in which build environment we are. */ -+ uname(&un); -+ if (strcmp(un.machine, "sparc64")) -+ { -+ if (strcmp(un.machine, "sparc")) -+ return; /* Should not happen */ -+ m32 = 1; -+ } -+ -+ /* If we are in the one which is default to this compiler, -+ * there is nothing we have to do here. */ -+ if ((DEFAULT_ARCH32_P && m32) -+ || (! DEFAULT_ARCH32_P && ! m32)) -+ return; -+ -+ for (i = 1; i < argc; i++) -+ { -+ /* See if either -m64 or -m32 was explicitely given on the -+ * command line. */ -+ if (! strcmp (argv[i], "-m64") -+ || ! strcmp (argv[i], "-m32")) -+ return; -+ } -+ -+ args = (char **) xmalloc ((argc + 1) * sizeof(char *)); -+ args[0] = argv[0]; -+ args[1] = m32 ? "-m32" : "-m64"; -+ memcpy (args + 2, argv + 1, (argc - 1) * sizeof(char *)); -+ *in_argc = argc + 1; -+ *in_argv = args; -+} -+ -+#endif ---- gcc/config/sparc/t-linux64.jj Fri Apr 7 23:02:27 2000 -+++ gcc/config/sparc/t-linux64 Wed Apr 12 15:04:50 2000 -@@ -8,3 +8,7 @@ LIBGCC = stmp-multilib - INSTALL_LIBGCC = install-multilib - - EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o -+ -+linux64.o: $(srcdir)/config/sparc/linux64.c -+ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/sparc/linux64.c -+ ---- gcc/gcc.c.jj Mon Apr 10 19:19:31 2000 -+++ gcc/gcc.c Wed Apr 12 13:25:53 2000 -@@ -3038,6 +3038,11 @@ process_command (argc, argv) - /* Convert new-style -- options to old-style. */ - translate_options (&argc, &argv); - -+ /* Do architecture-specific adjustment/addition of flags. */ -+#ifdef ARCH_SPECIFIC_DRIVER -+ ARCH_SPECIFIC_DRIVER (&argc, &argv, &added_libraries); -+#endif -+ - /* Do language-specific adjustment/addition of flags. */ - lang_specific_driver (&argc, &argv, &added_libraries); - ---- gcc/configure.in.jj Sat Apr 8 21:14:53 2000 -+++ gcc/configure.in Wed Apr 12 15:12:43 2000 -@@ -3444,6 +3444,7 @@ changequote([,])dnl - tm_file=sparc/linux64.h - xmake_file=x-linux - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" -+ extra_gcc_objs=linux64.o - gnu_ld=yes - if test x$enable_threads = xyes; then - thread_file='posix' ---- gcc/configure.jj Sat Apr 8 21:14:53 2000 -+++ gcc/configure Wed Apr 12 15:13:02 2000 -@@ -6033,6 +6033,7 @@ for machine in $build $host $target; do - tm_file=sparc/linux64.h - xmake_file=x-linux - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" -+ extra_gcc_objs=linux64.o - gnu_ld=yes - if test x$enable_threads = xyes; then - thread_file='posix' diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparcv9-hack.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparcv9-hack.patch deleted file mode 100644 index 3d170a336380..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-sparcv9-hack.patch +++ /dev/null @@ -1,25 +0,0 @@ -This hacks around a bug in reload I have not yet debugged up -with -m32 -mcpu=ultrasparc and in -m64 as well. - ---- gcc/config/sparc/sparc.h.jj Tue May 23 14:57:57 2000 -+++ gcc/config/sparc/sparc.h Thu May 25 16:54:36 2000 -@@ -1029,13 +1029,18 @@ do \ - fixed_regs[5] = 1; \ - else if (TARGET_ARCH64 && fixed_regs[5] == 2) \ - fixed_regs[5] = 0; \ -- if (! TARGET_V9) \ -+ /* FIXME: if (! TARGET_V9) */ \ -+ if (1) \ - { \ - int regno; \ - for (regno = SPARC_FIRST_V9_FP_REG; \ - regno <= SPARC_LAST_V9_FP_REG; \ - regno++) \ - fixed_regs[regno] = 1; \ -+ } \ -+ if (! TARGET_V9) \ -+ { \ -+ int regno; \ - /* %fcc0 is used by v8 and v9. */ \ - for (regno = SPARC_FIRST_V9_FCC_REG + 1; \ - regno <= SPARC_LAST_V9_FCC_REG; \ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-stmtexpr.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-stmtexpr.patch deleted file mode 100644 index a84b6f920fd3..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-stmtexpr.patch +++ /dev/null @@ -1,16 +0,0 @@ -2000-06-21 Jakub Jelinek <jakub@redhat.com> - - * g++.old-deja/g++.other/stmtexpr2.C: New test. - ---- gcc/testsuite/g++.old-deja/g++.other/stmtexpr2.C.jj Wed Jun 21 10:58:25 2000 -+++ gcc/testsuite/g++.old-deja/g++.other/stmtexpr2.C Wed Jun 21 10:58:50 2000 -@@ -0,0 +1,9 @@ -+// Build don't link: -+// Special g++ Options: -O2 -+// Origin: Jakub Jelinek <jakub@redhat.com> -+ -+void bar(int); -+void foo(int x) -+{ -+ bar(({ int y; y = x; })); -+} diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-strftime.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-strftime.patch deleted file mode 100644 index ccd9a34d56d4..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-strftime.patch +++ /dev/null @@ -1,70 +0,0 @@ -2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-common.c (time_char_table): Mark up formats added in C99 and - make other corrections. %D and %g were added in C99. %Og is an - extension. %EX is permitted. %R, %T, %n, %r, %t were added in - C99. %e was added in C99. %Oj is an extension. %G and %z are in - C99 rather than GNU extensions, but %OG and %Oz are extensions. - %h was added in C99. %C was added in C99. %OY and %OC are - extensions. Add the C99 format %F. - (check_format_info): If pedantic and not in C99 mode, warn for C99 - formats, %E and %O. - ---- gcc/c-common.c Fri Aug 4 16:02:03 2000 -+++ gcc/c-common.c Fri Aug 4 18:45:22 2000 -@@ -1268,22 +1268,31 @@ - 'E' - E modifier is acceptable - 'O' - O modifier is acceptable to Standard C - 'o' - O modifier is acceptable as a GNU extension -+ '9' - added to the C standard in C99 - 'G' - other GNU extensions */ - - static format_char_info time_char_table[] = { - { "y", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2EO-_0w" }, -- { "D", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2" }, -- { "g", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2O-_0w" }, -+ { "D", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "29" }, -+ { "g", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "2Oo-_0w9" }, - { "cx", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "3E" }, -- { "%RTXnrt", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "" }, -+ { "%", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "" }, -+ { "X", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "E" }, -+ { "RTnrt", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "9" }, - { "P", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "G" }, -- { "HIMSUWdemw", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Ow" }, -- { "Vju", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Oow" }, -- { "Gklsz", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0OGw" }, -+ { "HIMSUWdmw", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Ow" }, -+ { "e", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Ow9" }, -+ { "j", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Oow" }, -+ { "Vu", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Ow9" }, -+ { "Gz", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0Oow9" }, -+ { "kls", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0OGw" }, - { "ABZa", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "^#" }, - { "p", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "#" }, -- { "bh", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "^" }, -- { "CY", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0EOw" }, -+ { "b", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "^" }, -+ { "h", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "^9" }, -+ { "Y", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0EOow" }, -+ { "F", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "w9" }, -+ { "C", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-_0EOow9" }, - { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL } - }; - -@@ -1900,9 +1909,14 @@ - { - if (index (fci->flag_chars, 'G') != 0) - warning ("ANSI C does not support `%%%c'", format_char); -- if (index (fci->flag_chars, 'o') != 0 -+ if (index (fci->flag_chars, '9') != 0 && !flag_isoc99) -+ warning ("ANSI C does not support `%%%c'", format_char); -+ if ((index (fci->flag_chars, 'o') != 0 -+ || (!flag_isoc99 && index (fci->flag_chars, 'O') != 0)) - && index (flag_chars, 'O') != 0) - warning ("ANSI C does not support `%%O%c'", format_char); -+ if (!flag_isoc99 && index (flag_chars, 'E')) -+ warning ("ANSI C does not support `%%E%c'", format_char); - } - if (wide && index (fci->flag_chars, 'w') == 0) - warning ("width used with `%c' format", format_char); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-string-crash.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-string-crash.patch deleted file mode 100644 index 4d073bb351b5..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-string-crash.patch +++ /dev/null @@ -1,20 +0,0 @@ -2000-06-08 Jakub Jelinek <jakub@redhat.com> - - * c-typeck.c (digest_init): Don't crash if init is non_lvalue_expr - of error_mark_node. - ---- gcc/c-typeck.c.jj Wed Jun 7 08:41:04 2000 -+++ gcc/c-typeck.c Thu Jun 8 10:33:52 2000 -@@ -4525,7 +4525,11 @@ digest_init (type, init, require_constan - /* Do not use STRIP_NOPS here. We do not want an enumerator - whose value is 0 to count as a null pointer constant. */ - if (TREE_CODE (init) == NON_LVALUE_EXPR) -- inside_init = TREE_OPERAND (init, 0); -+ { -+ inside_init = TREE_OPERAND (init, 0); -+ if (inside_init == error_mark_node) -+ return error_mark_node; -+ } - - /* Initialization of an array of chars from a string constant - optionally enclosed in braces. */ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subreg-byte-expmed.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subreg-byte-expmed.patch deleted file mode 100644 index 8c8d3825aacc..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subreg-byte-expmed.patch +++ /dev/null @@ -1,40 +0,0 @@ -2000-10-10 Jakub Jelinek <jakub@redhat.com> - - * expmed.c (store_bit_field): Set SUBREG_BYTE correctly on big - endian. - (extract_bit_field): Likewise. - ---- gcc/expmed.c.jj Fri Sep 15 16:46:46 2000 -+++ gcc/expmed.c Tue Oct 10 18:05:42 2000 -@@ -327,7 +327,8 @@ store_bit_field (str_rtx, bitsize, bitnu - } - if (GET_CODE (op0) == REG) - op0 = gen_rtx_SUBREG (fieldmode, op0, -- (offset * UNITS_PER_WORD)); -+ (bitnum % BITS_PER_WORD) / BITS_PER_UNIT -+ + (offset * UNITS_PER_WORD)); - else - op0 = change_address (op0, fieldmode, - plus_constant (XEXP (op0, 0), offset)); -@@ -372,7 +373,9 @@ store_bit_field (str_rtx, bitsize, bitnu - } - - emit_insn (GEN_FCN (icode) -- (gen_rtx_SUBREG (fieldmode, op0, (offset * UNITS_PER_WORD)), -+ (gen_rtx_SUBREG (fieldmode, op0, -+ (bitnum % BITS_PER_WORD) / BITS_PER_UNIT -+ + (offset * UNITS_PER_WORD)), - value)); - - return value; -@@ -1095,7 +1098,9 @@ extract_bit_field (str_rtx, bitsize, bit - abort (); - } - if (GET_CODE (op0) == REG) -- op0 = gen_rtx_SUBREG (mode1, op0, (offset * UNITS_PER_WORD)); -+ op0 = gen_rtx_SUBREG (mode1, op0, -+ (bitnum % BITS_PER_WORD) / BITS_PER_UNIT -+ + (offset * UNITS_PER_WORD)); - else - op0 = change_address (op0, mode1, - plus_constant (XEXP (op0, 0), offset)); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subreg-byte-operand-subword.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subreg-byte-operand-subword.patch deleted file mode 100644 index 28d6631a8b4a..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subreg-byte-operand-subword.patch +++ /dev/null @@ -1,26 +0,0 @@ -2000-10-31 Jakub Jelinek <jakub@redhat.com> - - * emit-rtl.c (operand_subword): Return const0_rtx if looking for a - word outside of OP. - ---- gcc/emit-rtl.c.jj Mon Oct 30 23:54:06 2000 -+++ gcc/emit-rtl.c Tue Oct 31 22:03:34 2000 -@@ -1573,11 +1573,15 @@ operand_subword (op, offset, validate_ad - if (mode == VOIDmode) - abort (); - -- /* If OP is narrower than a word or if we want a word outside OP, fail. */ -+ /* If OP is narrower than a word, fail. */ - if (mode != BLKmode -- && (GET_MODE_SIZE (mode) < UNITS_PER_WORD -- || (offset + 1) * UNITS_PER_WORD > GET_MODE_SIZE (mode))) -+ && (GET_MODE_SIZE (mode) < UNITS_PER_WORD)) - return 0; -+ -+ /* If we want a word outside OP, return zero. */ -+ if (mode != BLKmode -+ && (offset + 1) * UNITS_PER_WORD > GET_MODE_SIZE (mode)) -+ return const0_rtx; - - switch (GET_CODE (op)) - { diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subreg-gcse.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subreg-gcse.patch deleted file mode 100644 index 69625682004d..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subreg-gcse.patch +++ /dev/null @@ -1,50 +0,0 @@ -Sat Jul 29 03:59:49 CEST 2000 Jan Hubicka <jh@suse.cz> - - * recog.c (validate_replace_rtx_1): Simplify subregs of constants. - -*** gcc/recog.c Sat Jul 29 01:04:17 2000 ---- gcc/recog.c Sat Jul 29 12:42:23 2000 -*************** validate_replace_rtx_1 (loc, from, to, o -*** 495,500 **** ---- 495,534 ---- - break; - - case SUBREG: -+ /* In case we are replacing by constant, attempt to simplify it to non-SUBREG -+ expression. We can't do this later, since the information about inner mode -+ may be lost. */ -+ if (SUBREG_REG (x) == from -+ && CONSTANT_P (to)) -+ { -+ if (GET_MODE_SIZE (GET_MODE (x)) == UNITS_PER_WORD -+ && GET_MODE_SIZE (GET_MODE (from)) > UNITS_PER_WORD -+ && GET_MODE_CLASS (GET_MODE (x)) == MODE_INT) -+ { -+ rtx temp = operand_subword (to, SUBREG_WORD (x), -+ 0, GET_MODE (x)); -+ if (temp) -+ { -+ validate_change (object, loc, temp, 1); -+ return; -+ } -+ } -+ if (subreg_lowpart_p (x)) -+ { -+ validate_change (object, loc, gen_lowpart (GET_MODE (x), to), 1); -+ return; -+ } -+ -+ /* A paradoxical SUBREG of a VOIDmode constant is the same constant, -+ since we are saying that the high bits don't matter. */ -+ if (GET_MODE (to) == VOIDmode -+ && GET_MODE_SIZE (GET_MODE (x)) > GET_MODE_SIZE (GET_MODE (from))) -+ { -+ validate_change (object, loc, to, 1); -+ return; -+ } -+ } -+ - /* If we have a SUBREG of a register that we are replacing and we are - replacing it with a MEM, make a new MEM and try replacing the - SUBREG with it. Don't do this if the MEM has a mode-dependent address - diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subregbyte-gcse.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subregbyte-gcse.patch deleted file mode 100644 index d3b5cf91f15f..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-subregbyte-gcse.patch +++ /dev/null @@ -1,79 +0,0 @@ -2000-09-13 Jakub Jelinek <jakub@redhat.com> - - * recog.c (validate_replace_rtx_1): Update code for replacement - of SUBREG_REG with a constant for SUBREG_BYTE. - ---- gcc/recog.c.jj Mon Jul 31 23:27:14 2000 -+++ gcc/recog.c Tue Aug 1 15:15:10 2000 -@@ -504,29 +504,53 @@ validate_replace_rtx_1 (loc, from, to, o - if (SUBREG_REG (x) == from - && CONSTANT_P (to)) - { -- if (GET_MODE_SIZE (GET_MODE (x)) == UNITS_PER_WORD -- && GET_MODE_SIZE (GET_MODE (from)) > UNITS_PER_WORD -- && GET_MODE_CLASS (GET_MODE (x)) == MODE_INT) -- { -- rtx temp = operand_subword (to, SUBREG_WORD (x), -- 0, GET_MODE (x)); -- if (temp) -- { -- validate_change (object, loc, temp, 1); -- return; -- } -- } -- if (subreg_lowpart_p (x)) -+ /* A paradoxical SUBREG of a VOIDmode constant is the same constant, -+ since we are saying that the high bits don't matter. */ -+ if (GET_MODE (to) == VOIDmode -+ && GET_MODE_SIZE (GET_MODE (x)) >= GET_MODE_SIZE (GET_MODE (from))) - { -- validate_change (object, loc, gen_lowpart (GET_MODE (x), to), 1); -+ validate_change (object, loc, to, 1); - return; - } - -- /* A paradoxical SUBREG of a VOIDmode constant is the same constant, -- since we are saying that the high bits don't matter. */ -- if (GET_MODE (to) == VOIDmode -- && GET_MODE_SIZE (GET_MODE (x)) > GET_MODE_SIZE (GET_MODE (from))) -+ if (GET_CODE (to) == CONST_INT) - { -+ /* Avoid creating bogus SUBREGs */ -+ enum machine_mode mode = GET_MODE (x); -+ enum machine_mode inner_mode = GET_MODE (from); -+ int offset; -+ unsigned HOST_WIDE_INT i; -+ -+ if (GET_MODE_CLASS (mode) != MODE_INT) -+ abort (); -+ -+ offset = SUBREG_BYTE (x); -+ if (BYTES_BIG_ENDIAN || WORDS_BIG_ENDIAN) -+ { -+ if (WORDS_BIG_ENDIAN) -+ offset = GET_MODE_SIZE (inner_mode) -+ - GET_MODE_SIZE (mode) - offset; -+ if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN -+ && GET_MODE_SIZE (mode) < UNITS_PER_WORD) -+ offset = offset + UNITS_PER_WORD - GET_MODE_SIZE (mode) -+ - 2 * (offset % UNITS_PER_WORD); -+ } -+ -+ offset *= BITS_PER_UNIT; -+ -+ i = INTVAL (to); -+ -+ if (offset >= HOST_BITS_PER_WIDE_INT) -+ to = ((HOST_WIDE_INT) i < 0) ? constm1_rtx : const0_rtx; -+ else -+ { -+ i >>= offset; -+ if (GET_MODE_BITSIZE (mode) < HOST_BITS_PER_WIDE_INT) -+ i &= (((unsigned HOST_WIDE_INT) 1) -+ << GET_MODE_BITSIZE (mode)) - 1; -+ to = GEN_INT (i); -+ } -+ - validate_change (object, loc, to, 1); - return; - } diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-test-991206-1.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-test-991206-1.patch deleted file mode 100644 index d8077c7a2ef6..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-test-991206-1.patch +++ /dev/null @@ -1,13 +0,0 @@ -2000-10-10 Jakub Jelinek <jakub@redhat.com> - - * gcc.dg/991209-1.c (stack_ptr): Use __asm, not asm, so that -ansi - does not error on it. - ---- gcc/testsuite/gcc.dg/991209-1.c.jj Fri Dec 10 01:57:03 1999 -+++ gcc/testsuite/gcc.dg/991209-1.c Tue Oct 10 17:34:06 2000 -@@ -5,4 +5,4 @@ int foo () - return 1; - } - --register char *stack_ptr asm ("%esp"); -+register char *stack_ptr __asm ("%esp"); diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-unroll.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-unroll.patch deleted file mode 100644 index 765d5bb7ff93..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-unroll.patch +++ /dev/null @@ -1,19 +0,0 @@ -2000-08-21 Jakub Jelinek <jakub@redhat.com> - - * unroll.c (loop_find_equiv_value): If ret is modified between - insn and loop_start, ret might not be equivalent to reg. - ---- gcc/unroll.c.jj Fri Aug 18 23:44:09 2000 -+++ gcc/unroll.c Mon Aug 21 17:28:09 2000 -@@ -3550,6 +3550,11 @@ loop_find_equiv_value (loop, reg) - ret = XEXP (note, 0); - else - ret = SET_SRC (set); -+ -+ /* We cannot do this if it changes between the -+ assignment and loop start though. */ -+ if (modified_between_p (ret, insn, loop_start)) -+ ret = reg; - } - break; - } diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-wchar-const.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-wchar-const.patch deleted file mode 100644 index 0ce44e14255a..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-wchar-const.patch +++ /dev/null @@ -1,48 +0,0 @@ -2000-09-12 Jakub Jelinek <jakub@redhat.com> - - * expr.c (expand_expr): Don't optimize constant array references - initialized with wide string constants. - ---- gcc/expr.c.jj Mon Sep 11 21:59:35 2000 -+++ gcc/expr.c Tue Sep 12 12:48:20 2000 -@@ -6619,9 +6619,16 @@ expand_expr (exp, target, tmode, modifie - else if (TREE_CODE (init) == STRING_CST - && 0 > compare_tree_int (index, - TREE_STRING_LENGTH (init))) -- return (GEN_INT -- (TREE_STRING_POINTER -- (init)[TREE_INT_CST_LOW (index)])); -+ { -+ tree type = TREE_TYPE (TREE_TYPE (init)); -+ enum machine_mode mode = TYPE_MODE (type); -+ -+ if (GET_MODE_CLASS (mode) == MODE_INT -+ && GET_MODE_SIZE (mode) == 1) -+ return (GEN_INT -+ (TREE_STRING_POINTER -+ (init)[TREE_INT_CST_LOW (index)])); -+ } - } - } - } - -2000-09-12 Andreas Jaeger <aj@suse.de> - - * gcc.c-torture/execute/widechar-2.c: Test for wchar_t constant by - Ulrich Drepper <drepper@redhat.com>. - ---- gcc/testsuite/gcc.c-torture/execute/widechar-2.c Fri Jul 21 16:29:28 2000 -+++ gcc/testsuite/gcc.c-torture/execute/widechar-2.c Wed Sep 13 14:44:35 2000 -@@ -0,0 +1,12 @@ -+#include <stddef.h> -+ -+const wchar_t ws[] = L"foo"; -+ -+int -+main (void) -+{ -+ if (ws[0] != L'f' || ws[1] != L'o' || ws[2] != L'o' || ws[3] != L'\0') -+ abort(); -+ exit(0); -+} -+ diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-wint_t.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-wint_t.patch deleted file mode 100644 index 4b7180273dd4..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-wint_t.patch +++ /dev/null @@ -1,159 +0,0 @@ -2000-07-09 Joseph S. Myers <jsm28@cam.ac.uk> - - * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t. - * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE. - (wint_type_node): Define. - * c-decl.c (WINT_TYPE): Define. - (init_decl_processing): Create the wint_type_node type. - * cppdefault.h (WINT_TYPE): Define. - * cppinit.c (builtin_array): Define __WINT_TYPE__. - * tradcpp.c (initialize_builtins): Define __WINT_TYPE__. - * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document. - * c-common.c (T_WI): Define. - (print_char_table): Use T_WI for %lc format. - ---- gcc/ginclude/stddef.h.jj Sun Jul 2 10:37:23 2000 -+++ gcc/ginclude/stddef.h Fri Aug 18 16:42:04 2000 -@@ -302,7 +302,7 @@ typedef __WCHAR_TYPE__ wchar_t; - #undef __need_wchar_t - #endif /* _STDDEF_H or __need_wchar_t. */ - --#if defined (_STDDEF_H) || defined (__need_wint_t) -+#if defined (__need_wint_t) - #ifndef _WINT_T - #define _WINT_T - ---- gcc/c-common.h.jj Thu Jul 13 14:53:25 2000 -+++ gcc/c-common.h Fri Aug 18 16:42:04 2000 -@@ -91,6 +91,7 @@ enum c_tree_index - CTI_WCHAR_TYPE, - CTI_SIGNED_WCHAR_TYPE, - CTI_UNSIGNED_WCHAR_TYPE, -+ CTI_WINT_TYPE, - CTI_WIDEST_INT_LIT_TYPE, - CTI_WIDEST_UINT_LIT_TYPE, - -@@ -122,6 +123,7 @@ enum c_tree_index - #define wchar_type_node c_global_trees[CTI_WCHAR_TYPE] - #define signed_wchar_type_node c_global_trees[CTI_SIGNED_WCHAR_TYPE] - #define unsigned_wchar_type_node c_global_trees[CTI_UNSIGNED_WCHAR_TYPE] -+#define wint_type_node c_global_trees[CTI_WINT_TYPE] - #define widest_integer_literal_type_node c_global_trees[CTI_WIDEST_INT_LIT_TYPE] - #define widest_unsigned_literal_type_node c_global_trees[CTI_WIDEST_UINT_LIT_TYPE] - ---- gcc/c-decl.c.jj Mon Jul 31 20:02:08 2000 -+++ gcc/c-decl.c Fri Aug 18 16:42:04 2000 -@@ -74,6 +74,10 @@ enum decl_context - #ifndef WCHAR_TYPE - #define WCHAR_TYPE "int" - #endif -+ -+#ifndef WINT_TYPE -+#define WINT_TYPE "unsigned int" -+#endif - - /* Do GC. */ - int ggc_p = 1; -@@ -3036,6 +3040,8 @@ init_decl_processing () - wchar_type_size = TYPE_PRECISION (wchar_type_node); - signed_wchar_type_node = signed_type (wchar_type_node); - unsigned_wchar_type_node = unsigned_type (wchar_type_node); -+ -+ wint_type_node = TREE_TYPE (IDENTIFIER_GLOBAL_VALUE (get_identifier (WINT_TYPE))); - - boolean_type_node = integer_type_node; - boolean_true_node = integer_one_node; ---- gcc/cppdefault.h.jj Fri Jul 7 00:52:03 2000 -+++ gcc/cppdefault.h Fri Aug 18 16:42:04 2000 -@@ -66,6 +66,12 @@ Foundation, 59 Temple Place - Suite 330, - #define WCHAR_TYPE "int" - #endif - -+/* The string value for __WINT_TYPE__. */ -+ -+#ifndef WINT_TYPE -+#define WINT_TYPE "unsigned int" -+#endif -+ - /* The string value for __USER_LABEL_PREFIX__ */ - - #ifndef USER_LABEL_PREFIX ---- gcc/cppinit.c.jj Fri Aug 18 15:59:11 2000 -+++ gcc/cppinit.c Fri Aug 18 16:48:11 2000 -@@ -541,6 +541,9 @@ static const struct builtin builtin_arra - #ifndef NO_BUILTIN_WCHAR_TYPE - C("__WCHAR_TYPE__", WCHAR_TYPE), - #endif -+#ifndef NO_BUILTIN_WINT_TYPE -+ C("__WINT_TYPE__", WINT_TYPE), -+#endif - - /* Named operators known to the preprocessor. These cannot be #defined - and always have their stated meaning. They are treated like normal ---- gcc/tradcpp.c.jj Mon Jul 24 18:48:59 2000 -+++ gcc/tradcpp.c Fri Aug 18 16:42:04 2000 -@@ -4644,6 +4644,9 @@ initialize_builtins () - #ifndef NO_BUILTIN_WCHAR_TYPE - install_value ("__WCHAR_TYPE__", WCHAR_TYPE); - #endif -+#ifndef NO_BUILTIN_WINT_TYPE -+ install_value ("__WINT_TYPE__", WINT_TYPE); -+#endif - install_value ("__REGISTER_PREFIX__", REGISTER_PREFIX); - install_value ("__USER_LABEL_PREFIX__", user_label_prefix); - } ---- gcc/tm.texi.jj Wed Aug 2 21:34:07 2000 -+++ gcc/tm.texi Fri Aug 18 16:42:04 2000 -@@ -138,6 +138,16 @@ This should be defined if @code{WCHAR_TY - which are not accessible to the preprocessor. Otherwise, it should not - be defined. - -+@findex NO_BUILTIN_WINT_TYPE -+@item NO_BUILTIN_WINT_TYPE -+If this macro is defined, the preprocessor will not define the builtin macro -+@code{__WINT_TYPE__}. The macro @code{__WINT_TYPE__} must then be -+defined by @code{CPP_SPEC} instead. -+ -+This should be defined if @code{WINT_TYPE} depends on target dependent flags -+which are not accessible to the preprocessor. Otherwise, it should not -+be defined. -+ - @findex SIGNED_CHAR_SPEC - @item SIGNED_CHAR_SPEC - A C string constant that tells the GCC driver program options to -@@ -1284,6 +1294,16 @@ characters. If this is undefined, the d - @code{WCHAR_TYPE_SIZE}. Otherwise, it is the constant value that is the - largest value that @code{WCHAR_TYPE_SIZE} can have at run-time. This is - used in @code{cpp}. -+ -+@findex WINT_TYPE -+@item WINT_TYPE -+A C expression for a string describing the name of the data type to -+use for wide characters passed to @code{printf} and returned from -+@code{getwc}. The typedef name @code{wint_t} is defined using the -+contents of the string. See @code{SIZE_TYPE} above for more -+information. -+ -+If you don't define this macro, the default is @code{"unsigned int"}. - - @findex OBJC_INT_SELECTORS - @item OBJC_INT_SELECTORS ---- gcc/c-common.c.jj Mon Jul 31 20:02:08 2000 -+++ gcc/c-common.c Fri Aug 18 16:42:04 2000 -@@ -1193,6 +1193,7 @@ strip_attrs (specs_attrs) - #define T_UC &unsigned_char_type_node - #define T_V &void_type_node - #define T_W &wchar_type_node -+#define T_WI &wint_type_node - #define T_ST &sizetype - - typedef struct { -@@ -1229,7 +1230,7 @@ static format_char_info print_char_table - /* A GNU extension. */ - { "m", 0, T_V, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, - { "feEgGaA", 0, T_D, NULL, NULL, NULL, NULL, T_LD, NULL, "-wp0 +#" }, -- { "c", 0, T_I, NULL, NULL, T_W, NULL, NULL, NULL, "-w" }, -+ { "c", 0, T_I, NULL, NULL, T_WI, NULL, NULL, NULL, "-w" }, - { "C", 0, T_W, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, - { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, "-wp" }, - { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, diff --git a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-xopen.patch b/sys-devel/gcc/files/gcc-2.96.20000731/gcc-xopen.patch deleted file mode 100644 index ae894e4e89a0..000000000000 --- a/sys-devel/gcc/files/gcc-2.96.20000731/gcc-xopen.patch +++ /dev/null @@ -1,59 +0,0 @@ -2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk> - - * c-common.c (print_char_table): Add entries for the X/Open ' - format flag (print decimals with locale's thousands grouping - character). Make %C expect wint_t. - (check_format_info): If pedantic, warn when the %n$ operand - number form is used. Allow for the ' flag; warn about it if - pedantic. - ---- gcc/c-common.c Fri Aug 4 23:01:34 2000 -+++ gcc/c-common.c Sat Aug 5 00:35:18 2000 -@@ -1233,14 +1233,15 @@ typedef struct { - } format_char_info; - - static format_char_info print_char_table[] = { -- { "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_ST, T_PD, T_IM, "-wp0 +" }, -+ { "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_ST, T_PD, T_IM, "-wp0 +'" }, - { "oxX", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_PD, T_UIM, "-wp0#" }, -- { "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_PD, T_UIM, "-wp0" }, -+ { "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, T_PD, T_UIM, "-wp0'" }, - /* A GNU extension. */ - { "m", 0, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, -- { "fFeEgGaA", 0, T_D, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "-wp0 +#" }, -+ { "fFgG", 0, T_D, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "-wp0 +#'" }, -+ { "eEaA", 0, T_D, NULL, NULL, T_D, NULL, T_LD, NULL, NULL, NULL, "-wp0 +#" }, - { "c", 0, T_I, NULL, NULL, T_WI, NULL, NULL, NULL, NULL, NULL, "-w" }, -- { "C", 0, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, -+ { "C", 0, T_WI, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, - { "s", 1, T_C, NULL, NULL, T_W, NULL, NULL, NULL, NULL, NULL, "-wp" }, - { "S", 1, T_W, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-wp" }, - { "p", 1, T_V, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "-w" }, -@@ -1699,6 +1700,9 @@ check_format_info (info, params) - { - int opnum = atoi (format_chars); - -+ if (pedantic) -+ warning ("ANSI C does not support printf %%n$"); -+ - params = first_fillin_param; - format_chars = p + 1; - has_operand_number = 1; -@@ -1714,7 +1718,7 @@ check_format_info (info, params) - } - } - -- while (*format_chars != 0 && index (" +#0-", *format_chars) != 0) -+ while (*format_chars != 0 && index (" +#0-'", *format_chars) != 0) - { - if (index (flag_chars, *format_chars) != 0) - warning ("repeated `%c' flag in format", *format_chars++); -@@ -1735,6 +1739,8 @@ check_format_info (info, params) - if (index (flag_chars, '0') != 0 - && index (flag_chars, '-') != 0) - warning ("use of both `0' and `-' flags in format"); -+ if (index (flag_chars, '\'') && pedantic) -+ warning ("ANSI C does not support the `'' format flag"); - if (*format_chars == '*') - { - wide = TRUE; diff --git a/sys-devel/gcc/files/gcc-accept-doublecolon.diff.gz b/sys-devel/gcc/files/gcc-accept-doublecolon.diff.gz Binary files differdeleted file mode 100644 index ced5ee0bd788..000000000000 --- a/sys-devel/gcc/files/gcc-accept-doublecolon.diff.gz +++ /dev/null diff --git a/sys-devel/gcc/files/gcc-exception-fix.diff.gz b/sys-devel/gcc/files/gcc-exception-fix.diff.gz Binary files differdeleted file mode 100644 index db8e6bce0898..000000000000 --- a/sys-devel/gcc/files/gcc-exception-fix.diff.gz +++ /dev/null diff --git a/sys-devel/gcc/files/gcc-glibc-2.2-compat.diff b/sys-devel/gcc/files/gcc-glibc-2.2-compat.diff deleted file mode 100644 index 671311b716f7..000000000000 --- a/sys-devel/gcc/files/gcc-glibc-2.2-compat.diff +++ /dev/null @@ -1,332 +0,0 @@ -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-devel/gcc/files/gccinclude-glibc-2.2-compat.diff b/sys-devel/gcc/files/gccinclude-glibc-2.2-compat.diff deleted file mode 100644 index 58c960175128..000000000000 --- a/sys-devel/gcc/files/gccinclude-glibc-2.2-compat.diff +++ /dev/null @@ -1,50 +0,0 @@ -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-devel/gcc/files/libioP.h b/sys-devel/gcc/files/libioP.h deleted file mode 100644 index 7d57a99a2225..000000000000 --- a/sys-devel/gcc/files/libioP.h +++ /dev/null @@ -1,657 +0,0 @@ -/* 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-devel/gcc/gcc-2.95.2-r4.ebuild b/sys-devel/gcc/gcc-2.95.2-r4.ebuild deleted file mode 100644 index 9adc9c89cf3f..000000000000 --- a/sys-devel/gcc/gcc-2.95.2-r4.ebuild +++ /dev/null @@ -1,130 +0,0 @@ -# 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-devel/gcc/gcc-2.95.2-r4.ebuild,v 1.6 2001/02/01 19:30:33 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" -DEPEND="virtual/glibc - >=sys-devel/gettext-0.10.35-r1 - virtual/flex" - -RDEPEND="virtual/glibc - sys-apps/bash" - -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? - if [ "$PLATFORM" == "i686-pc-linux-gnu" ] - then - export CFLAGS="-mpentium" - export CXXFLAGS="-mpentium" - fi - try ${S}/configure --prefix=${T} --enable-version-specific-runtime-libs \ - --host=${CHOST} --enable-threads --enable-shared \ - --with-local-prefix=${T}/local --enable-nls - # Parallel build does not work - try make ${MAKEOPTS} bootstrap-lean -} - -src_install() { - - try make install prefix=${D}${T} mandir=${D}${T}/man - FULLPATH=${D}${T}/lib/gcc-lib/${CHOST}/${PV} - cd ${FULLPATH} - dodir /lib - dosym ${T}/lib/gcc-lib/${CHOST}/${PV}/cpp /lib/cpp - dosym /usr/bin/gcc /usr/bin/cc - - - cd ${S} - dodoc COPYING COPYING.LIB README* FAQ MAINTAINERS - docinto html - dodoc faq.html - docinto gcc - cd ${S}/gcc - dodoc BUGS ChangeLog* COPYING* FSFChangeLog* \ - LANGUAGES NEWS PROBLEMS README* \ - SERVICE TESTS.FLUNK - cd ${S}/libchill - docinto libchill - dodoc ChangeLog - cd ${S}/libf2c - docinto libf2c - dodoc ChangeLog changes.netlib README TODO - cd ${S}/libg++ - docinto libg++ - dodoc ChangeLog g++FAQ.txt NEWS README* TODO - cd ${S}/libiberty - docinto libiberty - dodoc ChangeLog COPYING.LIB README - cd ${S}/libio - docinto libio - dodoc ChangeLog NEWS README - cd dbz - docinto libio/dbz - dodoc README - cd ../stdio - docinto libio/stdio - dodoc ChangeLog* - cd ${S}/libobjc - docinto libobjc - dodoc ChangeLog README* THREADS* - cd ${S}/librx - docinto librx - dodoc ChangeLog COPYING.LIB DOC - cd ${S}/libstdc++ - docinto libstdc++ - dodoc ChangeLog NEWS - -} - - - - - diff --git a/sys-devel/gcc/gcc-2.95.2-r5.ebuild b/sys-devel/gcc/gcc-2.95.2-r5.ebuild deleted file mode 100644 index 2481cc700b9b..000000000000 --- a/sys-devel/gcc/gcc-2.95.2-r5.ebuild +++ /dev/null @@ -1,136 +0,0 @@ -# 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-devel/gcc/gcc-2.95.2-r5.ebuild,v 1.1 2001/02/07 16:05:19 achim Exp $ - - -SRC_URI="ftp://prep.ai.mit.edu/gnu/gcc/gcc-2.95.2.tar.gz" - -if [ "`use libg++`" ] -then - SRC_URI="${SRC_URI} - 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" -fi - -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" -HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html" -DEPEND="virtual/glibc - >=sys-devel/gettext-0.10.35-r1" - -RDEPEND="virtual/glibc" - -src_unpack() { - - unpack gcc-2.95.2.tar.gz - - if [ "`use libg++`" ] - then - 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 - cd ${S} - mv ../libg++-2.8.1.3/* . - rmdir ../libg++-2.8.1.3 - fi - - cd ${S} - zcat ${FILESDIR}/${A0} | patch -p0 - zcat ${FILESDIR}/${A1} | patch -p0 - zcat ${FILESDIR}/${A2} | patch -p0 - patch -p0 < ${FILESDIR}/${A3} - - # We do not build the included texinfo stuff - rm -rf texinfo -} - -src_compile() { - - # gcc does not like optimization - - export CFLAGS="${CFLAGS/-O?/}" - export CXXFLAGS="${CXXFLAGS/-O?/}" - - try ${S}/configure --prefix=${T} --mandir=${T}/share/man --infodir=${T}/share/info \ - --enable-version-specific-runtime-libs \ - --host=${CHOST} --enable-threads --enable-shared \ - --with-local-prefix=${T}/local --enable-nls - - # Parallel build does not work - try make ${MAKEOPTS} bootstrap-lean -} - -src_install() { - - try make install prefix=${D}${T} mandir=${D}${T}/share/man infodir=${D}${T}/share/info - - FULLPATH=${D}${T}/lib/gcc-lib/${CHOST}/${PV} - cd ${FULLPATH} - dodir /lib - dosym ${T}/lib/gcc-lib/${CHOST}/${PV}/cpp /lib/cpp - dosym /usr/bin/gcc /usr/bin/cc - - - cd ${S} - - dodoc COPYING COPYING.LIB README* FAQ MAINTAINERS - docinto html - dodoc faq.html - docinto gcc - cd ${S}/gcc - dodoc BUGS ChangeLog* COPYING* FSFChangeLog* \ - LANGUAGES NEWS PROBLEMS README* \ - SERVICE TESTS.FLUNK - cd ${S}/libchill - docinto libchill - dodoc ChangeLog - cd ${S}/libf2c - docinto libf2c - dodoc ChangeLog changes.netlib README TODO - cd ${S}/libiberty - docinto libiberty - dodoc ChangeLog COPYING.LIB README - cd ${S}/libio - docinto libio - dodoc ChangeLog NEWS README - cd dbz - docinto libio/dbz - dodoc README - cd ../stdio - docinto libio/stdio - dodoc ChangeLog* - cd ${S}/libobjc - docinto libobjc - dodoc ChangeLog README* THREADS* - - if [ "`use libg++`" ] - then - cd ${S}/libg++ - docinto libg++ - dodoc ChangeLog g++FAQ.txt NEWS README* TODO - else - cd ${S}/libstdc++ - docinto libstdc++ - dodoc ChangeLog NEWS - fi - - -} - - - - - diff --git a/sys-devel/gcc/gcc-2.95.2.1-r1.ebuild b/sys-devel/gcc/gcc-2.95.2.1-r1.ebuild deleted file mode 100644 index c173125aefc7..000000000000 --- a/sys-devel/gcc/gcc-2.95.2.1-r1.ebuild +++ /dev/null @@ -1,174 +0,0 @@ -# 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-devel/gcc/gcc-2.95.2.1-r1.ebuild,v 1.3 2001/02/27 18:10:31 achim Exp $ - - -SRC_URI="ftp://ftp.freesoftware.com/pub/sourceware/gcc/releases/${PN}-2.95.2/${PN}-2.95.2.tar.gz - ftp://ftp.freesoftware.com/pub/sourceware/gcc/releases/${P}/${PN}-2.95.2-${PV}.diff.gz" - -if [ "`use libg++`" ] -then - SRC_URI="${SRC_URI} - 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" -fi - -A0=gcc-2.95.2.dif.gz -A1=gcc-exception-fix.diff.gz -A2=gcc-accept-doublecolon.diff.gz -S=${WORKDIR}/gcc-2.95.2 -T=/usr - -DESCRIPTION="Modern GCC C/C++ compiler" -HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html" -DEPEND="virtual/glibc - nls? ( sys-devel/gettext )" - -RDEPEND="virtual/glibc" - -src_unpack() { - - unpack gcc-2.95.2.tar.gz - - if [ "`use libg++`" ] - then - 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 - cd ${S} - mv ../libg++-2.8.1.3/* . - rmdir ../libg++-2.8.1.3 - fi - - cd ${S} - echo "Patch ${A0}" - zcat ${FILESDIR}/${A0} | patch -p0 - echo "Patch ${A1}" - zcat ${FILESDIR}/${A1} | patch -p0 - echo "Patch ${A2}" - zcat ${FILESDIR}/${A2} | patch -p0 - echo "Patch ${A3}" - #patch -p0 < ${FILESDIR}/${A3} - echo "Patch 2.95.2 - 2.95.2.1" - gzip -dc ${DISTDIR}/${PN}-2.95.2-${PV}.diff.gz | patch -p1 - # We do not build the included texinfo stuff - if [ -z "`use build`" ] - then - rm -rf texinfo - fi -} - -src_compile() { - - local myconf - if [ -z "`use build`" ] - then - myconf="--enable-shared" - else - myconf="--enable-languages=c,c++" - fi - if [ "`use nls`" ] - then - myconf="${myconf} --enable-nls" - else - myconf="${myconf} --disable-nls" - fi - - # gcc does not like optimization - - export CFLAGS="${CFLAGS/-O?/}" - export CXXFLAGS="${CXXFLAGS/-O?/}" - - - try ${S}/configure --prefix=${T} --mandir=${T}/share/man --infodir=${T}/share/info \ - --enable-version-specific-runtime-libs \ - --host=${CHOST} --build=${CHOST} --target=${CHOST} --enable-threads \ - --with-local-prefix=${T}/local ${myconf} - - # Parallel build does not work - if [ -z "`use static`" ] - then - try make ${MAKEOPTS} bootstrap-lean - else - try make ${MAKEOPTS} LDFLAGS=-static bootstrap - fi - if [ "`use build`" ] - then - cd ${S}/texinfo/util - make texindex install-info - fi -} - -src_install() { - - try make install prefix=${D}${T} mandir=${D}${T}/share/man infodir=${D}${T}/share/info - - FULLPATH=${D}${T}/lib/gcc-lib/${CHOST}/${PV} - cd ${FULLPATH} - dodir /lib - dosym ${T}/lib/gcc-lib/${CHOST}/${PV}/cpp /lib/cpp - dosym /usr/bin/gcc /usr/bin/cc - dodir /etc/env.d - echo "LDPATH=${T}/lib/gcc-lib/${CHOST}/${PV}" > ${D}/etc/env.d/05gcc - cd ${S} - if [ -z "`use build`" ] - then - dodoc COPYING COPYING.LIB README* FAQ MAINTAINERS - docinto html - dodoc faq.html - docinto gcc - cd ${S}/gcc - dodoc BUGS ChangeLog* COPYING* FSFChangeLog* \ - LANGUAGES NEWS PROBLEMS README* \ - SERVICE TESTS.FLUNK - cd ${S}/libchill - docinto libchill - dodoc ChangeLog - cd ${S}/libf2c - docinto libf2c - dodoc ChangeLog changes.netlib README TODO - cd ${S}/libiberty - docinto libiberty - dodoc ChangeLog COPYING.LIB README - cd ${S}/libio - docinto libio - dodoc ChangeLog NEWS README - cd dbz - docinto libio/dbz - dodoc README - cd ../stdio - docinto libio/stdio - dodoc ChangeLog* - cd ${S}/libobjc - docinto libobjc - dodoc ChangeLog README* THREADS* - - if [ "`use libg++`" ] - then - cd ${S}/libg++ - docinto libg++ - dodoc ChangeLog g++FAQ.txt NEWS README* TODO - else - cd ${S}/libstdc++ - docinto libstdc++ - dodoc ChangeLog NEWS - fi - else - rm -rf ${D}/usr/share/{man,info} - cd texinfo - dobin makeinfo/makeinfo util/texi2dvi util/install-info util/texindex - fi - -} - - - - - diff --git a/sys-devel/gcc/gcc-2.95.2.1.ebuild b/sys-devel/gcc/gcc-2.95.2.1.ebuild deleted file mode 100644 index f945ed479a8e..000000000000 --- a/sys-devel/gcc/gcc-2.95.2.1.ebuild +++ /dev/null @@ -1,141 +0,0 @@ -# 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-devel/gcc/gcc-2.95.2.1.ebuild,v 1.1 2001/02/07 19:38:59 achim Exp $ - - -SRC_URI="ftp://ftp.freesoftware.com/pub/sourceware/gcc/releases/${PN}-2.95.2/${PN}-2.95.2.tar.gz - ftp://ftp.freesoftware.com/pub/sourceware/gcc/releases/${P}/${PN}-2.95.2-${PV}.diff.gz" - -if [ "`use libg++`" ] -then - SRC_URI="${SRC_URI} - 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" -fi - -A0=gcc-2.95.2.dif.gz -A1=gcc-exception-fix.diff.gz -A2=gcc-accept-doublecolon.diff.gz -S=${WORKDIR}/gcc-2.95.2 -T=/usr - -DESCRIPTION="Modern GCC C/C++ compiler" -HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html" -DEPEND="virtual/glibc - >=sys-devel/gettext-0.10.35-r1" - -RDEPEND="virtual/glibc" - -src_unpack() { - - unpack gcc-2.95.2.tar.gz - - if [ "`use libg++`" ] - then - 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 - cd ${S} - mv ../libg++-2.8.1.3/* . - rmdir ../libg++-2.8.1.3 - fi - - cd ${S} - echo "Patch ${A0}" - zcat ${FILESDIR}/${A0} | patch -p0 - echo "Patch ${A1}" - zcat ${FILESDIR}/${A1} | patch -p0 - echo "Patch ${A2}" - zcat ${FILESDIR}/${A2} | patch -p0 - echo "Patch ${A3}" - #patch -p0 < ${FILESDIR}/${A3} - echo "Patch 2.95.2 - 2.95.2.1" - gzip -dc ${DISTDIR}/${PN}-2.95.2-${PV}.diff.gz | patch -p1 - # We do not build the included texinfo stuff - rm -rf texinfo -} - -src_compile() { - - # gcc does not like optimization - - export CFLAGS="${CFLAGS/-O?/}" - export CXXFLAGS="${CXXFLAGS/-O?/}" - - try ${S}/configure --prefix=${T} --mandir=${T}/share/man --infodir=${T}/share/info \ - --enable-version-specific-runtime-libs \ - --host=${CHOST} --enable-threads --enable-shared \ - --with-local-prefix=${T}/local --enable-nls - - # Parallel build does not work - try make ${MAKEOPTS} bootstrap-lean -} - -src_install() { - - try make install prefix=${D}${T} mandir=${D}${T}/share/man infodir=${D}${T}/share/info - - FULLPATH=${D}${T}/lib/gcc-lib/${CHOST}/${PV} - cd ${FULLPATH} - dodir /lib - dosym ${T}/lib/gcc-lib/${CHOST}/${PV}/cpp /lib/cpp - dosym /usr/bin/gcc /usr/bin/cc - - - cd ${S} - - dodoc COPYING COPYING.LIB README* FAQ MAINTAINERS - docinto html - dodoc faq.html - docinto gcc - cd ${S}/gcc - dodoc BUGS ChangeLog* COPYING* FSFChangeLog* \ - LANGUAGES NEWS PROBLEMS README* \ - SERVICE TESTS.FLUNK - cd ${S}/libchill - docinto libchill - dodoc ChangeLog - cd ${S}/libf2c - docinto libf2c - dodoc ChangeLog changes.netlib README TODO - cd ${S}/libiberty - docinto libiberty - dodoc ChangeLog COPYING.LIB README - cd ${S}/libio - docinto libio - dodoc ChangeLog NEWS README - cd dbz - docinto libio/dbz - dodoc README - cd ../stdio - docinto libio/stdio - dodoc ChangeLog* - cd ${S}/libobjc - docinto libobjc - dodoc ChangeLog README* THREADS* - - if [ "`use libg++`" ] - then - cd ${S}/libg++ - docinto libg++ - dodoc ChangeLog g++FAQ.txt NEWS README* TODO - else - cd ${S}/libstdc++ - docinto libstdc++ - dodoc ChangeLog NEWS - fi - - -} - - - - - diff --git a/sys-devel/gcc/gcc-2.96.20000731.ebuild b/sys-devel/gcc/gcc-2.96.20000731.ebuild deleted file mode 100644 index 56a5cd7e70be..000000000000 --- a/sys-devel/gcc/gcc-2.96.20000731.ebuild +++ /dev/null @@ -1,102 +0,0 @@ -# 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-devel/gcc/gcc-2.96.20000731.ebuild,v 1.2 2000/11/11 17:30:14 achim Exp $ - -A="gcc-2.96-20000731.tar.bz2 - 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" - -S=${WORKDIR}/gcc-2.96-20000731 -T=/usr -DESCRIPTION="modern gcc c/c++ compiler" -SRC_URI="ftp://ftp.eos.hokudai.ac.jp/pub/Linux/Kondara/Jirai/SOURCES/gcc-2.96-20000731.tar.bz2 - 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.96-20000731.tar.bz2 - cd ${S} - for i in sparc64-subreg-byte sparc64-reload sparc64-startfile sparc64-decloffset \ - sparc64-uname sparc32-vaarg sparc64-hwint java-jword align-memcpy \ - sparcv9-hack c++-typedef no-warn-trigraphs incomplete-struct \ - libstdc++-v3-wnoerror string-crash - do - echo - echo "Applying $i patch..." - patch -p0 < ${FILESDIR}/${P}/gcc-$i.patch - done - # Here comes some sparc stuff. sparc32-hack sparc32-hack2 - for i in stmtexpr clear-hack loop alpha-addressof regmove-asm cpplib cpp0 canon-cond \ - bogus-subreg cp-ii subreg-gcse subregbyte-gcse combine-comparison \ - loop-noopt loop-unroll loop-test1 loop-test2 loop-scanloop i386-ashlsilea \ - i386-lea lowpart-test loop-noopt2 i386-sibcall cpp-warn wint_t \ - format-checking strftime xopen c99 iso-not-ansi sibcall Os-testcase \ - java-misc java-bytecode java-pg f-include unroll i386-strops \ - simplify-relational alias jsm1 jsm2 jsm3 scanf jsm4 jsm5 jsm6 \ - jsm7 jsm8 loop-hack cpp-warnpaste float-condmove i386-call \ - i386-call2 i386-call-test i386-arith i386-ge_geu i386-gotoff java-catchup \ - java-no-super-layout make-extraction segv1 segv2 sparc-copy-leaf-remappable \ - wchar-const libio alpha-tune alpha-unaligned cpp-warnpaste2 loop-giv \ - real-value sparc-const-pool sparc64-timode callersave-segv libio-printf_fp \ - pt-enum sparc-pic subreg-byte-expmed test-991206-1 alpha-mi-thunk c++-pmf \ - f77-fdebug libio-endl i386-compare-test sparc-may-trap sparc-mi-thunk \ - c++-inline16-test c++-named-return-value c++-walk-tree i386-reload-test \ - i386-reload sibcall-unchanging segv3 c++-crash24 do-store-flag \ - i386-address-cost i386-arith2 i386-constraint-N incomplete-aggregate-alias \ - sibcall-eh2 cpp-assert-crash c++-undefined-method sparc-4096 \ - sparc64-reload-test sparc64-reload2 subreg-byte-operand-subword \ - c++-binding-levels c++-static-class c++-testset1 c++-testset2 place-field \ - sparc-output-formatting sparc64-mi-thunk sparc64-namedret sparc64-nested-fn \ - c++-ice - do - echo - echo "Applying $i patch..." - patch -p0 < ${FILESDIR}/${P}/gcc-$i.patch - done - unpack libg++-2.8.1.3.tar.gz - mv libg++-2.8.1.3/* . - rmdir libg++-2.8.1.3 - patch -p0 < ${FILESDIR}/${P}/gcc-libg++-config.patch - 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 - - -} - - -src_compile() { - cd ${S} - try ${S}/configure --prefix=${T} --enable-version-specific-runtime-libs \ - --host=${CHOST} --enable-threads=posix --enable-shared \ - --with-local-prefix=${T}/local --enable-nls --enable-haifa \ - --disable-checking - - try make bootstrap-lean - try make -C gcc CC=\"./xgcc -B ./ -O2\" proto -} - -src_install() { - try make install prefix=${D}${T} mandir=${D}${T}/man \ - gxx_include_dir=${D}${T}/${CHOST}/include/g++ - cd ${FULLPATH} - dodir /lib - dosym ${T}/lib/gcc-lib/${CHOST}/2.96/cpp /lib/cpp - dosym /usr/bin/gcc /usr/bin/cc - cd ${S} - dodoc COPYING COPYING.LIB README FAQ MAINTAINERS -} - - - - - diff --git a/sys-devel/gdb/files/digest-gdb-5.0-r1 b/sys-devel/gdb/files/digest-gdb-5.0-r1 deleted file mode 100644 index b0ad364709cf..000000000000 --- a/sys-devel/gdb/files/digest-gdb-5.0-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 b2720def719fd024e380793d9084da2a gdb-5.0.tar.bz2 diff --git a/sys-devel/gdb/gdb-5.0-r1.ebuild b/sys-devel/gdb/gdb-5.0-r1.ebuild deleted file mode 100644 index 72d5021ec0d3..000000000000 --- a/sys-devel/gdb/gdb-5.0-r1.ebuild +++ /dev/null @@ -1,46 +0,0 @@ -# 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-devel/gdb/gdb-5.0-r1.ebuild,v 1.5 2000/11/30 23:15:06 achim Exp $ - -P=gdb-5.0 -A=${P}.tar.bz2 -S=${WORKDIR}/${P} -DESCRIPTION="GNU debugger" -SRC_URI="ftp://sourceware.cygnus.com/pub/gdb/releases/${A} - ftp://ftp.freesoftware.com/pub/sourceware/gdb/releases/${A}" -DEPEND=">=sys-libs/gpm-1.19.3" - -HOMEPAGE="http://www.gnu.org/software/gdb/gdb.html" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - into /usr - - try make prefix=${D}/usr install install-info - # These includes and libs are in binutils already - rm -f ${D}/usr/lib/libbfd.* - rm -r ${D}/usr/lib/libiberty.* - rm -f ${D}/usr/lib/libopcodes.* - rm -rf ${D}/usr/include - rmdir ${D}/usr/share - - dodoc COPYING* README - docinto gdb - dodoc gdb/CONTRIBUTE gdb/COPYING* gdb/README \ - gdb/MAINTAINERS gdb/NEWS gdb/ChangeLog* \ - gdb/TODO - docinto sim - dodoc sim/ChangeLog sim/MAINTAINERS sim/README-HACKING - docinto mmalloc - dodoc mmalloc/COPYING.LIB mmalloc/MAINTAINERS \ - mmalloc/ChangeLog mmalloc/TODO -} - - - - diff --git a/sys-devel/gettext/files/digest-gettext-0.10.35-r1 b/sys-devel/gettext/files/digest-gettext-0.10.35-r1 deleted file mode 100644 index 61d920c7e290..000000000000 --- a/sys-devel/gettext/files/digest-gettext-0.10.35-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 f29d32b82217b9d89fcda66328752acc gettext-0.10.35.tar.gz diff --git a/sys-devel/gettext/gettext-0.10.35-r1.ebuild b/sys-devel/gettext/gettext-0.10.35-r1.ebuild deleted file mode 100644 index 48780df2e9f5..000000000000 --- a/sys-devel/gettext/gettext-0.10.35-r1.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# 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-devel/gettext/gettext-0.10.35-r1.ebuild,v 1.3 2001/02/01 19:30:33 achim Exp $ - -P=gettext-0.10.35 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU locale utilities" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/gettext/${A} - ftp://prep.ai.mit.edu/gnu/gettext/${A}" -HOMEPAGE="http://www.gnu.org/software/gettext/gettext.html" - -DEPEND="virtual/glibc - virtual/bison" - -RDEPEND="virtual/glibc - virtual/bash" - -src_compile() { - try ./configure --prefix=/usr --with-included-gettext --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - cd ${S} - try make prefix=${D}/usr lispdir=${D}/usr/share/emacs/site-lisp install - dodoc AUTHORS BUGS COPYING ChangeLog DISCLAIM NEWS README* THANKS TODO - exeopts -m0755 - exeinto /usr/bin - doexe misc/gettextize -} - - diff --git a/sys-devel/ld.so/files/digest-ld.so-1.9.11-r1 b/sys-devel/ld.so/files/digest-ld.so-1.9.11-r1 deleted file mode 100644 index dbedbb259bd0..000000000000 --- a/sys-devel/ld.so/files/digest-ld.so-1.9.11-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 419b97871a0c5127aceddbd13ccb25c2 ld.so-1.9.11.tar.gz diff --git a/sys-devel/ld.so/ld.so-1.9.11-r1.ebuild b/sys-devel/ld.so/ld.so-1.9.11-r1.ebuild deleted file mode 100644 index 839064bcee8a..000000000000 --- a/sys-devel/ld.so/ld.so-1.9.11-r1.ebuild +++ /dev/null @@ -1,26 +0,0 @@ -# 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-devel/ld.so/ld.so-1.9.11-r1.ebuild,v 1.5 2001/01/27 14:41:34 achim Exp $ - -P=ld.so-1.9.11 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Linux dynamic loader & linker" -SRC_URI="ftp://ftp.ods.com/pub/linux/${A}" -RDEPEND="sys-libs/lib-compat" - -src_compile() { - cd ${S} -} - -src_install() { - cd ${S} - export PREFIX=${D} - ./instldso.sh --force - preplib / - dodoc COPYRIGHT README ld-so/example/README* -} - - - diff --git a/sys-devel/libtool/files/digest-libtool-1.3.5-r1 b/sys-devel/libtool/files/digest-libtool-1.3.5-r1 deleted file mode 100644 index a7c90cc3343e..000000000000 --- a/sys-devel/libtool/files/digest-libtool-1.3.5-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 fa26a07c978ad05d1f88ed7a472daa49 libtool-1.3.5.tar.gz diff --git a/sys-devel/libtool/libtool-1.3.5-r1.ebuild b/sys-devel/libtool/libtool-1.3.5-r1.ebuild deleted file mode 100644 index e1279d17538b..000000000000 --- a/sys-devel/libtool/libtool-1.3.5-r1.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# 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-devel/libtool/libtool-1.3.5-r1.ebuild,v 1.6 2001/01/31 20:49:07 achim Exp $ - -P=libtool-1.3.5 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="A shared library tool for developers" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/libtool/${A} - ftp://prep.ai.mit.edu/gnu/libtool/${A}" -HOMEPAGE="http://www.gnu.org/software/libtool/libtool.html" -DEPEND="virtual/glibc" -RDEPEND="$DEPEND - sys-apps/bash" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make DESTDIR=${D} install - dodoc AUTHORS COPYING ChangeLog* NEWS \ - README THANKS TODO doc/PLATFORMS -} - - - - diff --git a/sys-devel/m4/files/digest-m4-1.4o-r1 b/sys-devel/m4/files/digest-m4-1.4o-r1 deleted file mode 100644 index 1c079de24c37..000000000000 --- a/sys-devel/m4/files/digest-m4-1.4o-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 99b833fc3d3aeb6621d9d00661b8abc7 m4-1.4o.tar.gz diff --git a/sys-devel/m4/m4-1.4o-r1.ebuild b/sys-devel/m4/m4-1.4o-r1.ebuild deleted file mode 100644 index f09951e4af8c..000000000000 --- a/sys-devel/m4/m4-1.4o-r1.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# 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-devel/m4/m4-1.4o-r1.ebuild,v 1.5 2000/12/19 00:44:03 achim Exp $ - -P=m4-1.4o -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="GNU macro processor" -SRC_URI="ftp://ftp.seindal.dk/gnu/${A}" -HOMEPAGE="http://www.gnu.org/software/m4/m4.html" -DEPEND=">=sys-libs/glibc-2.1.3" - -src_compile() { - try ./configure --prefix=/usr --with-modules --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - - cd ${S} - try make prefix=${D}/usr install - rm -rf ${D}/usr/include ${D}/usr/lib - dodoc AUTHORS BACKLOG ChangeLog COPYING NEWS README* THANKS TODO - docinto modules - dodoc modules/README modules/TODO - docinto html - dodoc examples/WWW/*.htm - -} - - diff --git a/sys-devel/make/files/digest-make-3.79.1-r1 b/sys-devel/make/files/digest-make-3.79.1-r1 deleted file mode 100644 index 1445b8cf0490..000000000000 --- a/sys-devel/make/files/digest-make-3.79.1-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 22ea95c125c7b80e04354d4ee4ae960d make-3.79.1.tar.gz diff --git a/sys-devel/make/files/digest-make-3.79.1-r2 b/sys-devel/make/files/digest-make-3.79.1-r2 deleted file mode 100644 index 1445b8cf0490..000000000000 --- a/sys-devel/make/files/digest-make-3.79.1-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 22ea95c125c7b80e04354d4ee4ae960d make-3.79.1.tar.gz diff --git a/sys-devel/make/make-3.79.1-r1.ebuild b/sys-devel/make/make-3.79.1-r1.ebuild deleted file mode 100644 index 212c049b1e91..000000000000 --- a/sys-devel/make/make-3.79.1-r1.ebuild +++ /dev/null @@ -1,26 +0,0 @@ -# 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-devel/make/make-3.79.1-r1.ebuild,v 1.6 2001/01/31 20:49:07 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="virtual/glibc" - -src_compile() { - try ./configure --prefix=/usr --host=${CHOST} - try make ${MAKEOPTS} -} - -src_install() { - try make DESTDIR=${D} install - dodoc AUTHORS COPYING ChangeLog NEWS README* -} - - - diff --git a/sys-devel/make/make-3.79.1-r2.ebuild b/sys-devel/make/make-3.79.1-r2.ebuild deleted file mode 100644 index 967218facdf4..000000000000 --- a/sys-devel/make/make-3.79.1-r2.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# 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-devel/make/make-3.79.1-r2.ebuild,v 1.1 2001/02/07 16:05:19 achim Exp $ - -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="virtual/glibc" - -src_compile() { - - try ./configure --prefix=/usr --mandir=/usr/share/man --info=/usr/share/info --host=${CHOST} - try make ${MAKEOPTS} - -} - -src_install() { - - try make DESTDIR=${D} install - dodoc AUTHORS COPYING ChangeLog NEWS README* - -} - - - diff --git a/sys-devel/patch/files/digest-patch-2.5.4-r1 b/sys-devel/patch/files/digest-patch-2.5.4-r1 deleted file mode 100644 index 528dd04a27b6..000000000000 --- a/sys-devel/patch/files/digest-patch-2.5.4-r1 +++ /dev/null @@ -1 +0,0 @@ -MD5 ee5ae84d115f051d87fcaaef3b4ae782 patch-2.5.4.tar.gz diff --git a/sys-devel/patch/files/digest-patch-2.5.4-r2 b/sys-devel/patch/files/digest-patch-2.5.4-r2 deleted file mode 100644 index 528dd04a27b6..000000000000 --- a/sys-devel/patch/files/digest-patch-2.5.4-r2 +++ /dev/null @@ -1 +0,0 @@ -MD5 ee5ae84d115f051d87fcaaef3b4ae782 patch-2.5.4.tar.gz diff --git a/sys-devel/patch/patch-2.5.4-r1.ebuild b/sys-devel/patch/patch-2.5.4-r1.ebuild deleted file mode 100644 index e8b03536de71..000000000000 --- a/sys-devel/patch/patch-2.5.4-r1.ebuild +++ /dev/null @@ -1,26 +0,0 @@ -# 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-devel/patch/patch-2.5.4-r1.ebuild,v 1.6 2001/01/31 20:49:07 achim Exp $ - -P=patch-2.5.4 -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Utility to apply diffs to files" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/patch/${A} - ftp://ftp.gnu.org/gnu/patch/${A}" -HOMEPAGE="http://www.gnu.org/software/patch/patch.html" -DEPEND="virtual/glibc" - -src_compile() { - try ./configure --host=${CHOST} --prefix=/usr - try make ${MAKEOPTS} -} - -src_install() { - try make prefix=${D}/usr install - dodoc AUTHORS COPYING ChangeLog NEWS README -} - - - diff --git a/sys-devel/patch/patch-2.5.4-r2.ebuild b/sys-devel/patch/patch-2.5.4-r2.ebuild deleted file mode 100644 index d94ba6b80014..000000000000 --- a/sys-devel/patch/patch-2.5.4-r2.ebuild +++ /dev/null @@ -1,29 +0,0 @@ -# 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-devel/patch/patch-2.5.4-r2.ebuild,v 1.1 2001/02/07 16:05:19 achim Exp $ - -A=${P}.tar.gz -S=${WORKDIR}/${P} -DESCRIPTION="Utility to apply diffs to files" -SRC_URI="ftp://gatekeeper.dec.com/pub/GNU/patch/${A} - ftp://ftp.gnu.org/gnu/patch/${A}" -HOMEPAGE="http://www.gnu.org/software/patch/patch.html" -DEPEND="virtual/glibc" - -src_compile() { - - try ./configure --host=${CHOST} --prefix=/usr --mandir=/usr/share/man - try make ${MAKEOPTS} - -} - -src_install() { - - try make prefix=${D}/usr mandir=${D}/usr/share/man install - dodoc AUTHORS COPYING ChangeLog NEWS README - -} - - - diff --git a/sys-devel/perl/files/digest-perl-5.6.0-r3 b/sys-devel/perl/files/digest-perl-5.6.0-r3 deleted file mode 100644 index 39a333a00793..000000000000 --- a/sys-devel/perl/files/digest-perl-5.6.0-r3 +++ /dev/null @@ -1 +0,0 @@ -MD5 b2940e2cc6312bcfa52355b684e70b9d perl-5.6.0.tar.gz diff --git a/sys-devel/perl/files/digest-perl-5.6.0-r4 b/sys-devel/perl/files/digest-perl-5.6.0-r4 deleted file mode 100644 index 39a333a00793..000000000000 --- a/sys-devel/perl/files/digest-perl-5.6.0-r4 +++ /dev/null @@ -1 +0,0 @@ -MD5 b2940e2cc6312bcfa52355b684e70b9d perl-5.6.0.tar.gz diff --git a/sys-devel/perl/files/digest-perl-5.6.0-r5 b/sys-devel/perl/files/digest-perl-5.6.0-r5 deleted file mode 100644 index 39a333a00793..000000000000 --- a/sys-devel/perl/files/digest-perl-5.6.0-r5 +++ /dev/null @@ -1 +0,0 @@ -MD5 b2940e2cc6312bcfa52355b684e70b9d perl-5.6.0.tar.gz diff --git a/sys-devel/perl/perl-5.6.0-r3.ebuild b/sys-devel/perl/perl-5.6.0-r3.ebuild deleted file mode 100644 index 964593436a87..000000000000 --- a/sys-devel/perl/perl-5.6.0-r3.ebuild +++ /dev/null @@ -1,110 +0,0 @@ -# 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-devel/perl/perl-5.6.0-r3.ebuild,v 1.3 2000/12/19 23:39:17 achim Exp $ - -P=perl-5.6.0 -A=${P}.tar.gz -S=${WORKDIR}/perl-5.6.0 -DESCRIPTION="Larry Wall's Practical Extraction and Reporting Language" -SRC_URI="ftp://ftp.perl.org/pub/perl/CPAN/src/${A}" -HOMEPAGE="http://www.perl.org" -DEPEND=">=sys-libs/db-3.1.17 - >=sys-libs/gdbm-1.8.0" - -src_compile() { - -# this is gross -- from Christian Gafton, Red Hat -cat > config.over <<EOF -installprefix=${D}/usr -test -d \$installprefix || mkdir \$installprefix -test -d \$installprefix/bin || mkdir \$installprefix/bin -installarchlib=\`echo \$installarchlib | sed "s!\$prefix!\$installprefix!"\` -installbin=\`echo \$installbin | sed "s!\$prefix!\$installprefix!"\` -installman1dir=\`echo \$installman1dir | sed "s!\$prefix!\$installprefix!"\` -installman3dir=\`echo \$installman3dir | sed "s!\$prefix!\$installprefix!"\` -installprivlib=\`echo \$installprivlib | sed "s!\$prefix!\$installprefix!"\` -installscript=\`echo \$installscript | sed "s!\$prefix!\$installprefix!"\` -installsitelib=\`echo \$installsitelib | sed "s!\$prefix!\$installprefix!"\` -installsitearch=\`echo \$installsitearch | sed "s!\$prefix!\$installprefix!"\` -EOF - - - sh Configure -des -Dprefix=/usr -Dd_dosuid \ - -Dd_semctl_semun -Di_db -Di_gdbm -Duselargefiles - #-Dusethreads -Duse505threads \ - - #Optimize ;) - cp config.sh config.sh.orig - sed -e "s/optimize='-O2'/optimize=\'${CFLAGS}\'/" config.sh.orig > config.sh - #THIS IS USED LATER: - export PARCH=`grep myarchname config.sh | cut -f2 -d"'"` - try make - # Parallell make failes - make test -} - -src_install() { - try make install - install -m 755 utils/pl2pm $D/usr/bin/pl2pm -export D -# Generate *.ph files with a trick. Is this sick or what? -# Yes it is, and thank you Christian for getting sick just so we can -# run perl :) - -make all -f - <<EOF -STDH =\$(wildcard /usr/include/linux/*.h) \$(wildcard /usr/include/asm/*.h) \ - \$(wildcard /usr/include/scsi/*.h) -GCCDIR = \$(shell gcc --print-file-name include) - -PERLLIB = \$(D)/usr/lib/perl5/%{perlver}%{perlrel} -PERL = PERL5LIB=\$(PERLLIB) \$(D)/usr/bin/perl -PHDIR = \$(PERLLIB)/\${PARCH}-linux -H2PH = \$(PERL) \$(D)/usr/bin/h2ph -d \$(PHDIR)/ - -all: std-headers gcc-headers fix-config - -std-headers: \$(STDH) - cd /usr/include && \$(H2PH) \$(STDH:/usr/include/%%=%%) - -gcc-headers: \$(GCCH) - cd \$(GCCDIR) && \$(H2PH) \$(GCCH:\$(GCCDIR)/%%=%%) - -fix-config: \$(PHDIR)/Config.pm - \$(PERL) -i -p -e "s|\$(D)||g;" \$< - -EOF - -#MainDir=$(pwd) -#cd modules -#for module in * ; do -# eval $($MainDir/perl '-V:installarchlib') -# mkdir -p $D/$installarchlib -# try make -C $module install PREFIX=$D/usr \ -# INSTALLMAN3DIR=$D/usr/man/man3 -#done -#cd $MainDir - - -#man pages - - ./perl installman --man1dir=${D}/usr/man/man1 --man1ext=1 --man3dir=${D}/usr/man/man3 --man3ext=3 - - -# This removes ${D} from Config.pm - dosed /usr/lib/perl5/5.6.0/i686-linux/Config.pm - dosed /usr/lib/perl5/5.6.0/i686-linux/.packlist - -# DOCUMENTATION - - dodoc Changes* Artistic Copying README Todo* AUTHORS - -# HTML Documentation - dodir /usr/doc/${PF}/html - ./perl installhtml --recurse --htmldir=${D}/usr/doc/${PF}/html - prepalldocs -} - - - - diff --git a/sys-devel/perl/perl-5.6.0-r4.ebuild b/sys-devel/perl/perl-5.6.0-r4.ebuild deleted file mode 100644 index 395d2e8606e8..000000000000 --- a/sys-devel/perl/perl-5.6.0-r4.ebuild +++ /dev/null @@ -1,110 +0,0 @@ -# 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-devel/perl/perl-5.6.0-r4.ebuild,v 1.2 2000/12/19 23:39:17 achim Exp $ - -P=perl-5.6.0 -A=${P}.tar.gz -S=${WORKDIR}/perl-5.6.0 -DESCRIPTION="Larry Wall's Practical Extraction and Reporting Language" -SRC_URI="ftp://ftp.perl.org/pub/perl/CPAN/src/${A}" -HOMEPAGE="http://www.perl.org" -DEPEND=">=sys-libs/db-3.1.17 - >=sys-libs/gdbm-1.8.0" - -src_compile() { - -# this is gross -- from Christian Gafton, Red Hat -cat > config.over <<EOF -installprefix=${D}/usr -test -d \$installprefix || mkdir \$installprefix -test -d \$installprefix/bin || mkdir \$installprefix/bin -installarchlib=\`echo \$installarchlib | sed "s!\$prefix!\$installprefix!"\` -installbin=\`echo \$installbin | sed "s!\$prefix!\$installprefix!"\` -installman1dir=\`echo \$installman1dir | sed "s!\$prefix!\$installprefix!"\` -installman3dir=\`echo \$installman3dir | sed "s!\$prefix!\$installprefix!"\` -installprivlib=\`echo \$installprivlib | sed "s!\$prefix!\$installprefix!"\` -installscript=\`echo \$installscript | sed "s!\$prefix!\$installprefix!"\` -installsitelib=\`echo \$installsitelib | sed "s!\$prefix!\$installprefix!"\` -installsitearch=\`echo \$installsitearch | sed "s!\$prefix!\$installprefix!"\` -EOF - - - sh Configure -des -Dprefix=/usr -Dd_dosuid \ - -Dd_semctl_semun -Di_db -Di_gdbm -Duselargefiles - #-Dusethreads -Duse505threads \ - - #Optimize ;) - cp config.sh config.sh.orig - sed -e "s/optimize='-O2'/optimize=\'${CFLAGS}\'/" config.sh.orig > config.sh - #THIS IS USED LATER: - export PARCH=`grep myarchname config.sh | cut -f2 -d"'"` - try make - # Parallell make failes - make test -} - -src_install() { - try make install - install -m 755 utils/pl2pm $D/usr/bin/pl2pm -export D -# Generate *.ph files with a trick. Is this sick or what? -# Yes it is, and thank you Christian for getting sick just so we can -# run perl :) - -make all -f - <<EOF -STDH =\$(wildcard /usr/include/linux/*.h) \$(wildcard /usr/include/asm/*.h) \ - \$(wildcard /usr/include/scsi/*.h) -GCCDIR = \$(shell gcc --print-file-name include) - -PERLLIB = \$(D)/usr/lib/perl5/%{perlver}%{perlrel} -PERL = PERL5LIB=\$(PERLLIB) \$(D)/usr/bin/perl -PHDIR = \$(PERLLIB)/\${PARCH}-linux -H2PH = \$(PERL) \$(D)/usr/bin/h2ph -d \$(PHDIR)/ - -all: std-headers gcc-headers fix-config - -std-headers: \$(STDH) - cd /usr/include && \$(H2PH) \$(STDH:/usr/include/%%=%%) - -gcc-headers: \$(GCCH) - cd \$(GCCDIR) && \$(H2PH) \$(GCCH:\$(GCCDIR)/%%=%%) - -fix-config: \$(PHDIR)/Config.pm - \$(PERL) -i -p -e "s|\$(D)||g;" \$< - -EOF - -#MainDir=$(pwd) -#cd modules -#for module in * ; do -# eval $($MainDir/perl '-V:installarchlib') -# mkdir -p $D/$installarchlib -# try make -C $module install PREFIX=$D/usr \ -# INSTALLMAN3DIR=$D/usr/man/man3 -#done -#cd $MainDir - - -#man pages - - ./perl installman --man1dir=${D}/usr/man/man1 --man1ext=1 --man3dir=${D}/usr/man/man3 --man3ext=3 - - -# This removes ${D} from Config.pm - dosed /usr/lib/perl5/5.6.0/i686-linux/Config.pm - dosed /usr/lib/perl5/5.6.0/i686-linux/.packlist - -# DOCUMENTATION - - dodoc Changes* Artistic Copying README Todo* AUTHORS - -# HTML Documentation - dodir /usr/doc/${PF}/html - ./perl installhtml --recurse --htmldir=${D}/usr/doc/${PF}/html - prepalldocs -} - - - - diff --git a/sys-devel/perl/perl-5.6.0-r5.ebuild b/sys-devel/perl/perl-5.6.0-r5.ebuild deleted file mode 100644 index e733d8e4c2fb..000000000000 --- a/sys-devel/perl/perl-5.6.0-r5.ebuild +++ /dev/null @@ -1,111 +0,0 @@ -# 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-devel/perl/perl-5.6.0-r5.ebuild,v 1.1 2001/01/15 22:52:38 achim Exp $ - -P=perl-5.6.0 -A=${P}.tar.gz -S=${WORKDIR}/perl-5.6.0 -DESCRIPTION="Larry Wall's Practical Extraction and Reporting Language" -SRC_URI="ftp://ftp.perl.org/pub/perl/CPAN/src/${A}" -HOMEPAGE="http://www.perl.org" -DEPEND=">=sys-libs/db-3.1.17 - >=sys-libs/gdbm-1.8.0" - -src_compile() { - -# this is gross -- from Christian Gafton, Red Hat -cat > config.over <<EOF -installprefix=${D}/usr -test -d \$installprefix || mkdir \$installprefix -test -d \$installprefix/bin || mkdir \$installprefix/bin -installarchlib=\`echo \$installarchlib | sed "s!\$prefix!\$installprefix!"\` -installbin=\`echo \$installbin | sed "s!\$prefix!\$installprefix!"\` -installman1dir=\`echo \$installman1dir | sed "s!\$prefix!\$installprefix!"\` -installman3dir=\`echo \$installman3dir | sed "s!\$prefix!\$installprefix!"\` -installprivlib=\`echo \$installprivlib | sed "s!\$prefix!\$installprefix!"\` -installscript=\`echo \$installscript | sed "s!\$prefix!\$installprefix!"\` -installsitelib=\`echo \$installsitelib | sed "s!\$prefix!\$installprefix!"\` -installsitearch=\`echo \$installsitearch | sed "s!\$prefix!\$installprefix!"\` -EOF - - - sh Configure -des -Dprefix=/usr -Dd_dosuid \ - -Dd_semctl_semun -Di_db -Di_gdbm -Duselargefiles \ - -Darchname=${CHOST%%-*}-linux - #-Dusethreads -Duse505threads \ - - #Optimize ;) - cp config.sh config.sh.orig - sed -e "s/optimize='-O2'/optimize=\'${CFLAGS}\'/" config.sh.orig > config.sh - #THIS IS USED LATER: - export PARCH=`grep myarchname config.sh | cut -f2 -d"'"` - try make - # Parallell make failes - make test -} - -src_install() { - try make install - install -m 755 utils/pl2pm $D/usr/bin/pl2pm -export D -# Generate *.ph files with a trick. Is this sick or what? -# Yes it is, and thank you Christian for getting sick just so we can -# run perl :) - -make all -f - <<EOF -STDH =\$(wildcard /usr/include/linux/*.h) \$(wildcard /usr/include/asm/*.h) \ - \$(wildcard /usr/include/scsi/*.h) -GCCDIR = \$(shell gcc --print-file-name include) - -PERLLIB = \$(D)/usr/lib/perl5/%{perlver}%{perlrel} -PERL = PERL5LIB=\$(PERLLIB) \$(D)/usr/bin/perl -PHDIR = \$(PERLLIB)/\${PARCH}-linux -H2PH = \$(PERL) \$(D)/usr/bin/h2ph -d \$(PHDIR)/ - -all: std-headers gcc-headers fix-config - -std-headers: \$(STDH) - cd /usr/include && \$(H2PH) \$(STDH:/usr/include/%%=%%) - -gcc-headers: \$(GCCH) - cd \$(GCCDIR) && \$(H2PH) \$(GCCH:\$(GCCDIR)/%%=%%) - -fix-config: \$(PHDIR)/Config.pm - \$(PERL) -i -p -e "s|\$(D)||g;" \$< - -EOF - -#MainDir=$(pwd) -#cd modules -#for module in * ; do -# eval $($MainDir/perl '-V:installarchlib') -# mkdir -p $D/$installarchlib -# try make -C $module install PREFIX=$D/usr \ -# INSTALLMAN3DIR=$D/usr/man/man3 -#done -#cd $MainDir - - -#man pages - - ./perl installman --man1dir=${D}/usr/man/man1 --man1ext=1 --man3dir=${D}/usr/man/man3 --man3ext=3 - - -# This removes ${D} from Config.pm - dosed /usr/lib/perl5/5.6.0/${CHOST%%-*}-linux/Config.pm - dosed /usr/lib/perl5/5.6.0/${CHOST%%-*}-linux/.packlist - -# DOCUMENTATION - - dodoc Changes* Artistic Copying README Todo* AUTHORS - -# HTML Documentation - dodir /usr/doc/${PF}/html - ./perl installhtml --recurse --htmldir=${D}/usr/doc/${PF}/html - prepalldocs -} - - - - diff --git a/sys-devel/spython/files/digest-spython-1.5.2 b/sys-devel/spython/files/digest-spython-1.5.2 deleted file mode 100644 index aeb14243568a..000000000000 --- a/sys-devel/spython/files/digest-spython-1.5.2 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 e9d677ae6d5a3efc6937627ed8a3e752 py152.tgz -MD5 7c99113a11b03599d8494638f6d90b56 python-fchksum-1.1.tar.gz diff --git a/sys-devel/spython/files/digest-spython-2.0 b/sys-devel/spython/files/digest-spython-2.0 deleted file mode 100644 index d5edd17f12a5..000000000000 --- a/sys-devel/spython/files/digest-spython-2.0 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 4751f4619eda0b5ade9d9dd017e7c1ef BeOpen-Python-2.0.tar.bz2 -MD5 7c99113a11b03599d8494638f6d90b56 python-fchksum-1.1.tar.gz diff --git a/sys-devel/spython/files/digest-spython-2.0-r1 b/sys-devel/spython/files/digest-spython-2.0-r1 deleted file mode 100644 index d5edd17f12a5..000000000000 --- a/sys-devel/spython/files/digest-spython-2.0-r1 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 4751f4619eda0b5ade9d9dd017e7c1ef BeOpen-Python-2.0.tar.bz2 -MD5 7c99113a11b03599d8494638f6d90b56 python-fchksum-1.1.tar.gz diff --git a/sys-devel/spython/files/digest-spython-2.0-r2 b/sys-devel/spython/files/digest-spython-2.0-r2 deleted file mode 100644 index d5edd17f12a5..000000000000 --- a/sys-devel/spython/files/digest-spython-2.0-r2 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 4751f4619eda0b5ade9d9dd017e7c1ef BeOpen-Python-2.0.tar.bz2 -MD5 7c99113a11b03599d8494638f6d90b56 python-fchksum-1.1.tar.gz diff --git a/sys-devel/spython/files/digest-spython-2.0-r3 b/sys-devel/spython/files/digest-spython-2.0-r3 deleted file mode 100644 index d5edd17f12a5..000000000000 --- a/sys-devel/spython/files/digest-spython-2.0-r3 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 4751f4619eda0b5ade9d9dd017e7c1ef BeOpen-Python-2.0.tar.bz2 -MD5 7c99113a11b03599d8494638f6d90b56 python-fchksum-1.1.tar.gz diff --git a/sys-devel/spython/spython-2.0-r2.ebuild b/sys-devel/spython/spython-2.0-r2.ebuild deleted file mode 100644 index ac031d34f031..000000000000 --- a/sys-devel/spython/spython-2.0-r2.ebuild +++ /dev/null @@ -1,67 +0,0 @@ -# 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-devel/spython/spython-2.0-r2.ebuild,v 1.1 2001/01/29 19:27:58 drobbins 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 - -# #patch the dbmmodule to use db3's dbm compatibility code. That way, we're depending on db3 rather than -# #old db1. We'll link with db3, of course. -# cp dbmmodule.c dbmmodule.c.orig -# sed -e '10,25d' -e '26i\' -e '#define DB_DBM_HSEARCH 1\' -e 'static char *which_dbm = "BSD db";\' -e '#include <db3/db.h>' dbmmodule.c.orig > dbmmodule.c - - 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 - dosym spython /usr/bin/python -} diff --git a/sys-devel/spython/spython-2.0-r3.ebuild b/sys-devel/spython/spython-2.0-r3.ebuild deleted file mode 100644 index f7a47d63e572..000000000000 --- a/sys-devel/spython/spython-2.0-r3.ebuild +++ /dev/null @@ -1,62 +0,0 @@ -# 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-devel/spython/spython-2.0-r3.ebuild,v 1.1 2001/02/07 16:07:39 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/zlib-1.1.3-r2" -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/share/man - try make install prefix=${D}/usr MANDIR=${D}/usr/share/man - rm ${D}/usr/bin/python - mv ${D}/usr/bin/python2.0 ${D}/usr/bin/spython - dosym spython /usr/bin/python -} |