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