Re: byteswap.h not found on 12 and 13

From: Warner Losh <imp_at_bsdimp.com>
Date: Fri, 24 Mar 2023 09:01:43 UTC
And I just looked it up... unlike endian.h, byteswap.h is not in the draft
I have of issue 8 posix (due out this year or next, give or take).

Warner

On Fri, Mar 24, 2023 at 2:57 AM Warner Losh <imp@bsdimp.com> wrote:

> Yea, I just committed this
>
> commit 1761b09bf42d2842e82c1ac614c23d31c4d4c0dc
> Author: Warner Losh <imp@FreeBSD.org>
> Date:   Fri Jan 20 16:33:37 2023 -0700
>
>     byteswap.h: Add a glibc/linux compatible byteswap.h
>
>     For endian.h to work instead of sys/endian.h, some software needs
>     byteswap.h available. It must define {__,}byteswap_{16,32,64}.
>     Included sys/_endian.h to get an appropriate __byteswap16, etc
>     and defines the new macros in terms of them. Enhance _endian.h
>     to allow it to be included from here too.
>
>     Sponsored by:           Netflix
>     Reviewed by:            markj
>     Differential Revision:  https://reviews.freebsd.org/D32051
>
> which I MFC'd to 13, but after 13.1R and this isn't a good EN candidate.
> I've not bothered with stable/12 because I'm lame and have stopped MFCing
> stuff to it except critical fixes.
>
> Long term: this will make life better. Short term, it's less good since we
> have to still do old-school compatibility.
>
> I likely should write a man page for endian.h and byteswap.h
>
> Warner
>
> On Fri, Mar 24, 2023 at 2:48 AM Yuri <yuri@aetern.org> wrote:
>
>> Nuno Teixeira wrote:
>> > Hello Warner,
>> >
>> > My poudriere jails:
>> > ---
>> > 124amd64   12.4-RELEASE-p2      amd64         http         2023-03-17
>> > 08:04:15 /usr/local/poudriere/jails/124amd64
>> > 124i386    12.4-RELEASE-p2      i386          http         2023-03-17
>> > 08:04:38 /usr/local/poudriere/jails/124i386
>> > 131amd64   13.1-RELEASE-p7      amd64         http         2023-03-17
>> > 08:05:03 /usr/local/poudriere/jails/131amd64
>> > ---
>> >
>> > The strange thing is that 5.08 (old version) have #include <byteswap.h>
>> > too and compiles fine|:
>> > |
>> > https://github.com/sflow/sflowtool/issues/41
>> > <https://github.com/sflow/sflowtool/issues/41>
>>
>> 5.08 seems to have it commented out:
>>
>> sflowtool-5.08/src/sflowtool.c:
>>
>> /*
>> #ifdef DARWIN
>> #include <architecture/byte_order.h>
>> #define bswap_16(x) NXSwapShort(x)
>> #define bswap_32(x) NXSwapInt(x)
>> #else
>> #include <byteswap.h>
>> #endif
>> */
>>
>>
>> > Warner Losh <imp@bsdimp.com <mailto:imp@bsdimp.com>> escreveu no dia
>> > sexta, 24/03/2023 à(s) 08:30:
>> >
>> >
>> >
>> >     On Fri, Mar 24, 2023, 9:23 AM Nuno Teixeira <eduardo@freebsd.org
>> >     <mailto:eduardo@freebsd.org>> wrote:
>> >
>> >         Hello all,
>> >
>> >         I'm getting a file not found on 12 and 13 compiling
>> >         net/sflowtool latest update:
>> >         It compile fine on 14.
>> >
>> >         I've searched 14 src and found:
>> >         ---
>> >         ./include/byteswap.h
>> >         ./contrib/ofed/include/byteswap.h
>> >         ./contrib/llvm-project/libcxx/include/__bit/byteswap.h
>> >         ---
>> >         Any clues?
>> >
>> >
>> >
>> >     I added it a short time ago. I thought I mfc'd it to 13 but not 12.
>> >     How recent a 13? It's a non standard glibc extension that may be in
>> >     the next posix standard though. I've not looked at the draft for it
>> >     yet to see if it complies or not.
>> >
>> >     Warner
>> >
>> >         Thanks,
>> >
>> >         ---
>> >         ===>  Building for sflowtool-6.01
>> >         --- all ---
>> >         /usr/bin/make  all-recursive
>> >         --- all-recursive ---
>> >         Making all in src
>> >         --- sflowtool.o ---
>> >         cc -DHAVE_CONFIG_H -I. -I..      -O2 -pipe
>> >          -fstack-protector-strong -fno-strict-aliasing -MT sflowtool.o
>> >         -MD -MP -MF .deps/sflowtool.Tpo -c -o sflowtool.o sflowtool.c
>> >         sflowtool.c:32:10: fatal error: 'byteswap.h' file not found
>> >         #include <byteswap.h>
>> >                  ^~~~~~~~~~~~
>> >         1 error generated.
>> >         *** [sflowtool.o] Error code 1
>> >         ---
>> >
>> >
>> >         --
>> >         Nuno Teixeira
>> >         FreeBSD Committer (ports)
>> >
>> >
>> >
>> > --
>> > Nuno Teixeira
>> > FreeBSD Committer (ports)
>>
>>