GPC with gcc-4.[23]

Maurice Lombardi Maurice.Lombardi at ujf-grenoble.fr
Fri Jul 1 14:17:28 CEST 2011


Le 13/06/2011 20:48, Waldek Hebisch a écrit :
> I did some work on updating gpc to newer gcc versions.  You can
> find it at GitHub:
>
> https://github.com/hebisch/gpc
>
> This is experimental work.  4.2 and 4.3 ports (on "master" Git branch)

Native building of the gpc compiler with 4.23 backend for DJGPP 2.04 / 
winXP works well, when following recommendations of Andris Pavenis 
(recompiling stubify for 1024k default stack size, and 32k transfer 
buffer for sh and make) and those of Waldek for gpc 4.x.x. (plus a 
djgpp-only patch for libgpc mirrored from the equivalent in libobjc)
Running the tests gives)

----------------------------------------------------
Test Run By maurice on 2011-06-28 12:12:42
Native configuration is djgpp (BOUVARDIE)

                 === gpc tests ===

Running target any
Running testsuite ...

UNSUPPORTED: agettext2test.pas
FAIL: fjf1042b.pas
FAIL: fjf1042c.pas
FAIL: fjf1102.pas
UNSUPPORTED: fjf165a.pas
FAIL: fjf403b.pas
FAIL: fjf563e.pas
UNSUPPORTED: longr2.pas
FAIL: pcerroro.pas
FAIL: reset.pas
FAIL: y2k.pas

                 === gpc Summary ===

# of tests                5111
# of expected passes      5100
# of unexpected failures  8
# of unsupported tests    3

c:/DJGPP/gnu/build.gcc/gcc/xgpc version 20070904, based on gcc-4.2.3
---------------------------------------------------------------------

i.e. two failures _less_ than with the previous 20070904 with 4.1.2 backend.

When trying with gcc 4.3.2 it seems that we already stumble into the 
problems of djgpp limitations described recently by Andris
> http://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp-workers/2011/04/30/07:21:54

Native building of C and C++ compilers with gcc432s2 and FSF sources 
work as expected. But when trying to compile gpc, even starting whith 
the precompiled sources gcc432s, depending on the settings of transfer 
buffer compiling the gpc rts (string1.pas) fails with either
-----------------------------------------------------------
`echo /dev/c/djgpp/gnu/build.gcc/./gcc/xgcc 
-B/dev/c/djgpp/gnu/build.gcc/./gcc/ -B/dev/env/DJDIR/djgpp/bin/ 
-B/dev/env/DJDIR/djgpp/lib/ -isystem /dev/env/DJDIR/djgpp/include 
-isystem /dev/env/DJDIR/djgpp/sys-include | sed 's,^\([^ 
]*[/\][^/\]*\)gcc,\1gpc,;s/^gcc$/gpc/' ` -c -I. -W -Wall 
-Wmissing-prototypes -Wmissing-declarations -O2 -g -g -O2 
--unit-path=/dev/c/djgpp/gnu/gcc-4.32/gcc/p/rts --automake 
-DRTS_RELEASE_STRING="'`cat 
/dev/c/djgpp/gnu/gcc-4.32/gcc/p/rts/rts-version`'" 
-DGCC_VERSION="'unknown'" "/dev/c/djgpp/gnu/gcc-4.32/gcc/p/rts/string1.pas"
Load error: no DOS memory
gpc1.exe: c:/djgpp/gnu/build.gcc/gcc/xgpc.exe exited with status 105
make.exe[4]: *** [string1.o] Error 1
make.exe[4]: Leaving directory `c:/djgpp/gnu/build.gcc/djgpp/libgpc/p/rts'
make.exe[3]: *** [pascal.rts] Error 2
make.exe[3]: Leaving directory `c:/djgpp/gnu/build.gcc/djgpp/libgpc'
make.exe[2]: *** [do_multidirs] Error 2
make.exe[2]: Leaving directory `c:/djgpp/gnu/build.gcc/djgpp/libgpc'
make.exe[1]: *** [all-target-libgpc] Error 2
make.exe[1]: Leaving directory `c:/djgpp/gnu/build.gcc'
make.exe: *** [all] Error 2
------------------------------------------------------------------
or
------------------------------------------------------------
`echo /dev/c/djgpp/gnu/build.gcc/./gcc/xgcc 
-B/dev/c/djgpp/gnu/build.gcc/./gcc/ -B/dev/env/DJDIR/djgpp/bin/ 
-B/dev/env/DJDIR/djgpp/lib/ -isystem /dev/env/DJDIR/djgpp/include 
-isystem /dev/env/DJDIR/djgpp/sys-include | sed 's,^\([^ 
]*[/\][^/\]*\)gcc,\1gpc,;s/^gcc$/gpc/' ` -c -I. -W -Wall 
-Wmissing-prototypes -Wmissing-declarations -O2 -g -g -O2 
--unit-path=/dev/c/djgpp/gnu/gcc-4.32/gcc/p/rts --automake 
-DRTS_RELEASE_STRING="'`cat 
/dev/c/djgpp/gnu/gcc-4.32/gcc/p/rts/rts-version`'" 
-DGCC_VERSION="'unknown'" "/dev/c/djgpp/gnu/gcc-4.32/gcc/p/rts/string1.pas"
<snip>
/dev/c/djgpp/gnu/gcc-4.32/gcc/p/rts/string1.pas: In function 
`CStringLastPos':
/dev/c/djgpp/gnu/gcc-4.32/gcc/p/rts/string1.pas:604: internal compiler 
error: in ggc_set_mark, at ggc-page.c:1285
Please submit a full bug report,
with preprocessed source if appropriate.
See unsupported for instructions.
make.exe[4]: *** [string1.o] Error 1
make.exe[4]: Leaving directory `c:/djgpp/gnu/build.gcc/djgpp/libgpc/p/rts'
make.exe[3]: *** [pascal.rts] Error 2
make.exe[3]: Leaving directory `c:/djgpp/gnu/build.gcc/djgpp/libgpc'
make.exe[2]: *** [do_multidirs] Error 2
make.exe[2]: Leaving directory `c:/djgpp/gnu/build.gcc/djgpp/libgpc'
make.exe[1]: *** [all-target-libgpc] Error 2
make.exe[1]: Leaving directory `c:/djgpp/gnu/build.gcc'
make.exe: *** [all] Error 2
---------------------------------------------------------------------
I doubt the last message (a failed assertion) be really significant 
since compiler works with gcc423
Unless somebody have an idea, the only way out seems to follow the 
Andris route, i.e. cross compiling gpc. But I have no experience on 
that, so that it will take some time.

Maurice

-- 
        Maurice Lombardi
Laboratoire Interdisciplinaire de Physique,
     (ex Spectrometrie Physique)
Universite Joseph Fourier de Grenoble, BP87
38402 Saint Martin d'Heres Cedex     FRANCE
Tel: 33 (0)4 76 51 47 51
Fax: 33 (0)4 76 63 54 95
mailto:Maurice.Lombardi at ujf-grenoble.fr



More information about the Gpc mailing list