Use visibility attributes to export symbols
This change replaces the libtool -export-symbols-regex option
with -fvisibility=hidden
. All exported functions are tagged in the headers with the UDF_PUBLIC macro, which is defined as __attribute__((visibility("default")))
on GCC-like compilers, and __declspec(dllexport)
on Windows. This is a prerequisite for porting the build system to Meson.