On certain platforms, we redefine certain symbols using macros in
apps.h. For those, it's better to include apps.h after the system
headers where those symbols may be defined, since there's otherwise a
chance that the C compiler will barf when it sees something that looks
like this after expansion:
int VMS_strcasecmp((str1),(str2))(const char *, const char *);
diff --git a/apps/apps.c b/apps/apps.c
index 5863b33..b2a28c9 100644
--- a/apps/apps.c
+++ b/apps/apps.c
@@ -114,9 +114,6 @@
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
-#define NON_MAIN
-#include "apps.h"
-#undef NON_MAIN
#include <openssl/err.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>
@@ -136,6 +133,10 @@
# endif /* NO_STRINGS_H */
#endif
+#define NON_MAIN
+#include "apps.h"
+#undef NON_MAIN
+
#ifdef OPENSSL_SYS_WINDOWS
# include "bss_file.c"
#endif