Discussion:
[perl #61038] parrot 0.8.0 compilation failure in Tru64 5.1B
(too old to reply)
Jarkko Hietaniemi
2008-12-04 02:00:32 UTC
Permalink
# New Ticket Created by Jarkko Hietaniemi
# Please include the string: [perl #61038]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=61038 >


---
osname= dec_osf
osvers= 5.1b
arch= alpha-dec_osf-thread-multi
cc= cc
---
Flags:
category=core
severity=critical
ack=no
---
First we get a couple of warnings fro some files, but then one file
refuses to compile (see below). I didn't notice any other warnings or
failures during Configure.pl and/or during compilation.

kosh:/tmp/jhi/parrot/parrot-0.8.0 ; uname -a
OSF1 kosh.hut.fi V5.1 2650 alpha
kosh:/tmp/jhi/parrot/parrot-0.8.0 ; cc -V
Compaq C V6.5-011 on Compaq Tru64 UNIX V5.1B (Rev. 2650)
Compiler Driver V6.5-003 (sys) cc Driver
kosh:/tmp/jhi/parrot/parrot-0.8.0 ;

..
src/ops/core_ops.c
cc: Warning: src/ops/object.ops, line 436: Non-void function "Parrot_removeattribute_p_s" does not contain a return statement. (missingreturn)
opcode_t *
^
cc: Warning: src/ops/object.ops, line 448: Non-void function "Parrot_removeattribute_p_sc" does not contain a return statement. (missingreturn)
opcode_t *
^
cc: Warning: src/ops/object.ops, line 448: Non-void function "Parrot_removeattribute_p_i" does not contain a return statement. (missingreturn)
opcode_t *
^
cc: Warning: src/ops/object.ops, line 453: Non-void function "Parrot_removeattribute_p_ic" does not contain a return statement. (missingreturn)
opcode_t *
^
cc: Warning: src/ops/object.ops, line 517: Non-void function "Parrot_pic_infix___ic_p_p" does not contain a return statement. (missingreturn)
opcode_t *
^
cc: Warning: src/ops/object.ops, line 522: Non-void function "Parrot_pic_inline_sub___ic_p_p" does not contain a return statement. (missingreturn)
opcode_t *
^
cc: Warning: src/ops/object.ops, line 527: Non-void function "Parrot_pic_get_params___pc" does not contain a return statement. (missingreturn)
opcode_t *
^
cc: Warning: src/ops/object.ops, line 532: Non-void function "Parrot_pic_set_returns___pc" does not contain a return statement. (missingreturn)
opcode_t *
^
cc: Warning: src/ops/object.ops, line 537: Non-void function "Parrot_pic_callr___pc" does not contain a return statement. (missingreturn)
opcode_t *
^
..
src/dynext.c
cc: Info: src/dynext.c, line 367: In this statement, "(Parrot_dlsym(...))" of type "pointer to void", is being converted to "pointer to function (pointer to struct parrot_interp_t) returning pointer to struct PMC". Such a cast is not permitted by the standard. (nonstandcast)
(Parrot_dlsym(handle, cload_func_name));
------------^
cc: Info: src/dynext.c, line 375: In this statement, "(Parrot_dlsym(...))" of type "pointer to void", is being converted to "pointer to function (pointer to struct parrot_interp_t, pointer to struct PMC) returning void". Such a cast is not permitted by the standard. (nonstandcast)
init_func = (void (*)(PARROT_INTERP, PMC *))(Parrot_dlsym(handle,
---------------------------------------------------------^
..
src/encoding.c
cc: Warning: src/encoding.c, line 164: Non-void function "Parrot_load_encoding" does not contain a return statement. (missingreturn)
const ENCODING *
^
cc: Warning: src/encoding.c, line 421: Non-void function "Parrot_find_encoding_converter" does not contain a return statement. (missingreturn)
encoding_converter_t
^
..
src/exceptions.c
cc: Error: src/exceptions.c, line 74: In this statement, "_CONST_STRING_74" is not declared. (undeclared)
VTABLE_set_integer_keyed_str(interp, exception,
----^
cc: Error: src/exceptions.c, line 76: In this statement, "_CONST_STRING_76" is not declared. (undeclared)
VTABLE_set_integer_keyed_str(interp, exception,
----^
cc: Error: src/exceptions.c, line 106: In the initializer for severity, "_CONST_STRING_106" is not declared. (undeclared)
const INTVAL severity = VTABLE_get_integer_keyed_str(interp,
--------------------------------^
cc: Error: src/exceptions.c, line 125: In this statement, "_CONST_STRING_125" is not declared. (undeclared)
exit_status = VTABLE_get_integer_keyed_str(interp,
--------------------------^
cc: Error: src/exceptions.c, line 274: In the initializer for exitcode, "_CONST_STRING_274" is not declared. (undeclared)
int exitcode = VTABLE_get_integer_keyed_str(interp, exception,
-----------------------^
cc: Error: src/exceptions.c, line 400: In this statement, "_CONST_STRING_400" is not declared. (undeclared)
VTABLE_set_integer_keyed_str(interp, exception,
----^
make: *** [src/exceptions.o] Error 1

---
Summary of my parrot 0.8.0 (r0) configuration:
configdate='Thu Dec 4 01:47:07 2008 GMT'
Platform:
osname=dec_osf, archname=alpha-dec_osf-thread-multi
jitcapable=0, jitarchname=nojit,
jitosname=dec_osf, jitcpuarch=alpha
execcapable=0
perl=perl
Compiler:
cc='cc', ccflags='-pthread -std1 -no_ansi_alias -D_INTRINSICS -fprm d -ieee -I/p/sys/db/include -I/p/include -DLANGUAGE_C -D_REENTRANT -D_XOPEN_SOURCE=500',
Linker and Libraries:
ld='cc', ldflags=' -L/p/sys/db/lib -L/p/lib',
cc_ldflags='',
libs='-lm -lutil -lpthread -lexc -laio -lgmp -lcrypto'
Dynamic Linking:
share_ext='.so', ld_share_flags='-shared -expect_unresolved "*" -O4 -msym -std1 -L/p/sys/db/lib -L/p/lib',
load_ext='.so', ld_load_flags='-shared -expect_unresolved "*" -O4 -msym -std1 -L/p/sys/db/lib -L/p/lib'
Types:
iv=long, intvalsize=8, intsize=4, opcode_t=long, opcode_t_size=8,
ptrsize=8, ptr_alignment=8 byteorder=12345678,
nv=double, numvalsize=8, doublesize=8

---
Environment:
HOME =/u/vieraat/vieraat/jhi
LANG =C
LANGUAGE (unset)
LC_ALL =fi_FI.ISO8859-1
LC_CTYPE =fi_FI.ISO8859-1
LC_PAPER =fi_FI.ISO8859-1
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH =/u/vieraat/vieraat/jhi/.s:/c/bin:/p/bin:/p/adm/bin:/usr/bin:/usr/sbin:/sbin:/bin:/usr/ccs/bin:/usr/lib:/etc:/lib:/usr/bin/X11:/usr/lbin:/usr/sbin/acct:/usr/tcb/bin:/tcb/bin:/usr/field:/u/vieraat/vieraat/jhi:/usr/bin:/usr/sbin:/sbin:/bin:/u/vieraat/vieraat/jhi/.s:/c/bin:/p/bin:/p/adm/bin:/usr/bin:/usr/sbin:/sbin:/bin:/usr/ccs/bin:/usr/lib:/etc:/lib:/usr/bin/X11:/usr/lbin:/usr/sbin/acct:/usr/tcb/bin:/tcb/bin:/usr/field:/u/vieraat/vieraat/jhi
SHELL =/bin/zsh
Chromatic
2008-12-23 21:43:45 UTC
Permalink
Post by Jarkko Hietaniemi
First we get a couple of warnings fro some files, but then one file
refuses to compile (see below). I didn't notice any other warnings or
failures during Configure.pl and/or during compilation.
Thanks for the report.
Post by Jarkko Hietaniemi
src/ops/core_ops.c
cc: Warning: src/ops/object.ops, line 436: Non-void function
"Parrot_removeattribute_p_s" does not contain a return statement.
(missingreturn) opcode_t *
We should fix a code generator to handle these, but that's a low priority
unless I or someone else has a brilliant idea which makes it take five
minutes.
Post by Jarkko Hietaniemi
cc: Warning: src/ops/object.ops, line 532: Non-void function
"Parrot_pic_set_returns___pc" does not contain a return statement.
(missingreturn) opcode_t *
This code's going away.
Post by Jarkko Hietaniemi
src/dynext.c
cc: Info: src/dynext.c, line 367: In this statement, "(Parrot_dlsym(...))"
of type "pointer to void", is being converted to "pointer to function
(pointer to struct parrot_interp_t) returning pointer to struct PMC". Such
a cast is not permitted by the standard. (nonstandcast)
(Parrot_dlsym(handle, cload_func_name));
------------^
cc: Info: src/dynext.c, line 375: In this statement, "(Parrot_dlsym(...))"
of type "pointer to void", is being converted to "pointer to function
(pointer to struct parrot_interp_t, pointer to struct PMC) returning void".
Such a cast is not permitted by the standard. (nonstandcast) init_func
= (void (*)(PARROT_INTERP, PMC *))(Parrot_dlsym(handle,
---------------------------------------------------------^
I added a couple of D2FPTR macros, as we've borrowed them from Perl 5, in
r34293. Hopefully this will clear up the warnings.
Post by Jarkko Hietaniemi
src/encoding.c
cc: Warning: src/encoding.c, line 164: Non-void function
"Parrot_load_encoding" does not contain a return statement. (missingreturn)
const ENCODING *
^
cc: Warning: src/encoding.c, line 421: Non-void function
"Parrot_find_encoding_converter" does not contain a return statement.
(missingreturn) encoding_converter_t
^
I added some function decorations in r34295 which should clear up these
warnings.
Post by Jarkko Hietaniemi
src/exceptions.c
cc: Error: src/exceptions.c, line 74: In this statement, "_CONST_STRING_74"
is not declared. (undeclared) VTABLE_set_integer_keyed_str(interp,
exception,
I manually fixed these in r34094 and fixed our preprocessor to reject all
CONST_STRING macros broken across lines in r34095, so this problem should
never recur.

-- c
Jarkko Hietaniemi
2008-12-23 22:53:15 UTC
Permalink
Post by Chromatic
Post by Jarkko Hietaniemi
First we get a couple of warnings fro some files, but then one file
refuses to compile (see below). I didn't notice any other warnings or
failures during Configure.pl and/or during compilation.
Thanks for the report.
Thanks for looking into it. I synced to r34297 and it seems to compile
in Tru64, thanks!

I am seeing some new warnings, if I find the time I'll file a new bug on
those. An easy quick one to fix would be this:

cc: Info: ./include/parrot/sub.h, line 47: Trailing comma found in
enumerator list. (trailcomma)
} sub_flags_enum;
^

Trailing commas in enum lists are not portable across cranky C compilers.
Chromatic
2008-12-23 23:31:09 UTC
Permalink
Post by Jarkko Hietaniemi
I am seeing some new warnings, if I find the time I'll file a new bug on
cc: Info: ./include/parrot/sub.h, line 47: Trailing comma found in
enumerator list. (trailcomma)
} sub_flags_enum;
^
Trailing commas in enum lists are not portable across cranky C compilers.
Fixed in r34299, thanks. I cranked up the optimization level to -O2 and am
fixing as many warnings as possible with GCC 4.3, but I'm sure that leaves
plenty for pickier compilers to complain about.

-- c
Jarkko Hietaniemi
2008-12-24 00:59:18 UTC
Permalink
Post by Chromatic
Post by Jarkko Hietaniemi
I am seeing some new warnings, if I find the time I'll file a new bug on
cc: Info: ./include/parrot/sub.h, line 47: Trailing comma found in
enumerator list. (trailcomma)
} sub_flags_enum;
^
Trailing commas in enum lists are not portable across cranky C compilers.
Fixed in r34299, thanks. I cranked up the optimization level to -O2 and am
fixing as many warnings as possible with GCC 4.3, but I'm sure that leaves
plenty for pickier compilers to complain about.
-- c
Another large batch of errors seemingly came from these in nci.c:

cc: Info: src/nci.c, line 6614: In this statement, "pcf_v_JOS" of type
"pointer
to function (pointer to struct parrot_interp_t, pointer to struct PMC)
returning void", is being converted to "pointer to void". Such a cast
is not permitted by the standard. (nonstandcast)
PMC_data(temp_pmc) = (void *)pcf_v_JOS;
-------------------------------------^

More cowbell, errr, D2FPTR().
Loading...