summaryrefslogtreecommitdiffstats
path: root/Configurations
diff options
context:
space:
mode:
authorRandall S. Becker <rsbecker@nexbridge.com>2021-08-30 15:24:39 -0400
committerTomas Mraz <tomas@openssl.org>2022-12-22 12:31:07 +0100
commitd793a3253bada9b61e5ccd5f8caaa4bfc4f4faa6 (patch)
tree21a1880247785b293aed997c530b51c872408367 /Configurations
parentc99209264de98da94937b073a42219bada9ff7f5 (diff)
Support multibin to allow multiple binary models to co-exist.
This change parallels the implementation of multilib and initially only applies to the NonStop platform's DLL loader limitations. Fixes: #16460 Signed-off-by: Randall S. Becker <rsbecker@nexbridge.com> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16472)
Diffstat (limited to 'Configurations')
-rw-r--r--Configurations/50-nonstop.conf10
-rw-r--r--Configurations/README.md7
-rw-r--r--Configurations/unix-Makefile.tmpl56
3 files changed, 49 insertions, 24 deletions
diff --git a/Configurations/50-nonstop.conf b/Configurations/50-nonstop.conf
index 50c37f3ded..3264bc9b85 100644
--- a/Configurations/50-nonstop.conf
+++ b/Configurations/50-nonstop.conf
@@ -202,6 +202,7 @@
'nonstop-efloat-x86_64',
'nonstop-model-put' ],
multilib => '-put',
+ multibin => '-put',
},
'nonstop-nsx_64' => {
inherit_from => [ 'nonstop-common',
@@ -209,6 +210,7 @@
'nonstop-lp64-x86_64',
'nonstop-efloat-x86_64' ],
multilib => '64',
+ multibin => '64',
disable => ['threads'],
},
'nonstop-nsx_64_put' => {
@@ -218,6 +220,7 @@
'nonstop-efloat-x86_64',
'nonstop-model-put' ],
multilib => '64-put',
+ multibin => '64-put',
},
'nonstop-nsx_spt' => {
inherit_from => [ 'nonstop-common',
@@ -226,6 +229,7 @@
'nonstop-efloat-x86_64',
'nonstop-model-spt' ],
multilib => '-spt',
+ multibin => '-spt',
},
'nonstop-nsx_spt_floss' => {
inherit_from => [ 'nonstop-common',
@@ -235,6 +239,7 @@
'nonstop-model-floss',
'nonstop-model-spt'],
multilib => '-spt',
+ multibin => '-spt',
},
'nonstop-nsx_g' => {
inherit_from => [ 'nonstop-common',
@@ -265,6 +270,7 @@
'nonstop-efloat-itanium',
'nonstop-model-put' ],
multilib => '-put',
+ multibin => '-put',
},
'nonstop-nse_64' => {
inherit_from => [ 'nonstop-common',
@@ -272,6 +278,7 @@
'nonstop-lp64-itanium',
'nonstop-efloat-itanium' ],
multilib => '64',
+ multibin => '64',
disable => ['threads'],
},
'nonstop-nse_64_put' => {
@@ -281,6 +288,7 @@
'nonstop-efloat-itanium',
'nonstop-model-put' ],
multilib => '64-put',
+ multibin => '64-put',
},
'nonstop-nse_spt' => {
inherit_from => [ 'nonstop-common',
@@ -289,6 +297,7 @@
'nonstop-efloat-itanium',
'nonstop-model-spt' ],
multilib => '-spt',
+ multibin => '-spt',
},
'nonstop-nse_spt_floss' => {
inherit_from => [ 'nonstop-common',
@@ -297,6 +306,7 @@
'nonstop-efloat-itanium',
'nonstop-model-floss', 'nonstop-model-spt' ],
multilib => '-spt',
+ multibin => '-spt',
},
'nonstop-nse_g' => {
inherit_from => [ 'nonstop-common',
diff --git a/Configurations/README.md b/Configurations/README.md
index 53f2277f8c..4b6e4bbee2 100644
--- a/Configurations/README.md
+++ b/Configurations/README.md
@@ -203,6 +203,13 @@ In each table entry, the following keys are significant:
to have the different variants in different
directories.
+ multibin => On systems that support having multiple
+ implementations of a library and binaries
+ (typically a 32-bit and a 64-bit variant),
+ this is used to have the different variants
+ in different binary directories. This setting
+ works in conjunction with multilib.
+
bn_ops => Building options (was just bignum options in
the earlier history of this option, hence the
name). This is a string of words that describe
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
index a72fdd558b..db65f18074 100644
--- a/Configurations/unix-Makefile.tmpl
+++ b/Configurations/unix-Makefile.tmpl
@@ -311,6 +311,14 @@ MODULESDIR=$(libdir)/ossl-modules
# libraries and applications
LIBRPATH=$(libdir)
+BINDIR={- our $bindir = $config{bindir};
+ unless ($bindir) {
+ $bindir = "bin$target{multibin}";
+ }
+ file_name_is_absolute($bindir) ? "" : $bindir -}
+bindir={- file_name_is_absolute($bindir)
+ ? $bindir : '$(INSTALLTOP)/$(BINDIR)' -}
+
MANDIR=$(INSTALLTOP)/share/man
DOCDIR=$(INSTALLTOP)/share/doc/$(BASENAME)
HTMLDIR=$(DOCDIR)/html
@@ -871,18 +879,18 @@ install_runtime_libs: build_libs
@ : {- output_off() if windowsdll(); "" -}
@$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(libdir)
@ : {- output_on() if windowsdll(); output_off() unless windowsdll(); "" -}
- @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(INSTALLTOP)/bin
+ @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(bindir)/
@ : {- output_on() unless windowsdll(); "" -}
@$(ECHO) "*** Installing runtime libraries"
@set -e; for s in dummy $(INSTALL_SHLIBS); do \
if [ "$$s" = "dummy" ]; then continue; fi; \
fn=`basename $$s`; \
: {- output_off() unless windowsdll(); "" -}; \
- $(ECHO) "install $$s -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
- cp $$s $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
- chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
- mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \
- $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
+ $(ECHO) "install $$s -> $(DESTDIR)$(bindir)/$$fn"; \
+ cp $$s $(DESTDIR)$(bindir)/$$fn.new; \
+ chmod 755 $(DESTDIR)$(bindir)/$$fn.new; \
+ mv -f $(DESTDIR)$(bindir)/$$fn.new \
+ $(DESTDIR)$(bindir)/$$fn; \
: {- output_on() unless windowsdll(); "" -}{- output_off() if windowsdll(); "" -}; \
$(ECHO) "install $$s -> $(DESTDIR)$(libdir)/$$fn"; \
cp $$s $(DESTDIR)$(libdir)/$$fn.new; \
@@ -894,25 +902,25 @@ install_runtime_libs: build_libs
install_programs: install_runtime_libs build_programs
@[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
- @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(INSTALLTOP)/bin
+ @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(bindir)
@$(ECHO) "*** Installing runtime programs"
@set -e; for x in dummy $(INSTALL_PROGRAMS); do \
if [ "$$x" = "dummy" ]; then continue; fi; \
fn=`basename $$x`; \
- $(ECHO) "install $$x -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
- cp $$x $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
- chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
- mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \
- $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
+ $(ECHO) "install $$x -> $(DESTDIR)$(bindir)/$$fn"; \
+ cp $$x $(DESTDIR)$(bindir)/$$fn.new; \
+ chmod 755 $(DESTDIR)$(bindir)/$$fn.new; \
+ mv -f $(DESTDIR)$(bindir)/$$fn.new \
+ $(DESTDIR)$(bindir)/$$fn; \
done
@set -e; for x in dummy $(BIN_SCRIPTS); do \
if [ "$$x" = "dummy" ]; then continue; fi; \
fn=`basename $$x`; \
- $(ECHO) "install $$x -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
- cp $$x $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
- chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
- mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \
- $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
+ $(ECHO) "install $$x -> $(DESTDIR)$(bindir)/$$fn"; \
+ cp $$x $(DESTDIR)$(bindir)/$$fn.new; \
+ chmod 755 $(DESTDIR)$(bindir)/$$fn.new; \
+ mv -f $(DESTDIR)$(bindir)/$$fn.new \
+ $(DESTDIR)$(bindir)/$$fn; \
done
uninstall_runtime: uninstall_programs uninstall_runtime_libs
@@ -923,17 +931,17 @@ uninstall_programs:
do \
if [ "$$x" = "dummy" ]; then continue; fi; \
fn=`basename $$x`; \
- $(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
- $(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
+ $(ECHO) "$(RM) $(DESTDIR)$(bindir)/$$fn"; \
+ $(RM) $(DESTDIR)$(bindir)/$$fn; \
done;
@set -e; for x in dummy $(BIN_SCRIPTS); \
do \
if [ "$$x" = "dummy" ]; then continue; fi; \
fn=`basename $$x`; \
- $(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
- $(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
+ $(ECHO) "$(RM) $(DESTDIR)$(bindir)/$$fn"; \
+ $(RM) $(DESTDIR)$(bindir)/$$fn; \
done
- -$(RMDIR) $(DESTDIR)$(INSTALLTOP)/bin
+ -$(RMDIR) $(DESTDIR)$(bindir)
uninstall_runtime_libs:
@$(ECHO) "*** Uninstalling runtime libraries"
@@ -941,8 +949,8 @@ uninstall_runtime_libs:
@set -e; for s in dummy $(INSTALL_SHLIBS); do \
if [ "$$s" = "dummy" ]; then continue; fi; \
fn=`basename $$s`; \
- $(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
- $(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
+ $(ECHO) "$(RM) $(DESTDIR)$(bindir)/$$fn"; \
+ $(RM) $(DESTDIR)$(bindir)/$$fn; \
done
@ : {- output_on() unless windowsdll(); "" -}