bug-guile
[Top][All Lists]
Advanced

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

Re: Unable to build guile


From: Ludovic Courtès
Subject: Re: Unable to build guile
Date: Thu, 06 Nov 2008 12:28:03 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (gnu/linux)

Hello,

Dwight <address@hidden> writes:

> # grep -i pthread_attr_getstack config.h
> /* Define to 1 if you have the `pthread_attr_getstack' function. */
> #define HAVE_PTHREAD_ATTR_GETSTACK 1
> /* #undef PTHREAD_ATTR_GETSTACK_WORKS */
>
> # grep -i pthread_get_stackaddr config.h
> /* Define to 1 if you have the `pthread_get_stackaddr_np' function. */
> /* #undef HAVE_PTHREAD_GET_STACKADDR_NP */

Can you try out the following GDB script:

  b main
  run -q -c 0
  b get_thread_stack_base
  c
  b scm_get_stack_base
  c
  finish
  finish
  quit

Save it to a file, say `the-script', `cd' to the top build directory and
run:

  ./libtool --mode=execute gdb ./libguile/guile -x the-script

Then you can post the GDB output here.

The goal is to understand which part of the code is used to determine
the stack base, and what it returns.

> # grep -E "DINFINITY|DQNAN" *
> float.h:#define DINFINITY _DBLINF
> float.h:        extern  unsigned   int DQNAN[2];
> float.h:#define DBL_QNAN        (*((double *) (DQNAN)))
> math.h:#define DINFINITY _DBLINF

OK, they are truly declared as ints, which truly breaks strict aliasing
rules.  Then we should either compile that file with
`-fno-strict-aliasing' or not use `-Werror'.

>> Our code appears to be based on that of Octave
>> (http://hg.savannah.gnu.org/hgweb/octave/file/ec969f3b8955/liboctave/lo-ieee.cc),
>> which (erroneously) assumes that these variables are only used on OSF.
>   AIX is supposed to be compliant with the latest OSF specifications!
> If you like you can check out the link below to get more information
> about AIX compatability/compliance with UNIX standards.
>
>       http://www-03.ibm.com/systems/p/os/aix/standards/index.html

I am roughly assuming OSF == Tru64 (aka. OSF/1).  I don't see "OSF"
listed in the above page.  According to
http://en.wikipedia.org/wiki/Open_Software_Foundation, OSF is was merged
with the Open Group.

Anyway, do you have pointers to documentation or standards that describe
`DQNAN' and `DINFINITY'?  I don't see anything like this at
opengroup.org.

>>>net_db.c: In function 'scm_resolv_error':
>>>net_db.c:112: warning: implicit declaration of function 'hstrerror'
>>
>>
>> Can you also "rgrep hstrerror /usr/include"?
>   I did a grep on /usr/include and /usr/include/sys
>
> # grep hstrerror *
> netdb.h:const char      *hstrerror();
> netdb.h:const char *    hstrerror(int);

Is that under /usr/include or /usr/include/sys?

Thank you!

Ludo'.





reply via email to

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