On 22/12/17 05:30, Assaf Gordon wrote:
> Follow-up on AIX/Power8 build:

> 
> The following command did work to build 64bit binaries:
>      ./configure CFLAGS=-maix64 LDFLAGs=-maix64 AR="ar -X64"
> 
> The AR is required, otherwise creating libcoreutils.a fails with:
> ===
> ar: 0707-126 lib/vasprintf.o is not valid with the current object file mode.
> Use the -X option to specify the desired object mode.
> ===
> 
> With using this command compilation succeeds, and few tests fail:
>    FAIL: tests/misc/help-version
>    FAIL: tests/misc/shred-remove
>    FAIL: tests/misc/stdbuf
>    FAIL: tests/install/basic-1
>    FAIL: tests/mkdir/p-3
>    ERROR: tests/tail-2/pipe-f
>    FAIL: tests/touch/trailing-slash
> Full log attached.
> 
> 
> Also, the other alternative of accepting 32bit time also worked:
>     TIME_T_32_BIT_OK=yes ./configure
> With this command, the same tests still fail (log attached).
> 
> 
> I wonder if this is worth mentioning in the README
> (which has two sections about building on HPUX and OSF/1).

Yes very good point.
Proposed docs attached.

thanks,
Pádraig.


>From 3ab5e6e994ac8825209ce86b06d7bfc48177ee42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email protected]>
Date: Fri, 22 Dec 2017 12:33:30 +0000
Subject: [PATCH] doc: describe recent build checks for 32 bit time_t

* README: Document the new handling of 32 bit time_t,
with examples of how to build in 64 bit mode on AIX.
Also mention that GNU make is desired on AIX 5.3
due to its mishandling of the "[" target.
Suggested by Assaf Gordon.
---
 README | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/README b/README
index 9284e7c..4987e6c 100644
--- a/README
+++ b/README
@@ -94,16 +94,30 @@ Here is one possible patch to correct the problem:
 
 
 ************************
-OSF/1 4.0d build failure
+OSF/1 4.0d and AIX 5.3 build failures
 ------------------------
 
-If you use /usr/bin/make on an OSF/1 4.0d system, it will fail due
-to the presence of the "[" target.  That version of make appears to
-treat "[" as some syntax relating to locks.  To work around that,
+If you use /usr/bin/make on these systems, the build will fail due
+to the presence of the "[" target.  OSF/1 make(1) appears to
+treat "[" as some syntax relating to locks, while AIX 5.3 make(1)
+appears to skip the "[" target.  To work around these issues
 the best solution is to use GNU make.  Otherwise, simply remove
 all mention of "[$(EXEEXT)" from src/Makefile.
 
 
+************************
+32 bit time_t build failures
+------------------------
+
+On systems where it's determined that 64 bit time_t is supported
+(indicated by touch -t <some time after 2038>), but that coreutils
+would be built with a narrower time_t, the build will fail.
+This can be ignored by passing TIME_T_32_BIT_OK=yes to configure,
+or enabling 64 bit builds.  For example GCC on AIX defaults to 32 bit.
+To enable the 64 bit ABI one can use:
+./configure CFLAGS=-maix64 LDFLAGs=-maix64 AR='ar -X64'
+
+
 *************************************************
 "make check" failure on IRIX 6.5 and Solaris <= 9
 -------------------------------------------------
-- 
2.9.3

Reply via email to