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

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: