mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-31 22:10:34 +03:00 
			
		
		
		
	The posix_fadvise consolidation broke posix_fadvise for MIPS o32, so resulting in posix/tst-posix_fadvise failing. MIPS o32 (and the other ABIs) has only the posix_fadvise64 syscall, which acts like posix_fadvise64_64 (in the o32 case, because of the alignment argument it's actually a 7-argument syscall). The generic posix_fadvise implementation presumes that if __NR_fadvise64 is defined, it's for the case where a single len argument is passed to the syscall rather than two syscall arguments in the case of a 32-bit system. The generic posix_fadvise64 works fine for this case (defining __NR_fadvise64_64 to __NR_fadvise64 as needed). ARM has a posix_fadvise.c that uses __posix_fadvise64_l64 in posix_fadvise, and that approach also works for MIPS o32, so this patch makes MIPS o32 include the ARM file. Tested for MIPS o32. * sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c: New file.
		
			
				
	
	
		
			5 lines
		
	
	
		
			238 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			5 lines
		
	
	
		
			238 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* The o32 MIPS fadvise64 syscall behaves as fadvise64_64.  The ARM
 | |
|    implementation of posix_fadvise works correctly for this case; the
 | |
|    generic implementation mishandles it.  */
 | |
| #include <sysdeps/unix/sysv/linux/arm/posix_fadvise.c>
 |