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 <d...@adacore.com>
gcc/ada/
* gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
ignored-ghost.
--- 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;