bug-guile
[Top][All Lists]
Advanced

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

Re: stack overflow / partial success


From: Rainer Tammer
Subject: Re: stack overflow / partial success
Date: Mon, 18 Feb 2008 10:56:52 +0100
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.3) Gecko/20070326 Thunderbird/2.0.0.0 Mnenhy/0.7.5.0

Hello,

Ludovic Courtès wrote:
Hi,
[...]
Isn't it the `inline' thing that made it work?  You did not include
`config.log' and `config.h': normally, these should already define
`inline' as `__inline__'.
the inline to __inline__  mapping is needed for IBM XL C/C++. It is
not needed with gcc 4.2.2.

Right, but doesn't `configure' detect this?  The output of
"grep inline config.log" should show it.

Unfortunately no ...
And isn't `-O2' ignored by xlc?

It is used if I specify it. I will try if configure finds this by itself.

But what's its meaning then?  I thought `-qtune=auto' was roughly
equivalent to GCC's `-O2'.

Not really:

-qtune=<option> Specifies the architecture system for which the executable program is optimized. Possible values: 403, 604, auto, balanced, ppc970, pwr3, pwr4, pwr5, pwr6, rs64a, rs64b, rs64c

auto is: Object code optimized for the hardware platform on which the program is compiled.
So this option only specifies the platform.

-O<level> specifies the optimizations used:

0 = quick
2 = Performs optimizations that the compiler developers considered the best combination for compilation speed and runtime performance. 3... 5 are potentially dangerous as the have the potential to change the semantics of the program
-brtl is for runtime linking of the executable.
So what does it do precisely?  :-)
OK, you want to know:

The -brtl dos the following:

Enables run-time linking for the output file. This option implies the rtllib and symbolic options. When dynamic mode is in effect, the rtl option allows input files specified with the -l flag to end in .so as well as in .a. All input files that are shared objects are listed as dependents of your program in the output files loader section. The shared objects are listed in the same order as
they were specified on the command line.

If you like more information I can send you a couple documents with detailed explanations.

So if I need herror() / hsterror() I need to define _USE_IRS ...

There's only one place where `hstrerror ()' is used, and it's enclosed
in `#if HAVE_STRERROR'.
Unfortunately HAVE_STRERROR is defined to 1 ...
Thus, if Guile is compiled without `_USE_IRS', the offending bit will be 
compiled out and no compilation error will
occur I suppose.  IOW, you should be able to compile Guile without `_USE_IRS', 
right?

No, because HAVE_STRERROR gets defined. The easiest solution wold be to define _USE_IRS if HAVE_STRERROR and AIX is defined.
  1. (strftime "%z" (gmtime 0))
guile> "GMT"

The results you show here are vastly different from what we expect,
which shows that AIX' `strftime' is not C99-compliant in its treatment
of `%z' [0].  (Actually, it doesn't seem to be documented at all [1].)

We'll have to update `have-strftime-%z' accordingly in `time.test'.

OK
Thanks,
Ludovic.

[0] http://www.opengroup.org/onlinepubs/009695399/functions/strftime.html
[1] 
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/topic/com.ibm.aix.basetechref/doc/basetrf2/strftime.htm



Bye
 Rainer





reply via email to

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