make a dynamic binary that works under both glibc and musl (given you invoke ld.so directly and create a fake musl libc pointing to glibc)
this adds a demo where the embedding C wrapper creates a new primitive module with an ffi table which can be accessed and used from the racket side to call functions, even when the runtime is hosted in a static binary