bug-bash
[Top][All Lists]
Advanced

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

Re: 4.3-030 - fails to build on older HP-UX


From: Linda Walsh
Subject: Re: 4.3-030 - fails to build on older HP-UX
Date: Mon, 27 Oct 2014 07:42:39 -0700
User-agent: Thunderbird



H.Merijn Brand wrote:
4.3-030 builds and runs fine under HP-UX 11.31 and 11.23 (after some
very small edits) but fails HP-UX 11.11, 11.00 and 10.20

The first reason is the use of C++ style comments in the source.
The fix is easy. Just use plain ANSI comments. Old(er) ANSI C-compilers
do NOT recognize // as command (an IMHO they should not)
----
The POSIX standard after 2002 is no longer guaranteed to be compatible
with the original POSIX standard. POSIX went from descriptive to prescriptive
after 2002 and no longer limits itself to what was out there and compatible
with the original POSIX specification, but has gone into incompatible
specifications for 2007, 2010 et al.  I.e. the new POSIX doesn't adhere
to the original POSIX mission statement and is arguably not POSIX, but the
new group bought the name and has no responsibility to compatibility
with the original group's mission statement or specification.

Sorta like "AT&T" being bought by PacBell (SBC at the time).
They are different companies with completely different quality
metrics and mission statements.  However, many or most
GNU based projects, wanting industry validation, have used
compliance with the new POSIX[sic] spec as a "promotion point".

Thus, for example, since strtoll was added for ISO C 2001 compatibility,
any SW that isn't up to the level of 2001 standards (like
ANSI C98 and prior) isn't compatible to the latest rev of
the POSIX standard.  The fact that post 2002 versions of POSIX
aren't compatible with the original mission statement of the original
standard is not relevant.


The three files that ought to be fixed are

 lib/readline/colors.h
 lib/readline/colors.h
 lib/readline/parse-colors.c
---
Maybe a sed script could filter these?  Either that or if you want to
use the latest software (bash 4.3) on these system, then they need
to have the latest tool chains?



The next issue is harder to fix. These three OS's do not seem to have
easy detectable wide-char support.
===
Not sure how easy this would be to hack, but the last issue is fairly
trivial.

The last issue is building 64bit version on 11.11:

ld: Unsatisfied symbol "__strtoull" in file ./builtins/libbuiltins.a[printf.o]
ld: Unsatisfied symbol "__strtoll" in file general.o

as on 64bit build strtoull does not exist, as strtoul already *is*
strtoull (likewise for strtoll vs strtol)
---
        Right, so, adding a local lib that has an strtoull call
that simply calls the local strtoul call would seem to be a lowest
touch solution.
        
        However, the question remains, why would you want or require
a newest-tool-version like bash 4.3 on an old system that doesn't support
the newest-tool-version "tool chain"?

        Systems of 15-20 years ago that want to build current
tools need to be willing to update their build-chain tools to the
level required by 'current tools' -- or go suffer an increasing work
load of backporting current tools (often at the expense of new
development).

Cheers!
-L









reply via email to

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