forked from rpms/glibc
		
	* Thu Oct 13 2022 Arjun Shankar <arjun@redhat.com> - 2.34-48 - Handle non-hostname CNAME aliases during name resolution (#2129005) - Sync with upstream branch release/2.34/master, commit e3976287b22422787f3cc6fc9adda58304b55bd9: - nscd: Drop local address tuple variable [BZ #29607] - x86-64: Require BMI1/BMI2 for AVX2 strrchr and wcsrchr implementations - x86-64: Require BMI2 and LZCNT for AVX2 memrchr implementation - x86-64: Require BMI2 for AVX2 (raw|w)memchr implementations - x86-64: Require BMI2 for AVX2 wcs(n)cmp implementations - x86-64: Require BMI2 for AVX2 strncmp implementation - x86-64: Require BMI2 for AVX2 strcmp implementation - x86-64: Require BMI2 for AVX2 str(n)casecmp implementations - x86: include BMI1 and BMI2 in x86-64-v3 level - nptl: Add backoff mechanism to spinlock loop - sysdeps: Add 'get_fast_jitter' interace in fast-jitter.h - nptl: Effectively skip CAS in spinlock loop - Move assignment out of the CAS condition - Add LLL_MUTEX_READ_LOCK [BZ #28537] - Avoid extra load with CAS in __pthread_mutex_clocklock_common [BZ #28537] - Avoid extra load with CAS in __pthread_mutex_lock_full [BZ #28537] - resolv: Fix building tst-resolv-invalid-cname for earlier C standards - nss_dns: Rewrite _nss_dns_gethostbyname4_r using current interfaces - resolv: Add new tst-resolv-invalid-cname - nss_dns: In gaih_getanswer_slice, skip strange aliases (bug 12154) (#2129005) - nss_dns: Rewrite getanswer_r to match getanswer_ptr (bug 12154, bug 29305) - nss_dns: Remove remnants of IPv6 address mapping - nss_dns: Rewrite _nss_dns_gethostbyaddr2_r and getanswer_ptr - nss_dns: Split getanswer_ptr from getanswer_r - resolv: Add DNS packet parsing helpers geared towards wire format - resolv: Add internal __ns_name_length_uncompressed function - resolv: Add the __ns_samebinaryname function - resolv: Add internal __res_binary_hnok function - resolv: Add tst-resolv-aliases - resolv: Add tst-resolv-byaddr for testing reverse lookup - gconv: Use 64-bit interfaces in gconv_parseconfdir (bug 29583) - elf: Fix hwcaps string size overestimation - nscd: Fix netlink cache invalidation if epoll is used [BZ #29415] - Apply asm redirections in wchar.h before first use - Apply asm redirections in stdio.h before first use [BZ #27087] - elf: Call __libc_early_init for reused namespaces (bug 29528) Resolves: #2129005 Resolves: #2116960
		
			
				
	
	
		
			56 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| commit e1561d8cf005a23bcaf514802854b493829a25b1
 | |
| Author: Aurelien Jarno <aurelien@aurel32.net>
 | |
| Date:   Mon Oct 3 23:16:46 2022 +0200
 | |
| 
 | |
|     x86-64: Require BMI2 for AVX2 strcmp implementation
 | |
|     
 | |
|     The AVX2 strcmp implementation uses the 'bzhi' instruction, which
 | |
|     belongs to the BMI2 CPU feature.
 | |
|     
 | |
|     NB: It also uses the 'tzcnt' BMI1 instruction, but it is executed as BSF
 | |
|     as BSF if the CPU doesn't support TZCNT, and produces the same result
 | |
|     for non-zero input.
 | |
|     
 | |
|     Partially fixes: b77b06e0e296 ("x86: Optimize strcmp-avx2.S")
 | |
|     Partially resolves: BZ #29611
 | |
|     
 | |
|     Reviewed-by: Noah Goldstein  <goldstein.w.n@gmail.com>
 | |
|     (cherry picked from commit 4d64c6445735e9b34e2ac8e369312cbfc2f88e17)
 | |
| 
 | |
| diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
 | |
| index ca64b34c146a76f9..70931f15985334af 100644
 | |
| --- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c
 | |
| +++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c
 | |
| @@ -503,10 +503,12 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array,
 | |
|    /* Support sysdeps/x86_64/multiarch/strcmp.c.  */
 | |
|    IFUNC_IMPL (i, name, strcmp,
 | |
|  	      IFUNC_IMPL_ADD (array, i, strcmp,
 | |
| -			      CPU_FEATURE_USABLE (AVX2),
 | |
| +			      (CPU_FEATURE_USABLE (AVX2)
 | |
| +			       && CPU_FEATURE_USABLE (BMI2)),
 | |
|  			      __strcmp_avx2)
 | |
|  	      IFUNC_IMPL_ADD (array, i, strcmp,
 | |
|  			      (CPU_FEATURE_USABLE (AVX2)
 | |
| +			       && CPU_FEATURE_USABLE (BMI2)
 | |
|  			       && CPU_FEATURE_USABLE (RTM)),
 | |
|  			      __strcmp_avx2_rtm)
 | |
|  	      IFUNC_IMPL_ADD (array, i, strcmp,
 | |
| diff --git a/sysdeps/x86_64/multiarch/strcmp.c b/sysdeps/x86_64/multiarch/strcmp.c
 | |
| index b457fb4c150e4407..0c0cd20a03278a2b 100644
 | |
| --- a/sysdeps/x86_64/multiarch/strcmp.c
 | |
| +++ b/sysdeps/x86_64/multiarch/strcmp.c
 | |
| @@ -40,11 +40,11 @@ IFUNC_SELECTOR (void)
 | |
|    const struct cpu_features* cpu_features = __get_cpu_features ();
 | |
|  
 | |
|    if (CPU_FEATURE_USABLE_P (cpu_features, AVX2)
 | |
| +      && CPU_FEATURE_USABLE_P (cpu_features, BMI2)
 | |
|        && CPU_FEATURES_ARCH_P (cpu_features, AVX_Fast_Unaligned_Load))
 | |
|      {
 | |
|        if (CPU_FEATURE_USABLE_P (cpu_features, AVX512VL)
 | |
| -	  && CPU_FEATURE_USABLE_P (cpu_features, AVX512BW)
 | |
| -	  && CPU_FEATURE_USABLE_P (cpu_features, BMI2))
 | |
| +	  && CPU_FEATURE_USABLE_P (cpu_features, AVX512BW))
 | |
|  	return OPTIMIZE (evex);
 | |
|  
 | |
|        if (CPU_FEATURE_USABLE_P (cpu_features, RTM))
 |