i386.md (simple LEA peephole2s): Add zero-extend variants of PLUS and MULT simple...
[platform/upstream/gcc.git] / gcc / ada / mlib-tgt-specific-xi.adb
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT COMPILER COMPONENTS                         --
4 --                                                                          --
5 --                     M L I B . T G T. S P E C I F I C                     --
6 --                                                                          --
7 --                                 B o d y                                  --
8 --                                                                          --
9 --          Copyright (C) 2003-2011, Free Software Foundation, Inc.         --
10 --                                                                          --
11 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
12 -- terms of the  GNU General Public License as published  by the Free Soft- --
13 -- ware  Foundation;  either version 3,  or (at your option) any later ver- --
14 -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
17 -- for  more details.  You should have  received  a copy of the GNU General --
18 -- Public License  distributed with GNAT; see file COPYING3.  If not, go to --
19 -- http://www.gnu.org/licenses for a complete copy of the license.          --
20 --                                                                          --
21 -- GNAT was originally developed  by the GNAT team at  New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
23 --                                                                          --
24 ------------------------------------------------------------------------------
25
26 --  This is the bare board version of the body
27
28 with Sdefault;
29 with Types; use Types;
30
31 package body MLib.Tgt.Specific is
32
33    -----------------------
34    -- Local Subprograms --
35    -----------------------
36
37    function Get_Target_Prefix return String;
38    --  Returns the required prefix for some utilities
39    --  (such as ar and ranlib) that depend on the real target.
40
41    --  Non default subprograms
42
43    function Archive_Builder return String;
44
45    function Archive_Indexer return String;
46
47    procedure Build_Dynamic_Library
48      (Ofiles       : Argument_List;
49       Options      : Argument_List;
50       Interfaces   : Argument_List;
51       Lib_Filename : String;
52       Lib_Dir      : String;
53       Symbol_Data  : Symbol_Record;
54       Driver_Name  : Name_Id := No_Name;
55       Lib_Version  : String  := "";
56       Auto_Init    : Boolean := False);
57
58    function DLL_Ext return String;
59
60    function Dynamic_Option return String;
61
62    function Library_Major_Minor_Id_Supported return Boolean;
63
64    function PIC_Option return String;
65
66    function Standalone_Library_Auto_Init_Is_Supported return Boolean;
67
68    function Support_For_Libraries return Library_Support;
69
70    ---------------------
71    -- Archive_Builder --
72    ---------------------
73
74    function Archive_Builder return String is
75    begin
76       return Get_Target_Prefix & "ar";
77    end Archive_Builder;
78
79    ---------------------
80    -- Archive_Indexer --
81    ---------------------
82
83    function Archive_Indexer return String is
84    begin
85       return Get_Target_Prefix & "ranlib";
86    end Archive_Indexer;
87
88    ---------------------------
89    -- Build_Dynamic_Library --
90    ---------------------------
91
92    procedure Build_Dynamic_Library
93      (Ofiles       : Argument_List;
94       Options      : Argument_List;
95       Interfaces   : Argument_List;
96       Lib_Filename : String;
97       Lib_Dir      : String;
98       Symbol_Data  : Symbol_Record;
99       Driver_Name  : Name_Id := No_Name;
100       Lib_Version  : String  := "";
101       Auto_Init    : Boolean := False)
102    is
103       pragma Unreferenced (Ofiles);
104       pragma Unreferenced (Options);
105       pragma Unreferenced (Interfaces);
106       pragma Unreferenced (Lib_Filename);
107       pragma Unreferenced (Lib_Dir);
108       pragma Unreferenced (Symbol_Data);
109       pragma Unreferenced (Driver_Name);
110       pragma Unreferenced (Lib_Version);
111       pragma Unreferenced (Auto_Init);
112
113    begin
114       null;
115    end Build_Dynamic_Library;
116
117    -------------
118    -- DLL_Ext --
119    -------------
120
121    function DLL_Ext return String is
122    begin
123       return "";
124    end DLL_Ext;
125
126    --------------------
127    -- Dynamic_Option --
128    --------------------
129
130    function Dynamic_Option return String is
131    begin
132       return "";
133    end Dynamic_Option;
134
135    -----------------------
136    -- Get_Target_Prefix --
137    -----------------------
138
139    function Get_Target_Prefix return String is
140       Target_Name : constant String_Ptr := Sdefault.Target_Name;
141
142    begin
143       --  Target_name is the program prefix without '-' but with a trailing '/'
144
145       return Target_Name (Target_Name'First .. Target_Name'Last - 1) & '-';
146    end Get_Target_Prefix;
147
148    --------------------------------------
149    -- Library_Major_Minor_Id_Supported --
150    --------------------------------------
151
152    function Library_Major_Minor_Id_Supported return Boolean is
153    begin
154       return False;
155    end Library_Major_Minor_Id_Supported;
156
157    ----------------
158    -- PIC_Option --
159    ----------------
160
161    function PIC_Option return String is
162    begin
163       return "";
164    end PIC_Option;
165
166    -----------------------------------------------
167    -- Standalone_Library_Auto_Init_Is_Supported --
168    -----------------------------------------------
169
170    function Standalone_Library_Auto_Init_Is_Supported return Boolean is
171    begin
172       return False;
173    end Standalone_Library_Auto_Init_Is_Supported;
174
175    ---------------------------
176    -- Support_For_Libraries --
177    ---------------------------
178
179    function Support_For_Libraries return Library_Support is
180    begin
181       return Static_Only;
182    end Support_For_Libraries;
183
184 begin
185    Archive_Builder_Ptr := Archive_Builder'Access;
186    Archive_Indexer_Ptr := Archive_Indexer'Access;
187    Build_Dynamic_Library_Ptr := Build_Dynamic_Library'Access;
188    DLL_Ext_Ptr := DLL_Ext'Access;
189    Dynamic_Option_Ptr := Dynamic_Option'Access;
190    Library_Major_Minor_Id_Supported_Ptr :=
191                                 Library_Major_Minor_Id_Supported'Access;
192    PIC_Option_Ptr := PIC_Option'Access;
193    Standalone_Library_Auto_Init_Is_Supported_Ptr :=
194      Standalone_Library_Auto_Init_Is_Supported'Access;
195    Support_For_Libraries_Ptr := Support_For_Libraries'Access;
196 end MLib.Tgt.Specific;