Re: Trace GNAT FSF avec numéro de lignes ...

Stéphane Rivière via Ada-france <[email protected]> Thu, 30 Jun 2022 14:30:13 +0200
Newsgroups gmane.comp.lang.ada.france
Organization La Maison
Message-ID <[email protected]>
Entre les rdv du matin...

*BUILD GNAT 12.1.1*

supprimer tout autre compilateur GNAT dans le PATH
relancer une console

sudo apt install build-essential flex libmpfr-dev libgmp-dev
sudo apt install gnat-11 gprbuild

Baissé la version GNAT de 12 à 11 pour un compilo Ada non "expérimental" 
(à toutes fins utiles)

cd /opt
git clone https://github.com/gcc-mirror/gcc.git
git checkout releases/gcc-12

Builder en dehors des sources de gcc

cd /opt/gcc
mkdir build && cd build

toujours vider build avant le configure
simplifications : ajout de --disable-multilib (compilo 64 seulement) et 
supprimé --with-system-zlib --with-target-system-zlib=auto

../configure --prefix=/build/gcc-12.1 --enable-libada 
--enable-languages=c,ada,c++ --enable-shared --enable-linker-build-id 
--without-included-gettext --enable-threads=posix 
--disable-vtable-verify --enable-plugin --enable-default-pie 
--disable-werror --disable-multilib

configure ok, derniers contrôles

which gnat
/usr/bin/gnat
which gcc
/usr/bin/gcc
which gprbuild
/usr/bin/gprbuild
printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

make -j8

sudo make install

build & install ok


*ENV **GNAT 12.1.1*

sudo apt purge gnat-11 gprbuild
echo 'export PATH=/build/gcc-12.1/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

printenv PATH
*/build/gcc-12.1/bin*:/usr/lo...

gnat -v
GNAT 12.1.1 20220629 ok


*TEST ****GNAT 12.1.1*

with Ada.Text_IO;
with Ada.Exceptions;
with GNAT.Traceback.Symbolic;

procedure Test3 is

   package TIO renames Ada.Text_IO;

   procedure Boum is
   begin
     raise Constraint_Error with "Boum";
   end Boum;

begin

   Boum;

exception
   when Err : others =>
   TIO.New_Line;
   TIO.Put_Line ("Sortie 'Ada.Exceptions.Exception_Information(Err)'");
   TIO.Put_Line (Ada.Exceptions.Exception_Information(Err));

   TIO.Put_Line ("Sortie 
'GNAT.Traceback.Symbolic.Symbolic_Traceback(Err)'");
   TIO.Put_Line (GNAT.Traceback.Symbolic.Symbolic_Traceback(Err));

end Test3;


gnatmake -g test3.adb -bargs -E

gcc -c -g test3.adb
gnatbind -E -x test3.ali
gnatlink test3.ali -g

./test3

Sortie 'Ada.Exceptions.Exception_Information(Err)'
raised CONSTRAINT_ERROR : Boum
Call stack traceback locations:
0x555f0fc4947d 0x555f0fc494a6 0x555f0fc49411 0x7f637d431d8e 
0x7f637d431e3e 0x555f0fc48e93 0xfffffffffffffffe

Sortie 'GNAT.Traceback.Symbolic.Symbolic_Traceback(Err)'
[./test3]
*0x555f0fc4947d Test3.Boum at test3.adb:15**
**0x555f0fc494a6 Test3 at test3.adb:20**
**0x555f0fc49411 Main at b~test3.adb:245*
[/lib/x86_64-linux-gnu/libc.so.6]
0x7f637d431d8e
0x7f637d431e3e
[./test3]
0x555f0fc48e93 _start at ???
0xfffffffffffffffe

Bingo !

Merci à Stéphane et Nicolas !!!


*Build GDB*

wget http://ftp.gnu.org/gnu/gdb/gdb-12.1.tar.gz
tar -xf gdb-12.1.tar.gz
cd gdb-12.1

En tapotant :

./configure --help | grep ada
   --enable-libada         build libada directory
Une seule option pour Ada (en fait ça semble être les mêmes options que gcc)
Ça me semble un peu 'sec' pour faire un gdb compatible GNAT, ça tombe 
vraiment en marche ? ;)

Un

./configure --prefix=/build/gcc-12.1 --enable-libada 
--enable-languages=c,ada,c++ --enable-shared --enable-linker-build-id 
--without-included-gettext --enable-threads=posix 
--disable-vtable-verify --enable-plugin --enable-default-pie 
--disable-werror --disable-multilib

ne bronche pas, alors

make

sudo make install

On voit bien passer de la compilation spécifique Ada...

Ça a l'air d'être bien passé, on testera en fin de journée :)))




Remarque : Les (avant) derniers NUC intel (i7 11e génération) sont 
impressionnants de coolitude. Les autres stations NUC Intel (i5 9e 
génération) chauffent bien en charge moyenne - 70-80° et ça fait des 
années qu'elles tiennent ainsi. Mais Les NUC Intel i7 11... sans trop de 
charge 49°, compilation de gcc, monte de 2/3 degrés puis retombe à 49° 
:(). Normalement, une compil de gcc fait fumer le processeur. Là non. 
Les traditions se perdent.


-- 
Stéphane Rivière
Ile d'Oléron - France

_______________________________________________
Ada-france mailing list
[email protected]
https://mail.ada-france.org/cgi-bin/mailman/listinfo/ada-france
OpenPGP_0x68A4C5C1D498F92F.asc (application/pgp-keys, 3.1 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=smkS
-----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature (application/pgp-signature, 840 B) - not displayed