Current-Users archive

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

Re: xsrc expat build as-a-tool fails on macos! (was: freetype build failing with "error: unknown type name 'Byte'")



At Thu, 13 Feb 2025 12:04:16 +0700, Robert Elz <kre%munnari.OZ.AU@localhost> wrote:
Subject: Re: xsrc expat build as-a-tool fails on macos! (was: freetype build failing with "error: unknown type name 'Byte'")
>
>     Date:        Wed, 12 Feb 2025 08:42:51 -0800
>     From:        "Greg A. Woods" <woods%planix.ca@localhost>
>     Message-ID:  <m1tiFp6-00Mo5p0@more.local>
>
>
>   | /Volumes/work/woods/g-NetBSD-src/external/mit/expat/dist/../lib/libexpat/expat_config.h:8:10: fatal error: 'endian.h' file not found
>   |     8 | #include <endian.h>
>   |       |          ^~~~~~~~~~
>
> <endian.h> is a new header that's been added to POSIX in Issue 8 (ie:
> the 2024 edition).   Of course, it has been in NetBSD (and most other
> systems, but apparently not macOS for a long time).

Figures -- not the best idea in the world -- it's really a compiler
issue -- it should have been driven by the C committee,  not POSIX.

I see POSIX specifies some function declarations in there as well, which
is OK as far as they are needed, and I guess there's some argument to be
made for reserving namespace for a non-underbar macro name, but most
existing code won't be using Issue 8 yet, so it could instead just rely
on the compiler macro!

> I guess the #include should be made to depend upon which version of
> the standard is available, and for older systems, just define the
> relevant symbols in-line (macos is, probably, always little endian?
> If not, there must be some system dependent file that could be
> included instead that will provide that info, somehow, which could
> be used.)

No!

There's no header needed.

The compiler already provides the necessary macros.  See my diff.

This is true for Clang (which includes a number of other named
compilers, such as IBM Open XL/C), GCC, PCC, TCC, Intel (icc and icx),
and even CompCert.  (Only MS VisualC, and maybe Oracle Sun Studio don't
offer __BYTE_ORDER__!)

I seen NetBSD's headers aren't using the compiler's __BYTE_ORDER__, and
I guess that could be claimed to be a historical artifact, but the fact
is that any possible NetBSD native compiler has offered __BYTE_ORDER__
et al since a very long time now.

--
					Greg A. Woods <gwoods%acm.org@localhost>

Kelowna, BC     +1 250 762-7675           RoboHack <woods%robohack.ca@localhost>
Planix, Inc. <woods%planix.com@localhost>     Avoncote Farms <woods%avoncote.ca@localhost>

Attachment: pgp2CNnz5pdhA.pgp
Description: OpenPGP Digital Signature



Home | Main Index | Thread Index | Old Index