Menu

#557 gtk-gnutella-1.1.15.tar.xz Fails to Build on 64b openSUSE Linux

Future
open
None
5
2020-05-27
2020-05-04
Martin Vahi
No
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 nameALWAYS_INLINEstatic 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 nameuint8’
./endian.h:119:1: error: unknown type nameALWAYS_INLINEstatic 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$

Discussion

  • Raphael Manfredi

    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>

     
    • Martin Vahi

      Martin Vahi - 2020-05-27

      The
      /usr/include/bits/waitstatus.h
      is attatched to this comment.

       
  • Raphael Manfredi

    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,4 +1,3 @@
    -
     ~~~
     Continuing in src...
     Checking gui_property.o in if...
    
    • assigned_to: Raphael Manfredi
     
  • Raphael Manfredi

    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.

     

Log in to post a comment.