Using GList without dependencies?

You can’t. GLib is not a copy-paste library, or a piecemeal one. You can only depend on the whole GLib, or nothing.

The GList implementation is not really hard to replicate outside of GLib. GList has some additional niceties, like using a slab allocator that makes freeing lists a near-constant time operation; but, of course, that comes at the cost of using GLib.

To be fair, if you’re using plain C, I’d strongly recommend depending on GLib; the linker will only ever page in the necessary symbols, and the shared library itself is fairly small, once stripped.