davidgow.net: bingcc — A symbol-version wrapper for gcc and glibc

bingcc is a very early, quite terrible program for limiting glibc symbol version dependencies when compiling things with modern versions of gcc. It's just a basic wraper around gcc and mjau's gensymoverride script, and was inspired by the late apgcc.

It's on GitHub, which is a first for me, so hopefully people can actually download it. I'll accept any (useful) patches either through "Pull Requests" or by email.

bingcc doesn't touch libstdc++ at all, just libc, so while it's great for simple C programs, it's not quite ideal for big C++ monstrosities; that's what cross-compilers and build machines running old distros are for. Bundling or statically linking libstdc++ is another nice trick to have up one's sleeve.

To use bingcc, you basically just have to run bingcc or bing++ instead of gcc or g++. If the program you're building has a build system that respects the CC and CXX environment variables, then you can get a shell with those set using bingcc-env. There are also bingcc32 scripts: these are just the same as their normal counterparts, but add a -m32 flag to the compiler's name in order to make cross-compiling things slightly less painful on multilib systems.

Let me know if you find any bugs, or if you know of a drastically better way of doing this. It's still a pretty quick hack, and is in no way polished enough to show off, but hopefully it'll save someone who's using a distro that's five years old some trouble.