1with "libgnat_common"; 2 3library project Libgnat is 4 5 for Languages use ("Ada", "C"); 6 for Source_Dirs use ("."); 7 for Source_List_File use "libgnat.lst"; 8 for Object_Dir use "../obj-" & Libgnat_Common.Library_Kind; 9 10 for Library_Name use "gnat"; 11 for Library_Dir use "../adalib"; 12 for Library_Kind use Libgnat_Common.Library_Kind; 13 14 package Compiler is 15 16 for Switches ("C") use Libgnat_Common.C_Flags; 17 for Switches ("Ada") use Libgnat_Common.Ada_Flags; 18 19 for Switches ("s-traceb.adb") use 20 Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug & 21 Libgnat_Common.No_Inline & Libgnat_Common.No_Sibling; 22 -- Force no sibling call optimization on s-traceb.o so the number of 23 -- stack frames to be skipped when computing a call chain is not 24 -- modified by optimization. We don.t want inlining, either. 25 26 for Switches ("a-except.adb") use 27 Libgnat_Common.Ada_Flags & ("-O1") & 28 Libgnat_Common.Force_Debug & Libgnat_Common.No_Inline & 29 Libgnat_Common.No_Reorder; 30 -- Force no function reordering because of the exclusion bounds 31 -- mechanism (see the source file for more detailed information). 32 -- Force debugging information so that it is always possible to set 33 -- conditional breakpoints on exceptions. 34 -- Use -O1 otherwise gdb isn.t able to get a full backtrace on mips 35 -- targets. 36 37 for Switches ("s-excdeb.adb") use 38 Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug & 39 Libgnat_Common.No_Opt; 40 -- Compile without optimization and with debug info to let the debugger 41 -- set breakpoints and inspect subprogram parameters on exception 42 -- related events. 43 44 for Switches ("s-assert.adb") use 45 Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug; 46 -- Force debugging information on s-assert.o so that it is always 47 -- possible to set breakpoint on assert failures. 48 49 for Switches ("a-tags.adb") use 50 Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug; 51 -- Force debugging information on a-tags.o so that the debugger can find 52 -- the description of Ada.Tags.Type_Specific_Data. 53 54 for Switches ("s-memory.adb") use 55 Libgnat_Common.Ada_Flags & Libgnat_Common.No_Sibling; 56 -- Force no sibling call optimization on s-memory.o to avoid turning the 57 -- tail recursion in Alloc into a loop that confuses branch prediction. 58 59 for Switches ("g-debpoo.adb") use 60 Libgnat_Common.Ada_Flags & Libgnat_Common.No_Reorder; 61 -- Need to keep functions ordered on g-debpoo.o since labels are used to 62 -- exclude subprograms from traceback computation. 63 64 for Switches ("traceback.c") use 65 Libgnat_Common.C_Flags & Libgnat_Common.No_Omit; 66 67 end Compiler; 68 69end Libgnat; 70