mirror of https://github.com/openssl/openssl
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)
This commit is contained in:
parent
c99209264d
commit
d793a3253b
|
@ -202,6 +202,7 @@
|
||||||
'nonstop-efloat-x86_64',
|
'nonstop-efloat-x86_64',
|
||||||
'nonstop-model-put' ],
|
'nonstop-model-put' ],
|
||||||
multilib => '-put',
|
multilib => '-put',
|
||||||
|
multibin => '-put',
|
||||||
},
|
},
|
||||||
'nonstop-nsx_64' => {
|
'nonstop-nsx_64' => {
|
||||||
inherit_from => [ 'nonstop-common',
|
inherit_from => [ 'nonstop-common',
|
||||||
|
@ -209,6 +210,7 @@
|
||||||
'nonstop-lp64-x86_64',
|
'nonstop-lp64-x86_64',
|
||||||
'nonstop-efloat-x86_64' ],
|
'nonstop-efloat-x86_64' ],
|
||||||
multilib => '64',
|
multilib => '64',
|
||||||
|
multibin => '64',
|
||||||
disable => ['threads'],
|
disable => ['threads'],
|
||||||
},
|
},
|
||||||
'nonstop-nsx_64_put' => {
|
'nonstop-nsx_64_put' => {
|
||||||
|
@ -218,6 +220,7 @@
|
||||||
'nonstop-efloat-x86_64',
|
'nonstop-efloat-x86_64',
|
||||||
'nonstop-model-put' ],
|
'nonstop-model-put' ],
|
||||||
multilib => '64-put',
|
multilib => '64-put',
|
||||||
|
multibin => '64-put',
|
||||||
},
|
},
|
||||||
'nonstop-nsx_spt' => {
|
'nonstop-nsx_spt' => {
|
||||||
inherit_from => [ 'nonstop-common',
|
inherit_from => [ 'nonstop-common',
|
||||||
|
@ -226,6 +229,7 @@
|
||||||
'nonstop-efloat-x86_64',
|
'nonstop-efloat-x86_64',
|
||||||
'nonstop-model-spt' ],
|
'nonstop-model-spt' ],
|
||||||
multilib => '-spt',
|
multilib => '-spt',
|
||||||
|
multibin => '-spt',
|
||||||
},
|
},
|
||||||
'nonstop-nsx_spt_floss' => {
|
'nonstop-nsx_spt_floss' => {
|
||||||
inherit_from => [ 'nonstop-common',
|
inherit_from => [ 'nonstop-common',
|
||||||
|
@ -235,6 +239,7 @@
|
||||||
'nonstop-model-floss',
|
'nonstop-model-floss',
|
||||||
'nonstop-model-spt'],
|
'nonstop-model-spt'],
|
||||||
multilib => '-spt',
|
multilib => '-spt',
|
||||||
|
multibin => '-spt',
|
||||||
},
|
},
|
||||||
'nonstop-nsx_g' => {
|
'nonstop-nsx_g' => {
|
||||||
inherit_from => [ 'nonstop-common',
|
inherit_from => [ 'nonstop-common',
|
||||||
|
@ -265,6 +270,7 @@
|
||||||
'nonstop-efloat-itanium',
|
'nonstop-efloat-itanium',
|
||||||
'nonstop-model-put' ],
|
'nonstop-model-put' ],
|
||||||
multilib => '-put',
|
multilib => '-put',
|
||||||
|
multibin => '-put',
|
||||||
},
|
},
|
||||||
'nonstop-nse_64' => {
|
'nonstop-nse_64' => {
|
||||||
inherit_from => [ 'nonstop-common',
|
inherit_from => [ 'nonstop-common',
|
||||||
|
@ -272,6 +278,7 @@
|
||||||
'nonstop-lp64-itanium',
|
'nonstop-lp64-itanium',
|
||||||
'nonstop-efloat-itanium' ],
|
'nonstop-efloat-itanium' ],
|
||||||
multilib => '64',
|
multilib => '64',
|
||||||
|
multibin => '64',
|
||||||
disable => ['threads'],
|
disable => ['threads'],
|
||||||
},
|
},
|
||||||
'nonstop-nse_64_put' => {
|
'nonstop-nse_64_put' => {
|
||||||
|
@ -281,6 +288,7 @@
|
||||||
'nonstop-efloat-itanium',
|
'nonstop-efloat-itanium',
|
||||||
'nonstop-model-put' ],
|
'nonstop-model-put' ],
|
||||||
multilib => '64-put',
|
multilib => '64-put',
|
||||||
|
multibin => '64-put',
|
||||||
},
|
},
|
||||||
'nonstop-nse_spt' => {
|
'nonstop-nse_spt' => {
|
||||||
inherit_from => [ 'nonstop-common',
|
inherit_from => [ 'nonstop-common',
|
||||||
|
@ -289,6 +297,7 @@
|
||||||
'nonstop-efloat-itanium',
|
'nonstop-efloat-itanium',
|
||||||
'nonstop-model-spt' ],
|
'nonstop-model-spt' ],
|
||||||
multilib => '-spt',
|
multilib => '-spt',
|
||||||
|
multibin => '-spt',
|
||||||
},
|
},
|
||||||
'nonstop-nse_spt_floss' => {
|
'nonstop-nse_spt_floss' => {
|
||||||
inherit_from => [ 'nonstop-common',
|
inherit_from => [ 'nonstop-common',
|
||||||
|
@ -297,6 +306,7 @@
|
||||||
'nonstop-efloat-itanium',
|
'nonstop-efloat-itanium',
|
||||||
'nonstop-model-floss', 'nonstop-model-spt' ],
|
'nonstop-model-floss', 'nonstop-model-spt' ],
|
||||||
multilib => '-spt',
|
multilib => '-spt',
|
||||||
|
multibin => '-spt',
|
||||||
},
|
},
|
||||||
'nonstop-nse_g' => {
|
'nonstop-nse_g' => {
|
||||||
inherit_from => [ 'nonstop-common',
|
inherit_from => [ 'nonstop-common',
|
||||||
|
|
|
@ -203,6 +203,13 @@ In each table entry, the following keys are significant:
|
||||||
to have the different variants in different
|
to have the different variants in different
|
||||||
directories.
|
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
|
bn_ops => Building options (was just bignum options in
|
||||||
the earlier history of this option, hence the
|
the earlier history of this option, hence the
|
||||||
name). This is a string of words that describe
|
name). This is a string of words that describe
|
||||||
|
|
|
@ -311,6 +311,14 @@ MODULESDIR=$(libdir)/ossl-modules
|
||||||
# libraries and applications
|
# libraries and applications
|
||||||
LIBRPATH=$(libdir)
|
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
|
MANDIR=$(INSTALLTOP)/share/man
|
||||||
DOCDIR=$(INSTALLTOP)/share/doc/$(BASENAME)
|
DOCDIR=$(INSTALLTOP)/share/doc/$(BASENAME)
|
||||||
HTMLDIR=$(DOCDIR)/html
|
HTMLDIR=$(DOCDIR)/html
|
||||||
|
@ -871,18 +879,18 @@ install_runtime_libs: build_libs
|
||||||
@ : {- output_off() if windowsdll(); "" -}
|
@ : {- output_off() if windowsdll(); "" -}
|
||||||
@$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(libdir)
|
@$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(libdir)
|
||||||
@ : {- output_on() if windowsdll(); output_off() unless windowsdll(); "" -}
|
@ : {- 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(); "" -}
|
@ : {- output_on() unless windowsdll(); "" -}
|
||||||
@$(ECHO) "*** Installing runtime libraries"
|
@$(ECHO) "*** Installing runtime libraries"
|
||||||
@set -e; for s in dummy $(INSTALL_SHLIBS); do \
|
@set -e; for s in dummy $(INSTALL_SHLIBS); do \
|
||||||
if [ "$$s" = "dummy" ]; then continue; fi; \
|
if [ "$$s" = "dummy" ]; then continue; fi; \
|
||||||
fn=`basename $$s`; \
|
fn=`basename $$s`; \
|
||||||
: {- output_off() unless windowsdll(); "" -}; \
|
: {- output_off() unless windowsdll(); "" -}; \
|
||||||
$(ECHO) "install $$s -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
|
$(ECHO) "install $$s -> $(DESTDIR)$(bindir)/$$fn"; \
|
||||||
cp $$s $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
|
cp $$s $(DESTDIR)$(bindir)/$$fn.new; \
|
||||||
chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
|
chmod 755 $(DESTDIR)$(bindir)/$$fn.new; \
|
||||||
mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \
|
mv -f $(DESTDIR)$(bindir)/$$fn.new \
|
||||||
$(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
|
$(DESTDIR)$(bindir)/$$fn; \
|
||||||
: {- output_on() unless windowsdll(); "" -}{- output_off() if windowsdll(); "" -}; \
|
: {- output_on() unless windowsdll(); "" -}{- output_off() if windowsdll(); "" -}; \
|
||||||
$(ECHO) "install $$s -> $(DESTDIR)$(libdir)/$$fn"; \
|
$(ECHO) "install $$s -> $(DESTDIR)$(libdir)/$$fn"; \
|
||||||
cp $$s $(DESTDIR)$(libdir)/$$fn.new; \
|
cp $$s $(DESTDIR)$(libdir)/$$fn.new; \
|
||||||
|
@ -894,25 +902,25 @@ install_runtime_libs: build_libs
|
||||||
|
|
||||||
install_programs: install_runtime_libs build_programs
|
install_programs: install_runtime_libs build_programs
|
||||||
@[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
|
@[ -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"
|
@$(ECHO) "*** Installing runtime programs"
|
||||||
@set -e; for x in dummy $(INSTALL_PROGRAMS); do \
|
@set -e; for x in dummy $(INSTALL_PROGRAMS); do \
|
||||||
if [ "$$x" = "dummy" ]; then continue; fi; \
|
if [ "$$x" = "dummy" ]; then continue; fi; \
|
||||||
fn=`basename $$x`; \
|
fn=`basename $$x`; \
|
||||||
$(ECHO) "install $$x -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
|
$(ECHO) "install $$x -> $(DESTDIR)$(bindir)/$$fn"; \
|
||||||
cp $$x $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
|
cp $$x $(DESTDIR)$(bindir)/$$fn.new; \
|
||||||
chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
|
chmod 755 $(DESTDIR)$(bindir)/$$fn.new; \
|
||||||
mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \
|
mv -f $(DESTDIR)$(bindir)/$$fn.new \
|
||||||
$(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
|
$(DESTDIR)$(bindir)/$$fn; \
|
||||||
done
|
done
|
||||||
@set -e; for x in dummy $(BIN_SCRIPTS); do \
|
@set -e; for x in dummy $(BIN_SCRIPTS); do \
|
||||||
if [ "$$x" = "dummy" ]; then continue; fi; \
|
if [ "$$x" = "dummy" ]; then continue; fi; \
|
||||||
fn=`basename $$x`; \
|
fn=`basename $$x`; \
|
||||||
$(ECHO) "install $$x -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
|
$(ECHO) "install $$x -> $(DESTDIR)$(bindir)/$$fn"; \
|
||||||
cp $$x $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
|
cp $$x $(DESTDIR)$(bindir)/$$fn.new; \
|
||||||
chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
|
chmod 755 $(DESTDIR)$(bindir)/$$fn.new; \
|
||||||
mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \
|
mv -f $(DESTDIR)$(bindir)/$$fn.new \
|
||||||
$(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
|
$(DESTDIR)$(bindir)/$$fn; \
|
||||||
done
|
done
|
||||||
|
|
||||||
uninstall_runtime: uninstall_programs uninstall_runtime_libs
|
uninstall_runtime: uninstall_programs uninstall_runtime_libs
|
||||||
|
@ -923,17 +931,17 @@ uninstall_programs:
|
||||||
do \
|
do \
|
||||||
if [ "$$x" = "dummy" ]; then continue; fi; \
|
if [ "$$x" = "dummy" ]; then continue; fi; \
|
||||||
fn=`basename $$x`; \
|
fn=`basename $$x`; \
|
||||||
$(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
|
$(ECHO) "$(RM) $(DESTDIR)$(bindir)/$$fn"; \
|
||||||
$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
|
$(RM) $(DESTDIR)$(bindir)/$$fn; \
|
||||||
done;
|
done;
|
||||||
@set -e; for x in dummy $(BIN_SCRIPTS); \
|
@set -e; for x in dummy $(BIN_SCRIPTS); \
|
||||||
do \
|
do \
|
||||||
if [ "$$x" = "dummy" ]; then continue; fi; \
|
if [ "$$x" = "dummy" ]; then continue; fi; \
|
||||||
fn=`basename $$x`; \
|
fn=`basename $$x`; \
|
||||||
$(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
|
$(ECHO) "$(RM) $(DESTDIR)$(bindir)/$$fn"; \
|
||||||
$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
|
$(RM) $(DESTDIR)$(bindir)/$$fn; \
|
||||||
done
|
done
|
||||||
-$(RMDIR) $(DESTDIR)$(INSTALLTOP)/bin
|
-$(RMDIR) $(DESTDIR)$(bindir)
|
||||||
|
|
||||||
uninstall_runtime_libs:
|
uninstall_runtime_libs:
|
||||||
@$(ECHO) "*** Uninstalling runtime libraries"
|
@$(ECHO) "*** Uninstalling runtime libraries"
|
||||||
|
@ -941,8 +949,8 @@ uninstall_runtime_libs:
|
||||||
@set -e; for s in dummy $(INSTALL_SHLIBS); do \
|
@set -e; for s in dummy $(INSTALL_SHLIBS); do \
|
||||||
if [ "$$s" = "dummy" ]; then continue; fi; \
|
if [ "$$s" = "dummy" ]; then continue; fi; \
|
||||||
fn=`basename $$s`; \
|
fn=`basename $$s`; \
|
||||||
$(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
|
$(ECHO) "$(RM) $(DESTDIR)$(bindir)/$$fn"; \
|
||||||
$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
|
$(RM) $(DESTDIR)$(bindir)/$$fn; \
|
||||||
done
|
done
|
||||||
@ : {- output_on() unless windowsdll(); "" -}
|
@ : {- output_on() unless windowsdll(); "" -}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue