chicken-hackers
[Top][All Lists]
Advanced

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

Re: [Chicken-hackers] [ANN]: Port Chicken to AIX


From: Erik Falor
Subject: Re: [Chicken-hackers] [ANN]: Port Chicken to AIX
Date: Tue, 13 Aug 2013 00:33:44 -0600
User-agent: Mutt/1.5.21 (2010-09-15)

On Mon, Aug 12, 2013 at 10:42:22PM -0600, Erik Falor wrote:
> On Mon, Aug 12, 2013 at 11:52:17PM +0000, Mario Domenech Goulart wrote:
> > Wow, very nice!  Thanks for doing that.
> > 
> > The 4.8.2 development snapshot has been released already, so
> > unfortunately we can't add your patch to it.  OTOH, once it hits the
> > master branch it'll be available in the next development snapshots and
> > releases.
> 
> That's fine.  I was under the impression that 4.8.2 was going to be a
> precursor to an imminent stable release.
> 
> > If you need a tarball to ease the CHICKEN deployment on AIX systems, you
> > can easily generate tarballs (assuming you have a working chicken
> > installed):
> > 
> >   $ make PLATFORM=aix spotless boot-chicken
> >   $ make PLATFORM=aix CHICKEN=./chicken-boot spotless all
> >   $ csi -s scripts/makedist.scm PLATFORM=aix CHICKEN=./chicken-boot
> > 
> > Some questions:
> > 
> > * does "make ... check" work on AIX?
> 
> I'll let you know in the morning (that will be the Mountain Daylight
> Time morning, UTC-7:00).

`make PLATFORM=aix check` works until the "private repository test"
(so close!).  I think the problem may be that I have installed Chicken
under my $HOME directory instead of under /.  But I'm hardly an expert
on this `make check` business.  I've pasted the output of the test for
interested parties to peruse:

http://paste.call-cc.org/paste?id=54f95a2b65866c215c9b21c3b27a3d98e7bce9dc

On a related note, is there a way to skip right to a certain test
without first running all of the intervening tests?

> > * is the change in tcp.scm necessary?
> 
> Yes - the AIX sys/socket.h header file doesn't like being passed an
> unsigned int in the third argument.  I took a cue from the call to
> getpeername() a few lines above the one I changed.  Though as I look
> at it now I missed some parens around the '&len' term...
> 
> > * could you try to build pastiche?  It is a nice test, since it is quite
> >   heavy on dependencies, but doesn't need external libraries.  It's
> >   still able to test the FFI because it depends on sql-de-lite, which
> >   bundles sqlite in case you don't have it installed.
> 
> I'll let you know how this goes tomorrow.

I got as far as the html-tags egg when things went south.  At first I
ran out memory while building it.  After adjusting my ulimits, I was
treated to screenfuls of this error message from the IBM assembler:

/tmp//ccKuR9Os.s: line 527245: 1252-171 The displacement must be greater than 
or equal to
        -32768 and less than or equal to 32767.

This error comes about due to the size of an argument to an
instruction in POWER processors; some jumping or branching
instructions are only able to move the instruction pointer +/- 16 bits
from its present location.  When a file becomes very large and the
code vast enough, this limit is exceeded.

I ran into this problem when building chicken-core: by adding -Os to
C_COMPILER_OPTIMIZATION_OPTIONS, the compiler was able to shrink its
output down enough to sneak under this limit.  When I googled this
error message the best advice I found was to manually split your C
files up into smaller units, or use the XL C compiler provided by IBM.

I must say that I am a bit curious how a 15k html-tags.scm file can
become a 5.5M html-tags.c.  If there are any optimization flags I can
use on csc that may result in a smaller output file, I'd be glad to
hear about them.  But short of being able to emit multiple .c files,
I'm not sure if this limit can entirely be avoided.  I'll check around
to see if I can find an installation of XL C, but I'm pretty sure
we're a GCC shop all around.

-- 
Erik Falor                                       http://unnovative.net
Registered Linux User #445632                  http://linuxcounter.net

Attachment: signature.asc
Description: Digital signature


reply via email to

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