- On VMS, apps/apps.c depends on apps/vms_term_sock.c, so add it to
the build
- On VMS, apps/*.c are compiled with default symbol settings,
i.e. uppercased and truncated symbols, which differs from test
programs. Make sure uitest.c knows that with a few pragmas.
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2218)
my ($base, $files) = @_;
return join(" ", map { "$base/$_" } split(/\s+/, $files));
}
+ our $apps_extra =
+ $config{target} =~ /^vms-/ ? "../apps/vms_term_sock.c" : "";
+ ""
-}
IF[{- !$disabled{tests} -}]
PROGRAMS_NO_INST=\
DEPEND[cipher_overhead_test]=../libcrypto ../libssl
ENDIF
- SOURCE[uitest]=uitest.c testutil.c test_main_custom.c ../apps/apps.c ../apps/opt.c
+ SOURCE[uitest]=uitest.c testutil.c test_main_custom.c \
+ ../apps/apps.c ../apps/opt.c {- $apps_extra -}
INCLUDE[uitest]=.. ../include
DEPEND[uitest]=../libcrypto ../libssl
#include <string.h>
#include <openssl/opensslconf.h>
#include <openssl/err.h>
+
+/*
+ * We know that on VMS, the [.apps] object files are compiled with uppercased
+ * symbols. We must therefore follow suit, or there will be linking errors.
+ * Additionally, the VMS build does stdio via a socketpair.
+ */
+#ifdef __VMS
+# pragma names save
+# pragma names uppercase, truncated
+
+# include "../apps/vms_term_sock.h"
+#endif
+
#include "../apps/apps.h"
+#ifdef __VMS
+# pragma names restore
+#endif
+
#include "testutil.h"
#include "test_main_custom.h"