[Bug ada/81446] New: Building Ada on Linux m68k fails due to missing No_Elaboration_Code_All
glaubitz at physik dot fu-berlin.de
gcc-bugzilla@gcc.gnu.org
Fri Jul 14 14:57:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81446
Bug ID: 81446
Summary: Building Ada on Linux m68k fails due to missing
No_Elaboration_Code_All
Product: gcc
Version: 7.1.0
URL: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=8629
27
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
Assignee: unassigned at gcc dot gnu.org
Reporter: glaubitz at physik dot fu-berlin.de
CC: jrtc27 at jrtc27 dot com, schwab at gcc dot gnu.org
Target Milestone: ---
Target: m68k-*-*
Trying to cross-build gnat for Linux m68k fails with:
/<<PKGBUILDDIR>>/gcc/build/./gcc/xgcc -B/<<PKGBUILDDIR>>/gcc/build/./gcc/
-B/usr/m68k-linux-gnu/bin/ -B/usr/m68k-linux-gnu/lib/ -isystem
/usr/m68k-linux-gnu/include -isystem /usr/m68k-linux-gnu/sys-include -isystem
/<<PKGBUILDDIR>>/gcc/build/sys-include -c -g -O2 -W -Wall -gnatpg
-nostdinc -gnatn s-maccod.ads -o s-maccod.o
/<<PKGBUILDDIR>>/gcc/build/./gcc/xgcc -B/<<PKGBUILDDIR>>/gcc/build/./gcc/
-B/usr/m68k-linux-gnu/bin/ -B/usr/m68k-linux-gnu/lib/ -isystem
/usr/m68k-linux-gnu/include -isystem /usr/m68k-linux-gnu/sys-include -isystem
/<<PKGBUILDDIR>>/gcc/build/sys-include -c -g -O2 -W -Wall -gnatpg
-nostdinc -gnatn s-mantis.adb -o s-mantis.o
/<<PKGBUILDDIR>>/gcc/build/./gcc/xgcc -B/<<PKGBUILDDIR>>/gcc/build/./gcc/
-B/usr/m68k-linux-gnu/bin/ -B/usr/m68k-linux-gnu/lib/ -isystem
/usr/m68k-linux-gnu/include -isystem /usr/m68k-linux-gnu/sys-include -isystem
/<<PKGBUILDDIR>>/gcc/build/sys-include -c -g -O2 -W -Wall -gnatpg
-nostdinc -gnatn s-mastop.adb -o s-mastop.o
/<<PKGBUILDDIR>>/gcc/build/./gcc/xgcc -B/<<PKGBUILDDIR>>/gcc/build/./gcc/
-B/usr/m68k-linux-gnu/bin/ -B/usr/m68k-linux-gnu/lib/ -isystem
/usr/m68k-linux-gnu/include -isystem /usr/m68k-linux-gnu/sys-include -isystem
/<<PKGBUILDDIR>>/gcc/build/sys-include -c -g -O2 -W -Wall -gnatpg
-nostdinc -gnatn s-memcop.ads -o s-memcop.o
/<<PKGBUILDDIR>>/gcc/build/./gcc/xgcc -B/<<PKGBUILDDIR>>/gcc/build/./gcc/
-B/usr/m68k-linux-gnu/bin/ -B/usr/m68k-linux-gnu/lib/ -isystem
/usr/m68k-linux-gnu/include -isystem /usr/m68k-linux-gnu/sys-include -isystem
/<<PKGBUILDDIR>>/gcc/build/sys-include -c -g -O2 -W -Wall -gnatpg
-nostdinc -gnatn -fno-optimize-sibling-calls \
s-memory.adb -o s-memory.o
/<<PKGBUILDDIR>>/gcc/build/./gcc/xgcc -B/<<PKGBUILDDIR>>/gcc/build/./gcc/
-B/usr/m68k-linux-gnu/bin/ -B/usr/m68k-linux-gnu/lib/ -isystem
/usr/m68k-linux-gnu/include -isystem /usr/m68k-linux-gnu/sys-include -isystem
/<<PKGBUILDDIR>>/gcc/build/sys-include -c -g -O2 -W -Wall -gnatpg
-nostdinc -gnatn s-multip.adb -o s-multip.o
yes
s-maccod.ads:36:15: violation of No_Elaboration_Code_All at line 37
s-maccod.ads:36:15: unit "System" does not have No_Elaboration_Code_All
../gcc-interface/Makefile:299: recipe for target 's-maccod.o' failed
make[9]: *** [s-maccod.o] Error 1
make[9]: *** Waiting for unfinished jobs....
Comparing system-linux-m68k.ads with the equivalent code for other
architectures on Linux, it seems the following changes is necessary:
diff --git a/gcc/ada/system-linux-m68k.ads b/gcc/ada/system-linux-m68k.ads
index 9aa6143f262..2de957cfd9f 100644
--- a/gcc/ada/system-linux-m68k.ads
+++ b/gcc/ada/system-linux-m68k.ads
@@ -40,6 +40,9 @@ package System is
-- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada
-- 2005, this is Pure in any case (AI-362).
+ pragma No_Elaboration_Code_All;
+ -- Allow the use of that restriction in units that WITH this unit
+
type Name is (SYSTEM_NAME_GNAT);
System_Name : constant Name := SYSTEM_NAME_GNAT;
@@ -126,7 +129,7 @@ private
-- of the individual switch values.
Backend_Divide_Checks : constant Boolean := False;
- Backend_Overflow_Checks : constant Boolean := False;
+ Backend_Overflow_Checks : constant Boolean := True;
Command_Line_Args : constant Boolean := True;
Configurable_Run_Time : constant Boolean := False;
Denorm : constant Boolean := True;
I'm currently testing this patch and will report back once I have a result.
More information about the Gcc-bugs
mailing list