Merge "Move __set_errno to ndk_cruft.cpp."
This commit is contained in:
		@@ -36,20 +36,13 @@
 | 
				
			|||||||
// system these are the same size, but on a 64-bit system they're not.
 | 
					// system these are the same size, but on a 64-bit system they're not.
 | 
				
			||||||
// 'long' gives us 32-bit on 32-bit systems, 64-bit on 64-bit systems.
 | 
					// 'long' gives us 32-bit on 32-bit systems, 64-bit on 64-bit systems.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// __set_errno was mistakenly exposed in <errno.h> in the 32-bit NDK.
 | 
					// Since __set_errno was mistakenly exposed in <errno.h> in the 32-bit
 | 
				
			||||||
// We need the extra level of indirection so that the .hidden directives
 | 
					// NDK, use a differently named internal function for the system call
 | 
				
			||||||
// in the system call stubs don't cause __set_errno to be hidden, breaking
 | 
					// stubs. This avoids having the stubs .hidden directives accidentally
 | 
				
			||||||
// old NDK apps.
 | 
					// hide __set_errno for old NDK apps.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// This one is for internal use only and used by both LP32 and LP64 assembler.
 | 
					// This one is for internal use only and used by both LP32 and LP64 assembler.
 | 
				
			||||||
extern "C" __LIBC_HIDDEN__ long __set_errno_internal(int n) {
 | 
					extern "C" __LIBC_HIDDEN__ long __set_errno_internal(int n) {
 | 
				
			||||||
  errno = n;
 | 
					  errno = n;
 | 
				
			||||||
  return -1;
 | 
					  return -1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
// This one exists for the LP32 NDK and is not present at all in LP64.
 | 
					 | 
				
			||||||
#if !defined(__LP64__)
 | 
					 | 
				
			||||||
extern "C" long __set_errno(int n) {
 | 
					 | 
				
			||||||
  return __set_errno_internal(n);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -357,6 +357,12 @@ extern "C" pthread_internal_t* __get_thread() {
 | 
				
			|||||||
  return __real_get_thread();
 | 
					  return __real_get_thread();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This one exists only for the LP32 NDK and is not present anywhere else.
 | 
				
			||||||
 | 
					extern "C" long __set_errno_internal(int);
 | 
				
			||||||
 | 
					extern "C" long __set_errno(int n) {
 | 
				
			||||||
 | 
					  return __set_errno_internal(n);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // !defined(__LP64__)
 | 
					#endif // !defined(__LP64__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// This was never implemented in bionic, only needed for ABI compatibility with the NDK.
 | 
					// This was never implemented in bionic, only needed for ABI compatibility with the NDK.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user