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: