#define SOME_VALUE 25
are not exportedThe world of C preprocessor directives is dark and impossible to formalise. Potentially in the future we can add a mode to export the simplest of definitions as global constants, but it's very limited and inflexible.
Currently we recommend adding C forwarder functions for those cases, e.g. in the example of OpenSSL:
#include "openssl/evp.h"
// preprocessor constants
int get_EVP_MAC_KEY() { return EVP_PKEY_HMAC; }
int get_EVP_MAX_MD_SIZE() { return EVP_MAX_MD_SIZE; }
// macro definition
void get_OpenSSL_add_all_digests() { OpenSSL_add_all_digests(); }
Scala Native does support constructing a va_list
, but a function taking such list must exist in the first place.
In the case of, for example, cURL, the public interface is defined in terms of ...
and there's
nothing in C that allows you to call a variadic function if all you have is a value of va_list
.
The layout of said va_list
also varies by platform.