Hi,
are you aware of this compile issue with gcc-7.3.0 at least?
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/g dk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DVIKING_DATADIR=\""/usr/s hare/viking"\" -DVIKING_SYSCONFDIR=\""/etc/viking"\" -Wall -g -D_GNU_SOURCE -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr /include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/in clude -O2 -pipe -mpclmul -mpopcnt -march=native -ftree-vectorize -c -o vikgpslayer.o vikgpslayer.c vikgpslayer.c:1695:3: error: expected identifier or '(' before 'return' return FALSE; /* no further calling */ ^~~~~~ vikgpslayer.c:1696:1: error: expected identifier or '(' before '}' token } ^ vikgpslayer.c:1739:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token vgl->vgpsd->vgl = vgl; ^~ vikgpslayer.c:1741:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token vgl->realtime_fix.dirty = vgl->last_fix.dirty = FALSE; ^~ vikgpslayer.c:1743:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token vgl->realtime_fix.fix.altitude = vgl->last_fix.fix.altitude = VIK_DEFAULT_ALTITUDE; ^~ vikgpslayer.c:1744:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token vgl->realtime_fix.fix.speed = vgl->last_fix.fix.speed = NAN; ^~ vikgpslayer.c:1746:3: error: expected identifier or '(' before 'if' if (vgl->realtime_record) { ^~ vikgpslayer.c:1757:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token vgl->realtime_io_channel = g_io_channel_unix_new(vgl->vgpsd->gpsd.gps_fd); ^~ vikgpslayer.c:1758:6: error: expected '=', ',', ';', 'asm' or '__attribute__' before '->' token vgl->realtime_io_watch_id = g_io_add_watch( vgl->realtime_io_channel, ^~ vikgpslayer.c:1768:3: error: expected identifier or '(' before 'return' return FALSE; /* no longer called by timeout */ ^~~~~~ vikgpslayer.c:1769:1: error: expected identifier or '(' before '}' token } ^ vikgpslayer.c:1698:15: warning: 'make_track_name' defined but not used [-Wunused-function] static gchar *make_track_name(VikTrwLayer *vtl) ^~~~~~~~~~~~~~~ vikgpslayer.c:1674:17: warning: 'gpsd_data_available' defined but not used [-Wunused-function] static gboolean gpsd_data_available(GIOChannel *source, GIOCondition condition, gpointer data) ^~~~~~~~~~~~~~~~~~~ vikgpslayer.c:1605:13: warning: 'gpsd_raw_hook' defined but not used [-Wunused-function] static void gpsd_raw_hook(VglGpsd *vgpsd, gchar *data) ^~~~~~~~~~~~~ make[3]: *** [Makefile:964: vikgpslayer.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/scratch/var/tmp/portage/sci-geosciences/viking-1.6.2-r1/work/viking-1.6.2/src' make[2]: *** [Makefile:1018: all-recursive] Error 1 make[2]: Leaving directory '/scratch/var/tmp/portage/sci-geosciences/viking-1.6.2-r1/work/viking-1.6.2/src' make[1]: *** [Makefile:704: all] Error 2 make[1]: Leaving directory '/scratch/var/tmp/portage/sci-geosciences/viking-1.6.2-r1/work/viking-1.6.2/src' make: *** [Makefile:454: all-recursive] Error 1 * ERROR: sci-geosciences/viking-1.6.2-r1::gentoo failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=sci-geosciences/viking-1.6.2-r1::gentoo'`, * the complete build log and the output of `emerge -pqv '=sci-geosciences/viking-1.6.2-r1::gentoo'`. * The complete build log is located at '/scratch/var/tmp/portage/sci-geosciences/viking-1.6.2-r1/temp/build.log'. * The ebuild environment file is located at '/scratch/var/tmp/portage/sci-geosciences/viking-1.6.2-r1/temp/environment'. * Working directory: '/scratch/var/tmp/portage/sci-geosciences/viking-1.6.2-r1/work/viking-1.6.2' * S: '/scratch/var/tmp/portage/sci-geosciences/viking-1.6.2-r1/work/viking-1.6.2'
It also happens with current git master.
So it turns out I have too new gpsd:
$ grep GPSD_API_MAJOR_VERSION /usr/include/gps.h #define GPSD_API_MAJOR_VERSION 7 /* bump on incompatible changes */ $https://bugs.gentoo.org/658886#c13
Fixed in latest source code
Hi,
After the fix in latest source code now I get on Mageia Cauldron with latest gpsd 3.18:
vikgpslayer.c: In function 'gpsd_data_available': vikgpslayer.c:1681:9: error: too few arguments to function 'gps_read' if (gps_read(&vgl->vgpsd->gpsd) > -1) { ^~~~~~~~ In file included from vikgpslayer.c:45: /usr/include/gps.h:2122:12: note: declared here extern int gps_read(struct gps_data_t *, char *message, int message_len); ^~~~~~~~ make[3]: *** [Makefile:959: vikgpslayer.o] Error 1 make[3]: Leaving directory '/home/iurt/rpmbuild/BUILD/viking-1.6.2/src' make[3]: *** Waiting for unfinished jobs....API change for gps_read() now fixed in latest source code.
Confirmed here now viking build fine against new gpsd 3.18