~ chicken-core (chicken-5) e04f68d3ad003ff15dc59857ab3b92ea29dd99b2


commit e04f68d3ad003ff15dc59857ab3b92ea29dd99b2
Author:     Peter Bex <peter.bex@xs4all.nl>
AuthorDate: Mon Oct 28 19:56:36 2013 +0100
Commit:     Peter Bex <peter.bex@xs4all.nl>
CommitDate: Mon Oct 28 19:58:10 2013 +0100

    Complete AIX instructions in README and manual (contributed by Erik Falor)

diff --git a/NEWS b/NEWS
index 7fd5e04a..59116c00 100644
--- a/NEWS
+++ b/NEWS
@@ -12,7 +12,7 @@
      implicitly depends on extras.  This may break programs which don't
      use modules and forgot to require ports but use procedures from it.
 
-- Build system
+- Platform support
   - CHICKEN can now be built on AIX (contributed by Erik Falor)
 
 4.8.2
diff --git a/README b/README
index a7289e17..665f68a6 100644
--- a/README
+++ b/README
@@ -416,10 +416,6 @@
 	    % showrev -p | grep 106950    # solaris 7
 	    % showrev -p | grep 109147    # solaris 8
 
-        AIX:
-
-	  - Currently, deployment mode is unsupported on AIX.
-
 	Mac OS X:
 
 	  - On 10.6 and 10.7, Chicken may incorrectly select a 32-bit build
@@ -509,6 +505,44 @@
 	    when compiling the system or compiled Scheme files. These
 	    warnings are bogus and can be ignored.
 
+	AIX:
+
+	  - CHICKEN is built with the GNU C compiler (`gcc').  IBM's XL
+	    C compiler is not supported at this time.
+
+	  - AIX users *must* use GNU make ("gmake") - the makefiles can not be
+	    processed with IBM's version of make.
+
+	  - Deployment doesn't work.  See manual/Deployment for more details.
+
+	  - The AIX linker may occasionally show warnings of the form:
+
+	      ld: 0711-783 WARNING: TOC overflow. TOC size: 66656
+	      Maximum size: 65536
+	      Extra instructions are being generated for each reference to a TOC
+	      symbol if the symbol is in the TOC overflow area.
+
+	    Such messages indicate that lookups for some symbols in the
+	    effected library/executable may be somewhat slower at runtime as an
+	    auxiliary symbol table is needed to accommodate all of the symbols.
+
+	  - The AIX assembler may show warnings of the form:
+
+	      /tmp//ccycPGzK.s: line 527244: 1252-171 The displacement must be
+	      greater than or equal to -32768 and less than or equal to 32767.
+
+	    This is a known issue between the GNU toolchain and IBM's assembler:
+
+	    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4587
+
+	    The problem arises because the PPC architecture cannot perform jumps
+	    to addresses that differ more than what a 16-bit integer can
+	    represent.  Adding support for IBM's XL C compiler may resolve this
+	    issue.
+
+	    Instructing gcc to optimize the size of generated code (-Os)
+	    mitigates this to some degree, but very large C files may still be
+	    uncompilable.  This is known to affect the html-tags egg.
 
  6. Bootstrapping
 
diff --git a/manual/Deployment b/manual/Deployment
index dd1f8661..70d7223d 100644
--- a/manual/Deployment
+++ b/manual/Deployment
@@ -168,7 +168,8 @@ the same directory is supported on FreeBSD, OpenBSD and Solaris.
 NetBSD supports this from version 5.0 onwards - this is currently
 disabled in {{csc}} for this particular platform.
 
-On AIX, deployment is currently unsupported.
+On AIX, deployment is currently not fully supported as the runtime
+linker will only load libraries from paths hardcoded at link time.
 
 === Deploying source code
 
Trap