builtin_modules.patch: add _PyBUILTIN_MODINIT_FUNC macro and use it on modules which are builtins on POSIX.
I checked: it's not necessary to modify Modules/config.c to make the symbol hidden: only the C code in Modules/ need to set the attribute on the function.
So Modules/config.c, Modules/config.c.in, Modules/makesetup, PC/config.c, Tools/freeze/makeconfig.py, ... are unchanged by the patch.
--
On Linux with GCC >= 4.0, you can test manually to hide PyInit_xxx symbols using:
#define _PyBUILTIN_MODINIT_FUNC __attribute__((visibility("hidden"))) PyObject*