Addresses the first part of #1181. See the discussion there for more context and history.
After this, all that remains is a (platform-independent) exports checker for c-i. Or perhaps a linker script or .def file could be tricked into testing as a side-effect.
This should fix mingw exports, specifically hiding the following:
secp256k1_pre_g_128
secp256k1_pre_g
secp256k1_ecmult_gen_prec_table
This changes our visibility macros to look more like gcc’s recommendation.
Edit:
Note that we could further complicate this by supporting __attribute__ ((dllexport))
as well, though I didn’t bother as I’m not sure what compiler combo would accept that but not the bare dllexport syntax.
Edit2: As the title implies, this affects this ABI and could affect downstream libs/apps in unintended ways (though it’s hard to imagine any real downside). Though because it’s win32 only, I’m imagining very little real-world impact at all.