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

Bug#308948: marked as done (gcc-4.0: Please add Ada support for the ppc64 architecture)



Your message dated Tue, 28 Jun 2005 01:55:13 +0200
with message-id <17088.37345.921597.615420@gargle.gargle.HOWL>
and subject line fixed gcc-4.0 reports
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; 13 May 2005 12:24:09 +0000
>From aj@andaco.de Fri May 13 05:24:09 2005
Return-path: <aj@andaco.de>
Received: from c211008.adsl.hansenet.de (localhost.localdomain) [213.39.211.8] 
	by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1DWZD6-0002Kj-00; Fri, 13 May 2005 05:24:08 -0700
Received: from aj by localhost.localdomain with local (Exim 4.50)
	id 1DWZD0-0001D2-RP; Fri, 13 May 2005 14:24:02 +0200
To: Debian Bug Tracking System <submit@bugs.debian.org>
From: Andreas Jochens <aj@andaco.de>
Subject: gcc-4.0: Please add Ada support for the ppc64 architecture
Message-Id: <E1DWZD0-0001D2-RP@localhost.localdomain>
Date: Fri, 13 May 2005 14:24:02 +0200
Delivered-To: submit@bugs.debian.org
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-7.0 required=4.0 tests=BAYES_01,HAS_PACKAGE 
	autolearn=no version=2.60-bugs.debian.org_2005_01_02
X-Spam-Level: 

Package: gcc-4.0
Severity: wishlist
Tags: patch

The attached patch makes Ada work on the ppc64 architecture. 
The patch changes the following:

* debian/patches/ppc64-ada.dpatch
  - Add gcc/ada/system-linux-ppc64.ads, which has been copied from 
    gcc/ada/system-linux-ppc.ads and changed to use 'Word_Size' 64
    instead of 32.
  - gcc/ada/Makefile.in: Use gcc/ada/system-linux-ppc64.ads on powerpc64.

* debian/rules.patch
  - Use ppc64-ada patch on ppc64.

* debian/rules.d/binary-ada.mk
  Place the symlinks libgnat.so, libgnat-4.0.so, libgnarl.so, libgnarl-4.0.so
  in '/usr/lib' instead of '/usr/lib/gcc/powerpc64-linux/4.0.1/adalib'.
  The files libgnat-4.0.so.1 and libgnarl-4.0.so.1, where these symlinks 
  point to, are already in '/usr/lib'.
  Without this change, it would not be possible to just specify '-lgnat' to
  link an Ada program. Instead, an additional ugly architecture-specific and
  gcc-version-specific linker option would have to be specified, e.g.
  '-L/usr/lib/gcc/powerpc64-linux/4.0.1/adalib'.

This patch has been used for quite a while by the ppc64/gcc4 archive on
alioth. The resulting gnat-4.0 compiler compiles itself without problems.
It also compiles almost all Debian Ada source packages when the 
(Build-)Depends are changed to allow building with gnat-4.0 and the 
Architecture lines are changed to 'any'.

Regards
Andreas Jochens

diff -urN ../tmp-orig/gcc-4.0-4.0.0/debian/patches/ppc64-ada.dpatch ./debian/patches/ppc64-ada.dpatch
--- ../tmp-orig/gcc-4.0-4.0.0/debian/patches/ppc64-ada.dpatch	1970-01-01 01:00:00.000000000 +0100
+++ ./debian/patches/ppc64-ada.dpatch	2005-05-08 09:23:23.000000000 +0200
@@ -0,0 +1,259 @@
+#! /bin/sh -e
+
+# DP: Add gcc/ada/system-linux-ppc64.ads and use it in gcc/ada/Makefile.in
+# DP: 
+
+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
+
+diff -urN src.orig/gcc/ada/Makefile.in src/gcc/ada/Makefile.in
+--- src.orig/gcc/ada/Makefile.in	2005-05-02 16:39:32.000000000 +0200
++++ src/gcc/ada/Makefile.in	2005-05-02 16:36:37.000000000 +0200
+@@ -1346,6 +1346,31 @@
+   LIBRARY_VERSION := $(LIB_VERSION)
+ endif
+ 
++ifeq ($(strip $(filter-out powerpc64% linux%,$(arch) $(osys))),)
++  LIBGNAT_TARGET_PAIRS = \
++  a-intnam.ads<a-intnam-linux.ads \
++  s-inmaop.adb<s-inmaop-posix.adb \
++  s-intman.adb<s-intman-posix.adb \
++  s-osinte.adb<s-osinte-posix.adb \
++  s-osinte.ads<s-osinte-linux.ads \
++  s-osprim.adb<s-osprim-posix.adb \
++  s-taprop.adb<s-taprop-linux.adb \
++  s-taspri.ads<s-taspri-linux.ads \
++  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
++  s-parame.adb<s-parame-linux.adb \
++  system.ads<system-linux-ppc64.ads
++
++  TOOLS_TARGET_PAIRS =  \
++    mlib-tgt.adb<mlib-tgt-linux.adb \
++    indepsw.adb<indepsw-linux.adb
++
++  THREADSLIB = -lpthread
++  GNATLIB_SHARED = gnatlib-shared-dual
++  GMEM_LIB = gmemlib
++  PREFIX_OBJS = $(PREFIX_REAL_OBJS)
++  LIBRARY_VERSION := $(LIB_VERSION)
++endif
++
+ ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),)
+   LIBGNAT_TARGET_PAIRS = \
+   a-intnam.ads<a-intnam-linux.ads \
+diff -urN src.orig/gcc/ada/system-linux-ppc64.ads src/gcc/ada/system-linux-ppc64.ads
+--- src.orig/gcc/ada/system-linux-ppc64.ads	1970-01-01 01:00:00.000000000 +0100
++++ src/gcc/ada/system-linux-ppc64.ads	2005-05-02 16:33:38.000000000 +0200
+@@ -0,0 +1,151 @@
++------------------------------------------------------------------------------
++--                                                                          --
++--                        GNAT RUN-TIME COMPONENTS                          --
++--                                                                          --
++--                               S Y S T E M                                --
++--                                                                          --
++--                                 S p e c                                  --
++--                          (GNU-Linux/PPC64 Version)                       --
++--                                                                          --
++--          Copyright (C) 1992-2004 Free Software Foundation, Inc.          --
++--                                                                          --
++-- This specification is derived from the Ada Reference Manual for use with --
++-- GNAT. The copyright notice above, and the license provisions that follow --
++-- apply solely to the  contents of the part following the private keyword. --
++--                                                                          --
++-- GNAT is free software;  you can  redistribute it  and/or modify it under --
++-- terms of the  GNU General Public License as published  by the Free Soft- --
++-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
++-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
++-- OUT 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  distributed with GNAT;  see 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 other files  instantiate  generics from this --
++-- unit, or you link  this unit with other files  to produce an executable, --
++-- this  unit  does not  by itself 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 Public License.                                      --
++--                                                                          --
++-- GNAT was originally developed  by the GNAT team at  New York University. --
++-- Extensive contributions were provided by Ada Core Technologies Inc.      --
++--                                                                          --
++------------------------------------------------------------------------------
++
++package System is
++pragma Pure (System);
++--  Note that we take advantage of the implementation permission to
++--  make this unit Pure instead of Preelaborable, see RM 13.7(36)
++
++   type Name is (SYSTEM_NAME_GNAT);
++   System_Name : constant Name := SYSTEM_NAME_GNAT;
++
++   --  System-Dependent Named Numbers
++
++   Min_Int               : constant := Long_Long_Integer'First;
++   Max_Int               : constant := Long_Long_Integer'Last;
++
++   Max_Binary_Modulus    : constant := 2 ** Long_Long_Integer'Size;
++   Max_Nonbinary_Modulus : constant := Integer'Last;
++
++   Max_Base_Digits       : constant := Long_Long_Float'Digits;
++   Max_Digits            : constant := Long_Long_Float'Digits;
++
++   Max_Mantissa          : constant := 63;
++   Fine_Delta            : constant := 2.0 ** (-Max_Mantissa);
++
++   Tick                  : constant := 0.000_001;
++
++   --  Storage-related Declarations
++
++   type Address is private;
++   Null_Address : constant Address;
++
++   Storage_Unit : constant := 8;
++   Word_Size    : constant := 64;
++   Memory_Size  : constant := 2 ** 64;
++
++   --  Address comparison
++
++   function "<"  (Left, Right : Address) return Boolean;
++   function "<=" (Left, Right : Address) return Boolean;
++   function ">"  (Left, Right : Address) return Boolean;
++   function ">=" (Left, Right : Address) return Boolean;
++   function "="  (Left, Right : Address) return Boolean;
++
++   pragma Import (Intrinsic, "<");
++   pragma Import (Intrinsic, "<=");
++   pragma Import (Intrinsic, ">");
++   pragma Import (Intrinsic, ">=");
++   pragma Import (Intrinsic, "=");
++
++   --  Other System-Dependent Declarations
++
++   type Bit_Order is (High_Order_First, Low_Order_First);
++   Default_Bit_Order : constant Bit_Order := High_Order_First;
++
++   --  Priority-related Declarations (RM D.1)
++
++   Max_Priority           : constant Positive := 30;
++   Max_Interrupt_Priority : constant Positive := 31;
++
++   subtype Any_Priority       is Integer      range  0 .. 31;
++   subtype Priority           is Any_Priority range  0 .. 30;
++   subtype Interrupt_Priority is Any_Priority range 31 .. 31;
++
++   Default_Priority : constant Priority := 15;
++
++private
++
++   type Address is mod Memory_Size;
++   Null_Address : constant Address := 0;
++
++   --------------------------------------
++   -- System Implementation Parameters --
++   --------------------------------------
++
++   --  These parameters provide information about the target that is used
++   --  by the compiler. They are in the private part of System, where they
++   --  can be accessed using the special circuitry in the Targparm unit
++   --  whose source should be consulted for more detailed descriptions
++   --  of the individual switch values.
++
++   AAMP                      : constant Boolean := False;
++   Backend_Divide_Checks     : constant Boolean := False;
++   Backend_Overflow_Checks   : constant Boolean := False;
++   Command_Line_Args         : constant Boolean := True;
++   Configurable_Run_Time     : constant Boolean := False;
++   Denorm                    : constant Boolean := True;
++   Duration_32_Bits          : constant Boolean := False;
++   Exit_Status_Supported     : constant Boolean := True;
++   Fractional_Fixed_Ops      : constant Boolean := False;
++   Frontend_Layout           : constant Boolean := False;
++   Functions_Return_By_DSP   : constant Boolean := False;
++   Machine_Overflows         : constant Boolean := False;
++   Machine_Rounds            : constant Boolean := True;
++   OpenVMS                   : constant Boolean := False;
++   Preallocated_Stacks       : constant Boolean := False;
++   Signed_Zeros              : constant Boolean := True;
++   Stack_Check_Default       : constant Boolean := False;
++   Stack_Check_Probes        : constant Boolean := False;
++   Support_64_Bit_Divides    : constant Boolean := True;
++   Support_Aggregates        : constant Boolean := True;
++   Support_Composite_Assign  : constant Boolean := True;
++   Support_Composite_Compare : constant Boolean := True;
++   Support_Long_Shifts       : constant Boolean := True;
++   Suppress_Standard_Library : constant Boolean := False;
++   Use_Ada_Main_Program_Name : constant Boolean := False;
++   ZCX_By_Default            : constant Boolean := True;
++   GCC_ZCX_Support           : constant Boolean := True;
++   Front_End_ZCX_Support     : constant Boolean := False;
++
++   --  Obsolete entries, to be removed eventually (bootstrap issues!)
++
++   High_Integrity_Mode       : constant Boolean := False;
++   Long_Shifts_Inlined       : constant Boolean := True;
++
++end System;
+diff -urN tmp/gcc/ada/s-auxdec.ads src/gcc/ada/s-auxdec.ads
+--- tmp/gcc/ada/s-auxdec.ads	2004-06-11 12:47:36.000000000 +0200
++++ src/gcc/ada/s-auxdec.ads	2005-05-03 11:34:17.000000000 +0200
+@@ -108,13 +108,13 @@
+    pragma Warnings (Off);
+ 
+    type F_Float is digits 6;
+-   pragma Float_Representation (VAX_Float, F_Float);
++--   pragma Float_Representation (VAX_Float, F_Float);
+ 
+    type D_Float is digits 9;
+-   pragma Float_Representation (Vax_Float, D_Float);
++--   pragma Float_Representation (Vax_Float, D_Float);
+ 
+    type G_Float is digits 15;
+-   pragma Float_Representation (Vax_Float, G_Float);
++--   pragma Float_Representation (Vax_Float, G_Float);
+ 
+    --  Floating point type declarations for IEEE floating point data types
+ 
+--- tmp/gcc/ada/s-vaflop.ads	2003-10-21 15:42:18.000000000 +0200
++++ src/gcc/ada/s-vaflop.ads	2005-05-03 15:24:24.000000000 +0200
+@@ -40,15 +40,15 @@
+    --  Suppress warnings if not on Alpha/VAX
+ 
+    type D is digits 9;
+-   pragma Float_Representation (VAX_Float, D);
++--   pragma Float_Representation (VAX_Float, D);
+    --  D Float type on Vax
+ 
+    type G is digits 15;
+-   pragma Float_Representation (VAX_Float, G);
++--   pragma Float_Representation (VAX_Float, G);
+    --  G Float type on Vax
+ 
+    type F is digits 6;
+-   pragma Float_Representation (VAX_Float, F);
++--   pragma Float_Representation (VAX_Float, F);
+    --  F Float type on Vax
+ 
+    type S is digits 6;
diff -urN ../tmp-orig/gcc-4.0-4.0.0/debian/rules.patch ./debian/rules.patch
--- ../tmp-orig/gcc-4.0-4.0.0/debian/rules.patch	2005-05-07 10:00:50.000000000 +0200
+++ ./debian/rules.patch	2005-05-07 10:17:38.000000000 +0200
@@ -69,7 +69,7 @@
   debian_patches += amd64-biarch # amd64-multilib
 endif
 ifeq ($(DEB_TARGET_ARCH),ppc64)
-  debian_patches += ppc64-biarch
+  debian_patches += ppc64-biarch ppc64-ada
 endif
 
 ifeq ($(DEB_TARGET_GNU_CPU),alpha)
diff -urN ../tmp-orig/gcc-4.0-4.0.0/debian/rules.d/binary-ada.mk ./debian/rules.d/binary-ada.mk
--- ../tmp-orig/gcc-4.0-4.0.0/debian/rules.d/binary-ada.mk	2005-05-07 10:00:47.000000000 +0200
+++ ./debian/rules.d/binary-ada.mk	2005-05-07 10:17:37.000000000 +0200
@@ -106,8 +106,8 @@
 	for lib in lib{gnat,gnarl}; do \
 	  vlib=$$lib-$(GNAT_SONAME); \
 	  dh_link -p$(p_gnat) \
-	    /$(PF)/$(libdir)/$$vlib.so.1 /$(gcc_lib_dir)/adalib/$$vlib.so \
-	    /$(PF)/$(libdir)/$$vlib.so.1 /$(gcc_lib_dir)/adalib/$$lib.so; \
+	    /$(PF)/$(libdir)/$$vlib.so.1 /$(PF)/$(libdir)/$$vlib.so \
+	    /$(PF)/$(libdir)/$$vlib.so.1 /$(PF)/$(libdir)/$$lib.so; \
 	done
 endif
 	debian/dh_doclink -p$(p_gnat) $(p_base)


---------------------------------------
Received: (at 308948-done) by bugs.debian.org; 27 Jun 2005 23:55:19 +0000
>From doko@cs.tu-berlin.de Mon Jun 27 16:55:19 2005
Return-path: <doko@cs.tu-berlin.de>
Received: from mail.cs.tu-berlin.de [130.149.17.13] (root)
	by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1Dn3Re-0008FE-00; Mon, 27 Jun 2005 16:55:18 -0700
Received: from mailhost.cs.tu-berlin.de (postfix@mail.cs.tu-berlin.de [130.149.17.13])
	by mail.cs.tu-berlin.de (8.9.3p2/8.9.3) with ESMTP id BAA05467;
	Tue, 28 Jun 2005 01:55:16 +0200 (MEST)
Received: from localhost (localhost [127.0.0.1])
	by mailhost.cs.tu-berlin.de (Postfix) with ESMTP id E119EF2B9;
	Tue, 28 Jun 2005 01:55:15 +0200 (MEST)
Received: from mailhost.cs.tu-berlin.de ([127.0.0.1])
 by localhost (bueno [127.0.0.1]) (amavisd-new, port 10224) with ESMTP
 id 23854-28; Tue, 28 Jun 2005 01:55:14 +0200 (MEST) 11357
Received: from bolero.cs.tu-berlin.de (bolero.cs.tu-berlin.de [130.149.19.1])
	by mailhost.cs.tu-berlin.de (Postfix) with ESMTP;
	Tue, 28 Jun 2005 01:55:14 +0200 (MEST)
Received: (from doko@localhost)
	by bolero.cs.tu-berlin.de (8.12.10+Sun/8.12.8/Submit) id j5RNtEhx027440;
	Tue, 28 Jun 2005 01:55:14 +0200 (MEST)
From: Matthias Klose <doko@cs.tu-berlin.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <17088.37345.921597.615420@gargle.gargle.HOWL>
Date: Tue, 28 Jun 2005 01:55:13 +0200
To: 305690-done@bugs.debian.org, 308948-done@bugs.debian.org
Subject: fixed gcc-4.0 reports
X-Mailer: VM 7.17 under 21.4 (patch 17) "Jumbo Shrimp" XEmacs Lucid
X-Virus-Scanned: by amavisd-new at cs.tu-berlin.de
Delivered-To: 308948-done@bugs.debian.org
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-3.0 required=4.0 tests=BAYES_00 autolearn=no 
	version=2.60-bugs.debian.org_2005_01_02
X-Spam-Level: 
X-CrossAssassin-Score: 2

fixed in 4.0.0-9.

   * Add Ada support for the ppc64 architecture (Andreas Jochens):
     * debian/patches/ppc64-ada.dpatch
       - Add gcc/ada/system-linux-ppc64.ads, which has been copied from
         gcc/ada/system-linux-ppc.ads and changed to use 'Word_Size' 64
         instead of 32.
       - gcc/ada/Makefile.in: Use gcc/ada/system-linux-ppc64.ads on powerpc64.
     * debian/rules.patch
       - Use ppc64-ada patch on ppc64.
     * debian/rules.d/binary-ada.mk
       Place the symlinks libgnat.so, libgnat-4.0.so, libgnarl.so,
       libgnarl-4.0.so in '/usr/lib' instead of '<gcc_lib_dir>/adalib'.
     Closes: #308948.
   * Add libc6-dev-i386 as an alternative build dependency for amd64.
     Closes: #305690.



Reply to: