Funcs macros gone (#3695)

* No more FUNCS/MACROS distinction

* change the docs to not talk about MACROS since they're gone

* remove out of date comment
diff --git a/docs/development/c-bindings.rst b/docs/development/c-bindings.rst
index 9388958..43ec4d8 100644
--- a/docs/development/c-bindings.rst
+++ b/docs/development/c-bindings.rst
@@ -128,9 +128,7 @@
         ...;
     } QM_TRANSMOGRIFICATION_CTX;
 
-Confusingly, functions that aren't always available on all supported
-versions of the library, should be defined in ``MACROS`` and *not* in
-``FUNCTIONS``. Fortunately, you just have to copy the signature::
+For functions just add the signature to ``FUNCTIONS``::
 
     int QM_transmogrify(QM_TRANSMOGRIFICATION_CTX *, int);
 
diff --git a/src/_cffi_src/openssl/aes.py b/src/_cffi_src/openssl/aes.py
index d035fa8..028c92c 100644
--- a/src/_cffi_src/openssl/aes.py
+++ b/src/_cffi_src/openssl/aes.py
@@ -27,9 +27,6 @@
                    const unsigned char *, unsigned int);
 """
 
-MACROS = """
-"""
-
 CUSTOMIZATIONS = """
 static const long Cryptography_HAS_AES_WRAP = 1;
 """
diff --git a/src/_cffi_src/openssl/asn1.py b/src/_cffi_src/openssl/asn1.py
index 8644d05..ce2d078 100644
--- a/src/_cffi_src/openssl/asn1.py
+++ b/src/_cffi_src/openssl/asn1.py
@@ -101,9 +101,6 @@
 ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **, const unsigned char **, long,
                           const ASN1_ITEM *);
 int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *, int, int);
-"""
-
-MACROS = """
 /* These became const ASN1_* in 1.1.0 */
 int i2d_ASN1_OBJECT(ASN1_OBJECT *, unsigned char **);
 int ASN1_STRING_type(ASN1_STRING *);
diff --git a/src/_cffi_src/openssl/bignum.py b/src/_cffi_src/openssl/bignum.py
index 455afdc..fb33c45 100644
--- a/src/_cffi_src/openssl/bignum.py
+++ b/src/_cffi_src/openssl/bignum.py
@@ -68,9 +68,7 @@
 int BN_is_bit_set(const BIGNUM *, int);
 
 int BN_mask_bits(BIGNUM *, int);
-"""
 
-MACROS = """
 int BN_num_bytes(const BIGNUM *);
 
 int BN_zero(BIGNUM *);
diff --git a/src/_cffi_src/openssl/bio.py b/src/_cffi_src/openssl/bio.py
index 1956970..2d9659e 100644
--- a/src/_cffi_src/openssl/bio.py
+++ b/src/_cffi_src/openssl/bio.py
@@ -82,9 +82,6 @@
 int BIO_write(BIO *, const void *, int);
 int BIO_puts(BIO *, const char *);
 int BIO_method_type(const BIO *);
-"""
-
-MACROS = """
 /* Added in 1.1.0 */
 int BIO_up_ref(BIO *);
 
diff --git a/src/_cffi_src/openssl/callbacks.py b/src/_cffi_src/openssl/callbacks.py
index 5895e7b..cf2b2da 100644
--- a/src/_cffi_src/openssl/callbacks.py
+++ b/src/_cffi_src/openssl/callbacks.py
@@ -34,9 +34,6 @@
 int Cryptography_pem_password_cb(char *, int, int, void *);
 """
 
-MACROS = """
-"""
-
 CUSTOMIZATIONS = """
 /* This code is derived from the locking code found in the Python _ssl module's
    locking callback for OpenSSL.
diff --git a/src/_cffi_src/openssl/cmac.py b/src/_cffi_src/openssl/cmac.py
index 85b685d..f976647 100644
--- a/src/_cffi_src/openssl/cmac.py
+++ b/src/_cffi_src/openssl/cmac.py
@@ -16,9 +16,6 @@
 """
 
 FUNCTIONS = """
-"""
-
-MACROS = """
 CMAC_CTX *CMAC_CTX_new(void);
 int CMAC_Init(CMAC_CTX *, const void *, size_t, const EVP_CIPHER *, ENGINE *);
 int CMAC_Update(CMAC_CTX *, const void *, size_t);
diff --git a/src/_cffi_src/openssl/cms.py b/src/_cffi_src/openssl/cms.py
index fb87bd3..a5493d6 100644
--- a/src/_cffi_src/openssl/cms.py
+++ b/src/_cffi_src/openssl/cms.py
@@ -45,9 +45,6 @@
 """
 
 FUNCTIONS = """
-"""
-
-MACROS = """
 BIO *BIO_new_CMS(BIO *, CMS_ContentInfo *);
 int i2d_CMS_bio_stream(BIO *, CMS_ContentInfo *, BIO *, int);
 int PEM_write_bio_CMS_stream(BIO *, CMS_ContentInfo *, BIO *, int);
diff --git a/src/_cffi_src/openssl/conf.py b/src/_cffi_src/openssl/conf.py
index ad21476..9db0162 100644
--- a/src/_cffi_src/openssl/conf.py
+++ b/src/_cffi_src/openssl/conf.py
@@ -13,9 +13,6 @@
 
 FUNCTIONS = """
 void OPENSSL_config(const char *);
-"""
-
-MACROS = """
 /* This is a macro in 1.1.0 */
 void OPENSSL_no_config(void);
 """
diff --git a/src/_cffi_src/openssl/crypto.py b/src/_cffi_src/openssl/crypto.py
index 64c0aa4..dfff21b 100644
--- a/src/_cffi_src/openssl/crypto.py
+++ b/src/_cffi_src/openssl/crypto.py
@@ -34,9 +34,6 @@
 
 FUNCTIONS = """
 int CRYPTO_mem_ctrl(int);
-"""
-
-MACROS = """
 /* CRYPTO_cleanup_all_ex_data became a macro in 1.1.0 */
 void CRYPTO_cleanup_all_ex_data(void);
 
diff --git a/src/_cffi_src/openssl/cryptography.py b/src/_cffi_src/openssl/cryptography.py
index fe5055f..1cacc8f 100644
--- a/src/_cffi_src/openssl/cryptography.py
+++ b/src/_cffi_src/openssl/cryptography.py
@@ -64,8 +64,5 @@
 FUNCTIONS = """
 """
 
-MACROS = """
-"""
-
 CUSTOMIZATIONS = """
 """
diff --git a/src/_cffi_src/openssl/ct.py b/src/_cffi_src/openssl/ct.py
index e7550bc..21018d7 100644
--- a/src/_cffi_src/openssl/ct.py
+++ b/src/_cffi_src/openssl/ct.py
@@ -38,9 +38,6 @@
 """
 
 FUNCTIONS = """
-"""
-
-MACROS = """
 sct_version_t SCT_get_version(const SCT *);
 
 ct_log_entry_type_t SCT_get_log_entry_type(const SCT *);
diff --git a/src/_cffi_src/openssl/dh.py b/src/_cffi_src/openssl/dh.py
index 42309e4..be761b9 100644
--- a/src/_cffi_src/openssl/dh.py
+++ b/src/_cffi_src/openssl/dh.py
@@ -35,9 +35,6 @@
 int DH_set0_key(DH *, BIGNUM *, BIGNUM *);
 
 int Cryptography_DH_check(const DH *, int *);
-"""
-
-MACROS = """
 int DH_generate_parameters_ex(DH *, int, int, BN_GENCB *);
 DH *d2i_DHparams_bio(BIO *, DH **);
 int i2d_DHparams_bio(BIO *, DH *);
diff --git a/src/_cffi_src/openssl/dsa.py b/src/_cffi_src/openssl/dsa.py
index 05282c0..d61b692 100644
--- a/src/_cffi_src/openssl/dsa.py
+++ b/src/_cffi_src/openssl/dsa.py
@@ -29,9 +29,6 @@
 int DSA_set0_pqg(DSA *, BIGNUM *, BIGNUM *, BIGNUM *);
 void DSA_get0_key(const DSA *, const BIGNUM **, const BIGNUM **);
 int DSA_set0_key(DSA *, BIGNUM *, BIGNUM *);
-"""
-
-MACROS = """
 int DSA_generate_parameters_ex(DSA *, int, unsigned char *, int,
                                int *, unsigned long *, BN_GENCB *);
 """
diff --git a/src/_cffi_src/openssl/ec.py b/src/_cffi_src/openssl/ec.py
index c9598b5..d3d0230 100644
--- a/src/_cffi_src/openssl/ec.py
+++ b/src/_cffi_src/openssl/ec.py
@@ -33,9 +33,6 @@
 """
 
 FUNCTIONS = """
-"""
-
-MACROS = """
 EC_GROUP *EC_GROUP_new(const EC_METHOD *);
 void EC_GROUP_free(EC_GROUP *);
 void EC_GROUP_clear_free(EC_GROUP *);
diff --git a/src/_cffi_src/openssl/ecdh.py b/src/_cffi_src/openssl/ecdh.py
index 7f65880..043635c 100644
--- a/src/_cffi_src/openssl/ecdh.py
+++ b/src/_cffi_src/openssl/ecdh.py
@@ -14,9 +14,6 @@
 """
 
 FUNCTIONS = """
-"""
-
-MACROS = """
 int ECDH_compute_key(void *, size_t, const EC_POINT *, EC_KEY *,
                      void *(*)(const void *, size_t, void *, size_t *));
 long SSL_CTX_set_ecdh_auto(SSL_CTX *, int);
diff --git a/src/_cffi_src/openssl/ecdsa.py b/src/_cffi_src/openssl/ecdsa.py
index 2022b81..7850133 100644
--- a/src/_cffi_src/openssl/ecdsa.py
+++ b/src/_cffi_src/openssl/ecdsa.py
@@ -19,9 +19,6 @@
 """
 
 FUNCTIONS = """
-"""
-
-MACROS = """
 ECDSA_SIG *ECDSA_SIG_new();
 void ECDSA_SIG_free(ECDSA_SIG *);
 int i2d_ECDSA_SIG(const ECDSA_SIG *, unsigned char **);
diff --git a/src/_cffi_src/openssl/engine.py b/src/_cffi_src/openssl/engine.py
index 02216f4..bed39d0 100644
--- a/src/_cffi_src/openssl/engine.py
+++ b/src/_cffi_src/openssl/engine.py
@@ -125,9 +125,6 @@
 EVP_PKEY *ENGINE_load_private_key(ENGINE *, const char *, UI_METHOD *, void *);
 EVP_PKEY *ENGINE_load_public_key(ENGINE *, const char *, UI_METHOD *, void *);
 void ENGINE_add_conf_module(void);
-"""
-
-MACROS = """
 /* these became macros in 1.1.0 */
 void ENGINE_load_openssl(void);
 void ENGINE_load_dynamic(void);
diff --git a/src/_cffi_src/openssl/err.py b/src/_cffi_src/openssl/err.py
index 8554ef4..55f2470 100644
--- a/src/_cffi_src/openssl/err.py
+++ b/src/_cffi_src/openssl/err.py
@@ -255,9 +255,6 @@
 void ERR_add_error_data(int, ...);
 int ERR_get_next_error_library(void);
 ERR_STATE *ERR_get_state(void);
-"""
-
-MACROS = """
 /* ERR_free_strings became a macro in 1.1.0 */
 void ERR_free_strings(void);
 
diff --git a/src/_cffi_src/openssl/evp.py b/src/_cffi_src/openssl/evp.py
index a4edfc5..3fcac0c 100644
--- a/src/_cffi_src/openssl/evp.py
+++ b/src/_cffi_src/openssl/evp.py
@@ -146,9 +146,6 @@
    without worrying about what OpenSSL we're running against. */
 EVP_MD_CTX *Cryptography_EVP_MD_CTX_new(void);
 void Cryptography_EVP_MD_CTX_free(EVP_MD_CTX *);
-"""
-
-MACROS = """
 /* Added in 1.1.0 */
 size_t EVP_PKEY_get1_tls_encodedpoint(EVP_PKEY *, unsigned char **);
 int EVP_PKEY_set1_tls_encodedpoint(EVP_PKEY *, const unsigned char *,
diff --git a/src/_cffi_src/openssl/hmac.py b/src/_cffi_src/openssl/hmac.py
index f15f4dd..b006e64 100644
--- a/src/_cffi_src/openssl/hmac.py
+++ b/src/_cffi_src/openssl/hmac.py
@@ -22,9 +22,6 @@
 void Cryptography_HMAC_CTX_free(HMAC_CTX *ctx);
 """
 
-MACROS = """
-"""
-
 CUSTOMIZATIONS = """
 HMAC_CTX *Cryptography_HMAC_CTX_new(void) {
 #if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER
diff --git a/src/_cffi_src/openssl/nid.py b/src/_cffi_src/openssl/nid.py
index 2cc4c2a..ee739c1 100644
--- a/src/_cffi_src/openssl/nid.py
+++ b/src/_cffi_src/openssl/nid.py
@@ -226,9 +226,6 @@
 FUNCTIONS = """
 """
 
-MACROS = """
-"""
-
 CUSTOMIZATIONS = """
 #ifndef NID_X25519
 static const long Cryptography_HAS_X25519 = 0;
diff --git a/src/_cffi_src/openssl/objects.py b/src/_cffi_src/openssl/objects.py
index 19ff4c1..265ac75 100644
--- a/src/_cffi_src/openssl/objects.py
+++ b/src/_cffi_src/openssl/objects.py
@@ -33,9 +33,6 @@
 ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *);
 int OBJ_create(const char *, const char *, const char *);
 void OBJ_NAME_do_all(int, void (*) (const OBJ_NAME *, void *), void *);
-"""
-
-MACROS = """
 /* OBJ_cleanup became a macro in 1.1.0 */
 void OBJ_cleanup(void);
 """
diff --git a/src/_cffi_src/openssl/ocsp.py b/src/_cffi_src/openssl/ocsp.py
index 5865dba..ea3e5ad 100644
--- a/src/_cffi_src/openssl/ocsp.py
+++ b/src/_cffi_src/openssl/ocsp.py
@@ -54,9 +54,6 @@
 void OCSP_REQUEST_free(OCSP_REQUEST *);
 int OCSP_request_add1_nonce(OCSP_REQUEST *, unsigned char *, int);
 int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *, int, void *, int, unsigned long);
-"""
-
-MACROS = """
 OCSP_REQUEST *d2i_OCSP_REQUEST_bio(BIO *, OCSP_REQUEST **);
 OCSP_RESPONSE *d2i_OCSP_RESPONSE_bio(BIO *, OCSP_RESPONSE **);
 int i2d_OCSP_REQUEST_bio(BIO *, OCSP_REQUEST *);
diff --git a/src/_cffi_src/openssl/opensslv.py b/src/_cffi_src/openssl/opensslv.py
index a4e88f0..9b0c689 100644
--- a/src/_cffi_src/openssl/opensslv.py
+++ b/src/_cffi_src/openssl/opensslv.py
@@ -18,8 +18,5 @@
 FUNCTIONS = """
 """
 
-MACROS = """
-"""
-
 CUSTOMIZATIONS = """
 """
diff --git a/src/_cffi_src/openssl/osrandom_engine.py b/src/_cffi_src/openssl/osrandom_engine.py
index 93af8cf..ed1068e 100644
--- a/src/_cffi_src/openssl/osrandom_engine.py
+++ b/src/_cffi_src/openssl/osrandom_engine.py
@@ -20,8 +20,5 @@
 int Cryptography_add_osrandom_engine(void);
 """
 
-MACROS = """
-"""
-
 with open(os.path.join(HERE, "src/osrandom_engine.c")) as f:
     CUSTOMIZATIONS = f.read()
diff --git a/src/_cffi_src/openssl/pem.py b/src/_cffi_src/openssl/pem.py
index 5c1bc18..55519bb 100644
--- a/src/_cffi_src/openssl/pem.py
+++ b/src/_cffi_src/openssl/pem.py
@@ -75,9 +75,6 @@
 
 EVP_PKEY *PEM_read_bio_PUBKEY(BIO *, EVP_PKEY **, pem_password_cb *, void *);
 int PEM_write_bio_PUBKEY(BIO *, EVP_PKEY *);
-"""
-
-MACROS = """
 int PEM_write_bio_ECPrivateKey(BIO *, EC_KEY *, const EVP_CIPHER *,
                                unsigned char *, int, pem_password_cb *,
                                void *);
diff --git a/src/_cffi_src/openssl/pkcs12.py b/src/_cffi_src/openssl/pkcs12.py
index 0bbd1e5..21a8481 100644
--- a/src/_cffi_src/openssl/pkcs12.py
+++ b/src/_cffi_src/openssl/pkcs12.py
@@ -17,9 +17,6 @@
 
 PKCS12 *d2i_PKCS12_bio(BIO *, PKCS12 **);
 int i2d_PKCS12_bio(BIO *, PKCS12 *);
-"""
-
-MACROS = """
 int PKCS12_parse(PKCS12 *, const char *, EVP_PKEY **, X509 **,
                  Cryptography_STACK_OF_X509 **);
 PKCS12 *PKCS12_create(char *, char *, EVP_PKEY *, X509 *,
diff --git a/src/_cffi_src/openssl/pkcs7.py b/src/_cffi_src/openssl/pkcs7.py
index 0dd8958..1bece5b 100644
--- a/src/_cffi_src/openssl/pkcs7.py
+++ b/src/_cffi_src/openssl/pkcs7.py
@@ -72,9 +72,6 @@
 int PKCS7_decrypt(PKCS7 *, EVP_PKEY *, X509 *, BIO *, int);
 
 BIO *PKCS7_dataInit(PKCS7 *, BIO *);
-"""
-
-MACROS = """
 int PKCS7_type_is_encrypted(PKCS7 *);
 int PKCS7_type_is_signed(PKCS7 *);
 int PKCS7_type_is_enveloped(PKCS7 *);
diff --git a/src/_cffi_src/openssl/rand.py b/src/_cffi_src/openssl/rand.py
index a294e96..ed4c6c3 100644
--- a/src/_cffi_src/openssl/rand.py
+++ b/src/_cffi_src/openssl/rand.py
@@ -20,9 +20,6 @@
 int RAND_load_file(const char *, long);
 int RAND_write_file(const char *);
 int RAND_bytes(unsigned char *, int);
-"""
-
-MACROS = """
 /* ERR_load_RAND_strings started returning an int in 1.1.0. Unfortunately we
    can't declare a conditional signature like that. Since it always returns
    1 we'll just lie about the signature to preserve compatibility for
diff --git a/src/_cffi_src/openssl/rsa.py b/src/_cffi_src/openssl/rsa.py
index ed826ec..eddde84 100644
--- a/src/_cffi_src/openssl/rsa.py
+++ b/src/_cffi_src/openssl/rsa.py
@@ -59,9 +59,6 @@
 void RSA_get0_factors(const RSA *, const BIGNUM **, const BIGNUM **);
 void RSA_get0_crt_params(const RSA *, const BIGNUM **, const BIGNUM **,
                          const BIGNUM **);
-"""
-
-MACROS = """
 int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *, int);
 int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *, int);
 int EVP_PKEY_CTX_set_rsa_mgf1_md(EVP_PKEY_CTX *, EVP_MD *);
diff --git a/src/_cffi_src/openssl/ssl.py b/src/_cffi_src/openssl/ssl.py
index 116a54d..8fef946 100644
--- a/src/_cffi_src/openssl/ssl.py
+++ b/src/_cffi_src/openssl/ssl.py
@@ -245,9 +245,6 @@
 Cryptography_STACK_OF_X509_NAME *SSL_load_client_CA_file(const char *);
 
 const char *SSL_get_servername(const SSL *, const int);
-"""
-
-MACROS = """
 /* Function signature changed to const char * in 1.1.0 */
 const char *SSL_CIPHER_get_version(const SSL_CIPHER *);
 /* These became macros in 1.1.0 */
diff --git a/src/_cffi_src/openssl/x509.py b/src/_cffi_src/openssl/x509.py
index af2b6a7..2ae574a 100644
--- a/src/_cffi_src/openssl/x509.py
+++ b/src/_cffi_src/openssl/x509.py
@@ -212,9 +212,6 @@
 PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *,
                                                  PKCS8_PRIV_KEY_INFO **);
 void PKCS8_PRIV_KEY_INFO_free(PKCS8_PRIV_KEY_INFO *);
-"""
-
-MACROS = """
 /* These became const X509 in 1.1.0 */
 int X509_get_ext_count(X509 *);
 X509_EXTENSION *X509_get_ext(X509 *, int);
diff --git a/src/_cffi_src/openssl/x509_vfy.py b/src/_cffi_src/openssl/x509_vfy.py
index ff83981..7a5e3dd 100644
--- a/src/_cffi_src/openssl/x509_vfy.py
+++ b/src/_cffi_src/openssl/x509_vfy.py
@@ -182,9 +182,6 @@
 void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *, int);
 int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *);
 void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *);
-"""
-
-MACROS = """
 /* this CRYPTO_EX_DATA function became a macro in 1.1.0 */
 int X509_STORE_CTX_get_ex_new_index(long, void *, CRYPTO_EX_new *,
                                     CRYPTO_EX_dup *, CRYPTO_EX_free *);
diff --git a/src/_cffi_src/openssl/x509name.py b/src/_cffi_src/openssl/x509name.py
index ea1ccf6..1be1ae5 100644
--- a/src/_cffi_src/openssl/x509name.py
+++ b/src/_cffi_src/openssl/x509name.py
@@ -36,9 +36,6 @@
 int X509_NAME_cmp(const X509_NAME *, const X509_NAME *);
 X509_NAME *X509_NAME_dup(X509_NAME *);
 int Cryptography_X509_NAME_ENTRY_set(X509_NAME_ENTRY *);
-"""
-
-MACROS = """
 /* These became const X509_NAME * in 1.1.0 */
 int X509_NAME_entry_count(X509_NAME *);
 X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *, int);
diff --git a/src/_cffi_src/openssl/x509v3.py b/src/_cffi_src/openssl/x509v3.py
index 945bb3a..d31107f 100644
--- a/src/_cffi_src/openssl/x509v3.py
+++ b/src/_cffi_src/openssl/x509v3.py
@@ -185,9 +185,6 @@
 void GENERAL_NAMES_free(GENERAL_NAMES *);
 void *X509V3_EXT_d2i(X509_EXTENSION *);
 int X509_check_ca(X509 *);
-"""
-
-MACROS = """
 /* X509 became a const arg in 1.1.0 */
 void *X509_get_ext_d2i(X509 *, int, int *, int *);
 /* The last two char * args became const char * in 1.1.0 */
diff --git a/src/_cffi_src/utils.py b/src/_cffi_src/utils.py
index 3a4dd77..d3dd18a 100644
--- a/src/_cffi_src/utils.py
+++ b/src/_cffi_src/utils.py
@@ -18,8 +18,7 @@
 
     * ``INCLUDES``: A string containing C includes.
     * ``TYPES``: A string containing C declarations for types.
-    * ``FUNCTIONS``: A string containing C declarations for functions.
-    * ``MACROS``: A string containing C declarations for any macros.
+    * ``FUNCTIONS``: A string containing C declarations for functions & macros.
     * ``CUSTOMIZATIONS``: A string containing arbitrary top-level C code, this
         can be used to do things like test for a define and provide an
         alternate implementation based on that.
@@ -27,34 +26,23 @@
     types = []
     includes = []
     functions = []
-    macros = []
     customizations = []
     for name in modules:
         __import__(module_prefix + name)
         module = sys.modules[module_prefix + name]
 
         types.append(module.TYPES)
-        macros.append(module.MACROS)
         functions.append(module.FUNCTIONS)
         includes.append(module.INCLUDES)
         customizations.append(module.CUSTOMIZATIONS)
 
-    # We include functions here so that if we got any of their definitions
-    # wrong, the underlying C compiler will explode. In C you are allowed
-    # to re-declare a function if it has the same signature. That is:
-    #   int foo(int);
-    #   int foo(int);
-    # is legal, but the following will fail to compile:
-    #   int foo(int);
-    #   int foo(short);
     verify_source = "\n".join(
         includes +
-        functions +
         customizations
     )
     ffi = build_ffi(
         module_name,
-        cdef_source="\n".join(types + functions + macros),
+        cdef_source="\n".join(types + functions),
         verify_source=verify_source,
         libraries=libraries,
         extra_compile_args=extra_compile_args,