On Thu, 2006-05-04 at 19:40 +0200, Richard Guenther wrote: > On Thu, 4 May 2006, Laurent GUERBY wrote: > > I see that from time to time, more on SMP/dual core machines, if you add > > sync or sleep it goes away but the run is slower. I've always assumed > > it's some kind of process/kernel/fs race condition (I don't see > > anything wrong in gnatchop code). > > Yes, this happens repeatedly on a 4-way HT-Xeon machine. Maybe just > skipping the test completely if $main is empty would at least avoid > the spurious FAILs...
In the same vein as my 20050418 patch, may be the following will help. Tested on x86_64-linux. Laurent 2005-05-15 Laurent GUERBY <[EMAIL PROTECTED]> * ada/acats/run_all.sh: Use sync when main not found. Index: run_all.sh =================================================================== --- run_all.sh (revision 113519) +++ run_all.sh (working copy) @@ -64,6 +64,13 @@ rm -f "$binmain" *.o *.ali > /dev/null 2>&1 } +find_main () { + ls ${i}?.adb > ${i}.lst 2> /dev/null + ls ${i}*m.adb >> ${i}.lst 2> /dev/null + ls ${i}.adb >> ${i}.lst 2> /dev/null + main=`tail -1 ${i}.lst` +} + EXTERNAL_OBJECTS="" # Global variable to communicate external objects to link with. @@ -230,10 +237,12 @@ fi target_gnatchop -c -w `ls ${test}*.a ${test}*.ada ${test}*.adt ${test}*.am ${test}*.dep 2> /dev/null` >> $dir/acats.log 2>&1 - ls ${i}?.adb > ${i}.lst 2> /dev/null - ls ${i}*m.adb >> ${i}.lst 2> /dev/null - ls ${i}.adb >> ${i}.lst 2> /dev/null - main=`tail -1 ${i}.lst` + main="" + find_main + if [ "$main" == "" ]; then + sync + find_main + fi binmain=`echo $main | sed -e 's/\(.*\)\..*/\1/g'` echo "BUILD $main" >> $dir/acats.log EXTERNAL_OBJECTS=""