# New Ticket Created by Andy Dougherty # Please include the string: [perl #59658] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=59658 >
Trying to compile today's parrot on: SunOS xxx 5.8 Generic_117350-02 sun4u sparc SUNW,Ultra-5_10 with Sun's compiler: cc: WorkShop Compilers 4.2 30 Oct 1996 C 4.2 it failed with the following errors: src/pmc/float.c "/home/doughera/src/parrot/parrot-cc/tools/build/../../lib/Parrot/Pmc2c/PCCMETHOD.pm", line 465: warning: statement not reached [ repeated 17 times ] "./src/pmc/float.c", line 3340: non-constant initializer: op "U*" "./src/pmc/float.c", line 3341: non-constant initializer: op "U*" "./src/pmc/float.c", line 3342: non-constant initializer: op "U*" [ 21 more similar errors ] "./src/pmc/float.c", line 3454: cannot recover from previous errors Looking at src/pmc/float.c, the first lines in question are: const multi_func_list _temp_multi_func_list[] = { { CONST_STRING(interp, "is_equal"), /* line 3340 */ CONST_STRING(interp, "IJPP"), /* line 3341 */ CONST_STRING(interp, "Float,Float"), /* line 3342 */ (funcptr_t) Parrot_Float_multi_is_equal_Float }, which ultimately expand to: const multi_func_list _temp_multi_func_list[] = { { ( interp ) -> const_cstring_table [ 515 ], ( interp ) -> const_cstring_table [ 84 ], ( interp ) -> const_cstring_table [ 639 ], (funcptr_t) Parrot_Float_multi_is_equal_Float }, which indeed are non-constant initializers. GNU cc accepts this, as do more modern compilers from Sun (such as version 5.9). I'm guessing it's a C99 thing, but I don't actually know. What to do about it? I suppose I could go in and rewrite those statements (and similar ones that crop up in other PMCs) but I certainly won't have any time to do that any time soon. Should anyone care? It's certainly an old compiler, but it's the only Sun compiler I have available on SPARC, and SPARC has often been a very helpful platform for debugging alignment and endian issues in parrot. -- Andy Dougherty [EMAIL PROTECTED]