From cea32f84f0d063ca525336f54f3bb1127ee0f5fa Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Thu, 14 Apr 2016 19:23:36 -0700 Subject: [PATCH] [v9_10] fix build error on x86_64 solaris --- CHANGES | 2 ++ lib/isc/x86_64/include/isc/atomic.h | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 46d4fc388aa..1e93e5d1f73 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,7 @@ --- 9.10.4rc1 released --- +4437. [port] Corrected a build error on x86_64 Solaris. [RT #42150] + 4436. [bug] Fixed a regression introduced in change #4337 which caused signed domains with revoked KSKs to fail validation. [RT #42147] diff --git a/lib/isc/x86_64/include/isc/atomic.h b/lib/isc/x86_64/include/isc/atomic.h index f819dfb000a..04806dbdf05 100644 --- a/lib/isc/x86_64/include/isc/atomic.h +++ b/lib/isc/x86_64/include/isc/atomic.h @@ -87,12 +87,26 @@ isc_atomic_store(isc_int32_t *p, isc_int32_t val) { "lock;" #endif "xchgl (%rax), %edx\n" - /* - * XXX: assume %rax will be used as the return value. - */ ); } +#ifdef ISC_PLATFORM_HAVEATOMICSTOREQ +static void +isc_atomic_storeq(isc_int64_t *p, isc_int64_t val) { + UNUSED(p); + UNUSED(val); + + __asm ( + "movq %rdi, %rax\n" + "movq %rsi, %rdx\n" +#ifdef ISC_PLATFORM_USETHREADS + "lock;" +#endif + "xchgq (%rax), %rdx\n" + ); +} +#endif + static isc_int32_t isc_atomic_cmpxchg(isc_int32_t *p, isc_int32_t cmpval, isc_int32_t val) { UNUSED(p); -- 2.47.3