Subject: Re: bug#17774: AIX and lbracket ([) program - will not install on AIX using installp

From: Paul Eggert <[email-masked]>
Date: Fri, 31 Dec 2021 12:53:52 -0800

On 6/14/14 10:28, Paul Eggert wrote:

> That part of POSIX has been standardized since POSIX.2 (IEEE Std 
> 1003.2-1992), and the wording hasn't changed since then if I recall 
> correctly, so AIX has had this conformance bug for decades and nobody 
> has cared....

I just ran into a related problem when building bleeding-edge coreutils 
on AIX 7.1, and so I thought I'd document it here. On AIX 7.1, 'make 
check' fails with:

FAIL: tests/misc/help-version.sh

because 'make' never built a '[' program. And AIX 'make' doesn't build a 
'[' program because it mishandles '[' in 'make' macros, which means that 
with Makefiles like this:

   EXEEXT =
   bin_PROGRAMS = ... src/[$(EXEEXT) ...
   PROGRAMS = $(bin_PROGRAMS) ...
   all-am: ... $(PROGRAMS) ...

'make all-am' does not "see" the 'src/[' and so doesn't build it.

Because of this bug, 'make install' obviously will not work correctly, 
as there's no '[' command to install.

A simple workaround is to use GNU Make, which doesn't have this bug.

This bug in AIX 'make' is so obscure that I'm not going to bother 
documenting it in the Autoconf manual under its portability guidelines 
for 'make'. Anyway, nowadays "just use GNU Make" is a good recipe for 
just about every package other than GNU Make itself.