commit 5d2f4b1611d724a3dbf0d4b8629119cf1ad11e87 from: Omar Polo date: Sun Jul 02 09:14:44 2023 UTC add compat for endian (now required by imsg) commit - c9c44c657187b6b312a863f01afa6ea5956cb84d commit + 5d2f4b1611d724a3dbf0d4b8629119cf1ad11e87 blob - 43153f498e79f69f015c0cb7e58c4c74ca1dd59e blob + 83332f998b3adf98066ee340ece5f5cb0088feb5 --- configure +++ configure @@ -242,6 +242,22 @@ fi if ! runtest wait_any WAIT_ANY; then CFLAGS="${CFLAGS} -DWAIT_ANY=-1" +fi + +HAVE_ENDIAN_H=0 +HAVE_SYS_ENDIAN_H=0 +HAVE_MACHINE_ENDIAN=0 + +runtest endian_h ENDIAN_H || \ +runtest sys_endian_h SYS_ENDIAN_H || \ +runtest machine_endian MACHINE_ENDIAN || true + +if [ ${HAVE_ENDIAN_H} -eq 0 -a \ + ${HAVE_SYS_ENDIAN_H} -eq 0 -a \ + ${HAVE_MACHINE_ENDIAN} -eq 0 ]; then + echo "FATAL: no endian header found" 1>&2 + echo "FATAL: no endian header found" 1>&3 + exit 1 fi runtest err ERR || true @@ -349,6 +365,20 @@ cat <<__HEREDOC__ __HEREDOC__ +if [ ${HAVE_ENDIAN_H} -eq 1 ]; then + echo "#include " +elif [ ${HAVE_SYS_ENDIAN_H} -eq 1 ]; then + echo "#include " +elif [ ${HAVE_MACHINE_ENDIAN} -eq 1 ]; then + cat <<__HEREDOC__ +#include +#include +#define htobe16(x) OSSwapHostToBigInt16(x) +#define htobe32(x) OSSwapHostToBigInt32(x) +#define htobe64(x) OSSwapHostToBigInt64(x) +__HEREDOC__ +fi + [ ${HAVE_EXPLICIT_BZERO} -eq 0 -o \ ${HAVE_FREEZERO} -eq 0 -o \ ${HAVE_REALLOCARRAY} -eq 0 -o \ blob - /dev/null blob + 3bbff60d30f536b3269a7aa65bf0283efb89196a (mode 644) --- /dev/null +++ have/endian_h.c @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Omar Polo + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int +main(void) +{ + uint16_t x; + + x = 42; + return (htobe16(x)); +} blob - /dev/null blob + 2413b5896b13f658f73c6c73ab5100e41ec5e769 (mode 644) --- /dev/null +++ have/machine_endian.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Omar Polo + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include + +int +main(void) +{ + uint16_t x; + + x = 42; + return (OSSwapHostToBigInt16(x)); +} blob - /dev/null blob + bba56c9ed2ea334c99fe1d986c895aae65f18011 (mode 644) --- /dev/null +++ have/sys_endian_h.c @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Omar Polo + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +int +main(void) +{ + uint16_t x; + + x = 42; + return (htobe16(x)); +}