Subject: bug#10518: closed (Re: bug#10518: Failing compile of guile-2.0.3.157-1bd9a on Solaris 9 Sparc)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 03 Feb 2012 19:29:06 +0000

Your bug report

#10518: Failing compile of guile-2.0.3.157-1bd9a on Solaris 9 Sparc

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
10518: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10518
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#10518: Failing compile of guile-2.0.3.157-1bd9a on Solaris 9 Sparc
From: Andy Wingo <[email-masked]>
To: Dagobert Michelsen <[email-masked]>
Cc: [email-masked]
Date: Fri, 03 Feb 2012 14:11:27 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

On Sun 15 Jan 2012 22:53, Dagobert Michelsen <[email-masked]> 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/

Subject: Failing compile of guile-2.0.3.157-1bd9a on Solaris 9 Sparc
From: Dagobert Michelsen <[email-masked]>
To: [email-masked]
Date: Sun, 15 Jan 2012 22:53:53 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

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