mirror of
				https://github.com/isar/libmdbx.git
				synced 2025-10-31 15:38:57 +08:00 
			
		
		
		
	mdbx: add MDBX_SAFE4QEMU option for testing under QEMU.
Change-Id: Ide674e0125e2746f73a7ba44828316a60633e887
This commit is contained in:
		
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							| @@ -218,5 +218,7 @@ cross-qemu: | ||||
| 	@echo "	2) apt install binfmt-support qemu-user-static qemu-user qemu-system-arm qemu-system-mips qemu-system-misc qemu-system-ppc qemu-system-sparc" | ||||
| 	@for CC in $(CROSS_LIST); do \ | ||||
| 		echo "===================== $$CC + qemu"; \ | ||||
| 		$(MAKE) clean && CC=$$CC CXX=$$(echo $$CC | sed 's/-gcc/-g++/') EXE_LDFLAGS=-static $(MAKE) check-singleprocess || exit $$?; \ | ||||
| 		$(MAKE) clean && \ | ||||
| 			CC=$$CC CXX=$$(echo $$CC | sed 's/-gcc/-g++/') EXE_LDFLAGS=-static XCFLAGS="-DMDBX_SAFE4QEMU $(XCFLAGS)" \ | ||||
| 			$(MAKE) check-singleprocess || exit $$?; \ | ||||
| 	done | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* | ||||
| /* | ||||
|  * Copyright 2015-2018 Leonid Yuriev <leo@yuriev.ru> | ||||
|  * and other libmdbx authors: please see AUTHORS file. | ||||
|  * All rights reserved. | ||||
| @@ -149,7 +149,7 @@ int __cold mdbx_lck_init(MDBX_env *env) { | ||||
|     goto bailout; | ||||
| #endif /* MDBX_USE_ROBUST */ | ||||
|  | ||||
| #if _POSIX_C_SOURCE >= 199506L | ||||
| #if _POSIX_C_SOURCE >= 199506L && !defined(MDBX_SAFE4QEMU) | ||||
|   rc = pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT); | ||||
|   if (rc == ENOTSUP) | ||||
|     rc = pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_NONE); | ||||
|   | ||||
| @@ -186,7 +186,8 @@ uint64_t entropy_ticks(void) { | ||||
|   ticks |= low & /* zeroes if high part has changed */ | ||||
|            ~(high_before - high_after); | ||||
| #endif | ||||
| #elif defined(__aarch64__) || (defined(__ARM_ARCH) && __ARM_ARCH > 7) | ||||
| #elif (defined(__aarch64__) || (defined(__ARM_ARCH) && __ARM_ARCH > 7)) &&     \ | ||||
|     !defined(MDBX_SAFE4QEMU) | ||||
|   uint64_t virtual_timer; | ||||
|   __asm __volatile("mrs %0, cntvct_el0" : "=r"(virtual_timer)); | ||||
|   return virtual_timer; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user