On Fri, Nov 06, 2015 at 04:48:02PM +0000, Alan Lawrence wrote: > Sorry Jakub, can you clarify please, how to reproduce this failure? I've > just bootstrapped gcc-5-branch with ada and run the Ada testsuite, which has > build me gcc/ada/rts/libgnat{.a,.so,-5.so}, and I see all tests passing. > (Same with --disable-bootstrap FWIW.)
I have installed a GCC 5.1.1 version including Ada on the system, now bootstrap goes fine, but when doing make check the macrosub process just hangs. It happened to me only on Fedora 23/24 and not on Fedora 22. I bet the issue why it sometimes can be reproduced and sometimes can't is that due to the register passing changes Item'First and Item'Last are uninitialized, and it the process only hangs if you are unlucky (the difference Item'Last - Item'First is negative). In any case, to manually reproduce, compile gnatmake -g -gnatws macrosub.adb with GCC 5.1.1 (before the ARM changes) and then try to run that process against GCC 5.2.1 (after the ARM changes) libgnat-5.so, which is what make check does (it uses host_gnatmake to compile the support stuff, so ideally the processes built by host gcc/gnatmake should not be run with the LD_LIBRARY_PATH=$ADA_INCLUDE_PATH:$BASE:$LD_LIBRARY_PATH in the environment, and others should). In macrosub in particular, the problem is in: WHILE NOT END_OF_FILE (INFILE1) LOOP GET_LINE (INFILE1, A_LINE, A_LENGTH); in FILL_TABLE, where A_LINE'First is 0 and A_LINE'Last is 400 (if I remember right), but if you step into GET_LINE compiled by GCC 5.2.1, Item'First and Item'Last don't match that. Jakub