Sorry, forgot to attach details.
# Bullseye/testing amd64 qemu VM 2020-01-08
apt update
apt dist-upgrade
apt install systemd-coredump xserver-xorg sddm openbox xterm net-tools mc
fakeroot gdb navit navit-dbgsym libgps25-dbgsym
apt build-dep navit
reboot
mkdir /home/benutzer/source/libgps25/orig -p
cd /home/benutzer/source/libgps25/orig
apt source libgps25
cd
mkdir /home/benutzer/source/navit/orig -p
cd /home/benutzer/source/navit/orig
apt source navit
cd
systemctl start gpsd.service
export DISPLAY=:0
gdb -q --args navit
set width 0
set pagination off
set breakpoint pending on
directory /home/benutzer/source/libgps25/orig/gpsd-3.20
directory /home/benutzer/source/navit/orig/navit-0.5.3+dfsg.1/navit/vehicle/gpsd
b gps_open
run
print gpsdata
print sizeof(*gpsdata)
print sizeof(struct gps_data_t)
up
print priv->gps
print sizeof(*priv->gps)
print sizeof(struct gps_data_t)
down
set logging file /tmp/libgps25-ptype-struct-gps_data_t.txt
set logging on
ptype /o struct gps_data_t
set logging off
up
set logging file /tmp/navit-ptype-struct-gps_data_t.txt
set logging on
ptype /o struct gps_data_t
set logging off
benutzer@debian:~$ gdb -q --args navit
Reading symbols from navit...
Reading symbols from
/usr/lib/debug/.build-id/ad/4c802fbe455074f8a5eb217f3ade9bddb73bd5.debug...
(gdb) set width 0
(gdb) set pagination off
(gdb) set breakpoint pending on
(gdb) directory /home/benutzer/source/libgps25/orig/gpsd-3.20
Source directories searched:
/home/benutzer/source/libgps25/orig/gpsd-3.20:$cdir:$cwd
(gdb) directory
/home/benutzer/source/navit/orig/navit-0.5.3+dfsg.1/navit/vehicle/gpsd
Source directories searched:
/home/benutzer/source/navit/orig/navit-0.5.3+dfsg.1/navit/vehicle/gpsd:/home/benutzer/source/libgps25/orig/gpsd-3.20:$cdir:$cwd
(gdb) b gps_open
Function "gps_open" not defined.
Breakpoint 1 (gps_open) pending.
(gdb) run
Starting program: /usr/bin/navit
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Breakpoint 1, gps_open (host=host@entry=0x5555556bc137 "localhost", port=0x0,
gpsdata=0x5555556d4a50) at libgps_core.c:73
73 if (!gpsdata)
(gdb) print gpsdata
$1 = (struct gps_data_t *) 0x5555556d4a50
(gdb) print sizeof(*gpsdata)
$2 = 24008
(gdb) print sizeof(struct gps_data_t)
$3 = 24008
(gdb) up
#1 0x00007ffff56555c3 in vehicle_gpsd_try_open
(priv=priv@entry=0x55555568f510) at ./navit/vehicle/gpsd/vehicle_gpsd.c:225
warning: Source file is more recent than executable.
225 if (gps_open(source + 7, port, priv->gps)) {
(gdb) print priv->gps
$4 = (struct gps_data_t *) 0x5555556d4a50
(gdb) print sizeof(*priv->gps)
$5 = 20800
(gdb) print sizeof(struct gps_data_t)
$6 = 20800
(gdb)
benutzer@debian:~$ diff -ty /tmp/libgps25-ptype-struct-gps_data_t.txt
/tmp/navit-ptype-struct-gps_data_t.txt | head -n 20
/* offset | size */ type = struct gps_data_t { /* offset
| size */ type = struct gps_data_t {
/* 0 | 8 */ gps_mask_t set; /* 0
| 8 */ gps_mask_t set;
/* 8 | 16 */ timespec_t online; | /* 8
| 8 */ timestamp_t online;
/* 24 | 4 */ socket_t gps_fd; | /* 16
| 4 */ socket_t gps_fd;
/* XXX 4-byte hole */ /* XXX
4-byte hole */
/* 32 | 360 */ struct gps_fix_t { | /* 24
| 256 */ struct gps_fix_t {
/* 32 | 16 */ timespec_t time; | /* 24
| 8 */ timestamp_t time;
/* 48 | 4 */ int mode; | /* 32
| 4 */ int mode;
/* XXX 4-byte hole */ | /* XXX
4-byte hole */
/* 56 | 8 */ double ept; | /* 40
| 8 */ double ept;
/* 64 | 8 */ double latitude; | /* 48
| 8 */ double latitude;
/* 72 | 8 */ double epy; | /* 56
| 8 */ double epy;
/* 80 | 8 */ double longitude; | /* 64
| 8 */ double longitude;
/* 88 | 8 */ double epx; | /* 72
| 8 */ double epx;
/* 96 | 8 */ double altitude; | /* 80
| 8 */ double altitude;
/* 104 | 8 */ double altHAE; | /* 88
| 8 */ double epv;
/* 112 | 8 */ double altMSL; | /* 96
| 8 */ double track;
/* 120 | 8 */ double epv; | /* 104
| 8 */ double epd;
/* 128 | 8 */ double track; | /* 112
| 8 */ double speed;
/* 136 | 8 */ double epd; | /* 120
| 8 */ double eps;
https://buildd.debian.org/status/fetch.php?pkg=gpsd&arch=amd64&ver=3.20-1&stamp=1578160890&raw=0
gcc -o libgps_core.o -c -pthread -Wall -Wcast-align -Wextra
-Wimplicit-fallthrough -Wmissing-declarations -Wmissing-prototypes
-Wno-missing-field-initializers -Wno-uninitialized -Wpointer-arith
-Wreturn-type -Wstrict-prototypes -Wvla -g
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat
-Werror=format-security -Wdate-time -O2 -pthread -D_FORTIFY_SOURCE=2
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
libgps_core.c
https://buildd.debian.org/status/fetch.php?pkg=navit&arch=amd64&ver=0.5.3%2Bdfsg.1-2%2Bb1&stamp=1571055435&raw=0
Setting up libgps-dev (3.19-2) ...
cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/navit/vehicle/gpsd && /usr/bin/gcc
-DBIN_DIR=\"bin\" -DHAVE_LIBGPS19=1 -DIMAGE_DIR=\"share/navit/icons\"
-DLIB_DIR=\"lib/navit\" -DLOCALE_DIR=\"share/locale\"
-DMAN_DIR=\"share/man/man1\" -DMODULE=vehicle_gpsd -DSHARE_DIR=\"share/navit\"
-Dvehicle_gpsd_EXPORTS -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/pango-1.0
-I/usr/include/cairo -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-2.0
-I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
-I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu -I/<<PKGBUILDDIR>>
-I/<<PKGBUILDDIR>>/navit -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/navit
-I/<<PKGBUILDDIR>>/navit/support -I/<<PKGBUILDDIR>>/navit/font/freetype
-I/<<PKGBUILDDIR>>/navit/graphics/gtk_drawing_area
-I/<<PKGBUILDDIR>>/navit/gui/gtk -I/<<PKGBUILDDIR>>/navit/vehicle/gpsd
-I/<<PKGBUILDDIR>>/navit/binding/dbus -I/<<PKGBUILDDIR>>/navit/speech/dbus
-I/<<PKGBUILDDIR>>/navit/speech/cmdline
-I/<<PKGBUILDDIR>>/navit/vehicle/gpsd_dbus
-I/<<PKGBUILDDIR>>/navit/speech/speech_dispatcher
-I/<<PKGBUILDDIR>>/navit/map/garmin -I/<<PKGBUILDDIR>>/navit/graphics/null
-I/<<PKGBUILDDIR>>/navit/osd/core -I/<<PKGBUILDDIR>>/navit/vehicle/demo
-I/<<PKGBUILDDIR>>/navit/vehicle/file -I/<<PKGBUILDDIR>>/navit/vehicle/null
-I/<<PKGBUILDDIR>>/navit/gui/internal -I/<<PKGBUILDDIR>>/navit/map/binfile
-I/<<PKGBUILDDIR>>/navit/map/filter -I/<<PKGBUILDDIR>>/navit/map/mg
-I/<<PKGBUILDDIR>>/navit/map/shapefile -I/<<PKGBUILDDIR>>/navit/map/textfile
-I/<<PKGBUILDDIR>>/navit/map/csv -I/<<PKGBUILDDIR>>/navit/plugin/pedestrian
-I/<<PKGBUILDDIR>>/navit/fib-1.1 -isystem /usr/include/gtk-2.0 -g -O2
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat
-Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wundef
-Wcast-align -Wpointer-arith -Wno-unused-parameter -Wno-sign-compare
-Wno-missing-field-initializers -Wextra -Wmissing-prototypes
-Wstrict-prototypes -Wformat-security -g -O2
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat
-Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fPIC -o
CMakeFiles/vehicle_gpsd.dir/vehicle_gpsd.c.o -c
/<<PKGBUILDDIR>>/navit/vehicle/gpsd/vehicle_gpsd.c
https://sources.debian.org/src/gpsd/3.19-2%7Ebpo10+1/gps.h/#L97
https://sources.debian.org/src/gpsd/3.20-1/gps.h/#L123
benutzer@debian:~$ dpkg -l | grep -E "navit|gps"
ii gpsd 3.20-1 amd64
Global Positioning System - daemon
ii libgps-dev 3.20-1 amd64
Global Positioning System - development files
ii libgps25:amd64 3.20-1 amd64
Global Positioning System - library
ii libgps25-dbgsym:amd64 3.20-1 amd64
debug symbols for libgps25
ii navit 0.5.3+dfsg.1-2+b1 amd64
Car navigation system with routing engine
ii navit-data 0.5.3+dfsg.1-2 all
Car navigation system with routing engine - data files
ii navit-dbgsym 0.5.3+dfsg.1-2+b1 amd64
debug symbols for navit
ii navit-graphics-gtk-drawing-area 0.5.3+dfsg.1-2+b1 amd64
Car navigation system with routing engine - GTK+ graphic plugin
ii navit-gui-internal 0.5.3+dfsg.1-2+b1 amd64
Car navigation system with routing engine - internal GUI
cd /home/benutzer/source/navit
cp orig try1 -a
cd try1/navit-0.5.3+dfsg.1
dpkg-buildpackage
<<PKGBUILDDIR>>/navit/vehicle/gpsd/vehicle_gpsd.c: In function
‘vehicle_gpsd_callback’:
<<PKGBUILDDIR>>/navit/vehicle/gpsd/vehicle_gpsd.c:177:26: error: incompatible
types when assigning to type ‘time_t’ {aka ‘long int’} from type ‘timespec_t’
{aka ‘struct timespec’}
177 | priv->fix_time = data->fix.time;
| ^~~~
https://snapshot.debian.org/package/gpsd/3.19-3/
wget
https://snapshot.debian.org/archive/debian/20191122T024832Z/pool/main/g/gpsd/gpsd_3.19-3_amd64.deb
wget
https://snapshot.debian.org/archive/debian/20191122T024832Z/pool/main/g/gpsd/libgps-dev_3.19-3_amd64.deb
wget
https://snapshot.debian.org/archive/debian/20191122T024832Z/pool/main/g/gpsd/libgps25_3.19-3_amd64.deb
wget
https://snapshot.debian.org/archive/debian-debug/20191122T024701Z/pool/main/g/gpsd/libgps25-dbgsym_3.19-3_amd64.deb