FYI, Rusty's CCAN contains some interesting option parsing code released under GPLv2+, i.e. compatible to libosmocore: Usage is explained in https://github.com/rustyrussell/ccan/blob/master/ccan/opt/_info
It seems rather small and simple, and permits the subsequent addition of options, i.e. some shared code can register options, and other parts of the code can register even more options to it (like our libraries, or bts-specific code in osmo-bts, ...)
I have more pressing things on my todo list than convert this now, but as there was some discussion regarding gengetopt here recently, I thought I might point out an alternative.
We might also look into the LGPL 2.1+ CCAN htable https://github.com/rustyrussell/ccan/blob/master/ccan/htable/_info as a possible replacement for those areas where our linear llist iterations should turn out to be problematic.
Regards, Harald