From c492ad464cd9c8a0ec8d34b5f72757e868702a7c Mon Sep 17 00:00:00 2001 From: bosch Date: Wed, 31 Oct 2001 00:21:37 +0000 Subject: [PATCH] * gnatdll.adb (Parse_Command_Line): handle -g option to be passed to the binder and linker. Minor style fix. * mdll.ads: Fix layout. Update copyright notice. * mdll.adb: Fix layout. Update copyright notice. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46662 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 10 +++++++ gcc/ada/gnatdll.adb | 64 +++++++++++++++++++++++-------------------- gcc/ada/mdll.adb | 79 +++++++++++++++++++++++++++-------------------------- gcc/ada/mdll.ads | 32 ++++++++++++---------- 4 files changed, 101 insertions(+), 84 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 443a58c..374a414 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,13 @@ +2001-10-30 Pascal Obry + + * gnatdll.adb (Parse_Command_Line): handle -g option to be passed + to the binder and linker. + Minor style fix. + + * mdll.ads: Fix layout. Update copyright notice. + + * mdll.adb: Fix layout. Update copyright notice. + 2001-10-30 Robert Dewar * usage.adb: Minor fix to output for -gnaty. diff --git a/gcc/ada/gnatdll.adb b/gcc/ada/gnatdll.adb index c83a397..ac70e70 100644 --- a/gcc/ada/gnatdll.adb +++ b/gcc/ada/gnatdll.adb @@ -6,9 +6,9 @@ -- -- -- B o d y -- -- -- --- $Revision: 1.6 $ +-- $Revision$ -- -- --- Copyright (C) 1997-2000, Free Software Foundation, Inc. -- +-- Copyright (C) 1997-2001, 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- -- @@ -52,7 +52,7 @@ procedure Gnatdll is procedure Syntax; -- print out usage. - procedure Check (Filename : in String); + procedure Check (Filename : String); -- check that filename exist. procedure Parse_Command_Line; @@ -61,8 +61,6 @@ procedure Gnatdll is procedure Check_Context; -- check the context before runing any commands to build the library. - - Syntax_Error : exception; Context_Error : exception; @@ -98,7 +96,6 @@ procedure Gnatdll is Largs_Options : Argument_List_Access := Null_Argument_List_Access; Bargs_Options : Argument_List_Access := Null_Argument_List_Access; - type Build_Mode_State is (Import_Lib, Dynamic_Lib, Nil); Build_Mode : Build_Mode_State := Nil; @@ -111,31 +108,33 @@ procedure Gnatdll is procedure Syntax is use Text_IO; + + procedure P (Str : in String) renames Text_IO.Put_Line; + begin - Put_Line ("Usage : gnatdll [options] [list-of-files]"); + P ("Usage : gnatdll [options] [list-of-files]"); New_Line; - Put_Line - ("[list-of-files] a list of Ada libraries (.ali) and/or " & + P ("[list-of-files] a list of Ada libraries (.ali) and/or " & "foreign object files"); New_Line; - Put_Line ("[options] can be"); - Put_Line (" -h help - display this message"); - Put_Line (" -v verbose"); - Put_Line (" -q quiet"); - Put_Line (" -k remove @nn suffix from exported names"); - Put_Line (" -Idir Specify source and object files search path"); - - Put_Line (" -l file " & - "file contains a list-of-files to be added to the library"); - Put_Line (" -e file definition file containing exports"); - Put_Line - (" -d file put objects in the relocatable dynamic library "); - Put_Line (" -a[addr] build non-relocatable DLL at address "); - Put_Line (" if is not specified use " & - Default_DLL_Address); - Put_Line (" -n no-import - do not create the import library"); - Put_Line (" -bargs binder option"); - Put_Line (" -largs linker (library builder) option"); + P ("[options] can be"); + P (" -h Help - display this message"); + P (" -v Verbose"); + P (" -q Quiet"); + P (" -k Remove @nn suffix from exported names"); + P (" -g Generate debugging information"); + P (" -Idir Specify source and object files search path"); + P (" -l file File contains a list-of-files to be added to " + & "the library"); + P (" -e file Definition file containing exports"); + P (" -d file Put objects in the relocatable dynamic " + & "library "); + P (" -a[addr] Build non-relocatable DLL at address "); + P (" if is not specified use " + & Default_DLL_Address); + P (" -n No-import - do not create the import library"); + P (" -bargs opts opts are passed to the binder"); + P (" -largs opts opts are passed to the linker"); end Syntax; ----------- @@ -273,7 +272,7 @@ procedure Gnatdll is -- scan gnatdll switches loop - case Getopt ("h v q k a? d: e: l: n I:") is + case Getopt ("g h v q k a? d: e: l: n I:") is when ASCII.Nul => exit; @@ -281,6 +280,10 @@ procedure Gnatdll is when 'h' => Help := True; + when 'g' => + Gopts (G) := new String'("-g"); + G := G + 1; + when 'v' => -- verbose mode on. @@ -501,8 +504,9 @@ begin case Build_Mode is when Import_Lib => - MDLL.Build_Import_Library (To_String (Lib_Filename), - To_String (Def_Filename)); + MDLL.Build_Import_Library + (To_String (Lib_Filename), + To_String (Def_Filename)); when Dynamic_Lib => MDLL.Build_Dynamic_Library diff --git a/gcc/ada/mdll.adb b/gcc/ada/mdll.adb index b0fca02..c07768d 100644 --- a/gcc/ada/mdll.adb +++ b/gcc/ada/mdll.adb @@ -6,9 +6,9 @@ -- -- -- B o d y -- -- -- --- $Revision: 1.4 $ +-- $Revision$ -- -- --- Copyright (C) 1992-2000 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2001 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- -- @@ -44,16 +44,16 @@ package body MDLL is --------------------------- procedure Build_Dynamic_Library - (Ofiles : in Argument_List; - Afiles : in Argument_List; - Options : in Argument_List; - Bargs_Options : in Argument_List; - Largs_Options : in Argument_List; - Lib_Filename : in String; - Def_Filename : in String; - Lib_Address : in String := ""; - Build_Import : in Boolean := False; - Relocatable : in Boolean := False) + (Ofiles : Argument_List; + Afiles : Argument_List; + Options : Argument_List; + Bargs_Options : Argument_List; + Largs_Options : Argument_List; + Lib_Filename : String; + Def_Filename : String; + Lib_Address : String := ""; + Build_Import : Boolean := False; + Relocatable : Boolean := False) is use type OS_Lib.Argument_List; @@ -73,20 +73,19 @@ package body MDLL is All_Options : constant Argument_List := Options & Largs_Options; - procedure Build_Reloc_DLL; - -- build a relocatable DLL with only objects file specified. + -- Build a relocatable DLL with only objects file specified. -- this use the well known 5 steps build. (see GNAT User's Guide). procedure Ada_Build_Reloc_DLL; - -- build a relocatable DLL with Ada code. + -- Build a relocatable DLL with Ada code. -- this use the well known 5 steps build. (see GNAT User's Guide). procedure Build_Non_Reloc_DLL; - -- build a non relocatable DLL containing no Ada code. + -- Build a non relocatable DLL containing no Ada code. procedure Ada_Build_Non_Reloc_DLL; - -- build a non relocatable DLL with Ada code. + -- Build a non relocatable DLL with Ada code. --------------------- -- Build_Reloc_DLL -- @@ -94,7 +93,7 @@ package body MDLL is procedure Build_Reloc_DLL is - -- objects plus the export table (.exp) file + -- Objects plus the export table (.exp) file Objects_Exp_File : OS_Lib.Argument_List := Exp_File'Unchecked_Access & Ofiles; @@ -111,7 +110,7 @@ package body MDLL is end if; end if; - -- 1) build base file with objects files. + -- 1) Build base file with objects files. Tools.Gcc (Output_File => Jnk_File, Files => Ofiles, @@ -119,14 +118,14 @@ package body MDLL is Base_File => Bas_File, Build_Lib => True); - -- 2) build exp from base file. + -- 2) Build exp from base file. Tools.Dlltool (Def_File, Dll_File, Lib_File, Base_File => Bas_File, Exp_Table => Exp_File, Build_Import => False); - -- 3) build base file with exp file and objects files. + -- 3) Build base file with exp file and objects files. Tools.Gcc (Output_File => Jnk_File, Files => Objects_Exp_File, @@ -134,14 +133,14 @@ package body MDLL is Base_File => Bas_File, Build_Lib => True); - -- 4) build new exp from base file and the lib file (.a) + -- 4) Build new exp from base file and the lib file (.a) Tools.Dlltool (Def_File, Dll_File, Lib_File, Base_File => Bas_File, Exp_Table => Exp_File, Build_Import => Build_Import); - -- 5) build the dynamic library + -- 5) Build the dynamic library Tools.Gcc (Output_File => Dll_File, Files => Objects_Exp_File, @@ -177,7 +176,7 @@ package body MDLL is end if; end if; - -- 1) build base file with objects files. + -- 1) Build base file with objects files. Tools.Gnatbind (Afiles, Options & Bargs_Options); @@ -191,14 +190,14 @@ package body MDLL is Params); end; - -- 2) build exp from base file. + -- 2) Build exp from base file. Tools.Dlltool (Def_File, Dll_File, Lib_File, Base_File => Bas_File, Exp_Table => Exp_File, Build_Import => False); - -- 3) build base file with exp file and objects files. + -- 3) Build base file with exp file and objects files. Tools.Gnatbind (Afiles, Options & Bargs_Options); @@ -215,14 +214,14 @@ package body MDLL is Params); end; - -- 4) build new exp from base file and the lib file (.a) + -- 4) Build new exp from base file and the lib file (.a) Tools.Dlltool (Def_File, Dll_File, Lib_File, Base_File => Bas_File, Exp_Table => Exp_File, Build_Import => Build_Import); - -- 5) build the dynamic library + -- 5) Build the dynamic library Tools.Gnatbind (Afiles, Options & Bargs_Options); @@ -268,13 +267,13 @@ package body MDLL is end if; end if; - -- build exp table and the lib .a file. + -- Build exp table and the lib .a file. Tools.Dlltool (Def_File, Dll_File, Lib_File, Exp_Table => Exp_File, Build_Import => Build_Import); - -- build the DLL + -- Build the DLL Tools.Gcc (Output_File => Dll_File, Files => Exp_File'Unchecked_Access & Ofiles, @@ -293,7 +292,7 @@ package body MDLL is -- Ada_Build_Non_Reloc_DLL -- ----------------------------- - -- build a non relocatable DLL with Ada code. + -- Build a non relocatable DLL with Ada code. procedure Ada_Build_Non_Reloc_DLL is begin @@ -309,13 +308,13 @@ package body MDLL is end if; end if; - -- build exp table and the lib .a file. + -- Build exp table and the lib .a file. Tools.Dlltool (Def_File, Dll_File, Lib_File, Exp_Table => Exp_File, Build_Import => Build_Import); - -- build the DLL + -- Build the DLL Tools.Gnatbind (Afiles, Options & Bargs_Options); @@ -363,11 +362,13 @@ package body MDLL is -- Build_Import_Library -- -------------------------- - procedure Build_Import_Library (Lib_Filename : in String; - Def_Filename : in String) is + procedure Build_Import_Library + (Lib_Filename : String; + Def_Filename : String) + is - procedure Build_Import_Library (Def_Base_Filename : in String); - -- build an import library. + procedure Build_Import_Library (Def_Base_Filename : String); + -- Build an import library. -- this is to build only a .a library to link against a DLL. Base_Filename : constant String := MDLL.Files.Ext_To (Lib_Filename); @@ -376,7 +377,7 @@ package body MDLL is -- Build_Import_Library -- -------------------------- - procedure Build_Import_Library (Def_Base_Filename : in String) is + procedure Build_Import_Library (Def_Base_Filename : String) is Def_File : String renames Def_Filename; Dll_File : constant String := Def_Base_Filename & ".dll"; @@ -395,7 +396,7 @@ package body MDLL is end Build_Import_Library; begin - -- if the library has the form lib.a then the def file should + -- If the library has the form lib.a then the def file should -- be .def and the DLL to link against .dll -- this is a Windows convention and we try as much as possible to -- follow the platform convention. diff --git a/gcc/ada/mdll.ads b/gcc/ada/mdll.ads index 2a13be1..2a011dc 100644 --- a/gcc/ada/mdll.ads +++ b/gcc/ada/mdll.ads @@ -6,9 +6,9 @@ -- -- -- S p e c -- -- -- --- $Revision: 1.5 $ +-- $Revision$ -- -- --- Copyright (C) 1992-2000 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2001 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- -- @@ -52,17 +52,18 @@ package MDLL is Kill_Suffix : Boolean := False; - procedure Build_Dynamic_Library (Ofiles : in Argument_List; - Afiles : in Argument_List; - Options : in Argument_List; - Bargs_Options : in Argument_List; - Largs_Options : in Argument_List; - Lib_Filename : in String; - Def_Filename : in String; - Lib_Address : in String := ""; - Build_Import : in Boolean := False; - Relocatable : in Boolean := False); - -- build a DLL and the import library to link against the DLL. + procedure Build_Dynamic_Library + (Ofiles : Argument_List; + Afiles : Argument_List; + Options : Argument_List; + Bargs_Options : Argument_List; + Largs_Options : Argument_List; + Lib_Filename : String; + Def_Filename : String; + Lib_Address : String := ""; + Build_Import : Boolean := False; + Relocatable : Boolean := False); + -- Build a DLL and the import library to link against the DLL. -- this function handles relocatable and non relocatable DLL. -- If the Afiles argument list contains some Ada units then it will -- generate the right adainit and adafinal and integrate it in the DLL. @@ -70,8 +71,9 @@ package MDLL is -- provided) then it will not try to build a binder file. This is ok to -- build DLL containing no Ada code. - procedure Build_Import_Library (Lib_Filename : in String; - Def_Filename : in String); + procedure Build_Import_Library + (Lib_Filename : String; + Def_Filename : String); -- Build an import library (.a) from a definition files. An import library -- is needed to link against a DLL. -- 2.7.4