--- Begin Message ---
Subject: |
Failing compile of guile-2.0.3.157-1bd9a on Solaris 9 Sparc |
Date: |
Sun, 15 Jan 2012 22:53:53 +0100 |
Hi,
I am currently trying to compile the "call-for-testers" guile-2.0.3.157-1bd9a on
Solaris 9 Sparc with Sun Studio 12 and get a compilation error:
> CC libguile_2.0_la-bytevectors.lo
> CC libguile_2.0_la-chars.lo
> CC libguile_2.0_la-control.lo
> "control.c", line 267: directive not honored in macro argument list
> "control.c", line 280: directive not honored in macro argument list
> "control.c", line 287: EOF in argument list of macro: SCM_SNARF_INIT
> "control.c", line 287: EOF in argument list of macro: SCM_SNARF_INIT
> "control.c", line 114: syntax error before or at: =
> "control.c", line 114: warning: old-style declaration or incorrect type for:
> SCM_SNARF_INIT
> "control.c", line 114: syntax error before or at: sizeof
> "control.c", line 114: warning: undefined or missing type for: sizeof
> "control.c", line 114: warning: old-style declaration or incorrect type for:
> memcpy
> "control.c", line 114: identifier redeclared: memcpy
> current : function() returning int
> previous: function(pointer to void, pointer to const void, unsigned
> int) returning pointer to void : "/usr/include/iso/string_iso.h", line 61
> "control.c", line 114: warning: syntax error: empty declaration
> "control.c", line 114: non-constant initializer: op "NAME"
> "control.c", line 114: non-constant initializer: op "NAME"
> "control.c", line 114: syntax error before or at: =
> "control.c", line 114: warning: old-style declaration or incorrect type for:
> SCM_SNARF_INIT
> "control.c", line 114: syntax error before or at: sizeof
> "control.c", line 114: warning: undefined or missing type for: sizeof
> "control.c", line 114: warning: old-style declaration or incorrect type for:
> memcpy
> "control.c", line 114: identifier redefined: memcpy
> current : function() returning int
> previous: function() returning int : "control.c", line 114
> "control.c", line 114: warning: syntax error: empty declaration
> "control.c", line 287: syntax error before or at: <EOF>
> cc: acomp failed for control.c
> gmake[3]: *** [libguile_2.0_la-control.lo] Error 1
> gmake[3]: Leaving directory
> `/home/dam/mgar/pkg/guile/trunk/work/solaris9-sparc/build-isa-sparcv8/guile-2.0.3.157-1bd9a/libguile'
> gmake[2]: *** [all] Error 2
> gmake[2]: Leaving directory
> `/home/dam/mgar/pkg/guile/trunk/work/solaris9-sparc/build-isa-sparcv8/guile-2.0.3.157-1bd9a/libguile'
> gmake[1]: *** [all-recursive] Error 1
> gmake[1]: Leaving directory
> `/home/dam/mgar/pkg/guile/trunk/work/solaris9-sparc/build-isa-sparcv8/guile-2.0.3.157-1bd9a'
> gmake: *** [all] Error 2
> gmake: Leaving directory
> `/home/dam/mgar/pkg/guile/trunk/work/solaris9-sparc/build-isa-sparcv8/guile-2.0.3.157-1bd9a'
The generated code in line 114 looks like this:
> static scm_t_uint8 * cont_objcode__bytecode ; SCM_SNARF_INIT (
> cont_objcode__cells = scm_malloc_pointerless ( sizeof (
> cont_objcode__cells__unaligned ) ; memcpy ( cont_objcode__cells ,
> cont_objcode__cells__unaligned , sizeof ( cont_objcode__cells__unaligned ) )
> ; ) static scm_t_cell * cont_objcode__cells = 0 ; static const scm_t_cell
> cont_objcode__cells__unaligned [ ] = { { ( ( SCM ) ( ( 53 | ( ( 3 ) << 8 ) |
> ( 0 << 16 ) ) ) ) , ( ( SCM ) ( cont_objcode__bytecode ) ) } , { ( ( SCM ) (
> ( ( ( ( ( 0 ) ) << 8 ) + scm_tc8_flag ) ) ) ) , ( ( SCM ) ( 0 ) ) } } ;
> static const SCM cont_objcode = ( ( SCM ) ( cont_objcode__cells ) ) ;
> SCM_SNARF_INIT ( cont_objcode__bytecode = scm_malloc_pointerless ( sizeof (
> cont_objcode__bytecode__unaligned ) ; memcpy ( cont_objcode__bytecode ,
> cont_objcode__bytecode__unaligned , sizeof (
> cont_objcode__bytecode__unaligned ) ) ; ) static scm_t_uint8 *
> cont_objcode__bytecode = 0 ; static const scm_t_uint8
> cont_objcode__bytecode__unaligned [ ] = {
>
> 0 , 0 , 0 , 8 , 0 , 0 , 0 , 19 + 8 ,
>
> scm_op_object_ref , 0 ,
> scm_op_object_ref , 1 ,
> scm_op_partial_cont_call ,
> scm_op_nop , scm_op_nop , scm_op_nop ,
>
>
>
> # 126
> 0 , 0 , 0 , 19 , 0 , 0 , 0 , 0 ,
> scm_op_make_eol ,
> scm_op_make_eol ,
> scm_op_make_int8 , 0 , scm_op_make_int8 , 5 ,
> scm_op_make_int8_0 ,
> scm_op_make_int8_0 ,
> scm_op_make_true ,
> scm_op_list , 0 , 5 ,
> scm_op_list , 0 , 1 ,
> scm_op_list , 0 , 3 ,
> scm_op_return
>
> };
Unfortunately I don't see whats wrong here, maybe you can give me an insight?
If necessary I can provide more information or an account on the buildfarm.
Best regards
-- Dago
--
"You don't become great by trying to be great, you become great by wanting to
do something,
and then doing it so hard that you become great in the process." - xkcd #896
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#10518: Failing compile of guile-2.0.3.157-1bd9a on Solaris 9 Sparc |
Date: |
Fri, 03 Feb 2012 14:11:27 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) |
On Sun 15 Jan 2012 22:53, Dagobert Michelsen <address@hidden> writes:
> I am currently trying to compile the "call-for-testers" guile-2.0.3.157-1bd9a
> on
> Solaris 9 Sparc with Sun Studio 12 and get a compilation error:
Thanks for giving it a try! It's a bit embarassing that this didn't
work, but I did track down the issue today.
Some parts of Guile want byte arrays aligned on 8-byte boundaries. We
use __attribute__((aligned(8))) on GCC to do that. Probably your
compiler has something similar; it would be great if you could
contribute a patch to libguile/__scm.h to define SCM_ALIGNED there.
We do have a fallback that involves mallocing a buffer, and copying the
unaligned buffer into the malloc'd buffer. That code was not working in
a couple of cases. I think I have fixed it; at least, I tried it out
locally, and it worked for me.
Thanks for the report,
Andy
--
http://wingolog.org/
--- End Message ---