mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-29 07:58:21 +08:00
mdbx: add MDBX_SAFE4QEMU option for testing under QEMU.
Change-Id: Ide674e0125e2746f73a7ba44828316a60633e887
This commit is contained in:
parent
9379ba7733
commit
f778f4a795
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"
|
@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 \
|
@for CC in $(CROSS_LIST); do \
|
||||||
echo "===================== $$CC + qemu"; \
|
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
|
done
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2015-2018 Leonid Yuriev <leo@yuriev.ru>
|
* Copyright 2015-2018 Leonid Yuriev <leo@yuriev.ru>
|
||||||
* and other libmdbx authors: please see AUTHORS file.
|
* and other libmdbx authors: please see AUTHORS file.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
@ -149,7 +149,7 @@ int __cold mdbx_lck_init(MDBX_env *env) {
|
|||||||
goto bailout;
|
goto bailout;
|
||||||
#endif /* MDBX_USE_ROBUST */
|
#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);
|
rc = pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT);
|
||||||
if (rc == ENOTSUP)
|
if (rc == ENOTSUP)
|
||||||
rc = pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_NONE);
|
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 */
|
ticks |= low & /* zeroes if high part has changed */
|
||||||
~(high_before - high_after);
|
~(high_before - high_after);
|
||||||
#endif
|
#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;
|
uint64_t virtual_timer;
|
||||||
__asm __volatile("mrs %0, cntvct_el0" : "=r"(virtual_timer));
|
__asm __volatile("mrs %0, cntvct_el0" : "=r"(virtual_timer));
|
||||||
return virtual_timer;
|
return virtual_timer;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user