Continuing in src... Checking gui_property.o in if... cd if; gmake gui_property.o gmake[3]: Entering directory '/home/ts2_andmed/tmp/test/artik/ff/gtk-gnutella-1.1.15/src/if' gcc -c -I../.. -I.. -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DCURDIR=src/if -O2 -g -pthread -pipe -momit-leaf-frame-pointer -W -Wall -Wformat=2 -Wshadow -march=native -ftree-vectorize gui_property.c gmake[3]: Leaving directory '/home/ts2_andmed/tmp/test/artik/ff/gtk-gnutella-1.1.15/src/if' Continuing in src... Checking libshared.a in lib... cd lib; gmake libshared.a gmake[3]: Entering directory '/home/ts2_andmed/tmp/test/artik/ff/gtk-gnutella-1.1.15/src/lib' /usr/bin/rm -f adns.o gcc -c -I../.. -I.. -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -DCURDIR=src/lib -O2 -g -pthread -pipe -momit-leaf-frame-pointer -W -Wall -Wformat=2 -Wshadow -march=native -ftree-vectorize adns.c In file included from /usr/include/bits/waitstatus.h:64:0, from /usr/include/stdlib.h:42, from ../common.h:71, from adns.c:37: ./endian.h:112:1: error: unknown type name ‘ALWAYS_INLINE’ static inline ALWAYS_INLINE G_PURE uint8 ^ ./endian.h:112:36: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘uint8’ static inline ALWAYS_INLINE G_PURE uint8 ^ ./endian.h:112:36: error: unknown type name ‘uint8’ ./endian.h:119:1: error: unknown type name ‘ALWAYS_INLINE’ static inline ALWAYS_INLINE G_PURE uint16 ^
ts2@linux-f26r:~/tmp/test/artik/ff/gtk-gnutella-1.1.15$ ls AUTHORS config.sh extra_files install Makefile.SH osx README.Windows U build.sh Configure GEO_LICENSE install.SH makensis.sh pixmaps README.xmingw version ChangeLog cygwin gtk-gnutella.nsi Jmakefile MANIFEST po scripts config.h debian gtk-gnutella.spec LICENSE mingw README src config_h.SH doc gtk-gnutella_spec.SH Makefile mkdep README.Debian TODO ts2@linux-f26r:~/tmp/test/artik/ff/gtk-gnutella-1.1.15$ uname -a Linux linux-f26r 4.4.126-48-default #1 SMP Sat Apr 7 05:22:50 UTC 2018 (f24992c) x86_64 x86_64 x86_64 GNU/Linux ts2@linux-f26r:~/tmp/test/artik/ff/gtk-gnutella-1.1.15$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.8/lto-wrapper Target: x86_64-suse-linux Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.8 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=https://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --enable-linker-build-id --enable-linux-futex --program-suffix=-4.8 --without-system-libunwind --with-arch-32=i586 --with-tune=generic --build=x86_64-suse-linux --host=x86_64-suse-linux Thread model: posix gcc version 4.8.5 (SUSE Linux) ts2@linux-f26r:~/tmp/test/artik/ff/gtk-gnutella-1.1.15$ cat /etc/os-release NAME="openSUSE Leap" VERSION="42.3" ID=opensuse ID_LIKE="suse" VERSION_ID="42.3" PRETTY_NAME="openSUSE Leap 42.3" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:opensuse:leap:42.3" BUG_REPORT_URL="https://bugs.opensuse.org" HOME_URL="https://www.opensuse.org/" ts2@linux-f26r:~/tmp/test/artik/ff/gtk-gnutella-1.1.15$
The gtk-gnutella-1.1.15.tar.xz has been downloaded on 2020_05_04 from
https://sourceforge.net/projects/gtk-gnutella/files/gtk-gnutella/1.1.15/
I think what is happening here is that gtk-gnutella's own "src/lib/endian.h" is loaded instead of some other /usr/include/endian.h whilst /usr/include/stdlib.h is processed by the compiler.
Most probably, in your /usr/include/bits/waitstatus.h there is an inclusion of endian.h made.
Could you show me what line 42 of that file is on your system? I'm expecting a #include "endian.h" or #include <endian.h> but I want to know which one it is...</endian.h>
The
/usr/include/bits/waitstatus.h
is attatched to this comment.
Diff:
OK, my suspicion is confirmed.
I tried to include a system file #including <endian.h> blindly here, and it behaves correctly, i.e. it finds /usr/include/endian.h and not gtk-gnutella's one.</endian.h>
Do you have the option of trying a more recent gcc compiler? 4.8.5 is rather old and the bug might have been fixed (well, it is fixed in gcc-6.3 because it works fine here with that compiler.
Or try another brand like clang, to see if it makes a difference at all.