mirror of https://github.com/openssl/openssl.git
				
				
				
			LoongArch: Fix output file name detection for Perl scripts
We were using the first (or second) argument containing a '.' as the
output name file, but it may be incorrect as -march=la64v1.0 may be in
the command line.  If the builder specifies -march=la64v1.0 in the
CFLAGS, the script will write to a file named "-march=la64v1.0" and
cause a build error with cryptic message:
    ld: crypto/pem/loader_attic-dso-pvkfmt.o: in function `i2b_PVK':
    .../openssl-3.4.1/crypto/pem/pvkfmt.c:1070:(.text+0x11a8): undefined reference to `OPENSSL_cleanse'
Adapt the approach of ARM and RISC-V (they have similar flags like
-march=v8.1-a or -misa-spec=2.2) to fix the issue.
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26717)
(cherry picked from commit f48c14e94e)
			
			
This commit is contained in:
		
							parent
							
								
									cf91bdc797
								
							
						
					
					
						commit
						0aca055997
					
				|  | @ -29,9 +29,9 @@ | ||||||
| ($vr0,$vr1,$vr2,$vr3,$vr4,$vr5,$vr6,$vr7,$vr8,$vr9,$vr10,$vr11,$vr12,$vr13,$vr14,$vr15,$vr16,$vr17,$vr18,$vr19)=map("\$vr$_",(0..19)); | ($vr0,$vr1,$vr2,$vr3,$vr4,$vr5,$vr6,$vr7,$vr8,$vr9,$vr10,$vr11,$vr12,$vr13,$vr14,$vr15,$vr16,$vr17,$vr18,$vr19)=map("\$vr$_",(0..19)); | ||||||
| ($fp)=map("\$r$_",(22)); | ($fp)=map("\$r$_",(22)); | ||||||
| 
 | 
 | ||||||
| for (@ARGV) {   $output=$_ if (/\w[\w\-]*\.\w+$/);      } | # $output is the last argument if it looks like a file (it has an extension) | ||||||
| open STDOUT,">$output"; | my $output; | ||||||
| while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {} | $output = $#ARGV >= 0 && $ARGV[$#ARGV] =~ m|\.\w+$| ? pop : undef; | ||||||
| open STDOUT,">$output"; | open STDOUT,">$output"; | ||||||
| 
 | 
 | ||||||
| $PREFIX="vpaes"; | $PREFIX="vpaes"; | ||||||
|  |  | ||||||
|  | @ -37,8 +37,9 @@ my ($xr0,$xr1,$xr2,$xr3,$xr4,$xr5,$xr6,$xr7,$xr8,$xr9,$xr10, | ||||||
|     $xr20,$xr21,$xr22,$xr23,$xr24,$xr25,$xr26,$xr27,$xr28, |     $xr20,$xr21,$xr22,$xr23,$xr24,$xr25,$xr26,$xr27,$xr28, | ||||||
|     $xr29,$xr30,$xr31)=map("\$xr$_",(0..31)); |     $xr29,$xr30,$xr31)=map("\$xr$_",(0..31)); | ||||||
| 
 | 
 | ||||||
|  | # $output is the last argument if it looks like a file (it has an extension) | ||||||
| my $output; | my $output; | ||||||
| for (@ARGV) {	$output=$_ if (/\w[\w\-]*\.\w+$/);	} | $output = $#ARGV >= 0 && $ARGV[$#ARGV] =~ m|\.\w+$| ? pop : undef; | ||||||
| open STDOUT,">$output"; | open STDOUT,">$output"; | ||||||
| 
 | 
 | ||||||
| # Input parameter block | # Input parameter block | ||||||
|  |  | ||||||
|  | @ -16,10 +16,9 @@ | ||||||
| ($vr0,$vr1,$vr2,$vr3,$vr4,$vr5,$vr6,$vr7,$vr8,$vr9,$vr10,$vr11,$vr12,$vr13,$vr14,$vr15,$vr16,$vr17,$vr18,$vr19)=map("\$vr$_",(0..19)); | ($vr0,$vr1,$vr2,$vr3,$vr4,$vr5,$vr6,$vr7,$vr8,$vr9,$vr10,$vr11,$vr12,$vr13,$vr14,$vr15,$vr16,$vr17,$vr18,$vr19)=map("\$vr$_",(0..19)); | ||||||
| ($fp)=map("\$r$_",(22)); | ($fp)=map("\$r$_",(22)); | ||||||
| 
 | 
 | ||||||
| 
 | # $output is the last argument if it looks like a file (it has an extension) | ||||||
| for (@ARGV) {   $output=$_ if (/\w[\w\-]*\.\w+$/);      } | my $output; | ||||||
| open STDOUT,">$output"; | $output = $#ARGV >= 0 && $ARGV[$#ARGV] =~ m|\.\w+$| ? pop : undef; | ||||||
| while (($output=shift) && ($output!~/\w[\w\-]*\.\w+$/)) {} |  | ||||||
| open STDOUT,">$output"; | open STDOUT,">$output"; | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue