guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Guile FTBFS on hppa - problem in detecting stack direction?


From: Kyle McMartin
Subject: Re: Guile FTBFS on hppa - problem in detecting stack direction?
Date: Wed, 6 Aug 2008 17:13:00 -0400
User-agent: Mutt/1.5.18 (2008-05-17)

On Wed, Aug 06, 2008 at 09:38:32PM +0100, Neil Jerram wrote:
> Hi hppa people!  I'm hoping you can help me fix a FTBFS that we're
> getting with Guile on hppa.
> 
> The build log is here:
> http://buildd.debian.org/fetch.cgi?pkg=guile-1.8;ver=1.8.5%2B1-2;arch=hppa;stamp=1217809852
> 
> The specific problem is a segmentation fault, at a point in a build
> that probably won't mean anything to non-Guile folks - but the key
> point is that we were recently seeing exactly the same segmentation
> fault (i.e. at the same place) on several other architectures (mips,
> mipsel, powerpc), and that was caused by the code in configure.in not
> detecting the stack direction properly.
> 
> This patch - 
> http://git.savannah.gnu.org/gitweb/?p=guile.git;a=commit;h=9143131b2766d1e29e05d61b5021395b4c93a6bc
> - fixed the problem for mips, mipsel and powerpc, but it looks as
> though we are still getting the stack direction wrong on hppa.  (My
> understanding is that on hppa the stack actually grows upwards,
> whereas on most platforms it's downwards.)
> 
> I've appended the relevant bit of configure.in below.  Can anyone help
> with why this might not be working on hppa?
> 

According to the build.log,

checking stack direction... (cached) 0

this looks like it's obtaining the wrong result...

I'm not entirely sure why... what optimization pass is being used to
build this?

regards, Kyle

> Thanks,
>        Neil
> 
> #--------------------------------------------------------------------
> #
> # Which way does the stack grow?
> #
> # Following code comes from Autoconf 2.61's internal _AC_LIBOBJ_ALLOCA
> # macro (/usr/share/autoconf/autoconf/functions.m4).  Gnulib has
> # very similar code, so in future we could look at using that.
> #
> # An important detail is that the code involves find_stack_direction
> # calling _itself_ - which means that find_stack_direction (or at
> # least the second find_stack_direction() call) cannot be inlined.
> # If the code could be inlined, that might cause the test to give
> # an incorrect answer.
> #--------------------------------------------------------------------
> 
> SCM_I_GSC_STACK_GROWS_UP=0
> AC_CACHE_CHECK([stack direction],
>              [SCM_I_GSC_STACK_GROWS_UP],
> [AC_RUN_IFELSE([AC_LANG_SOURCE(
> [AC_INCLUDES_DEFAULT
> int
> find_stack_direction ()
> {
>   static char *addr = 0;
>   auto char dummy;
>   if (addr == 0)
>     {
>       addr = &dummy;
>       return find_stack_direction ();
>     }
>   else
>     return (&dummy > addr) ? 1 : -1;
> }
> 
> int
> main ()
> {
>   return find_stack_direction () < 0;
> }])],
>              [SCM_I_GSC_STACK_GROWS_UP=1],
>              [],
>              [AC_MSG_WARN(Guessing that stack grows down -- see 
> scmconfig.h)])])
> 
> 
> -- 
> To UNSUBSCRIBE, email to address@hidden
> with a subject of "unsubscribe". Trouble? Contact address@hidden
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]