Closed Bug 23304 Opened 20 years ago Closed 20 years ago

protypes.h (through prtypes.h) requires defining AIX4_3 on AIX 4.3

Categories

(NSPR :: NSPR, defect, P3)

Other
AIX
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: wtc, Assigned: wtc)

References

Details

Attachments

(1 file)

The NSPR header file protypes.h (included through prtypes.h)
requires that the macro AIX4_3 be defined when you compile
on AIX 4.3.  This is not acceptable.  One should not need to
define any macro when including an NSPR header.
Status: NEW → ASSIGNED
Public NSPR headers can only test for macros defined
in prcpucfg.h (i.e., pr/include/md/_xxxos.cfg).
So the macro that protypes.h tests for must be defined
in _aix32in6.cfg (32-bit AIX) and _aix64.cfg (64-bit
AIX).  I use a new macro _PR_AIX_HAVE_BSD_INT_TYPES
for this purpose because AIX4_3 is likely to be
defined by other products' build systems.

The reason protypes.h tests for AIX 4.3 is that
<sys/inttypes.h> on AIX 4.3 defines the BSD fixed-size
integer types int8, int16, int32, int64, which conflict
with the same-named, obsolete NSPR integer types.  Since
it is a huge task to convert all the Mozilla code to use
PRInt8, PRInt16, PRInt32, PRInt64 instead, we will need to
continue to define int8, int16, int32, and int64 and
deal with this mess.
Attached patch Proposed patch.Splinter Review
Blocks: 22781
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
The fix is checked in.
/cvsroot/mozilla/nsprpub/pr/include/md/_aix32in6.cfg, revision 3.2
/cvsroot/mozilla/nsprpub/pr/include/md/_aix64.cfg, revision 3.4
/cvsroot/mozilla/nsprpub/pr/include/obsolete/protypes.h, revision 3.12

The fix is also checked into the internal repository.
/m/src/ns/nspr20/pr/include/md/_aix32in6.cfg, revision 2.2
/m/src/ns/nspr20/pr/include/md/_aix64.cfg, revision 2.4
/m/src/ns/nspr20/pr/include/obsolete/protypes.h, revision 2.10
You need to log in before you can comment on or make changes to this bug.