From d657528e912af5ec971473491b0c70c2e6060ec2 Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Thu, 3 Oct 2019 17:25:26 -0500 Subject: [PATCH] asn1: work around OpenSSL conflict --- lib/asn1/gen.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/asn1/gen.c b/lib/asn1/gen.c index 4df4885d3..b6ccdda4c 100644 --- a/lib/asn1/gen.c +++ b/lib/asn1/gen.c @@ -423,9 +423,18 @@ generate_constant (const Symbol *s) case booleanvalue: break; case integervalue: - fprintf (headerfile, "enum { %s = %lld };\n\n", - s->gen_name, - (long long)s->value->u.integervalue); + /* + * Work around the fact that OpenSSL defines macros for PKIX constants + * that we want to generate as enums, which causes conflicts for things + * like ub-name (ub_name). + */ + fprintf(headerfile, + "#ifdef %s\n" + "#undef %s\n" + "#endif\n" + "enum { %s = %lld };\n\n", + s->gen_name, s->gen_name, s->gen_name, + (long long)s->value->u.integervalue); break; case nullvalue: break;