Paul Eggert <egg...@cs.ucla.edu> writes: > Thanks for reporting that. I installed this patch into Gnulib: > > https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=6457d2c190f47e2288c08f6a5e0dba412ff62855 > > and propagated it into Emacs master: > > https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=799f78a92c6c31f4d181390523b83d036020ede1 > > Please give it a try.
I spoke prematurely--this doesn't provide for endian.h implementations that don't define functions where the source type's size is explicit in the name such as are provided by the Android NDK r10b, with the result that configure concludes that they should be redefined by Gnulib: conftest.c: In function 'main': conftest.c:18:1: error: implicit declaration of function 'be16toh' [-Werror=implicit-function-declaration] int value16_1 = be16toh (0.0); ^ conftest.c:19:1: error: implicit declaration of function 'be32toh' [-Werror=implicit-function-declaration] int value32_1 = be32toh (0.0); ^ conftest.c:20:1: error: implicit declaration of function 'be64toh' [-Werror=implicit-function-declaration] int value64_1 = be64toh (0.0); ^ conftest.c:28:1: error: implicit declaration of function 'le16toh' [-Werror=implicit-function-declaration] int value16_3 = le16toh (0.0); ^ conftest.c:29:1: error: implicit declaration of function 'le32toh' [-Werror=implicit-function-declaration] int value32_3 = le32toh (0.0); ^ conftest.c:30:1: error: implicit declaration of function 'le64toh' [-Werror=implicit-function-declaration] int value64_3 = le64toh (0.0); ^ cc1: some warnings being treated as errors but because Gnulib's definitions are `inline', the functions provided in the system endian.h acquire external linkage, and are duplicated across every unit by which the redefinitions are included: CCLD libemacs.so /home/.../.../android-ndk-r10b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: frame.o: multiple definition of 'htobe16' /home/.../.../android-ndk-r10b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: dispnew.o: previous definition here /home/.../.../android-ndk-r10b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: frame.o: multiple definition of 'htobe32' /home/.../.../android-ndk-r10b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: dispnew.o: previous definition here /home/.../.../android-ndk-r10b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: frame.o: multiple definition of 'htobe64' [...]