This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Tested on i686-linux, committed on trunk This is an enhancement to the symbol processing of Stand-Alone Libraries. A new symbol policy Direct is defined. In this policy, the reference symbol file must be defined and is copied to the symbol file, then passed as is to the underlying linker. This part is currently only relevant to VMS. In addition, a new restriction is added: when both the symbol file and the reference symbol file exist, they cannot be the same file. The test for that is to declare attributes Library_Symbol_File and Library_Reference_Symbol_File designating the same file in a stand-alone library project file: this should fail. Declaring attribute Locally_Removed_Files in non extending projects is now allowed, provided the listed removed files would be sources of the project if the attribute was not specified. The following projects, in the same directory containing sources pkg.ads and main.adb should build correctly: prj1.gpr: project Prj1 is for Locally_Removed_Files use ("main.adb"); end Prj1; prj2.gpr: with "prj1.gpr"; project Prj2 is for Source_Files use ("main.adb"); for Main use ("main.adb"); end Prj2; Children of packages A, G, I and S, in the standard GNAT naming schemes have a different file name on VMS and on other platforms. For example, on VMS, file name of spec of package A.Child is a__child.ads, while on other platforms it is a~child.ads. As it is not possible to know on which platform we are running before processing the project files, this patch ensures that both forms are recognized. The test for this is to have a source a__child.ads in a project file containing the spec of package A.Child: it should be found and compiled normally. 2007-06-06 Vincent Celier <celier@adacore.com> * gnatsym.adb: Update Copyright notice (Parse_Cmd_Line): Accept new switch -D (Gnatsym): In Direct policy (switch -D) copy reference file to symbol file. * prj.ads (Policy): New policy Direct (Yes_No_Unknown): New enumeration type (Project_Data): New component Libgnarl_Needed * prj-nmsc.adb (Check_For_Source): When recording a source file make use the untouched pathname casing. (Get_Directories): Ensure that the Display_Exec_Directory is using the proper casing on non case-sensitive platforms like Windows. (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s) on all platforms, as it is not possible to know which one is allowed before processing the project files. (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is specified when symbol policy is Direct. Check that when there is a symbol file defined (either by default or with attribute Library_Symbol_File) it is not the same as the reference symbol file. (Check_Stand_Alone_Library): Recognize new symbol policy Direct. (Look_For_Sources): Allow Locally_Removed_Files to be declare in non extending projects. (Record_Ada_Source): Record a source that has been locally removed in an imported project. * symbols.ads (Policy): New policy Direct * symbols-vms.adb (Initialize): Take new policy Direct in case statement
Attachment:
difs
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |