diff --git a/crypto/conf/conf.c b/crypto/conf/conf.c
index e098a2c..7512dd0 100644
--- a/crypto/conf/conf.c
+++ b/crypto/conf/conf.c
@@ -776,3 +776,10 @@
     lstart = p + 1;
   }
 }
+
+int CONF_modules_load_file(CONF_MUST_BE_NULL *filename, const char *appname,
+                           unsigned long flags) {
+  return 1;
+}
+
+void CONF_modules_free(void) {}
diff --git a/crypto/crypto.c b/crypto/crypto.c
index ace1c82..da8807d 100644
--- a/crypto/crypto.c
+++ b/crypto/crypto.c
@@ -138,3 +138,5 @@
 }
 
 void ENGINE_load_builtin_engines(void) {}
+
+void OPENSSL_load_builtin_modules(void) {}
diff --git a/crypto/rand/rand.c b/crypto/rand/rand.c
index 892b4ba..82087ba 100644
--- a/crypto/rand/rand.c
+++ b/crypto/rand/rand.c
@@ -209,6 +209,8 @@
   }
 }
 
+const char *RAND_file_name(char *buf, size_t num) { return NULL; }
+
 void RAND_add(const void *buf, int num, double entropy) {}
 
 int RAND_egd(const char *path) {
diff --git a/include/openssl/conf.h b/include/openssl/conf.h
index a2741a8..0d2b61d 100644
--- a/include/openssl/conf.h
+++ b/include/openssl/conf.h
@@ -131,6 +131,28 @@
                     int (*list_cb)(const char *elem, int len, void *usr),
                     void *arg);
 
+
+/* Deprecated functions */
+
+/* These defines do nothing but are provided to make old code easier to
+ * compile. */
+#define CONF_MFLAGS_DEFAULT_SECTION 0
+#define CONF_MFLAGS_IGNORE_MISSING_FILE 0
+
+typedef struct conf_must_be_null_st CONF_MUST_BE_NULL;
+
+/* CONF_modules_load_file returns one. |filename| was originally a string, with
+ * NULL indicating the default. BoringSSL does not support configuration files,
+ * so this stub emulates the "default" no-op file but intentionally breaks
+ * compilation of consumers actively attempting to use this subsystem. */
+OPENSSL_EXPORT int CONF_modules_load_file(CONF_MUST_BE_NULL *filename,
+                                          const char *appname,
+                                          unsigned long flags);
+
+/* CONF_modules_free does nothing. */
+OPENSSL_EXPORT void CONF_modules_free(void);
+
+
 #if defined(__cplusplus)
 }  /* extern C */
 #endif
diff --git a/include/openssl/crypto.h b/include/openssl/crypto.h
index b421884..193c8c3 100644
--- a/include/openssl/crypto.h
+++ b/include/openssl/crypto.h
@@ -60,6 +60,9 @@
 /* ENGINE_load_builtin_engines does nothing. */
 OPENSSL_EXPORT void ENGINE_load_builtin_engines(void);
 
+/* OPENSSL_load_builtin_modules does nothing. */
+OPENSSL_EXPORT void OPENSSL_load_builtin_modules(void);
+
 
 #if defined(__cplusplus)
 }  /* extern C */
diff --git a/include/openssl/rand.h b/include/openssl/rand.h
index 3a8e357..2c9c969 100644
--- a/include/openssl/rand.h
+++ b/include/openssl/rand.h
@@ -75,6 +75,9 @@
 /* RAND_load_file returns a nonnegative number. */
 OPENSSL_EXPORT int RAND_load_file(const char *path, long num);
 
+/* RAND_file_name returns NULL. */
+OPENSSL_EXPORT const char *RAND_file_name(char *buf, size_t num);
+
 /* RAND_add does nothing. */
 OPENSSL_EXPORT void RAND_add(const void *buf, int num, double entropy);
 
