[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#187652: marked as done ([patch] [3.2.3/hppa] fix function pointer comparisions)



Your message dated Thu, 10 Apr 2003 17:32:49 -0400
with message-id <E193jf7-0002CF-00@auric.debian.org>
and subject line Bug#187652: fixed in gcc-3.2 1:3.2.3ds7-0pre8
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--------------------------------------
Received: (at submit) by bugs.debian.org; 4 Apr 2003 21:44:24 +0000
>From randolph@tausq.org Fri Apr 04 15:44:23 2003
Return-path: <randolph@tausq.org>
Received: from gandalf.tausq.org (pippin.tausq.org) [64.81.244.94] 
	by master.debian.org with esmtp (Exim 3.12 1 (Debian))
	id 191Yyz-0007g7-00; Fri, 04 Apr 2003 15:44:22 -0600
Received: by pippin.tausq.org (Postfix, from userid 1000)
	id DE5C6CD295; Fri,  4 Apr 2003 13:44:14 -0800 (PST)
Date: Fri, 4 Apr 2003 13:44:14 -0800
From: Randolph Chung <tausq@debian.org>
To: submit@bugs.debian.org
Subject: [patch] [3.2.3/hppa] fix function pointer comparisions
Message-ID: <20030404214414.GI9388@tausq.org>
Reply-To: Randolph Chung <tausq@debian.org>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="ZPt4rx8FFjLCG7dd"
Content-Disposition: inline
X-PGP: for PGP key, see http://www.tausq.org/pgp.txt
X-GPG: for GPG key, see http://www.tausq.org/gpg.txt
User-Agent: Mutt/1.5.3i
Delivered-To: submit@bugs.debian.org
X-Spam-Status: No, hits=-2.8 required=4.0
	tests=HAS_PACKAGE,PATCH_UNIFIED_DIFF,SPAM_PHRASE_00_01,
	      USER_AGENT,USER_AGENT_MUTT
	version=2.44
X-Spam-Level: 


--ZPt4rx8FFjLCG7dd
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Package: gcc
Version: 3.2.3
Severity: important
Tags: patch

Please include the attached patch in the next gcc-3.2.3 upload. It
fixes an important bug in doing function pointer comparisions on hppa.
This patch was backported from the gcc-3.3 branch. Test-compiled with no
regressions. This bug causes some X programs to be miscompiled and not
work.

thanks
randolph
-- 
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/

--ZPt4rx8FFjLCG7dd
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="hppa-fptr.dpatch"

#! /bin/sh -e

# DP: Handle function pointer comparisions on hppa properly
# DP: Backported from gcc-3.3 branch
# DP: http://gcc.gnu.org/ml/gcc-cvs/2002-12/msg00157.html
# DP: http://gcc.gnu.org/ml/gcc-cvs/2002-12/msg00195.html

dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
    pdir="-d $3"
    dir="$3/"
elif [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch)
        patch $pdir -f --no-backup-if-mismatch -p1 < $0
        #cd ${dir}gcc && autoconf
        ;;
    -unpatch)
        patch $pdir -f --no-backup-if-mismatch -R -p1 < $0
        #rm ${dir}gcc/configure
        ;;
    *)
        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
        exit 1
esac
exit 0

2002-12-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa/fptr.c (__canonicalize_funcptr_for_compare): New file and function.
	* pa.md (canonicalize_funcptr_for_compare): Output library call to
	canonicalize_funcptr_for_compare_libfunc on TARGET_ELF32.
	* pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL,
	CTOR_LIST_BEGIN): New defines.
	* pa/t-linux (LIB2FUNCS_EXTRA): New define.
	(fptr.c): Add make rules.

2002-12-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* pa32-linux.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): Move define.
	* pa.h (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL): To here.


diff -uNrp src.orig/gcc/config/pa/fptr.c src/gcc/config/pa/fptr.c
--- src.orig/gcc/config/pa/fptr.c	1969-12-31 16:00:00.000000000 -0800
+++ src/gcc/config/pa/fptr.c	2003-03-30 14:50:24.000000000 -0800
@@ -0,0 +1,127 @@
+/* Subroutine for function pointer canonicalization on PA-RISC with ELF32.
+   Copyright 2002 Free Software Foundation, Inc.
+   Contributed by John David Anglin (dave.anglin@nrc.ca).
+
+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.  */
+
+/* WARNING: The code is this function depends on internal and undocumented
+   details of the GNU linker and dynamic loader as implemented for parisc
+   linux.  */
+
+/* This MUST match the defines sysdeps/hppa/dl-machine.h and
+   bfd/elf32-hppa.c.  */
+#define GOT_FROM_PLT_STUB (4*4)
+
+/* List of byte offsets in _dl_runtime_resolve to search for "bl" branches.
+   The first "bl" branch instruction found MUST be a call to fixup.  See
+   the define for TRAMPOLINE_TEMPLATE in sysdeps/hppa/dl-machine.h.  If
+   the trampoline template is changed, the list must be appropriately
+   updated.  The offset of -4 allows for a magic branch at the start of
+   the template should it be necessary to change the current branch
+   position.  */
+#define NOFFSETS 2
+static int fixup_branch_offset[NOFFSETS] = { 32, -4 };
+
+#define GET_FIELD(X, FROM, TO) \
+  ((X) >> (31 - (TO)) & ((1 << ((TO) - (FROM) + 1)) - 1))
+#define SIGN_EXTEND(VAL,BITS) \
+  ((int) ((VAL) >> ((BITS) - 1) ? (-1 << (BITS)) | (VAL) : (VAL)))
+
+struct link_map;
+typedef int (*fptr_t) (void);
+typedef int (*fixup_t) (struct link_map *, unsigned int);
+extern unsigned int _GLOBAL_OFFSET_TABLE_;
+
+/* __canonicalize_funcptr_for_compare must be hidden so that it is not
+   placed in the dynamic symbol table.  Like millicode functions, it
+   must be linked into all binaries in order access the got table of 
+   that binary.  However, we don't use the millicode calling convention
+   and the routine must be a normal function so that it can be compiled
+   as pic code.  */
+unsigned int __canonicalize_funcptr_for_compare (fptr_t)
+      __attribute__ ((visibility ("hidden")));
+
+unsigned int
+__canonicalize_funcptr_for_compare (fptr)
+     fptr_t fptr;
+{
+  static unsigned int fixup_plabel[2];
+  static fixup_t fixup;
+  unsigned int *plabel, *got;
+
+  /* -1 is special.  It is used in crtend to mark the end of a list of
+     function pointers.  Also return immediately if the plabel bit is
+     not set in the function pointer.  In this case, the function pointer
+     points directly to the function.  */
+  if ((int) fptr == -1 || !((int) fptr & 2))
+    return (unsigned int) fptr;
+
+  /* The function pointer points to a function descriptor (plabel).  If
+     the plabel hasn't been resolved, the first word of the plabel points
+     to the entry of the PLT stub just before the global offset table.
+     The second word in the plabel contains the relocation offset for the
+     function.  */
+  plabel = (unsigned int *) ((unsigned int) fptr & ~3);
+  got = (unsigned int *) (plabel[0] + GOT_FROM_PLT_STUB);
+
+  /* Return the address of the function if the plabel has been resolved.  */
+  if (got !=  &_GLOBAL_OFFSET_TABLE_)
+    return plabel[0];
+
+  /* Initialize our plabel for calling fixup if we haven't done so already.
+     This code needs to be thread safe but we don't have to be too careful
+     as the result is invariant.  */
+  if (!fixup)
+    {
+      int i;
+      unsigned int *iptr;
+
+      /* Find the first "bl" branch in the offset search list.  This is a
+	 call to fixup or a magic branch to fixup at the beginning of the
+	 trampoline template.  The fixup function does the actual runtime
+	 resolution of function decriptors.  We only look for "bl" branches
+	 with a 17-bit pc-relative displacement.  */
+      for (i = 0; i < NOFFSETS; i++)
+	{
+	  iptr = (unsigned int *) (got[-2] + fixup_branch_offset[i]);
+	  if ((*iptr & 0xfc00e000) == 0xe8000000)
+	    break;
+	}
+
+      /* This should not happen... */
+      if (i == NOFFSETS)
+	return ~0;
+
+      /* Extract the 17-bit displacement from the instruction.  */
+      iptr += SIGN_EXTEND (GET_FIELD (*iptr, 19, 28) |
+			   GET_FIELD (*iptr, 29, 29) << 10 |
+			   GET_FIELD (*iptr, 11, 15) << 11 |
+			   GET_FIELD (*iptr, 31, 31) << 16, 17);
+
+      /* Build a plabel for an indirect call to fixup.  */
+      fixup_plabel[0] = (unsigned int) iptr + 8;  /* address of fixup */
+      fixup_plabel[1] = got[-1];		  /* ltp for fixup */
+      fixup = (fixup_t) ((int) fixup_plabel | 3);
+    }
+
+  /* Call fixup to resolve the function address.  got[1] contains the
+     link_map pointer and plabel[1] the relocation offset.  */
+  fixup ((struct link_map *) got[1], plabel[1]);
+
+  return plabel[0];
+}
diff -uNrp src.orig/gcc/config/pa/pa.h src/gcc/config/pa/pa.h
--- src.orig/gcc/config/pa/pa.h	2002-12-28 16:29:03.000000000 -0800
+++ src/gcc/config/pa/pa.h	2003-03-30 14:50:24.000000000 -0800
@@ -2033,3 +2033,7 @@ while (0)
   {"cmpib_comparison_operator", {EQ, NE, LT, LE, LEU,			\
    GT, GTU, GE}},							\
   {"movb_comparison_operator", {EQ, NE, LT, GE}},
+
+/* We need a libcall to canonicalize function pointers on TARGET_ELF32.  */
+#define CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL \
+  "__canonicalize_funcptr_for_compare"
diff -uNrp src.orig/gcc/config/pa/pa.md src/gcc/config/pa/pa.md
--- src.orig/gcc/config/pa/pa.md	2003-02-21 02:19:25.000000000 -0800
+++ src/gcc/config/pa/pa.md	2003-03-30 14:50:24.000000000 -0800
@@ -7144,9 +7144,20 @@
 	      (clobber (reg:SI 31))])
    (set (match_operand:SI 0 "register_operand" "")
 	(reg:SI 29))]
-  "! TARGET_PORTABLE_RUNTIME && !TARGET_64BIT && !TARGET_ELF32"
+  "!TARGET_PORTABLE_RUNTIME && !TARGET_64BIT"
   "
 {
+  if (TARGET_ELF32)
+    {
+      rtx canonicalize_funcptr_for_compare_libfunc
+        = init_one_libfunc (CANONICALIZE_FUNCPTR_FOR_COMPARE_LIBCALL);
+
+      emit_library_call_value (canonicalize_funcptr_for_compare_libfunc,
+      			       operands[0], LCT_NORMAL, Pmode,
+			       1, operands[1], Pmode);
+      DONE;
+    }
+
   operands[2] = gen_reg_rtx (SImode);
   if (GET_CODE (operands[1]) != REG)
     {
diff -uNrp src.orig/gcc/config/pa/pa32-linux.h src/gcc/config/pa/pa32-linux.h
--- src.orig/gcc/config/pa/pa32-linux.h	2002-03-01 15:38:29.000000000 -0800
+++ src/gcc/config/pa/pa32-linux.h	2003-03-30 14:52:25.000000000 -0800
@@ -24,3 +24,17 @@ Boston, MA 02111-1307, USA.  */
 
 #undef CPP_SPEC
 #define CPP_SPEC "%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{mhppa:-D__hppa__} %{posix:-D_POSIX_SOURCE} -D_PA_RISC1_1"
+
+/* The libcall __canonicalize_funcptr_for_compare is referenced in
+   crtend.o and the reference isn't resolved in objects that don't
+   compare function pointers.  Thus, we need to play games to provide
+   a reference in crtbegin.o.  The rest of the define is the same
+   as that in crtstuff.c  */
+#define CTOR_LIST_BEGIN \
+  asm (".type __canonicalize_funcptr_for_compare,@function\n"		\
+"	.text\n"							\
+"	.word __canonicalize_funcptr_for_compare-$PIC_pcrel$0");	\
+  STATIC func_ptr __CTOR_LIST__[1]					\
+    __attribute__ ((__unused__, section(".ctors"),			\
+		    aligned(sizeof(func_ptr))))				\
+    = { (func_ptr) (-1) }
diff -uNrp src.orig/gcc/config/pa/t-linux src/gcc/config/pa/t-linux
--- src.orig/gcc/config/pa/t-linux	2002-05-01 02:45:08.000000000 -0700
+++ src/gcc/config/pa/t-linux	2003-03-30 14:50:24.000000000 -0800
@@ -9,8 +9,14 @@ LIB1ASMFUNCS =  _divI _divU _remI _remU 
 
 LIB1ASMSRC = pa/milli32.S
 
-# Compile crtbeginS.o and crtendS.o as PIC.
-CRTSTUFF_T_CFLAGS_S = -fPIC
-
 # Compile libgcc2.a as PIC.
 TARGET_LIBGCC2_CFLAGS = -fPIC -DELF=1 -DLINUX=1
+
+LIB2FUNCS_EXTRA=fptr.c
+
+fptr.c: $(srcdir)/config/pa/fptr.c
+	rm -f fptr.c
+	cp $(srcdir)/config/pa/fptr.c .
+
+# Compile crtbeginS.o and crtendS.o as PIC.
+CRTSTUFF_T_CFLAGS_S = -fPIC

--ZPt4rx8FFjLCG7dd--

---------------------------------------
Received: (at 187652-close) by bugs.debian.org; 10 Apr 2003 21:38:46 +0000
>From katie@auric.debian.org Thu Apr 10 16:38:46 2003
Return-path: <katie@auric.debian.org>
Received: from auric.debian.org [206.246.226.45] (mail)
	by master.debian.org with esmtp (Exim 3.12 1 (Debian))
	id 193jkr-0000Mm-00; Thu, 10 Apr 2003 16:38:45 -0500
Received: from katie by auric.debian.org with local (Exim 3.35 1 (Debian))
	id 193jf7-0002CF-00; Thu, 10 Apr 2003 17:32:49 -0400
From: Matthias Klose <doko@debian.org>
To: 187652-close@bugs.debian.org
X-Katie: $Revision: 1.33 $
Subject: Bug#187652: fixed in gcc-3.2 1:3.2.3ds7-0pre8
Message-Id: <E193jf7-0002CF-00@auric.debian.org>
Sender: Archive Administrator <katie@auric.debian.org>
Date: Thu, 10 Apr 2003 17:32:49 -0400
Delivered-To: 187652-close@bugs.debian.org

We believe that the bug you reported is fixed in the latest version of
gcc-3.2, which is due to be installed in the Debian FTP archive:

cpp-3.2-doc_3.2.3-0pre8_all.deb
  to pool/main/g/gcc-3.2/cpp-3.2-doc_3.2.3-0pre8_all.deb
cpp-3.2_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/cpp-3.2_3.2.3-0pre8_i386.deb
fastjar_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/fastjar_3.2.3-0pre8_i386.deb
fixincludes_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/fixincludes_3.2.3-0pre8_i386.deb
g++-3.2_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/g++-3.2_3.2.3-0pre8_i386.deb
g77-3.2-doc_3.2.3-0pre8_all.deb
  to pool/main/g/gcc-3.2/g77-3.2-doc_3.2.3-0pre8_all.deb
g77-3.2_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/g77-3.2_3.2.3-0pre8_i386.deb
gcc-3.2-base_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/gcc-3.2-base_3.2.3-0pre8_i386.deb
gcc-3.2-doc_3.2.3-0pre8_all.deb
  to pool/main/g/gcc-3.2/gcc-3.2-doc_3.2.3-0pre8_all.deb
gcc-3.2_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/gcc-3.2_3.2.3-0pre8_i386.deb
gcc-3.2_3.2.3ds7-0pre8.diff.gz
  to pool/main/g/gcc-3.2/gcc-3.2_3.2.3ds7-0pre8.diff.gz
gcc-3.2_3.2.3ds7-0pre8.dsc
  to pool/main/g/gcc-3.2/gcc-3.2_3.2.3ds7-0pre8.dsc
gcc-3.2_3.2.3ds7.orig.tar.gz
  to pool/main/g/gcc-3.2/gcc-3.2_3.2.3ds7.orig.tar.gz
gcj-3.2_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/gcj-3.2_3.2.3-0pre8_i386.deb
gij-3.2_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/gij-3.2_3.2.3-0pre8_i386.deb
gnat-3.2-doc_3.2.3-0pre8_all.deb
  to pool/main/g/gcc-3.2/gnat-3.2-doc_3.2.3-0pre8_all.deb
gnat-3.2_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/gnat-3.2_3.2.3-0pre8_i386.deb
gobjc-3.2_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/gobjc-3.2_3.2.3-0pre8_i386.deb
gpc-2.1-3.2-doc_3.2.3.20030323-0pre8_all.deb
  to pool/main/g/gcc-3.2/gpc-2.1-3.2-doc_3.2.3.20030323-0pre8_all.deb
gpc-2.1-3.2_3.2.3.20030323-0pre8_i386.deb
  to pool/main/g/gcc-3.2/gpc-2.1-3.2_3.2.3.20030323-0pre8_i386.deb
libffi2-dev_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libffi2-dev_3.2.3-0pre8_i386.deb
libffi2_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libffi2_3.2.3-0pre8_i386.deb
libg2c0_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libg2c0_3.2.3-0pre8_i386.deb
libgcc1_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libgcc1_3.2.3-0pre8_i386.deb
libgcj-common_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libgcj-common_3.2.3-0pre8_i386.deb
libgcj3-dev_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libgcj3-dev_3.2.3-0pre8_i386.deb
libgcj3_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libgcj3_3.2.3-0pre8_i386.deb
libobjc1_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libobjc1_3.2.3-0pre8_i386.deb
libstdc++5-dbg_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libstdc++5-dbg_3.2.3-0pre8_i386.deb
libstdc++5-dev_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libstdc++5-dev_3.2.3-0pre8_i386.deb
libstdc++5-doc_3.2.3-0pre8_all.deb
  to pool/main/g/gcc-3.2/libstdc++5-doc_3.2.3-0pre8_all.deb
libstdc++5-pic_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libstdc++5-pic_3.2.3-0pre8_i386.deb
libstdc++5_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/libstdc++5_3.2.3-0pre8_i386.deb
protoize_3.2.3-0pre8_i386.deb
  to pool/main/g/gcc-3.2/protoize_3.2.3-0pre8_i386.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 187652@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Matthias Klose <doko@debian.org> (supplier of updated gcc-3.2 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----

Format: 1.7
Date: Mon,  7 Apr 2003 23:12:24 +0200
Source: gcc-3.2
Binary: gcc-3.2-base libstdc++5-dev cpp-3.2-doc libgcj3-dev libobjc1 libstdc++5-doc libgcc1 libstdc++5 protoize g77-3.2-doc libstdc++5-dbg gobjc-3.2 g++-3.2 gnat-3.2-doc gcc-3.2 gpc-2.1-3.2-doc libstdc++5-pic g77-3.2 libgcj3 libffi2-dev gpc-2.1-3.2 gcc-3.2-soft-float gcj-3.2 libgcj-common fastjar gcc-3.2-doc gcc-3.2-nof libg2c0 fixincludes gij-3.2 cpp-3.2 libffi2 gnat-3.2
Architecture: source all i386
Version: 1:3.2.3ds7-0pre8
Distribution: unstable
Urgency: high
Maintainer: Debian GCC maintainers <debian-gcc@lists.debian.org>
Changed-By: Matthias Klose <doko@debian.org>
Description: 
 cpp-3.2    - The GNU C preprocessor
 cpp-3.2-doc - Documentation for the GNU C preprocessor (cpp)
 fastjar    - Jar creation utility
 fixincludes - Fix non-ANSI header files
 g++-3.2    - The GNU C++ compiler
 g77-3.2    - The GNU Fortran 77 compiler
 g77-3.2-doc - Documentation for the GNU Fortran compiler (g77)
 gcc-3.2    - The GNU C compiler
 gcc-3.2-base - The GNU Compiler Collection (base package)
 gcc-3.2-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
 gcj-3.2    - The GNU compiler for Java(TM)
 gij-3.2    - The GNU Java bytecode interpreter
 gnat-3.2   - The GNU Ada compiler
 gnat-3.2-doc - Documentation for the GNU Ada compiler (gnat)
 gobjc-3.2  - The GNU Objective-C compiler
 gpc-2.1-3.2 - The GNU Pascal compiler
 gpc-2.1-3.2-doc - Documentation for the GNU Pascal compiler (gpc)
 libffi2    - Foreign Function Interface library runtime
 libffi2-dev - Foreign Function Interface library development
 libg2c0    - Runtime library for GNU Fortran 77 applications
 libgcc1    - GCC support library
 libgcj-common - Java runtime library (common files)
 libgcj3    - Java runtime library for use with gcj
 libgcj3-dev - Java development headers and static library for use with gcj
 libobjc1   - Runtime library for GNU Objective-C applications
 libstdc++5 - The GNU Standard C++ Library v3
 libstdc++5-dbg - The GNU Standard C++ Library v3 (debugging files)
 libstdc++5-dev - The GNU Standard C++ Library v3 (development files)
 libstdc++5-doc - The GNU Standard C++ Library v3 (documentation files)
 libstdc++5-pic - The GNU Standard C++ Library v3 (shared library subset kit)
 protoize   - Create/remove ANSI prototypes from C code
Closes: 185867 187652
Changes: 
 gcc-3.2 (1:3.2.3ds7-0pre8) unstable; urgency=high
 .
   * gcc-3.2.3 prerelease (CVS 20030407)
   * Run the correct automake after patching (closes: #185867).
   * config/m68k/m68k.md: Avoid forcing fp constants into memory (Roman
     Zippel). Fixes gtk2 build: #177840.
   * m68k-subreg.dpatch: Fix vim build on m68k (Roman Zippel).
   * Section conversion (devel -> libdevel).
   * Handle function pointer comparisions on hppa properly. Backported from
     gcc-3.3 branch (Randolph Chung). Closes: #187652.
Files: 
 5d267db9bb8de0c3ec1619f990f53310 2326 devel standard gcc-3.2_3.2.3ds7-0pre8.dsc
 c964b166a073b77751c1fa1267504506 21559610 devel standard gcc-3.2_3.2.3ds7.orig.tar.gz
 e5c30861edf548566cfe08cf0e740192 1795766 devel standard gcc-3.2_3.2.3ds7-0pre8.diff.gz
 a0cb0e0adfddec4cf1ab5d0cdb26010e 84298 doc optional cpp-3.2-doc_3.2.3-0pre8_all.deb
 51aea1661e5b0ed4944aaa43bc44b427 2199722 doc optional libstdc++5-doc_3.2.3-0pre8_all.deb
 19e3e62dcde1ef40b1ee6b10f51c5e4b 309440 doc optional g77-3.2-doc_3.2.3-0pre8_all.deb
 35c58df57e84e8ac4be30ae210e8985f 346706 doc optional gnat-3.2-doc_3.2.3-0pre8_all.deb
 344a4057ccc6aec6954db35f9adbd13c 494476 doc optional gpc-2.1-3.2-doc_3.2.3.20030323-0pre8_all.deb
 1b8557ecc7fae7884082748cd94ea77f 630940 doc optional gcc-3.2-doc_3.2.3-0pre8_all.deb
 15ddb2219991f75e3b54c774d3bf803d 128922 devel important gcc-3.2-base_3.2.3-0pre8_i386.deb
 0b2f91f62d8abeca949dff2f8ce6753e 62216 libs important libgcc1_3.2.3-0pre8_i386.deb
 2c40e54b1384f6d945cd2f9083bf2b69 119928 interpreters standard cpp-3.2_3.2.3-0pre8_i386.deb
 186f07b3110e8469e21a3a911472ad85 22524 devel optional protoize_3.2.3-0pre8_i386.deb
 57d474ad112a638afe0e49bd8cd879fe 47340 devel optional fixincludes_3.2.3-0pre8_i386.deb
 34b83e885d4edf53ebc085df5077da4d 1297882 devel optional gobjc-3.2_3.2.3-0pre8_i386.deb
 2c5b358482497671b94c13696632e550 117600 libs optional libobjc1_3.2.3-0pre8_i386.deb
 d9769aa8dd70199add0f679fdfc30935 12658 devel optional gij-3.2_3.2.3-0pre8_i386.deb
 b420640c258b9fdbbec45e08be493ee7 2688422 libs optional libgcj3_3.2.3-0pre8_i386.deb
 77e40ec3fcd4675ea7274fd16a5311cc 48446 libs optional libgcj-common_3.2.3-0pre8_i386.deb
 1c90dce9e55782c9750211c3fde7f329 1503924 devel optional gcj-3.2_3.2.3-0pre8_i386.deb
 9d0f8e7cd9218ee72f622230e7033011 3012632 libdevel optional libgcj3-dev_3.2.3-0pre8_i386.deb
 4b1006104d664134d62b8976c794763f 90614 devel extra fastjar_3.2.3-0pre8_i386.deb
 e98e5629922fa9c1d9e3661867a080b0 57000 libs optional libffi2_3.2.3-0pre8_i386.deb
 89e060897bfcf47783fe0b34f9dc05c5 10578 libdevel optional libffi2-dev_3.2.3-0pre8_i386.deb
 af12046c02825406c44880a4808ed0dd 1550586 devel standard g++-3.2_3.2.3-0pre8_i386.deb
 30f1b5072392204f8dcd417d2bb973cb 260754 base important libstdc++5_3.2.3-0pre8_i386.deb
 67024e7e8560b2036907a2f5452bccf2 729690 libdevel standard libstdc++5-dev_3.2.3-0pre8_i386.deb
 df862021a46d84c7de67319da6b8d211 309246 libdevel extra libstdc++5-pic_3.2.3-0pre8_i386.deb
 a933e92523f0e31c5a2994e7711f2a3e 1505388 libdevel extra libstdc++5-dbg_3.2.3-0pre8_i386.deb
 5e5ecd57632226456fce71dc0b5bd020 47500 libs optional libg2c0_3.2.3-0pre8_i386.deb
 ee6e19e581d9ce985c40bbff2ddc73e5 1431592 devel optional g77-3.2_3.2.3-0pre8_i386.deb
 a38dd5fc63af19a7a6a24fd72a9d9edb 5405606 devel optional gnat-3.2_3.2.3-0pre8_i386.deb
 68c78b060a2b718647568c9dd70ad7e5 1874652 devel optional gpc-2.1-3.2_3.2.3.20030323-0pre8_i386.deb
 8ac85c5548e8e28d92b6998208e381ec 2278872 devel standard gcc-3.2_3.2.3-0pre8_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv
Comment: Requires PGP version 2.6 or later.

iQEVAwUBPpMhAQuDzMCIcnEhAQGCqwf7BBXgFvlJ9f8RoGkAkO3uD9hbYEv2Lrkh
KfMXgeCkX9pUhZrt3bKiwNeKLX6pHPb0o/gPM7mhcIKhKJEIwagXaYXmQT5HoNhC
nRvyS8E9G+59hrddUPc2gT/CQEsHog+fDgA4wk8b62YhWP7OYUrYwSiimvdHyxPL
oqaBSckdY4WhON1gM4gvu7dLRB+iMvnkgHoDt0ZMI4fp6d49IRZXQxu6qvdPyQL0
xPfyDoyS9vn5+XZBLgXjVkM9Z/LOoxmG4tf9lbPnZygrMeLgSLgvxatsZPE/3utF
MJVqcqAGyxUPNf20XOJyzISp7RoFuxOzNiQhVg+Xr7HWnx2bCllelA==
=cp42
-----END PGP SIGNATURE-----



Reply to: