Dear all,
When using a recent gcc-compiler of the 4.x family, xotcl fails to compile due to a compatibility issue with respect to declaring nested functions *static*. xotcl.c, however, currently contains one static nested function and therefore breaks when using gcc4. The following error is reported back by make:
############## snip ############## ./generic/xotcl.c: In function 'XOTcl_ThreadExitProc': ./generic/xotcl.c:10791: error: invalid storage class for function 'XOTcl_ExitProc' ./generic/xotcl.c:10792: error: 'XOTcl_ExitProc' undeclared (first use in this function) ./generic/xotcl.c:10792: error: (Each undeclared identifier is reported only once ./generic/xotcl.c:10792: error: for each function it appears in.) make: *** [xotcl.o] Error 1 ############## snip ##############
To resolve the issue, the nested function XOTcl_ExitProc has to be moved to the top level. A patch is attached to the email. The patched version compiles perfectly and passes the entire bunch of tests.
regards,
//stefan
Dear all.
The best fix is to remove twice the word "static" before XOTcl_ThreadExitProc. I've fixed this some time ago, when Tiger came out.. we should release most probably a maintenance release soon.
best regards -gustaf neumann
Stefan Sobernig schrieb:
Dear all,
When using a recent gcc-compiler of the 4.x family, xotcl fails to compile due to a compatibility issue with respect to declaring nested functions *static*. xotcl.c, however, currently contains one static nested function and therefore breaks when using gcc4. The following error is reported back by make:
############## snip ############## ./generic/xotcl.c: In function ‘XOTcl_ThreadExitProc’: ./generic/xotcl.c:10791: error: invalid storage class for function ‘XOTcl_ExitProc’ ./generic/xotcl.c:10792: error: ‘XOTcl_ExitProc’ undeclared (first use in this function) ./generic/xotcl.c:10792: error: (Each undeclared identifier is reported only once ./generic/xotcl.c:10792: error: for each function it appears in.) make: *** [xotcl.o] Error 1 ############## snip ##############
To resolve the issue, the nested function XOTcl_ExitProc has to be moved to the top level. A patch is attached to the email. The patched version compiles perfectly and passes the entire bunch of tests.
regards,
//stefan
Stefan Sobernig Department of Information Systems and New Media Vienna University of Economics Augasse 2-6 A - 1090 Vienna
Phone: +43 - 1 - 31336 - 4878 Fax: +43 - 1 - 31336 - 746 Email: stefan.sobernig@wu-wien.ac.at mailto:stefan.sobernig@wu-wien.ac.at PubKey: http://julia.wu-wien.ac.at/~ssoberni/0x5FC2D3FA.asc http://julia.wu-wien.ac.at/%7Essoberni/0x5FC2D3FA.asc
On 1 Aug 2005, at 13:46, Gustaf Neumann wrote:
The best fix is to remove twice the word "static" before XOTcl_ThreadExitProc. I've fixed this some time ago, when Tiger came out.. we should release most probably a maintenance release soon.
Hm, are nested functions a part of C99? If not, I would prefer to see this moved to the top level. Strict ISO C adherence is something I generally prefer.