diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 52b23ce4a3..6a8d839713 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1280,6 +1280,7 @@ my %targets = ( sys_id => "WIN64I", bn_asm_src => sub { return undef unless @_; my $r=join(" ",@_); $r=~s|bn-ia64.s|bn_asm.c|; $r; }, + uplink_arch => 'ia64', perlasm_scheme => "ias", multilib => "-ia64", }, @@ -1293,6 +1294,7 @@ my %targets = ( sys_id => "WIN64A", bn_asm_src => sub { return undef unless @_; my $r=join(" ",@_); $r=~s|asm/x86_64-gcc|bn_asm|; $r; }, + uplink_arch => 'x86_64', perlasm_scheme => "auto", multilib => "-x64", }, @@ -1306,6 +1308,7 @@ my %targets = ( asflags => sub { vc_win32_info()->{asflags} }, sys_id => "WIN32", bn_ops => add("BN_LLONG"), + uplink_arch => 'x86', perlasm_scheme => sub { vc_win32_info()->{perlasm_scheme} }, # "WOW" stands for "Windows on Windows", and "VC-WOW" engages # some installation path heuristics in windows-makefile.tmpl... @@ -1387,15 +1390,16 @@ my %targets = ( cflags => "-m32", sys_id => "MINGW32", bn_ops => add("BN_LLONG"), + uplink_arch => 'x86', perlasm_scheme => "coff", shared_rcflag => "--target=pe-i386", multilib => "", }, "mingw64" => { - # As for OPENSSL_USE_APPLINK. Applink makes it possible to use + # As for uplink_arch. Applink makes it possible to use # .dll compiled with one compiler with application compiled with # another compiler. It's possible to engage Applink support in - # mingw64 build, but it's not done, because till mingw64 + # mingw64 build, but it's not done, because until mingw64 # supports structured exception handling, one can't seriously # consider its binaries for using with non-mingw64 run-time # environment. And as mingw64 is always consistent with itself, @@ -1404,6 +1408,7 @@ my %targets = ( cflags => "-m64", sys_id => "MINGW64", bn_ops => add("SIXTY_FOUR_BIT"), + uplink_arch => undef, perlasm_scheme => "mingw64", shared_rcflag => "--target=pe-x86-64", multilib => "64", diff --git a/Configurations/50-masm.conf b/Configurations/50-masm.conf index 2c55dddc2a..345a2402ef 100644 --- a/Configurations/50-masm.conf +++ b/Configurations/50-masm.conf @@ -18,6 +18,7 @@ my %targets = ( sys_id => "WIN64A", bn_asm_src => sub { return undef unless @_; my $r=join(" ",@_); $r=~s|asm/x86_64-gcc|bn_asm|; $r; }, + uplink_arch => 'x86_64', perlasm_scheme => "masm", }, ); diff --git a/Configurations/README b/Configurations/README index 8efabb37aa..9d7c67d53c 100644 --- a/Configurations/README +++ b/Configurations/README @@ -165,6 +165,11 @@ In each table entry, the following keys are significant: that use dlopen() et al but do not have fcntl.h), "DL" (shl_load() et al), "WIN32" and "VMS". + uplink_arch => The architecture to be used for compiling uplink + source. This acts as a selector in build.info files. + This is separate from asm_arch because it's compiled + even when 'no-asm' is given, even though it contains + assembler source. perlasm_scheme => The perlasm method used to create the assembler files used when compiling with assembler implementations. diff --git a/Configure b/Configure index c238907bee..2aed8fac61 100755 --- a/Configure +++ b/Configure @@ -1135,6 +1135,10 @@ foreach my $feature (@{$target{enable}}) { delete $disabled{$feature}; } } + +# If uplink_arch isn't defined, disable uplink +$disabled{uplink} = 'no uplink_arch' unless (defined $target{uplink_arch}); + disable(); # Run a cascade now $target{CXXFLAGS}//=$target{CFLAGS} if $target{CXX};