OSDN Git Service

* Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
authoraj <aj@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Nov 2003 13:56:34 +0000 (13:56 +0000)
committeraj <aj@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Nov 2003 13:56:34 +0000 (13:56 +0000)
* 5nsystem.ads: New file for x86_64-linux-gnu.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73606 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/5nsystem.ads [new file with mode: 0644]
gcc/ada/ChangeLog
gcc/ada/Makefile.in

diff --git a/gcc/ada/5nsystem.ads b/gcc/ada/5nsystem.ads
new file mode 100644 (file)
index 0000000..37a495d
--- /dev/null
@@ -0,0 +1,150 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                        GNAT RUN-TIME COMPONENTS                          --
+--                                                                          --
+--                               S Y S T E M                                --
+--                                                                          --
+--                                 S p e c                                  --
+--                          (GNU-Linux/x86-64 Version)                      --
+--                                                                          --
+--          Copyright (C) 1992-2003 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 := Low_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;
+   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;
index c905446..0a8ba69 100644 (file)
@@ -1,3 +1,9 @@
+2003-11-14  Andreas Jaeger  <aj@suse.de>
+
+       * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
+
+       * 5nsystem.ads: New file for x86_64-linux-gnu.
+
 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
 
        * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
        Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
        instead of Sdefault.Object_Dir_Default_Name
 
-       * gnatlink.adb: 
+       * gnatlink.adb:
        (Process_Binder_File): Never suppress the option following -Xlinker
 
-       * mdll-utl.adb: 
+       * mdll-utl.adb:
        (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
        Sdefault.Object_Dir_Default_Name.
 
-       * osint.ads, osint.adb: 
+       * osint.ads, osint.adb:
        (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
        Minor reformatting.
 
        * vms_conv.ads: Minor reformating
        Remove GNAT STANDARD and GNAT PSTA
 
-       * vms_conv.adb: 
+       * vms_conv.adb:
        Allow GNAT MAKE to have several files on the command line.
        (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
        Sdefault.Object_Dir_Default_Name.
        Minor Reformating
        Remove data for GNAT STANDARD
 
-       * vms_data.ads: 
+       * vms_data.ads:
        Add new compiler qualifier /PRINT_STANDARD (-gnatS)
        Remove data for GNAT STANDARD
        Remove options and documentation for -gnatwb/-gnatwB: these warning
 
        * 5zthrini.adb: (Init_RTS): Made visible
 
-       * 5zthrini.adb: 
+       * 5zthrini.adb:
        (Register): Removed unnecessary call to taskVarGet that checked whether
         an ATSD was already set as a task var for the argument thread.
 
-       * s-thread.adb: 
+       * s-thread.adb:
        Updated comment to reflect that this is a VxWorks version
        Added context clause for System.Threads.Initialization
        Added call to System.Threads.Initialization.Init_RTS
 
 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
 
-       * 5zthrini.adb: 
+       * 5zthrini.adb:
        (Init_RTS): New procedure, for the initialization of the run-time lib.
 
-       * s-thread.adb: 
+       * s-thread.adb:
        Remove dependancy on System.Init, so that this file can be used in the
        AE653 sequential run-time lib.
 
 
 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
 
-       * checks.adb: 
+       * checks.adb:
        (Apply_Discriminant_Check): Do no apply check if target type is derived
        from source type with no applicable constraint.
 
-       * lib-writ.adb: 
+       * lib-writ.adb:
        (Ensure_System_Dependency): Do not apply the style checks that may have
        been specified for the main unit.
 
-       * sem_ch8.adb: 
+       * sem_ch8.adb:
        (Find_Selected_Component): Further improvement in error message, with
        RM reference.
 
-       * sem_res.adb: 
+       * sem_res.adb:
        (Resolve): Handle properly the case of an illegal overloaded protected
        procedure.
 
 2003-11-13  Javier Miranda  <miranda@gnat.com>
 
-       * exp_aggr.adb: 
+       * exp_aggr.adb:
        (Has_Default_Init_Comps): New function to check the presence of
        default initialization in an aggregate.
        (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
        (P_Record_Or_Array_Component_Association): Give support to the new
        syntax for default initialization of components.
 
-       * sem_aggr.adb: 
+       * sem_aggr.adb:
        (Resolve_Aggregate): Relax the strictness of the frontend in case of
        limited aggregates.
        (Resolve_Record_Aggregate): Give support to default initialized
        (Resolve_Extension_Aggregate): Give support to limited extension
        aggregates.
 
-       * sem_ch3.adb: 
+       * sem_ch3.adb:
        (Check_Initialization): Relax the strictness of the front-end in case
        of aggregate and extension aggregates. This test is now done in
        Get_Value in a per-component manner.
 
        * s-thread.adb: Implement bodies for thread body processing
 
-       * s-thread.ads: 
+       * s-thread.ads:
        Added comment identifying supported targets for pragma Thread_Body.
 
 2003-11-10  Pascal Obry  <obry@gnat.com>
        * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
        GNAT_MAX_PATH_LEN.
 
-       * s-fileio.adb: 
+       * s-fileio.adb:
        (Open): Properly check for string length before copying into the buffer.
        Raises Name_Error if buffer is too small. Note that this was a potential
        buffer overflow.
 
 2003-11-10  Vincent Celier  <celier@gnat.com>
 
-       * gprcmd.adb: 
+       * gprcmd.adb:
        (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
        installation.
 
        * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
        a library project is extended by a virtual extending project.
 
-       * prj-part.adb: 
+       * prj-part.adb:
        Modifications throughout to implement extending-all project, including:
        (Virtual_Hash, Processed_Hash): New hash tables
        (Create_Virtual_Extending_Project): New procedure
        (Look_For_Virtual_Projects_For): New procedure
 
-       * prj-proc.adb: 
+       * prj-proc.adb:
        (Process): After checking the projects, if main project is an
        extending-all project, set the object directory of all virtual extending
        project to the object directory of the main project.
        (Recursive_Process): If name starts with the virtual prefix, set Virtual
        to True in the project data.
 
-       * prj-tree.adb: 
+       * prj-tree.adb:
        (Default_Project_Node): Add new boolean component Extending_All
        (Is_Extending_All): New function
        (Set_Is_Extending_All): New procedure
 
        * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
 
-       * vms_data.ads: 
+       * vms_data.ads:
        Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
 
        * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
 
        * einfo.ads: Fix a typo and remove an extraneous word in comments.
 
-       * lib-load.adb: 
+       * lib-load.adb:
        (Create_Dummy_Package_Unit): Set the scope of the entity for the
        created dummy package to Standard_Standard, not to itself, to
        defend other parts of the front-end against encoutering a cycle in
        the scope chain.
 
-       * sem_ch10.adb: 
+       * sem_ch10.adb:
        (Analyze_With_Clause): When setting the entities for the successive
        N_Expanded_Names that constitute the name of a child unit, do not
        attempt to go further than Standard_Standard in the chain of scopes.
 
 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
 
-       * exp_ch6.adb: 
+       * exp_ch6.adb:
        (Expand_Thread_Body): Place subprogram on scope stack, so that new
        declarations are given the proper scope.
 
-       * sem_ch13.adb: 
+       * sem_ch13.adb:
        (Check_Expr_Constants): Reject an expression that contains a constant
        created during expansion, and that appears after the object to which
        the address clause applies.
        that uses 'Range of a function call with controlled components, so
        that the function result can be finalized before starting the loop.
 
-       * sem_ch8.adb: 
+       * sem_ch8.adb:
        (Find_Selected_Component): Improve error message when prefix is
        an implicit dereference of an incomplete type.
 
        Update documentation for Associated_Node and Entity fields to clarify
        relationship and usage.
 
-       * sprint.adb: 
+       * sprint.adb:
        (Write_Id): Properly process Associated_Node field in generic template
 
-       * switch-c.adb: 
+       * switch-c.adb:
        Recognize new -gnatS switch for printing package Standard
        This replaces gnatpsta
 
-       * usage.adb: 
+       * usage.adb:
        Add line for  new -gnatS switch for printing package Standard
        This replaces gnatpsta
 
index 56d83a6..8ccce71 100644 (file)
@@ -1348,6 +1348,27 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(arch) $(osys))),)
   LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
 endif
 
+ifeq ($(strip $(filter-out %x86_64 linux%,$(arch) $(osys))),)
+  LIBGNAT_TARGET_PAIRS = \
+  a-intnam.ads<4lintnam.ads \
+  s-inmaop.adb<7sinmaop.adb \
+  s-intman.adb<5lintman.adb \
+  s-osinte.ads<5iosinte.ads \
+  s-osinte.adb<5iosinte.adb \
+  s-osprim.adb<7sosprim.adb \
+  s-taprop.adb<5itaprop.adb \
+  s-tpopsp.adb<5atpopsp.adb \
+  s-taspri.ads<5itaspri.ads \
+  system.ads<5nsystem.ads
+
+  TOOLS_TARGET_PAIRS=mlib-tgt.adb<5lml-tgt.adb
+  MISCLIB=
+  THREADSLIB=-lpthread
+  GNATLIB_SHARED=gnatlib-shared-dual
+  PREFIX_OBJS=$(PREFIX_REAL_OBJS)
+  LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
+endif
+
 # The runtime library for gnat comprises two directories.  One contains the
 # Ada source files that the compiler (gnat1) needs -- these files are listed
 # by ADA_INCLUDE_SRCS -- and the other contains the object files and their