Possible errors building gnupg 2.07 under leopard mac os x 10.5
wk at gnupg.org
Tue Nov 13 16:57:11 CET 2007
On Mon, 12 Nov 2007 20:32, rjh at sixdemonbag.org said:
> Well, the reason why I ask is because OS X 10.5 is a true UNIX. As in,
> it's officially passed the certification process and the appropriate
> agencies have given their seal of approval to it. So if this is a
> violation of the UNIX standard, then this is big news to a lot of people.
POSIX 2001 refers to C standard for stdbool.h. stdbool.h is responsible
for mapping the new type _Bool to bool. C-99:
7.16 Boolean type and values <stdbool.h>
[#1] The header <stdbool.h> defines four macros.
[#2] The macro
expands to _Bool.
[#3] The remaining three macros are suitable for use in #if
preprocessing directives. They are
which expands to the decimal constant 1,
which expands to the decimal constant 0, and
which expands to the decimal constant 1.
[#4] Notwithstanding the provisions of 7.1.3, a program is
permitted to undefine and perhaps then redefine the macros
bool, true, and false.199)
The C-99 rationale says:
Several keywords were added in C89: const, enum, signed, void and
volatile. New in C99 are the keywords inline, restrict, _Bool,
_Complex and _Imaginary.
Where possible, however, new features have been added by overloading
existing keywords, as, for example, long double instead of
extended. It is recognized that each added keyword will require some
existing code that used it as an identifier to be rewritten. No
meaningful programs are known to be quietly changed by adding the new
The keywords entry, fortran, and asm have not been included since
they were either never used, or are not portable. Uses of fortran and
asm as keywords are noted as common extensions.
_Complex and _Imaginary, not complex and imaginary, are keywords in
order that freestanding implementations are not required to support
complex. Old code using the names complex or imaginary will still
work (assuming <complex.h> is not included), and combined C/C++
implementations will not have to finesse C-only public keywords.
Thus the use of bool is not explictly mentioned but the introduction of
_Bool and stdbool.h instead of just defining bool is a good indication
that bool shall only be defined if stdbool.h is included. _Bool was
already a reserved identifier in C-89. The last paragraph about
complex.h is also an indication of why stdbool.h should be included.
To test what Leoprad really does, a short test program would make sense.
Die Gedanken sind frei. Auschnahme regelt ein Bundeschgesetz.
More information about the Gnupg-devel