From: Wolfgang J. <wj...@so...> - 2007-07-13 14:45:47
|
Hello the GOBO team, I tried to install the new GOBO (5.6) release and ran immediately into trouble: my preferred C compiler is "cc" but command "$GOBO/install.sh cc" stopped with the message Unknown C compiler: cc It is really surprising that the native C compiler of many platforms is not supported. When trying the same with "gcc" then many warnings like the following were issued: gec.c: In function `T202f63': gec.c:82734: warning: cast to pointer from integer of different size Line 82734 in C code reads t2 = ((T0*)gevoid(((T202*)(C))->a20, l2)); whereas "gevoid" is declared as extern int gevoid(T0* C, ...); Thus, the bad cast is from "int" to "T0*", i.e. from 4 to 8 bytes on a Tru64 platform (as I'm working on). I think, the solution is to redefine "gevoid" like "T0* gevoid(T0* C, ...)". Just for curiosity, what is "gevoid" good for? Its definition seems to indicate that it is the check for void targets, but there is no test (neither in the routine nor around its call), merely printing an error message and aborting the program. And if aborting in any case has been planned, why then a return value? After the warnings an error message follows: as1: Error: /usr/tmp/cciOAHCE.s, line 5: gp-relative segments together exceed 64k bytes Probably, the generated object file is too large. (I had the same effect also earlier when bootstrapping the SE compiler from a single C file instead from a split one.) Then many errors of the form /usr/users13/wolfgang/eiffel/gobo/install.sh: /usr/users13/wolfgang/eiffel/gobo/bin/gec: not found /usr/users13/wolfgang/eiffel/gobo/install.sh: geant: not found occurred, probably a consequence of the previous error. Wolfgang PS: After adding the "cc" compiler to "install.sh" the outcome was as follows: cc: Warning: gec.c, line 479288: Non-void function "gevoid" does not contain a return statement. (missingreturn) int gevoid(T0* C, ...) The bad cast is not rejected and the compilation of "gec" is successful. Then most of "geant", ... are compiled successfully where C compilation is again done by "gcc" (to be seen by the warnings concerning bad casts). Why "gcc"? Compilation of "gelint" and "gexslt" fail because of large size. -- Wolfgang Jansen University of Potsdam, Germany mailto: wj...@so... |