Ticket #25598 (assigned update)
GNAT GPL 2010 now available, update portfile to use it?
| Reported by: | sjs@… | Owned by: | krischik@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | |
| Keywords: | Cc: | larryv@…, mikewolz@…, jarimatti@…, terry.droeger@…, egall@… | |
| Port: | gnat-gcc |
Description
GNAT GPL 2010 has now been released and supports Snow Leopard. This should make possible a working build on SL. At present the portfile uses GNAT GPL 2009. Request an update to use GNAT GPL 2010, or provide an option for it.
Attachments
Change History
comment:1 Changed 3 years ago by jmr@…
- Keywords GNAT GPL 2010 removed
- Owner changed from macports-tickets@… to krischik@…
- Version 1.9.1 deleted
- Type changed from request to update
comment:2 Changed 3 years ago by krischik@…
- Status changed from new to assigned
Yes I am currently updating the Portfile to create 4.5.1 with GPL 2010. Note that gnat-gcc is a very time consuming port - any help is welcome. Drop me a mail an I send you the current Portfile and test scripts.
comment:7 Changed 2 years ago by krischik@…
Hello,
since there are now two users which want to help me fixing GNAT/GCC I have regained hope that it could be done between the now three of us.
I have update the make files to 4.5.2. If you just call port install you get:
configure: error: in `/opt/local/var/macports/build/_Volumes_Daten_Developer_MacPorts_dports_lang_gnat-gcc/work/build/gcc': configure: error: C++ preprocessor "/lib/cpp" fails sanity check
This sanity checks are one of the more frustrating parts us using configure. The checks are often fail even everything is ok. Or /lib/cpp" is used even when configure was told to use "/opt/gnat-2010-x86_64-apple-darwin9.6.0-bin/bin/cpp".
Anyway, this is where attached test.command comes to play. After the failed port install you use test.command to compile again. Without Macports in my back I have better control over the options send to configure and as result the compile runs further.
How far I don't yet know as the compile is still running.
Regards
Martin
PS: I attach the files after submitting this comment.
Changed 2 years ago by krischik@…
- Attachment test.commmand added
Test compile script useable for bug hunting.
comment:8 follow-up: ↓ 9 Changed 2 years ago by krischik@…
Now I know how far it gets (faster then expected):
/opt/gnat-2010-x86_64-apple-darwin9.6.0-bin/bin/gcc -c -g -fkeep-inline-functions -gnatpg -gnata -gnatwns -nostdinc -I- -I. -Iada -I../../gcc-4.5.2/gcc/ada -I../../gcc-4.5.2/gcc/ada/gcc-interface ../../gcc-4.5.2/gcc/ada/uintp.adb -o ada/uintp.o uintp.adb:242:22: expect type "Hnum" defined at line 91 make[3]: *** [ada/uintp.o] Error 1 make[2]: *** [all-stage1-gcc] Error 2 make[1]: *** [stage1-bubble] Error 2 make: *** [all] Error 2
Looks like an incompatible change to the system. We have to analyse this now and create patch.
Martin
comment:9 in reply to: ↑ 8 ; follow-up: ↓ 10 Changed 2 years ago by jarimatti@…
Replying to krischik@…:
Now I know how far it gets (faster then expected):
/opt/gnat-2010-x86_64-apple-darwin9.6.0-bin/bin/gcc -c -g -fkeep-inline-functions -gnatpg -gnata -gnatwns -nostdinc -I- -I. -Iada -I../../gcc-4.5.2/gcc/ada -I../../gcc-4.5.2/gcc/ada/gcc-interface ../../gcc-4.5.2/gcc/ada/uintp.adb -o ada/uintp.o uintp.adb:242:22: expect type "Hnum" defined at line 91 make[3]: *** [ada/uintp.o] Error 1 make[2]: *** [all-stage1-gcc] Error 2 make[1]: *** [stage1-bubble] Error 2 make: *** [all] Error 2Looks like an incompatible change to the system. We have to analyse this now and create patch.
I noticed that last weekend. The error is in the GNAT Ada sources
/opt/local/var/macports/sources/rsync.macports.org/release/ports/lang/gnat-gcc/work/gcc-4.5.1/gcc/ada/uintp.adb
Here's a fix, it's at line 242 or so (sorry, don't know how to make a proper patch yet):
--------------
-- Hash_Num --
--------------
function Hash_Num (F : Int) return Hnum is
begin
-- return Standard."mod" (F, Hnum'Range_Length);
return Hnum (Standard."mod" (F, Hnum'Range_Length));
end Hash_Num;
After this the compiler gets built but the output is different between stages and this causes it to fail.
-Jarimatti
comment:10 in reply to: ↑ 9 Changed 2 years ago by jarimatti@…
Hi,
Compiling using test.command and GCC 4.5.2 fails at:
/opt/local/var/macports/sources/rsync.macports.org/release/ports/lang/gnat-gcc/work/build/./gcc/xgcc -B/opt/local/var/macports/sources/rsync.macports.org/release/ports/lang/gnat-gcc/work/build/./gcc/ -B/opt/local/x86_64-apple-darwin10/bin/ -B/opt/local/x86_64-apple-darwin10/lib/ -isystem /opt/local/x86_64-apple-darwin10/include -isystem /opt/local/x86_64-apple-darwin10/sys-include -c -g -O2 -m32 -fPIC -pipe -W -Wall -gnatpg -m32 a-direct.adb -o a-direct.o a-direct.adb:676:13: warning: types for unchecked conversion have different sizes make[8]: *** [a-direct.o] Error 1 make[7]: *** [gnatlib] Error 2 make[6]: *** [gnatlib-shared-darwin] Error 2 make[5]: *** [gnatlib-shared] Error 2 make[4]: *** [gnatlib-shared] Error 2 make[3]: *** [multi-do] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-target-libada] Error 2 make: *** [all] Error 2
The error report comes from a-direct.adb, procedure Fetch_Next_Entry. Reading the build output I see that ADAFLAGS and CFLAGS both contain "-m32", which could explain the error (I'm compiling on iMac i3, SL 10.6.6). The error is in conversion between System.Address and access value, if I read it correctly.
Any idea where to fix those '-m32' flags?
comment:11 Changed 2 years ago by krischik@…
creating a patch file:
cd work sudo gcp --archive gcc-4.5.2 gcc-4.5.2.orig sudo gvim gcc-4.5.2/gcc/ada/uintp.adb sudo zsh -c 'diff gcc-4.5.2.orig/gcc/ada/uintp.adb gcc-4.5.2/gcc/ada/uintp.adb >uintp.adb.diff'
And yes, the fact that the compile is done by root is a bloody pain in the arse. The next MacPorts is supposed to fix that.
comment:12 follow-up: ↓ 13 Changed 2 years ago by krischik@…
The current error message is:
/Volumes/Daten/Developer/MacPorts/dports/lang/gnat-gcc/work/build/./gcc/xgcc -B/Volumes/Daten/Developer/MacPorts/dports/lang/gnat-gcc/work/build/./gcc/ -B/opt/local/x86_64-apple-darwin10/bin/ -B/opt/local/x86_64-apple-darwin10/lib/ -isystem /opt/local/x86_64-apple-darwin10/include -isystem /opt/local/x86_64-apple-darwin10/sys-include -c -g -O2 -m32 -fPIC -pipe -W -Wall -gnatpg -m32 a-direct.adb -o a-direct.o a-direct.adb:676:13: warning: types for unchecked conversion have different sizes
The code in question is:
function Address_To_Access is new
Ada.Unchecked_Conversion
(Source => Address,
Target => Path_String_Access);
Strange. Anybody got an idea what went wrong here?
comment:13 in reply to: ↑ 12 Changed 2 years ago by jarimatti@…
Replying to krischik@…:
The current error message is:
/Volumes/Daten/Developer/MacPorts/dports/lang/gnat-gcc/work/build/./gcc/xgcc -B/Volumes/Daten/Developer/MacPorts/dports/lang/gnat-gcc/work/build/./gcc/ -B/opt/local/x86_64-apple-darwin10/bin/ -B/opt/local/x86_64-apple-darwin10/lib/ -isystem /opt/local/x86_64-apple-darwin10/include -isystem /opt/local/x86_64-apple-darwin10/sys-include -c -g -O2 -m32 -fPIC -pipe -W -Wall -gnatpg -m32 a-direct.adb -o a-direct.o a-direct.adb:676:13: warning: types for unchecked conversion have different sizes
The code in question is:
function Address_To_Access is new Ada.Unchecked_Conversion (Source => Address, Target => Path_String_Access);Strange. Anybody got an idea what went wrong here?
Could the issue be 32 bit vs. 64 bit? (see #comment:10). Is there any way to force -m64 instead of -m32 for the xgcc arguments?


Please remember to cc the maintainer.