mirror of https://github.com/openssl/openssl.git
				
				
				
			Configuration: compute openssl_other_defines and related info later
The computation of macros and configdata.pm related data from %disabled was done much too early, leaving later disablings without real support. Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/10565)
This commit is contained in:
		
							parent
							
								
									2b5827df6d
								
							
						
					
					
						commit
						a53a694c57
					
				
							
								
								
									
										84
									
								
								Configure
								
								
								
								
							
							
						
						
									
										84
									
								
								Configure
								
								
								
								
							|  | @ -1187,43 +1187,6 @@ foreach (keys %useradd) { | ||||||
| # Allow overriding the build file name | # Allow overriding the build file name | ||||||
| $config{build_file} = env('BUILDFILE') || $target{build_file} || "Makefile"; | $config{build_file} = env('BUILDFILE') || $target{build_file} || "Makefile"; | ||||||
| 
 | 
 | ||||||
| my %disabled_info = ();         # For configdata.pm |  | ||||||
| foreach my $what (sort keys %disabled) { |  | ||||||
|     $config{options} .= " no-$what"; |  | ||||||
| 
 |  | ||||||
|     if (!grep { $what eq $_ } ( 'buildtest-c++', 'threads', 'shared', 'pic', |  | ||||||
|                                 'dynamic-engine', 'makedepend', |  | ||||||
|                                 'zlib-dynamic', 'zlib', 'sse2' )) { |  | ||||||
|         (my $WHAT = uc $what) =~ s|-|_|g; |  | ||||||
| 
 |  | ||||||
|         # Fix up C macro end names |  | ||||||
|         $WHAT = "RMD160" if $what eq "ripemd"; |  | ||||||
| 
 |  | ||||||
|         # fix-up crypto/directory name(s) |  | ||||||
|         $what = "ripemd" if $what eq "rmd160"; |  | ||||||
|         $what = "whrlpool" if $what eq "whirlpool"; |  | ||||||
| 
 |  | ||||||
|         my $macro = $disabled_info{$what}->{macro} = "OPENSSL_NO_$WHAT"; |  | ||||||
| 
 |  | ||||||
|         if ((grep { $what eq $_ } @{$config{sdirs}}) |  | ||||||
|                 && $what ne 'async' && $what ne 'err' && $what ne 'dso') { |  | ||||||
|             @{$config{sdirs}} = grep { $what ne $_} @{$config{sdirs}}; |  | ||||||
|             $disabled_info{$what}->{skipped} = [ catdir('crypto', $what) ]; |  | ||||||
| 
 |  | ||||||
|             if ($what ne 'engine') { |  | ||||||
|                 push @{$config{openssl_algorithm_defines}}, $macro; |  | ||||||
|             } else { |  | ||||||
|                 @{$config{dirs}} = grep !/^engines$/, @{$config{dirs}}; |  | ||||||
|                 push @{$disabled_info{engine}->{skipped}}, catdir('engines'); |  | ||||||
|                 push @{$config{openssl_other_defines}}, $macro; |  | ||||||
|             } |  | ||||||
|         } else { |  | ||||||
|             push @{$config{openssl_other_defines}}, $macro; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Make sure build_scheme is consistent. | # Make sure build_scheme is consistent. | ||||||
| $target{build_scheme} = [ $target{build_scheme} ] | $target{build_scheme} = [ $target{build_scheme} ] | ||||||
|     if ref($target{build_scheme}) ne "ARRAY"; |     if ref($target{build_scheme}) ne "ARRAY"; | ||||||
|  | @ -1313,10 +1276,8 @@ if ($target{shared_target} eq "") | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| if ($disabled{"dynamic-engine"}) { | if ($disabled{"dynamic-engine"}) { | ||||||
|         push @{$config{openssl_other_defines}}, "OPENSSL_NO_DYNAMIC_ENGINE"; |  | ||||||
|         $config{dynamic_engines} = 0; |         $config{dynamic_engines} = 0; | ||||||
| } else { | } else { | ||||||
|         push @{$config{openssl_other_defines}}, "OPENSSL_NO_STATIC_ENGINE"; |  | ||||||
|         $config{dynamic_engines} = 1; |         $config{dynamic_engines} = 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -1602,8 +1563,6 @@ unless ($disabled{devcryptoeng}) { | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| push @{$config{openssl_other_defines}}, "OPENSSL_NO_AFALGENG" if ($disabled{afalgeng}); |  | ||||||
| 
 |  | ||||||
| # Get the extra flags used when building shared libraries and modules.  We | # Get the extra flags used when building shared libraries and modules.  We | ||||||
| # do this late because some of them depend on %disabled. | # do this late because some of them depend on %disabled. | ||||||
| 
 | 
 | ||||||
|  | @ -1647,6 +1606,49 @@ $target{module_ldflags} = $target{shared_ldflag} unless defined $target{module_l | ||||||
| 
 | 
 | ||||||
| # ALL MODIFICATIONS TO %disabled, %config and %target MUST BE DONE FROM HERE ON | # ALL MODIFICATIONS TO %disabled, %config and %target MUST BE DONE FROM HERE ON | ||||||
| 
 | 
 | ||||||
|  | my %disabled_info = ();         # For configdata.pm | ||||||
|  | foreach my $what (sort keys %disabled) { | ||||||
|  |     $config{options} .= " no-$what"; | ||||||
|  | 
 | ||||||
|  |     if (!grep { $what eq $_ } ( 'buildtest-c++', 'threads', 'shared', 'pic', | ||||||
|  |                                 'dynamic-engine', 'makedepend', | ||||||
|  |                                 'zlib-dynamic', 'zlib', 'sse2' )) { | ||||||
|  |         (my $WHAT = uc $what) =~ s|-|_|g; | ||||||
|  | 
 | ||||||
|  |         # Fix up C macro end names | ||||||
|  |         $WHAT = "RMD160" if $what eq "ripemd"; | ||||||
|  | 
 | ||||||
|  |         # fix-up crypto/directory name(s) | ||||||
|  |         $what = "ripemd" if $what eq "rmd160"; | ||||||
|  |         $what = "whrlpool" if $what eq "whirlpool"; | ||||||
|  | 
 | ||||||
|  |         my $macro = $disabled_info{$what}->{macro} = "OPENSSL_NO_$WHAT"; | ||||||
|  | 
 | ||||||
|  |         if ((grep { $what eq $_ } @{$config{sdirs}}) | ||||||
|  |                 && $what ne 'async' && $what ne 'err' && $what ne 'dso') { | ||||||
|  |             @{$config{sdirs}} = grep { $what ne $_} @{$config{sdirs}}; | ||||||
|  |             $disabled_info{$what}->{skipped} = [ catdir('crypto', $what) ]; | ||||||
|  | 
 | ||||||
|  |             if ($what ne 'engine') { | ||||||
|  |                 push @{$config{openssl_algorithm_defines}}, $macro; | ||||||
|  |             } else { | ||||||
|  |                 @{$config{dirs}} = grep !/^engines$/, @{$config{dirs}}; | ||||||
|  |                 push @{$disabled_info{engine}->{skipped}}, catdir('engines'); | ||||||
|  |                 push @{$config{openssl_other_defines}}, $macro; | ||||||
|  |             } | ||||||
|  |         } else { | ||||||
|  |             push @{$config{openssl_other_defines}}, $macro; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | if ($disabled{"dynamic-engine"}) { | ||||||
|  |     push @{$config{openssl_other_defines}}, "OPENSSL_NO_DYNAMIC_ENGINE"; | ||||||
|  | } else { | ||||||
|  |     push @{$config{openssl_other_defines}}, "OPENSSL_NO_STATIC_ENGINE"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| # If we use the unified build, collect information from build.info files | # If we use the unified build, collect information from build.info files | ||||||
| my %unified_info = (); | my %unified_info = (); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue