GNU bug report logs - #10518
Failing compile of guile-2.0.3.157-1bd9a on Solaris 9 Sparc

Previous Next

Package: guile;

Reported by: Dagobert Michelsen <dam <at> opencsw.org>

Date: Sun, 15 Jan 2012 21:56:02 UTC

Severity: normal

Done: Andy Wingo <wingo <at> pobox.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 10518 in the body.
You can then email your comments to 10518 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#10518; Package guile. (Sun, 15 Jan 2012 21:56:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Dagobert Michelsen <dam <at> opencsw.org>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Sun, 15 Jan 2012 21:56:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Dagobert Michelsen <dam <at> opencsw.org>
To: bug-guile <at> gnu.org
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





Reply sent to Andy Wingo <wingo <at> pobox.com>:
You have taken responsibility. (Fri, 03 Feb 2012 19:29:06 GMT) Full text and rfc822 format available.

Notification sent to Dagobert Michelsen <dam <at> opencsw.org>:
bug acknowledged by developer. (Fri, 03 Feb 2012 19:29:06 GMT) Full text and rfc822 format available.

Message #10 received at 10518-done <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: Dagobert Michelsen <dam <at> opencsw.org>
Cc: 10518-done <at> debbugs.gnu.org
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
On Sun 15 Jan 2012 22:53, Dagobert Michelsen <dam <at> opencsw.org> 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/




Message #11 received at 10518-done <at> debbugs.gnu.org (full text, mbox):

From: Dagobert Michelsen <dam <at> opencsw.org>
To: Andy Wingo <wingo <at> pobox.com>
Cc: 10518-done <at> debbugs.gnu.org
Subject: Re: bug#10518: Failing compile of guile-2.0.3.157-1bd9a on Solaris 9
	Sparc
Date: Mon, 6 Feb 2012 09:50:34 +0100
[Message part 1 (text/plain, inline)]
Hi Andy,

Am 03.02.2012 um 14:11 schrieb Andy Wingo:
> On Sun 15 Jan 2012 22:53, Dagobert Michelsen <dam <at> opencsw.org> 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.

The attached patch should take care of the issue, although I couldn't
verify it as I now get another error.

> 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.

If it helps I can offer an account on our Solaris buildfarm where it
should be much easier for you to track issues without me fiddling in
the middle :-) Ludovic Courtès from your project already has an account
there and if you want I can set up one for you too:
  http://www.opencsw.org/extend-it/signup/to-upstream-maintainers/


Best regards

  -- Dago

[0001-Add-alignment-for-Sun-Studio-12.patch (application/octet-stream, attachment)]
[Message part 3 (text/plain, inline)]


-- 
"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


bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 06 Mar 2012 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 13 years and 103 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.