Hello all,
when I am bootstraping new gcc-3.3 release with GNU Pascal 20030507 I got :
make[3]: Entering directory `/home/david/gcc-3.3-build/gcc/p/rts' .../.././xgpc -B../.././ -c -I. -W -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -g -O2 --unit-path=/home/david/gcc-3.3-gpc/gcc/p/rts --automake `cat needed-options` -DRTS_RELEASE_STRING="'`cat /home/david/gcc-3.3-gpc/gcc/p/rts/rts-version`'" -DGCC_VERSION="'3.3'" /home/david/gcc-3.3-gpc/gcc/p/rts/numtodec.pas /home/david/gcc-3.3-gpc/gcc/p/rts/numtodec.pas:113: internal compiler error: in dwarf2out_finish, at dwarf2out.c:12666
Please submit a full bug report, with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.
make[3]: *** [numtodec.o] Error 1 make[3]: Leaving directory `/home/david/gcc-3.3-build/gcc/p/rts' make[2]: *** [pascal.rts] Error 2 make[2]: Leaving directory `/home/david/gcc-3.3-build/gcc' make[1]: *** [stage2_build] Error 2 make[1]: Leaving directory `/home/david/gcc-3.3-build/gcc' make: *** [bootstrap] Error 2
gcc -v :
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3/specs Configured with: ../gcc-3.3/configure --prefix=/usr --libdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking --enable-long-long --enable-__cxa_atexit --enable-languages=c,c++,objc,f77,ada,java Thread model: posix gcc version 3.3
uname -r : 2.4.21-0.16mm-mdksmp
Configure command:
.../gcc-3.3-gpc/configure --prefix=/usr --libdir=/usr/lib --with-slibdir=/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking --enable-long-long --enable-__cxa_atexit --enable-languages=c,c++,objc,f77,ada,java,pascal
Make command : make -j4 bootstrap4
After 1st fail in gpc : make bootstrap4
and after fail in gpc : make bootstrap
The same error results in all cases.
David
David Kredba wrote:
when I am bootstraping new gcc-3.3 release with GNU Pascal 20030507 I got :
make[3]: Entering directory `/home/david/gcc-3.3-build/gcc/p/rts' .../.././xgpc -B../.././ -c -I. -W -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -g -O2 --unit-path=/home/david/gcc-3.3-gpc/gcc/p/rts --automake `cat needed-options` -DRTS_RELEASE_STRING="'`cat /home/david/gcc-3.3-gpc/gcc/p/rts/rts-version`'" -DGCC_VERSION="'3.3'" /home/david/gcc-3.3-gpc/gcc/p/rts/numtodec.pas /home/david/gcc-3.3-gpc/gcc/p/rts/numtodec.pas:113: internal compiler error: in dwarf2out_finish, at dwarf2out.c:12666
On Mac OS X "make bootstrap" dies as follows (reproducible after a restart):
../.././xgpc -B../.././ -I../rts --automake --executable-file-name -W -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -g -O2 --executable-path=. --unit-path=/Users/adriaan/gnu/gpc-3.3/gcc/p/rts --unit-path=/Users/adriaan/gnu/gpc-3.3/gcc/p/units `cat needed-options` -I. -I "/Users/adriaan/gnu/gpc-3.3/gcc/p" "/Users/adriaan/gnu/gpc-3.3/gcc/p/utils/gpidump.pas" In file included from /Users/adriaan/gnu/gpc-3.3/gcc/p/utils/gpidump.pas:52: ./tree.inc: In procedure `ProcessFile': ./tree.inc:115: error: undeclared identifier `LANG_HOOKS_IDENTIFIER_SIZE' (first use in this routine) ./tree.inc:115: error: (Each undeclared identifier is reported only once ./tree.inc:115: error: for each routine it appears in.) ./tree.inc:115: error: undeclared identifier `struct' (first use in this routine) ./tree.inc:115: error: parse error before `tree_common' ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: missing separator ./tree.inc:115: error: parse error before `/' ./tree.inc:115: error: undeclared identifier `tree' (first use in this routine) ./tree.inc:115: error: missing separator ./tree.inc:115: error: parse error before `)' *** malloc[1961]: Deallocation of a pointer not malloced: 0xcc0360; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug *** malloc[1961]: Deallocation of a pointer not malloced: 0xcc0320; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug /Users/adriaan/gnu/gpc-3.3/gcc/p/utils/gpidump.pas:34: warning: `Verbose' defined but not used /Users/adriaan/gnu/gpc-3.3/gcc/p/utils/gpidump.pas:34: warning: `Hex' defined but not used make[3]: *** [gpidump] Error 1 make[2]: *** [pascal.utils] Error 2 make[1]: *** [stage2_build] Error 2 make: *** [bootstrap] Error 2
Regards,
Adriaan van Os
Adriaan van Os wrote:
On Mac OS X "make bootstrap" dies as follows (reproducible after a restart):
../.././xgpc -B../.././ -I../rts --automake --executable-file-name -W -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -g -O2 --executable-path=. --unit-path=/Users/adriaan/gnu/gpc-3.3/gcc/p/rts --unit-path=/Users/adriaan/gnu/gpc-3.3/gcc/p/units `cat needed-options` -I. -I "/Users/adriaan/gnu/gpc-3.3/gcc/p" "/Users/adriaan/gnu/gpc-3.3/gcc/p/utils/gpidump.pas" In file included from /Users/adriaan/gnu/gpc-3.3/gcc/p/utils/gpidump.pas:52: ./tree.inc: In procedure `ProcessFile': ./tree.inc:115: error: undeclared identifier `LANG_HOOKS_IDENTIFIER_SIZE' (first use in this routine) ....
When I hack gpidump out of gcc/p/utils/Makefile, gpc-20030507 builds with gcc-3.3 on Mac OS X. However, compiling any .pas file results in a bunch of malloc warnings:
[G4:~/gnu/testgpc/adriaan] adriaan% gpc --automake -o hello hello.pas *** malloc[463]: Deallocation of a pointer not malloced: 0xc92360; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug *** malloc[463]: Deallocation of a pointer not malloced: 0xc92340; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug *** malloc[463]: Deallocation of a pointer not malloced: 0xc92300; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug *** malloc[463]: Deallocation of a pointer not malloced: 0xc92440; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug *** malloc[463]: Deallocation of a pointer not malloced: 0xc92400; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug *** malloc[463]: Deallocation of a pointer not malloced: 0xc924c0; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug *** malloc[463]: Deallocation of a pointer not malloced: 0xc92480; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug
I did some debugging with gdb to locate the problem:
(gdb) bt #0 0x900039f8 in free () #1 0x0000a278 in do_spec_1 (spec=0x7b340 "/Developer/Pascal/gpc33d2/lib/gcc-lib/powerpc-apple-darwin/3.3/gpc1", inswitch=0, soft_matched_part=0x1ce10 "") at ../../gpc-3.3/gcc/p/gpc.c:4607 #2 0x0000c3e8 in handle_braces (p=0x75f35 "-o %{|!pipe:%g.s} |\n as %(asm_options) %{!pipe:%g.s} %A }") at ../../gpc-3.3/gcc/p/gpc.c:5835 #3 0x0000c18c in do_spec_1 (spec=0x7b340 "/Developer/Pascal/gpc33d2/lib/gcc-lib/powerpc-apple-darwin/3.3/gpc1", inswitch=0, soft_matched_part=0x0) at ../../gpc-3.3/gcc/p/gpc.c:5370 #4 0x0000a9b0 in do_spec_1 (spec=0x7b340 "/Developer/Pascal/gpc33d2/lib/gcc-lib/powerpc-apple-darwin/3.3/gpc1", inswitch=0, soft_matched_part=0x0) at ../../gpc-3.3/gcc/p/gpc.c:5479 #5 0x0000c3e8 in handle_braces (p=0x7b218 "%(invoke_as)} ") at ../../gpc-3.3/gcc/p/gpc.c:5835 #6 0x0000c18c in do_spec_1 (spec=0x7b340 "/Developer/Pascal/gpc33d2/lib/gcc-lib/powerpc-apple-darwin/3.3/gpc1", inswitch=0, soft_matched_part=0x0) at ../../gpc-3.3/gcc/p/gpc.c:5370 #7 0x0000c3e8 in handle_braces (p=0x7b0f5 "gpc1 %{!pipe:%g.i} %(cc1_options) %{!famtmpfile*:%eInternal GPC problem: internal option `--amtmpfile' not given} %{!fsyntax-only:%(invoke_as)} }") at ../../gpc-3.3/gcc/p/gpc.c:5835 #8 0x0000c18c in do_spec_1 (spec=0x7b340 "/Developer/Pascal/gpc33d2/lib/gcc-lib/powerpc-apple-darwin/3.3/gpc1", inswitch=0, soft_matched_part=0x0) at ../../gpc-3.3/gcc/p/gpc.c:5370 #9 0x0000c3e8 in handle_braces (p=0x7b046 "%{!E:gpc1 %{!pipe:%g.i} %(cc1_options) %{!famtmpfile*:%eInternal GPC problem: internal option `--amtmpfile' not given} %{!fsyntax-only:%(invoke_as)} }}") at ../../gpc-3.3/gcc/p/gpc.c:5835 #10 0x0000c18c in do_spec_1 (spec=0x7b340 "/Developer/Pascal/gpc33d2/lib/gcc-lib/powerpc-apple-darwin/3.3/gpc1", inswitch=0, soft_matched_part=0x0) at ../../gpc-3.3/gcc/p/gpc.c:5370 #11 0x0000c3e8 in handle_braces (p=0x18349 "%{!MM:%{!E:gpc1 %{!pipe:%g.i} %(cc1_options) %{!famtmpfile*:%eInternal GPC problem: internal option `--amtmpfile' not given} %{!fsyntax-only:%(invoke_as)} }}}") at ../../gpc-3.3/gcc/p/gpc.c:5835 #12 0x0000c18c in do_spec_1 (spec=0x7b340 "/Developer/Pascal/gpc33d2/lib/gcc-lib/powerpc-apple-darwin/3.3/gpc1", inswitch=0, soft_matched_part=0x0) at ../../gpc-3.3/gcc/p/gpc.c:5370 #13 0x00009f48 in do_spec (spec=0x1819c "gpcpp %{fbig-endian:-D__BITS_BIG_ENDIAN__=1 -D__BYTES_BIG_ENDIAN__=1 -D__WORDS_BIG_ENDIAN__=1} %{flittle-endian:-D__BITS_LITTLE_ENDIAN__=1 -D__BYTES_LITTLE_ENDIAN__=1 -D__WORDS_LITTLE_ENDIAN__=1"...) at ../../gpc-3.3/gcc/p/gpc.c:4522 #14 0x0000dab8 in main (argc=0, argv=0x0) at ../../gpc-3.3/gcc/p/gpc.c:6515 #15 0x00001990 in _start (argc=5, argv=0xbffffdec, envp=0xbffffe04) at /SourceCache/Csu/Csu-45/crt.c:267 #16 0x00001810 in start ()
Regards,
Adriaan van Os
I did some debugging with gdb to locate the problem:
(gdb) bt #0 0x900039f8 in free () #1 0x0000a278 in do_spec_1 (spec=0x7b340 "/Developer/Pascal/gpc33d2/lib/gcc-lib/powerpc-apple-darwin/3.3/gpc1", inswitch=0, soft_matched_part=0x1ce10 "") at ../../gpc-3.3/gcc/p/gpc.c:4607
More precise debugging shows that the problem is in the executed subprocess gpc1:
(gdb) *** malloc[1147]: Deallocation of a pointer not malloced: 0xc92360; This could be a double free(), or free() called with the middle of an allocated block; Try setting environment variable MallocHelp to see tools to help debug 0x90003910 in write () (gdb) bt #0 0x90003910 in write () #1 0x9000108c in __sflush () #2 0x900157f0 in __sbprintf () #3 0x900011a8 in vfprintf () #4 0x900010ec in fprintf () #5 0x00002ec8 in translate_options (argcp=0x610077, argvp=0xbb013a) at ../../gpc-3.3/gcc/p/gpc.c:1399 #6 0x0002f780 in _xexit_cleanup () #7 0x00097d94 in ?? () #8 0x0009cf48 in ?? () #9 0x0009d014 in ?? () #10 0x000027a8 in translate_options (argcp=0x1000, argvp=0x4) at ../../gpc-3.3/gcc/p/gpc.c:1426 #11 0x00002628 in translate_options (argcp=0xbfffffb7, argvp=0xbfffffda) at ../../gpc-3.3/gcc/p/gpc.c:1425
Regards,
Adriaan van Os
David Kredba wrote:
Hello all,
when I am bootstraping new gcc-3.3 release with GNU Pascal 20030507 I got :
make[3]: Entering directory `/home/david/gcc-3.3-build/gcc/p/rts' .../.././xgpc -B../.././ -c -I. -W -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -g -O2 --unit-path=/home/david/gcc-3.3-gpc/gcc/p/rts --automake `cat needed-options` -DRTS_RELEASE_STRING="'`cat /home/david/gcc-3.3-gpc/gcc/p/rts/rts-version`'" -DGCC_VERSION="'3.3'" /home/david/gcc-3.3-gpc/gcc/p/rts/numtodec.pas /home/david/gcc-3.3-gpc/gcc/p/rts/numtodec.pas:113: internal compiler error: in dwarf2out_finish, at dwarf2out.c:12666
<snip> That is known problem with generating DWARF-2 debug info -- one may define PFLAGS=-gstabs to disable generating DWARF-2 debug info during build. Alternatively, the patch below works around the problem (it is still not clear if the patch is correct, but IMO the only bad effect may be generating confusing debug info).
--- gpc-20030507.orig/p/declarations.c Sat May 3 17:24:08 2003 +++ gpc-20030507/p/declarations.c Sun May 11 22:45:49 2003 @@ -404,7 +404,9 @@ if (block) TREE_USED (block) = 1;
+#ifndef GCC_3_3 free (level); +#endif
return block; } --- gpc-20030507.orig/p/predef.c Fri May 2 11:40:33 2003 +++ gpc-20030507/p/predef.c Fri May 16 11:13:05 2003 @@ -275,7 +275,7 @@ if (TYPE_NAME (type)) type = build_type_copy ((orig = type)); TYPE_NAME (type) = decl = build_decl (TYPE_DECL, id, type); - DECL_ORIGINAL_TYPE (decl) = orig; + DECL_ORIGINAL_TYPE (decl) = NULL_TREE; } } if (kind == bk_special_syntax || kind == bk_routine)
Waldek Hebisch writes:
--- gpc-20030507.orig/p/declarations.c Sat May 3 17:24:08 2003 +++ gpc-20030507/p/declarations.c Sun May 11 22:45:49 2003 @@ -404,7 +404,9 @@ if (block) TREE_USED (block) = 1;
+#ifndef GCC_3_3 free (level); +#endif
return block; } --- gpc-20030507.orig/p/predef.c Fri May 2 11:40:33 2003 +++ gpc-20030507/p/predef.c Fri May 16 11:13:05 2003 @@ -275,7 +275,7 @@ if (TYPE_NAME (type)) type = build_type_copy ((orig = type)); TYPE_NAME (type) = decl = build_decl (TYPE_DECL, id, type);
DECL_ORIGINAL_TYPE (decl) = orig;
DECL_ORIGINAL_TYPE (decl) = NULL_TREE; } } if (kind == bk_special_syntax || kind == bk_routine)
with this patch and gcc-3.3 I get:
../.././xgpc -B../.././ -I../rts --automake --executable-file-name -W -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -g -O2 --executable-path=. --unit-path=/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/rts --unit-path=/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/units `cat needed-options` -I. -I "/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p" "/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas" In file included from /build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas:52: ./tree.inc: In procedure `ProcessFile': ./tree.inc:115: error: undeclared identifier `LANG_HOOKS_IDENTIFIER_SIZE' (first use in this routine) ./tree.inc:115: error: (Each undeclared identifier is reported only once ./tree.inc:115: error: for each routine it appears in.) ./tree.inc:115: error: undeclared identifier `struct' (first use in this routine) ./tree.inc:115: error: syntax error before `tree_common' ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: missing separator ./tree.inc:115: error: syntax error before `/' ./tree.inc:115: error: undeclared identifier `tree' (first use in this routine) ./tree.inc:115: error: missing separator ./tree.inc:115: error: syntax error before `)' /build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas:34: warning: `Verbose' defined but not used /build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas:34: warning: `Hex' defined but not used make[5]: *** [gpidump] Error 1
Matthias Klose wrote:
with this patch and gcc-3.3 I get:
../.././xgpc -B../.././ -I../rts --automake --executable-file-name -W -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -g -O2 --executable-path=. --unit-path=/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/rts --unit-path=/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/units `cat needed-options` -I. -I "/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p" "/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas" In file included from /build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas:52: ./tree.inc: In procedure `ProcessFile': ./tree.inc:115: error: undeclared identifier `LANG_HOOKS_IDENTIFIER_SIZE' (first use in this routine) ./tree.inc:115: error: (Each undeclared identifier is reported only once ./tree.inc:115: error: for each routine it appears in.) ./tree.inc:115: error: undeclared identifier `struct' (first use in this routine) ./tree.inc:115: error: syntax error before `tree_common' ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: missing separator ./tree.inc:115: error: syntax error before `/' ./tree.inc:115: error: undeclared identifier `tree' (first use in this routine) ./tree.inc:115: error: missing separator ./tree.inc:115: error: syntax error before `)' /build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas:34: warning: `Verbose' defined but not used /build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas:34: warning: `Hex' defined but not used make[5]: *** [gpidump] Error 1
This error should be ignorable -- I succesfuly run test suite after the build stopped. The compiler should install correctly -- I have not tried but I will try on anather machine. Since gpidump is non-essential the short term workaround may be just to disable building it. However proper fix seem very tricky -- we want to propagate information from C header to Pascal program. I leave it to Frank -- I would probably make a small C file which would export everything needed in Pascal, but he may have different idea.
Waldek Hebisch wrote:
Matthias Klose wrote:
with this patch and gcc-3.3 I get:
../.././xgpc -B../.././ -I../rts --automake --executable-file-name -W -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -g -O2 --executable-path=. --unit-path=/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/rts --unit-path=/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/units `cat needed-options` -I. -I "/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p" "/build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas" In file included from /build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas:52: ./tree.inc: In procedure `ProcessFile': ./tree.inc:115: error: undeclared identifier `LANG_HOOKS_IDENTIFIER_SIZE' (first use in this routine) ./tree.inc:115: error: (Each undeclared identifier is reported only once ./tree.inc:115: error: for each routine it appears in.) ./tree.inc:115: error: undeclared identifier `struct' (first use in this routine) ./tree.inc:115: error: syntax error before `tree_common' ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: invalid structured initializer ./tree.inc:115: error: missing separator ./tree.inc:115: error: syntax error before `/' ./tree.inc:115: error: undeclared identifier `tree' (first use in this routine) ./tree.inc:115: error: missing separator ./tree.inc:115: error: syntax error before `)' /build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas:34: warning: `Verbose' defined but not used /build/packages/gcc/3.3/gcc-3.3-3.3ds9/src/gcc/p/utils/gpidump.pas:34: warning: `Hex' defined but not used make[5]: *** [gpidump] Error 1
This error should be ignorable -- I succesfuly run test suite after the build stopped. The compiler should install correctly -- I have not tried but I will try on anather machine. Since gpidump is non-essential the short term workaround may be just to disable building it. However proper fix seem very tricky -- we want to propagate information from C header to Pascal program. I leave it to Frank -- I would probably make a small C file which would export everything needed in Pascal, but he may have different idea.
If you write this program manually, this will be a lot of maintenance in the future (keeping the tree codes up to date etc.). So it would be better to generate (parts of) it automatically, and this again would probably not be much different from generating tree.inc as is done now.
I don't have gcc-3.3 here (and don't plan to get it until it's released), so I can't tell anything now.
I suppose it should not be too hard to fix (you basically just have to get the tree code definitions from the respective backend files and perhaps adjust the macro usage in gpidump.pas if it has changed), but if you can't do it now, you'll have to work-around it I guess ...
Frank
Frank Heckenbach writes:
I don't have gcc-3.3 here (and don't plan to get it until it's released), so I can't tell anything now.
http://gcc.gnu.org/ml/gcc/2003-05/msg01478.html ;-)
Or more prominent: http://gcc.gnu.org/
News/Announcements
May 14, 2003 GCC 3.3 has been released.
For the gcc-3.3 `LANG_HOOKS_IDENTIFIER_SIZE' problem. (But note that gcc-3.3 is still in an early state and not recommended for production use.)
--- p/utils/mk-t-inc.orig Sat May 17 14:27:28 2003 +++ p/utils/mk-t-inc Sat May 17 14:28:27 2003 @@ -82,6 +82,6 @@ cat "$GCCDIR/tree.def" echo 'DEFTREECODE (LAST_AND_UNUSED_C_TREE_CODE, "unused", "x", 0)' sed -e '/#else/,/#endif/d' "$GCCDIR/p/p-tree.def" -} | sed -ne '/^DEFTREECODE/{s,/*.**/,,;p;}' +} | sed -ne '/^DEFTREECODE/{s,/*.**/,,;s/["'"'"']x["'"'"'].*/"x", 0)/;p;}'
} > "$2" || { rm -f "$2"; false; }
Frank