GPC platforms_(re)
Thu, 29 May 1997 14:03:05 +0300 (EET DST)
> >> Is it possible to tell which GPC platform and version is being used?
> >> [...]
> >> This would really help in writing portable code. What do you think?
Please check what gpc (gcc) defines now in your system.
This is most easily done by creating an empty file, say
foo.p, and compiling it with the '-v' option. In a unix
system, you can do this with:
# touch foo.p
# gcc -v foo.p
At least in the version I compiled yesterday for the Alpha,
the defines are:
/v/dunix40_alpha/gnu/gcc/2.7.2.1/lib/gcc-lib/alpha-dec-osf4.0/2.7.2.1/gpc-cpp
-lang-pascal -v -nocharescape -undef -D__GNUC__=970528(2 -D__GPC__=970528(2
-D__GNUC_MINOR__=7 -D__unix__ -D__osf__ -D__alpha -D__alpha__ -D_LONGLONG
-D__SYSTYPE_BSD__ -D_SYSTYPE_BSD -D__unix -D__SYSTYPE_BSD -Asystem(unix)
-Asystem(xpg4) -Acpu(alpha) -Amachine(alpha) -D__LANGUAGE_C__ -D__LANGUAGE_C
-DLANGUAGE_C /tmp/foo.p /tmp/ccaagopa.i
GNU CPP version 970528(2.7.2.1)
So, it seems that the __GPC__ define at least will get screwed
up, if it is generated like it is now.
Also, please consider using assertions (see manual) instead of
defines if you need something that works only in e.g.
'#if' constructs, but does not expand in the code.
Also, I'd recommend in using the same definitions as
are defined for the GCC for the same host. Why add new ones?
Happy hacking!
Juki
jtv@hut.fi
A couple of bugs from the 970510 snapshot I compiled but
did not yet test very much:
Please check the use of strncmp() functions in the
code. At least in the gpc-lex.c and gpc-decl.c there are
calls (9?) to this function without the length parameter.
Trivial to fix, so I don't bother you with a diff.
The generated Makefile does not search the gpc-gperf.c
from the source directory, but rather unnecessarily requires
the use of the gperf program to generate the hash table,
if gpc is not compiled in the source tree.
Some other problems in the Makefile:
- 'make' command makes only the gpc-common.o because
the order of the rules is incorrect. 'make all' works
better. Please re-order the rules.
- I don't think it's a good idea to install libgcc.a
always when installing gpc. You could e.g. install it
only if it does not exist in the destination directory.
- When I did 'make install' the compiler was recompiled
again without reason. I did not yet check why this happened,
has anyone else seen this?
Jukka Virtanen (jtv@cc.hut.fi)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es