Test results gpc-20060325 on gcc-4.1.1 P.S.
Mirsad Todorovac
mtodorov at alu.hr
Wed Feb 14 13:32:21 CET 2007
> Mirsad Todorovac wrote:
>>
>> Here are the test results on my box.
>>
>> Test Run By mtodorov on 2007-02-13 22:15:43
>> Native configuration is i686-pc-linux-gnu (domac)
>> gpc 20060325, based on gcc-4.1.1, flags: -g -O3 -W -Wall -Wno-unused
>> TEST agettext2test.pas: SKIPPED: could not set locale `de_DE'
>> TEST aregextest.pas: SKIPPED: librx not installed
>> TEST backtracerr.pas: 14c14,71
>> < ./test_run: line 339: 20465 Killed ./"$A_OUT" "$1"
> <snip>
>> failed
>> TEST fay.pas: 1c1,12
>> < ./test_run: line 339: 420 Killed ./"$A_OUT" "$1"
>> ---
> <snip>
>> failed
>> TEST fjf165a.pas: SKIPPED: German locale not installed
>> TEST fjf206c.pas: failed: ./fjf206c.pas:2: error: arithmetical overflow
>> ./fjf206c.pas:2: error: constant overflow in expression
>>
>> TEST fjf322.pas: 'result_0.length./fjf322.pas: In function `o':
>> gpc1: warnings being treated as errors
>> ./fjf322.pas:8: warning: ' is used uninitialized in this function
>> failed
>> TEST fjf35.pas: ./test_run: line 339: 16467 Killed ./"$A_OUT" "$1"
>> TEST fjf395a.pas: a Value 2
>> TEST fjf395b.pas: a Value -128
>> TEST fjf403b.pas: failed: failed
>>
>> TEST fjf563e.pas: failed: failed
>>
>> TEST fjf587b.pas: 'concat_0._p_Schema_[3]{lb: 1 sz: 1}./fjf587b.pas: In procedure `Foo':
>> gpc1: warnings being treated as errors
>> ./fjf587b.pas:5: warning: ' is used uninitialized in this function
>> failed
>> TEST fjf779a.pas: failed:
>> TEST fjf779b.pas: failed:
>> TEST fjf779e.pas: failed:
>> TEST fjf779f.pas: failed:
>> TEST fjf779g.pas: failed:
>> TEST fproc.pas: 4c4,11
>> < Stack frame: 0 formal print =./test_run: line 339: 1897 Killed ./"$A_OUT" "$1"
> <snip>
>> failed
>> TEST gmptest.pas: SKIPPED: libgmp (>=3.x) not installed
>> TEST knuth1.pas: ./test_run: line 339: 175 Killed ./"$A_OUT" "$1"
>> TEST nicola4c.pas: failed:
>> TEST nlgpp.pas: ./test_run: line 339: 21147 Killed ./"$A_OUT" "$1"
>> TEST nlgpp2.pas: 13c13,30
>> < ./test_run: line 339: 12038 Killed ./"$A_OUT" "$1"
> <snip>
>> TEST t6334-2.pas: ./test_run: line 339: 27049 Killed ./"$A_OUT" "$1"
>> TEST t6p6p3p4.pas: ./test_run: line 339: 7676 Killed ./"$A_OUT" "$1"
>>
>
> That looks bad. The 'Killed' messages shows that you have serious
> problem with nonlocal gotos. That is strange, as nonlocal gotos worked
> fine for me and other folks. Are you sure that you correctly applied patches?
> Also, is it fresh build (just after patching) or you patched
> failed build and re-run make?
I have rerun tests, and I've run /sbin/chpax -pemrxs a.out after each
compile, but clumsy, since it is hard for me to modify test_run code.
I used gpc wrapper shell script, but I did it clumsy as I said and created
some "a.out: No such file or directory" errors.
BUT THE GOOD NEWS is that there are no longer "Killed" error messages, so
I think we've found the murderer: it was Linux's PAX kernel extension!
chpax has following options, so you will see why it could have affected
nonlocal gotos:
------------------------------------------------------------------
mtodorov at domac:~/pascal/gcc-4.1.1/gcc/p/test$ /sbin/chpax -v
/sbin/chpax 0.7 .::. Manage PaX flags for binaries
Usage: /sbin/chpax OPTIONS FILE1 FILE2 FILEN ...
-P enforce paging based non-executable pages
-p do not enforce paging based non-executable pages
-E emulate trampolines
-e do not emulate trampolines
-M restrict mprotect()
-m do not restrict mprotect()
-R randomize mmap() base [ELF only]
-r do not randomize mmap() base [ELF only]
-X randomize ET_EXEC base [ELF only]
-x do not randomize ET_EXEC base [ELF only]
-S enforce segmentation based non-executable pages
-s do not enforce segmentation based non-executable pages
-v view current flag mask
-z zero flag mask (next flags still apply)
The flags only have effect when running the patched Linux kernel.
mtodorov at domac:~/pascal/gcc-4.1.1/gcc/p/test$
--------------------------------------------------------------------
The wrapper is simplistic, it still does something wrong. It does not work
in all cases, and I can investigate, but I believe Frank will know
immediatelly the solution, provided he has enough time ... The wrapper:
p/test/gpc:
-------------------------------------------------
#/bin/bash -f
/usr/local/bin/gpc $*
if [ -x a.out ]; then
/sbin/chpax -pemrxs a.out
fi
-------------------------------------------------
This far we have located fault on PAX process killer, so I think the
further work is the question whether to allow post-processing command to
be executed in test_run script in a general manner, so chpax could be
safely executed whenever $PC is.
I am waiting for further instructions. I saw some warnings about number of
parms in format not matching parameter list, so I could concentrate on
those.
Regards,
Mirsad
More information about the Gpc
mailing list