From 91499fdb483d88377756fa517c25e3564bfa4e3b Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Thu, 14 Apr 2016 19:22:22 -0700 Subject: [PATCH] [master] 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 98ec8470dd..d69eca8559 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +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 f819dfb000..04806dbdf0 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);