Also, gnulib contains support code to make 'relocatable packages' work (by looking at argv[0], or, if this contains no path, by hunting along $PATH to find itself, then using relative paths everywhere in the knowledge of the location of the binary). GCC has worked this way for ever, but it's only fairly recently that relocatable support has started to find its way into other GNU programs. (Most non-GNU programs still don't care, but the GNU Project cares about keeping its stuff installable into people's home directories on random systems: that's how it started, after all.)