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; -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]