From 9126ec99ca9e136666cbba5b48a8a02cb11350e0 Mon Sep 17 00:00:00 2001
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Date: Mon, 15 Oct 2018 11:16:54 -0400
Subject: [PATCH] Automatically detect whether Curve25519 is available in NSS
 for USE_DH31

currently, USE_DH31 defaults to true.

On some platforms, where older versions of NSS are in use, this should
default to false.

This patch automatically detects such systems and disables USE_DH31 on
those platforms.

It produces some amount of noise on stderr about CURVE_25519 during
the build on those older platforms, but that seems ok to me, since
those platforms should know that they're missing a modern feature.

If you prefer less noise, i'd be happy with any modification that does
a similar sort of autodetection.

diff --git a/mk/userland-cflags.mk b/mk/userland-cflags.mk
index d0a88b1aa1..7d88874b1c 100644
--- a/mk/userland-cflags.mk
+++ b/mk/userland-cflags.mk
@@ -240,7 +240,7 @@ ifeq ($(USE_DH24),true)
 USERLAND_CFLAGS += -DUSE_DH24
 endif
 
-USE_DH31 ?= true
+USE_DH31 ?= $(shell if printf '\#include <secoidt.h>\nint main() { return SEC_OID_CURVE25519; }\n'| $(CC) -x c $$(pkg-config --cflags nss) -o /dev/null -; then echo true; else echo false; fi )
 ifeq ($(USE_DH31),true)
 USERLAND_CFLAGS += -DUSE_DH31
 endif
