Andreas said he is OK with applying them, so I will do that.

OK :)
However, if I read your code correctly, it still seems to me that there is
a fixed compile time decision if gpsd or built-in gps support is to be used.

I think it would be better to keep it a runtime decision, i.e.

1) if gpsd headers/library available during compilation,
   build support for _both_ gpsd and built-in gps into the program,
2) if they are not available, only include the built-in gps support.

That's easy to do. I can maintain the original gps interface, so old code doesn't need to be fixed, and choose the support to use from an internal state.
 
The decision which method to use should be a config file option.  Please make
sure that a config file configured for built-in gps support will work with both
versions of the program.

A config file requesting the use of gpsd support should make the program
abort if it was compiled without gpsd support included.

Not sure to agree. Execs from layer23/misc don't rely on config files. Probably that's due to the low number of switches used. I think that, even if cell_log options are increased, we can still use cmd switches. Do you agree?

Ciao
Dario.