Re: byteswap.h not found on 12 and 13
- Reply: Juraj Lutter : "Re: byteswap.h not found on 12 and 13"
- In reply to: Warner Losh : "Re: byteswap.h not found on 12 and 13"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 24 Mar 2023 09:09:58 UTC
one last reply, if this is for a port, then byteswap.h can usually be implemented as #include <sys/endian.h> #define __bswap_16(x) __bswap16(x) #define __bswap_32(x) __bswap32(x) #define __bswap_64(x) __bswap64(x) #define bswap_16(x) __bswap16(x) #define bswap_32(x) __bswap32(x) #define bswap_64(x) __bswap64(x) in older versions of FreeBSD, but some tricky software will hate the bswap16 (no underscore) etc defines. You could likely put that into the port. Warner On Fri, Mar 24, 2023 at 3:01 AM Warner Losh <imp@bsdimp.com> wrote: > 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) >>> >>>