forked from rpms/glibc
		
	
							parent
							
								
									3a04eb2e18
								
							
						
					
					
						commit
						5d55f30bfc
					
				
							
								
								
									
										36
									
								
								glibc-rh2222188-6.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								glibc-rh2222188-6.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,36 @@ | ||||
| commit c8126360dfa98024cc40bce915e126309993cdf9 | ||||
| Author: Joseph Myers <joseph@codesourcery.com> | ||||
| Date:   Mon Aug 23 16:18:42 2021 +0000 | ||||
| 
 | ||||
|     Fix iconv build with GCC mainline | ||||
|      | ||||
|     Current GCC mainline produces -Wstringop-overflow errors building some | ||||
|     iconv converters, as discussed at | ||||
|     <https://gcc.gnu.org/pipermail/gcc/2021-July/236943.html>.  Add an | ||||
|     __builtin_unreachable call as suggested so that GCC can see the case | ||||
|     that would involve a buffer overflow is unreachable; because the | ||||
|     unreachability depends on valid conversion state being passed into the | ||||
|     function from previous conversion steps, it's not something the | ||||
|     compiler can reasonably deduce on its own. | ||||
|      | ||||
|     Tested with build-many-glibcs.py that, together with | ||||
|     <https://sourceware.org/pipermail/libc-alpha/2021-August/130244.html>, | ||||
|     it restores the glibc build for powerpc-linux-gnu. | ||||
| 
 | ||||
| diff --git a/iconv/loop.c b/iconv/loop.c
 | ||||
| index 062cc1b868c1efa5..560a5f6394e8faf6 100644
 | ||||
| --- a/iconv/loop.c
 | ||||
| +++ b/iconv/loop.c
 | ||||
| @@ -436,6 +436,12 @@ SINGLE(LOOPFCT) (struct __gconv_step *step,
 | ||||
|      return __GCONV_FULL_OUTPUT; | ||||
|   | ||||
|    /*  Now add characters from the normal input buffer.  */ | ||||
| +  if (inlen >= MAX_NEEDED_INPUT)
 | ||||
| +    /* Avoid a -Wstringop-overflow= warning when this loop is
 | ||||
| +       unrolled.  The compiler cannot otherwise see that this is
 | ||||
| +       unreachable because it depends on (state->__count & 7) not
 | ||||
| +       being too large after a previous conversion step.  */
 | ||||
| +    __builtin_unreachable ();
 | ||||
|    do | ||||
|      bytebuf[inlen++] = *inptr++; | ||||
|    while (inlen < MAX_NEEDED_INPUT && inptr < inend); | ||||
| @ -155,7 +155,7 @@ end \ | ||||
| Summary: The GNU libc libraries | ||||
| Name: glibc | ||||
| Version: %{glibcversion} | ||||
| Release: 80%{?dist} | ||||
| Release: 81%{?dist} | ||||
| 
 | ||||
| # In general, GPLv2+ is used by programs, LGPLv2+ is used for | ||||
| # libraries. | ||||
| @ -745,6 +745,7 @@ Patch504: glibc-rh2213907-5.patch | ||||
| Patch505: glibc-rh2213907-6.patch | ||||
| Patch506: glibc-rh2166710-2.patch | ||||
| Patch507: glibc-rh2166710-3.patch | ||||
| Patch508: glibc-rh2222188-6.patch | ||||
| 
 | ||||
| ############################################################################## | ||||
| # Continued list of core "glibc" package information: | ||||
| @ -2902,6 +2903,9 @@ update_gconv_modules_cache () | ||||
| %endif | ||||
| 
 | ||||
| %changelog | ||||
| * Mon Aug 14 2023 Florian Weimer <fweimer@redhat.com> - 2.34-81 | ||||
| - Fix additional GCC 13 build issue (#2222188) | ||||
| 
 | ||||
| * Fri Aug 11 2023 Florian Weimer <fweimer@redhat.com> - 2.34-80 | ||||
| - Fix AMD cache size computation for hypervisors, old CPUs (#2166710) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user