This is the mail archive of the 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]

[Ada] gprbuild fails to find ghost ALI files

This patch fixes a bug where if a ghost unit is compiled with
ignored-ghost mode in a library project, then gprbuild will fail to find
the ALI file, because the compiler generates an empty object file, but
no ALI file.

Tested on x86_64-pc-linux-gnu, committed on trunk

2019-07-01  Bob Duff  <>


	* gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
--- gcc/ada/gnat1drv.adb
+++ gcc/ada/gnat1drv.adb
@@ -1453,9 +1453,13 @@ begin
          --  Generate ALI file if specially requested, or for missing subunits,
          --  subunits or predefined generic. For ignored ghost code, the object
-         --  file IS generated, so Object should be True.
+         --  file IS generated, so Object should be True, and since the object
+         --  file is generated, we need to generate the ALI file. We never want
+         --  an object file without an ALI file.
-         if Opt.Force_ALI_Tree_File then
+         if Is_Ignored_Ghost_Unit (Main_Unit_Node)
+           or else Opt.Force_ALI_Tree_File
+         then
             Write_ALI (Object => Is_Ignored_Ghost_Unit (Main_Unit_Node));
          end if;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]