Re: Moving contrib/libtests and contrib/tools to C99?

Bob Friesenhahn <[email protected]> Mon, 13 Aug 2018 08:41:36 -0500 (CDT)
Newsgroups gmane.comp.graphics.png.devel
Message-ID <[email protected]>
On Mon, 13 Aug 2018, Cosmin Truta wrote:
>
> As far as POSIX is concerned, I propose moving up from POSIX-1995/1997
> (SUSv2) to POSIX-2001 or later (SUSv3 or later).

John Bowler claimed that requesting the archaic POSIX version 
insulated libpng from possibly conflicting symbol names.

The orginal POSIX.1 specification allowed certain abiguities (due to 
existing practice) which were eliminated by later versions.  X/Open 
introduced additional requirements/conflicts.  Due to this, requesting 
a newer POSIX specification can result in a system library ABI change 
on some OS's such as Solaris.  At some point in time, Solaris 
introduced header files which intentionally fail to compile with an 
error ("Compiler or options invalid for pre-UNIX 03 X/Open 
applications and pre-2001 POSIX applications") if there is a mis-match 
between the requested ABIs.

C'99 is not compatible with the 1990 version of POSIX.1 for the simple 
reason that each POSIX edition is designed to be compatible with the 
ANSI C version current at that time.

If libpng steps forward, it should take care to step forward to 
consistent specifications.

It is unlikely that the user of libpng is requesting the same ABI 
versions as libpng did (certainly unlikely to be doing as libpng is 
doing now) so this leads to some potential linkage ambiguity and 
possible conflict.

Bob
-- 
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot