Bug#476868: gnat-4.3: FTBFS (ppc64): Please update debian/ppc64-ada.dpatch
Package: gnat-4.3
Version: 4.3.0-4
Severity: wishlist
Tags: patch
Hello,
the current debian/ppc64-ada.dpatch has to be updated for gnat-4.3.
With the attached patch 'gnat-4.3' can be built on ppc64.
The resulting new debian/ppc64-ada.dpatch does the following:
* add the new files system-linux-ppc64.ads and g-soccon-linux-ppc64.ads
which are copies of system-linux-ppc.ads and g-soccon-linux-ppc.ads
with some changes for the 64 bit instead of 32 bit architecture
* add a section for powerpc64 in src/gcc/ada/Makefile.in.
There are no gnat-4.3 packages in the debian-ppc64 unstable archive
on alioth yet. However, I uploaded a preliminary set of debs for
gnat-4.3 (Version_4.3.0-4) to
http://debian-ppc64.alioth.debian.org/gcc4/gnat-4.3
Regards
Andreas Jochens
diff -urN ../tmp-orig/gnat-4.3-4.3.0/debian/patches/ppc64-ada.dpatch ./debian/patches/ppc64-ada.dpatch
--- ../tmp-orig/gnat-4.3-4.3.0/debian/patches/ppc64-ada.dpatch 2008-04-18 14:11:43.000000000 +0000
+++ ./debian/patches/ppc64-ada.dpatch 2008-04-17 05:45:00.000000000 +0000
@@ -24,31 +24,34 @@
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 @@
+diff -urN gcc-4.3.0/gcc/ada/Makefile.in src/gcc/ada/Makefile.in
+--- gcc-4.3.0/gcc/ada/Makefile.in 2008-02-13 19:04:53.000000000 +0000
++++ src/gcc/ada/Makefile.in 2008-04-15 10:16:32.000000000 +0000
+@@ -1390,6 +1390,34 @@
LIBRARY_VERSION := $(LIB_VERSION)
endif
+ifeq ($(strip $(filter-out powerpc64% linux%,$(arch) $(osys))),)
+ LIBGNAT_TARGET_PAIRS = \
+ a-intnam.ads<a-intnam-linux.ads \
++ g-soccon.ads<g-soccon-linux-ppc64.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-tasinf.ads<s-tasinf-linux.ads \
++ s-tasinf.adb<s-tasinf-linux.adb \
++ s-taspri.ads<s-taspri-posix.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
++ mlib-tgt-specific.adb<mlib-tgt-linux.adb \
++ indepsw.adb<indepsw-gnu.adb
+
++ EH_MECHANISM=-gcc
+ THREADSLIB = -lpthread
+ GNATLIB_SHARED = gnatlib-shared-dual
+ GMEM_LIB = gmemlib
@@ -59,10 +62,208 @@
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 @@
+diff -urN gcc-4.3.0/gcc/ada/g-soccon-linux-ppc64.ads src/gcc/ada/g-soccon-linux-ppc64.ads
+--- gcc-4.3.0/gcc/ada/g-soccon-linux-ppc64.ads 1970-01-01 00:00:00.000000000 +0000
++++ src/gcc/ada/g-soccon-linux-ppc64.ads 2008-04-15 10:16:16.000000000 +0000
+@@ -0,0 +1,194 @@
++------------------------------------------------------------------------------
++-- --
++-- GNAT COMPILER COMPONENTS --
++-- --
++-- G N A T . S O C K E T S . C O N S T A N T S --
++-- --
++-- S p e c --
++-- --
++-- Copyright (C) 2000-2007, Free Software Foundation, Inc. --
++-- --
++-- 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, 51 Franklin Street, Fifth Floor, --
++-- Boston, MA 02110-1301, 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. --
++-- --
++------------------------------------------------------------------------------
++
++-- This package provides target dependent definitions of constant for use
++-- by the GNAT.Sockets package (g-socket.ads). This package should not be
++-- directly with'ed by an applications program.
++
++-- This is the version for powerpc-linux
++-- This file is generated automatically, do not modify it by hand! Instead,
++-- make changes to gen-soccon.c and re-run it on each target.
++
++package GNAT.Sockets.Constants is
++
++ --------------
++ -- Families --
++ --------------
++
++ AF_INET : constant := 2; -- IPv4 address family
++ AF_INET6 : constant := 10; -- IPv6 address family
++
++ -----------
++ -- Modes --
++ -----------
++
++ SOCK_STREAM : constant := 1; -- Stream socket
++ SOCK_DGRAM : constant := 2; -- Datagram socket
++
++ -------------------
++ -- Socket errors --
++ -------------------
++
++ EACCES : constant := 13; -- Permission denied
++ EADDRINUSE : constant := 98; -- Address already in use
++ EADDRNOTAVAIL : constant := 99; -- Cannot assign address
++ EAFNOSUPPORT : constant := 97; -- Addr family not supported
++ EALREADY : constant := 114; -- Operation in progress
++ EBADF : constant := 9; -- Bad file descriptor
++ ECONNABORTED : constant := 103; -- Connection aborted
++ ECONNREFUSED : constant := 111; -- Connection refused
++ ECONNRESET : constant := 104; -- Connection reset by peer
++ EDESTADDRREQ : constant := 89; -- Destination addr required
++ EFAULT : constant := 14; -- Bad address
++ EHOSTDOWN : constant := 112; -- Host is down
++ EHOSTUNREACH : constant := 113; -- No route to host
++ EINPROGRESS : constant := 115; -- Operation now in progress
++ EINTR : constant := 4; -- Interrupted system call
++ EINVAL : constant := 22; -- Invalid argument
++ EIO : constant := 5; -- Input output error
++ EISCONN : constant := 106; -- Socket already connected
++ ELOOP : constant := 40; -- Too many symbolic lynks
++ EMFILE : constant := 24; -- Too many open files
++ EMSGSIZE : constant := 90; -- Message too long
++ ENAMETOOLONG : constant := 36; -- Name too long
++ ENETDOWN : constant := 100; -- Network is down
++ ENETRESET : constant := 102; -- Disconn. on network reset
++ ENETUNREACH : constant := 101; -- Network is unreachable
++ ENOBUFS : constant := 105; -- No buffer space available
++ ENOPROTOOPT : constant := 92; -- Protocol not available
++ ENOTCONN : constant := 107; -- Socket not connected
++ ENOTSOCK : constant := 88; -- Operation on non socket
++ EOPNOTSUPP : constant := 95; -- Operation not supported
++ EPFNOSUPPORT : constant := 96; -- Unknown protocol family
++ EPROTONOSUPPORT : constant := 93; -- Unknown protocol
++ EPROTOTYPE : constant := 91; -- Unknown protocol type
++ ESHUTDOWN : constant := 108; -- Cannot send once shutdown
++ ESOCKTNOSUPPORT : constant := 94; -- Socket type not supported
++ ETIMEDOUT : constant := 110; -- Connection timed out
++ ETOOMANYREFS : constant := 109; -- Too many references
++ EWOULDBLOCK : constant := 11; -- Operation would block
++
++ -----------------
++ -- Host errors --
++ -----------------
++
++ HOST_NOT_FOUND : constant := 1; -- Unknown host
++ TRY_AGAIN : constant := 2; -- Host name lookup failure
++ NO_DATA : constant := 4; -- No data record for name
++ NO_RECOVERY : constant := 3; -- Non recoverable errors
++
++ -------------------
++ -- Control flags --
++ -------------------
++
++ FIONBIO : constant := -2147195266; -- Set/clear non-blocking io
++ FIONREAD : constant := 1074030207; -- How many bytes to read
++
++ --------------------
++ -- Shutdown modes --
++ --------------------
++
++ SHUT_RD : constant := 0; -- No more recv
++ SHUT_WR : constant := 1; -- No more send
++ SHUT_RDWR : constant := 2; -- No more recv/send
++
++ ---------------------
++ -- Protocol levels --
++ ---------------------
++
++ SOL_SOCKET : constant := 1; -- Options for socket level
++ IPPROTO_IP : constant := 0; -- Dummy protocol for IP
++ IPPROTO_UDP : constant := 17; -- UDP
++ IPPROTO_TCP : constant := 6; -- TCP
++
++ -------------------
++ -- Request flags --
++ -------------------
++
++ MSG_OOB : constant := 1; -- Process out-of-band data
++ MSG_PEEK : constant := 2; -- Peek at incoming data
++ MSG_EOR : constant := 128; -- Send end of record
++ MSG_WAITALL : constant := 256; -- Wait for full reception
++ MSG_NOSIGNAL : constant := 16384; -- No SIGPIPE on send
++ MSG_Forced_Flags : constant := MSG_NOSIGNAL;
++ -- Flags set on all send(2) calls
++
++ --------------------
++ -- Socket options --
++ --------------------
++
++ TCP_NODELAY : constant := 1; -- Do not coalesce packets
++ SO_REUSEADDR : constant := 2; -- Bind reuse local address
++ SO_KEEPALIVE : constant := 9; -- Enable keep-alive msgs
++ SO_LINGER : constant := 13; -- Defer close to flush data
++ SO_BROADCAST : constant := 6; -- Can send broadcast msgs
++ SO_SNDBUF : constant := 7; -- Set/get send buffer size
++ SO_RCVBUF : constant := 8; -- Set/get recv buffer size
++ SO_SNDTIMEO : constant := 19; -- Emission timeout
++ SO_RCVTIMEO : constant := 18; -- Reception timeout
++ SO_ERROR : constant := 4; -- Get/clear error status
++ IP_MULTICAST_IF : constant := 32; -- Set/get mcast interface
++ IP_MULTICAST_TTL : constant := 33; -- Set/get multicast TTL
++ IP_MULTICAST_LOOP : constant := 34; -- Set/get mcast loopback
++ IP_ADD_MEMBERSHIP : constant := 35; -- Join a multicast group
++ IP_DROP_MEMBERSHIP : constant := 36; -- Leave a multicast group
++
++ -------------------
++ -- System limits --
++ -------------------
++
++ IOV_MAX : constant := 2147483647; -- Maximum writev iovcnt
++
++ ----------------------
++ -- Type definitions --
++ ----------------------
++
++ -- Sizes (in bytes) of the components of struct timeval
++
++ SIZEOF_tv_sec : constant := 8; -- tv_sec
++ SIZEOF_tv_usec : constant := 8; -- tv_usec
++
++ ----------------------------------------
++ -- Properties of supported interfaces --
++ ----------------------------------------
++
++ Need_Netdb_Buffer : constant := 1; -- Need buffer for Netdb ops
++
++ ----------------------
++ -- Additional flags --
++ ----------------------
++
++ Thread_Blocking_IO : constant Boolean := True;
++ -- Set False for contexts where socket i/o are process blocking
++
++end GNAT.Sockets.Constants;
+diff -urN gcc-4.3.0/gcc/ada/system-linux-ppc64.ads src/gcc/ada/system-linux-ppc64.ads
+--- gcc-4.3.0/gcc/ada/system-linux-ppc64.ads 1970-01-01 00:00:00.000000000 +0000
++++ src/gcc/ada/system-linux-ppc64.ads 2008-04-15 10:09:03.000000000 +0000
+@@ -0,0 +1,155 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
@@ -70,9 +271,9 @@
+-- S Y S T E M --
+-- --
+-- S p e c --
-+-- (GNU-Linux/PPC64 Version) --
++-- (GNU-Linux/PPC64 Version) --
+-- --
-+-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
++-- Copyright (C) 1992-2007, 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 --
@@ -86,8 +287,8 @@
+-- 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. --
++-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
++-- Boston, MA 02110-1301, 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, --
@@ -102,9 +303,10 @@
+------------------------------------------------------------------------------
+
+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)
++ pragma Pure;
++ -- Note that we take advantage of the implementation permission to make
++ -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada
++ -- 2005, this is Pure in any case (AI-362).
+
+ type Name is (SYSTEM_NAME_GNAT);
+ System_Name : constant Name := SYSTEM_NAME_GNAT;
@@ -115,7 +317,7 @@
+ Max_Int : constant := Long_Long_Integer'Last;
+
+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size;
-+ Max_Nonbinary_Modulus : constant := Integer'Last;
++ Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1;
+
+ Max_Base_Digits : constant := Long_Long_Float'Digits;
+ Max_Digits : constant := Long_Long_Float'Digits;
@@ -128,6 +330,7 @@
+ -- Storage-related Declarations
+
+ type Address is private;
++ pragma Preelaborable_Initialization (Address);
+ Null_Address : constant Address;
+
+ Storage_Unit : constant := 8;
@@ -152,17 +355,26 @@
+
+ type Bit_Order is (High_Order_First, Low_Order_First);
+ Default_Bit_Order : constant Bit_Order := High_Order_First;
++ pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning
+
+ -- Priority-related Declarations (RM D.1)
+
-+ Max_Priority : constant Positive := 30;
-+ Max_Interrupt_Priority : constant Positive := 31;
++ -- 0 .. 98 corresponds to the system priority range 1 .. 99.
++ --
++ -- If the scheduling policy is SCHED_FIFO or SCHED_RR the runtime makes use
++ -- of the entire range provided by the system.
++ --
++ -- If the scheduling policy is SCHED_OTHER the only valid system priority
++ -- is 1 and other values are simply ignored.
++
++ Max_Priority : constant Positive := 97;
++ Max_Interrupt_Priority : constant Positive := 98;
++
++ subtype Any_Priority is Integer range 0 .. 98;
++ subtype Priority is Any_Priority range 0 .. 97;
++ subtype Interrupt_Priority is Any_Priority range 98 .. 98;
+
-+ 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;
++ Default_Priority : constant Priority := 48;
+
+private
+
@@ -179,7 +391,6 @@
+ -- 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;
@@ -189,69 +400,22 @@
+ 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;
++ Stack_Check_Limits : 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;
++ Always_Compatible_Rep : 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;
Reply to: