From owner-svn-ports-head@freebsd.org Sat Jun 18 05:44:36 2016 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D67B5A79CF6; Sat, 18 Jun 2016 05:44:36 +0000 (UTC) (envelope-from glewis@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 99CFB151F; Sat, 18 Jun 2016 05:44:36 +0000 (UTC) (envelope-from glewis@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u5I5iZex088051; Sat, 18 Jun 2016 05:44:35 GMT (envelope-from glewis@FreeBSD.org) Received: (from glewis@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u5I5iZ5N088049; Sat, 18 Jun 2016 05:44:35 GMT (envelope-from glewis@FreeBSD.org) Message-Id: <201606180544.u5I5iZ5N088049@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glewis set sender to glewis@FreeBSD.org using -f From: Greg Lewis Date: Sat, 18 Jun 2016 05:44:35 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r417048 - head/java/openjdk8/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 18 Jun 2016 05:44:37 -0000 Author: glewis Date: Sat Jun 18 05:44:35 2016 New Revision: 417048 URL: https://svnweb.freebsd.org/changeset/ports/417048 Log: . Regenerate patch-bsd and patch-bsd-test. This obsoletes another patch and should also fix ppc64 support. Deleted: head/java/openjdk8/files/patch-jdk-src-solaris-native-java-net-bsd_close.c Modified: head/java/openjdk8/files/patch-bsd head/java/openjdk8/files/patch-bsd-test Modified: head/java/openjdk8/files/patch-bsd ============================================================================== --- head/java/openjdk8/files/patch-bsd Sat Jun 18 05:09:50 2016 (r417047) +++ head/java/openjdk8/files/patch-bsd Sat Jun 18 05:44:35 2016 (r417048) @@ -1067,20 +1067,20 @@ ifneq (,$$($1_BIN)) $$(error BIN has been replaced with OBJECT_DIR) --- ./hotspot/make/bsd/Makefile Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/Makefile Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/Makefile Fri Jun 17 22:08:33 2016 -0700 @@ -66,6 +66,10 @@ FORCE_TIERED=1 endif endif +# C1 is not ported on ppc64, so we cannot build a tiered VM: -+ifeq ($(ARCH),ppc64) ++ifneq (,$(findstring $(ARCH), ppc ppc64)) + FORCE_TIERED=0 +endif ifdef LP64 ifeq ("$(filter $(LP64_ARCH),$(BUILDARCH))","") --- ./hotspot/make/bsd/makefiles/build_vm_def.sh Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/build_vm_def.sh Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/build_vm_def.sh Fri Jun 17 22:08:33 2016 -0700 @@ -1,12 +1,28 @@ #!/bin/sh @@ -1117,7 +1117,7 @@ + }' | sort -u ;; +esac --- ./hotspot/make/bsd/makefiles/debug.make Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/debug.make Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/debug.make Fri Jun 17 22:08:33 2016 -0700 @@ -35,7 +35,10 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -1131,8 +1131,8 @@ VERSION = debug SYSDEFS += -DASSERT --- ./hotspot/make/bsd/makefiles/defs.make Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/defs.make Mon May 09 17:15:53 2016 -0400 -@@ -29,7 +29,10 @@ ++++ ./hotspot/make/bsd/makefiles/defs.make Fri Jun 17 22:08:33 2016 -0700 +@@ -29,7 +29,15 @@ SLASH_JAVA ?= /java # Need PLATFORM (os-arch combo names) for jdk and hotspot, plus libarch name @@ -1140,27 +1140,41 @@ +# ARCH can be set explicitly in spec.gmk +ifndef ARCH + ARCH := $(shell uname -m) ++ # Fold little endian PowerPC64 into big-endian (if ARCH is set in ++ # hotspot-spec.gmk, this will be done by the configure script). ++ ifeq ($(ARCH),ppc64le) ++ ARCH := ppc64 ++ endif +endif PATH_SEP = : ifeq ($(LP64), 1) ARCH_DATA_MODEL ?= 64 -@@ -124,6 +127,15 @@ - HS_ARCH = ppc +@@ -117,11 +125,19 @@ + endif + + # PPC +-ifeq ($(ARCH), ppc) +- ARCH_DATA_MODEL = 32 +- PLATFORM = bsd-ppc +- VM_PLATFORM = bsd_ppc +- HS_ARCH = ppc ++# Notice: after 8046471 ARCH will be 'ppc' for top-level ppc64 builds but ++# 'ppc64' for HotSpot-only ppc64 builds. Need to detect both variants here! ++ifneq (,$(findstring $(ARCH), ppc ppc64)) ++ ifeq ($(ARCH_DATA_MODEL), 64) ++ MAKE_ARGS += LP64=1 ++ PLATFORM = bsd-ppc64 ++ VM_PLATFORM = bsd_ppc64 ++ else ++ ARCH_DATA_MODEL = 32 ++ PLATFORM = bsd-ppc ++ VM_PLATFORM = bsd_ppc ++ endif ++ HS_ARCH = ppc endif -+# PPC64 -+ifeq ($(ARCH), ppc64) -+ ARCH_DATA_MODEL = 64 -+ MAKE_ARGS += LP64=1 -+ PLATFORM = bsd-ppc64 -+ VM_PLATFORM = bsd_ppc64 -+ HS_ARCH = ppc -+endif -+ # On 32 bit bsd we build server and client, on 64 bit just server. - ifeq ($(JVM_VARIANTS),) - ifeq ($(ARCH_DATA_MODEL), 32) -@@ -321,6 +333,18 @@ +@@ -321,6 +337,18 @@ ifeq ($(JVM_VARIANT_MINIMAL1),true) EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/Xusage.txt EXPORT_LIST += $(EXPORT_MINIMAL_DIR)/libjvm.$(LIBRARY_SUFFIX) @@ -1180,7 +1194,7 @@ # Serviceability Binaries --- ./hotspot/make/bsd/makefiles/fastdebug.make Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/fastdebug.make Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/fastdebug.make Fri Jun 17 22:08:33 2016 -0700 @@ -56,7 +56,10 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -1194,7 +1208,7 @@ VERSION = fastdebug SYSDEFS += -DASSERT -DCHECK_UNHANDLED_OOPS --- ./hotspot/make/bsd/makefiles/gcc.make Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/gcc.make Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/gcc.make Fri Jun 17 22:08:33 2016 -0700 @@ -168,6 +168,9 @@ CFLAGS += -DDONT_USE_PRECOMPILED_HEADER endif @@ -1321,7 +1335,7 @@ endif --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/make/bsd/makefiles/launcher.make Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/launcher.make Fri Jun 17 22:08:33 2016 -0700 @@ -0,0 +1,117 @@ +# +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. @@ -1441,7 +1455,7 @@ + $(QUIETLY) chmod +x $@ + --- ./hotspot/make/bsd/makefiles/mapfile-vers-debug Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug Fri Jun 17 22:08:33 2016 -0700 @@ -21,246 +21,254 @@ # questions. # @@ -1449,16 +1463,10 @@ -# Only used for OSX/Darwin builds # Define public interface. -+ -+SUNWprivate_1.1 { -+ global: - # _JNI +- # _JNI - _JNI_CreateJavaVM - _JNI_GetCreatedJavaVMs - _JNI_GetDefaultJavaVMInitArgs -+ JNI_CreateJavaVM; -+ JNI_GetCreatedJavaVMs; -+ JNI_GetDefaultJavaVMInitArgs; - # _JVM - _JVM_Accept @@ -1677,6 +1685,17 @@ - _JVM_Write - _JVM_Yield - _JVM_handle_bsd_signal ++SUNWprivate_1.1 { ++ global: ++ # _JNI ++ JNI_CreateJavaVM; ++ JNI_GetCreatedJavaVMs; ++ JNI_GetDefaultJavaVMInitArgs; + +- # debug _JVM +- _JVM_AccessVMBooleanFlag +- _JVM_AccessVMIntFlag +- _JVM_VMBreakPoint + # JVM + JVM_Accept; + JVM_ActiveProcessorCount; @@ -1894,11 +1913,7 @@ + JVM_Write; + JVM_Yield; + JVM_handle_bsd_signal; - -- # debug _JVM -- _JVM_AccessVMBooleanFlag -- _JVM_AccessVMIntFlag -- _JVM_VMBreakPoint ++ + # debug JVM + JVM_AccessVMBooleanFlag; + JVM_AccessVMIntFlag; @@ -1929,7 +1944,7 @@ + *; +}; --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug.macosx Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug.macosx Fri Jun 17 22:08:33 2016 -0700 @@ -0,0 +1,266 @@ +# +# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. @@ -2198,7 +2213,7 @@ + # INSERT VTABLE SYMBOLS HERE + --- ./hotspot/make/bsd/makefiles/mapfile-vers-product Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/mapfile-vers-product Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product Fri Jun 17 22:08:33 2016 -0700 @@ -21,241 +21,249 @@ # questions. # @@ -2206,16 +2221,10 @@ -# Only used for OSX/Darwin builds # Define public interface. -+ -+SUNWprivate_1.1 { -+ global: - # _JNI +- # _JNI - _JNI_CreateJavaVM - _JNI_GetCreatedJavaVMs - _JNI_GetDefaultJavaVMInitArgs -+ JNI_CreateJavaVM; -+ JNI_GetCreatedJavaVMs; -+ JNI_GetDefaultJavaVMInitArgs; - # _JVM - _JVM_Accept @@ -2434,6 +2443,13 @@ - _JVM_Write - _JVM_Yield - _JVM_handle_bsd_signal ++SUNWprivate_1.1 { ++ global: ++ # _JNI ++ JNI_CreateJavaVM; ++ JNI_GetCreatedJavaVMs; ++ JNI_GetDefaultJavaVMInitArgs; ++ + # JVM + JVM_Accept; + JVM_ActiveProcessorCount; @@ -2677,7 +2693,7 @@ + *; +}; --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/make/bsd/makefiles/mapfile-vers-product.macosx Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product.macosx Fri Jun 17 22:08:33 2016 -0700 @@ -0,0 +1,261 @@ +# +# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. @@ -2941,7 +2957,7 @@ + # INSERT VTABLE SYMBOLS HERE + --- ./hotspot/make/bsd/makefiles/optimized.make Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/optimized.make Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/optimized.make Fri Jun 17 22:08:33 2016 -0700 @@ -38,6 +38,9 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -2954,59 +2970,8 @@ VERSION = optimized --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/make/bsd/makefiles/ppc64.make Mon May 09 17:15:53 2016 -0400 -@@ -0,0 +1,102 @@ -+# -+# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. -+# Copyright 2012, 2013 SAP AG. All rights reserved. -+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+# -+# This code is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License version 2 only, as -+# published by the Free Software Foundation. -+# -+# This code is distributed in the hope that it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+# version 2 for more details (a copy is included in the LICENSE file that -+# accompanied this code). -+# -+# You should have received a copy of the GNU General Public License version -+# 2 along with this work; if not, write to the Free Software Foundation, -+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+# -+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+# or visit www.oracle.com if you need additional information or have any -+# questions. -+# -+# -+ -+# make c code know it is on a 64 bit platform. -+CFLAGS += -D_LP64=1 -+ -+ifeq ($(origin OPENJDK_TARGET_CPU_ENDIAN),undefined) -+ # This can happen during hotspot standalone build. Set endianness from -+ # uname. We assume build and target machines are the same. -+ OPENJDK_TARGET_CPU_ENDIAN:=$(if $(filter ppc64le,$(shell uname -m)),little,big) -+endif -+ -+ifeq ($(filter $(OPENJDK_TARGET_CPU_ENDIAN),big little),) -+ $(error OPENJDK_TARGET_CPU_ENDIAN value should be 'big' or 'little') -+endif -+ -+ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),big) -+ # fixes `relocation truncated to fit' error for gcc 4.1. -+ CFLAGS += -mminimal-toc -+ -+ # finds use ppc64 instructions, but schedule for power5 -+ CFLAGS += -mcpu=powerpc64 -mtune=power5 -minsert-sched-nops=regroup_exact -mno-multiple -mno-string -+else -+ # Little endian machine uses ELFv2 ABI. -+ CFLAGS += -DVM_LITTLE_ENDIAN -DABI_ELFv2 -+ -+ # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI. -+ CFLAGS += -mcpu=power7 -mtune=power8 -minsert-sched-nops=regroup_exact -mno-multiple -mno-string -+endif ++++ ./hotspot/make/bsd/makefiles/ppc64.make Fri Jun 17 22:08:33 2016 -0700 +@@ -0,0 +1,51 @@ +# +# Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright 2012, 2013 SAP AG. All rights reserved. @@ -3059,7 +3024,7 @@ + CFLAGS += -mcpu=power7 -mtune=power8 -minsert-sched-nops=regroup_exact -mno-multiple -mno-string +endif --- ./hotspot/make/bsd/makefiles/product.make Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/product.make Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/product.make Fri Jun 17 22:08:33 2016 -0700 @@ -38,7 +38,10 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -3073,7 +3038,7 @@ SYSDEFS += -DPRODUCT VERSION = optimized --- ./hotspot/make/bsd/makefiles/rules.make Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/rules.make Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/rules.make Fri Jun 17 22:08:33 2016 -0700 @@ -34,7 +34,7 @@ CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS) CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS) @@ -3084,7 +3049,7 @@ COMPILE.CC = $(CC_COMPILE) -c GENASM.CC = $(CC_COMPILE) -S --- ./hotspot/make/bsd/makefiles/vm.make Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/make/bsd/makefiles/vm.make Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/make/bsd/makefiles/vm.make Fri Jun 17 22:08:33 2016 -0700 @@ -107,7 +107,7 @@ # File specific flags CXXFLAGS += $(CXXFLAGS/BYFILE) @@ -3095,25 +3060,8 @@ endif --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/make/bsd/platform_ppc64 Mon May 09 17:15:53 2016 -0400 -@@ -0,0 +1,34 @@ -+os_family = bsd -+ -+arch = ppc -+ -+arch_model = ppc_64 -+ -+os_arch = bsd_ppc -+ -+os_arch_model = bsd_ppc_64 -+ -+lib_arch = ppc64 -+ -+compiler = gcc -+ -+gnu_dis_arch = ppc64 -+ -+sysdefs = -DBSD -D_ALLBSD_SOURCE -D_GNU_SOURCE -DPPC64 ++++ ./hotspot/make/bsd/platform_ppc64 Fri Jun 17 22:08:33 2016 -0700 +@@ -0,0 +1,17 @@ +os_family = bsd + +arch = ppc @@ -3132,7 +3080,7 @@ + +sysdefs = -DBSD -D_ALLBSD_SOURCE -D_GNU_SOURCE -DPPC64 --- ./hotspot/src/cpu/ppc/vm/bytes_ppc.hpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/cpu/ppc/vm/bytes_ppc.hpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/cpu/ppc/vm/bytes_ppc.hpp Fri Jun 17 22:08:33 2016 -0700 @@ -277,5 +277,9 @@ #if defined(TARGET_OS_ARCH_linux_ppc) #include "bytes_linux_ppc.inline.hpp" @@ -3144,7 +3092,7 @@ #endif // CPU_PPC_VM_BYTES_PPC_HPP --- ./hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -307,6 +307,8 @@ // Although AIX runs on big endian CPU, float is in most significant // word of an argument slot. @@ -3154,8 +3102,19 @@ #else #error "unknown OS" #endif +--- ./hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp Tue Mar 22 11:05:52 2016 -0700 ++++ ./hotspot/src/cpu/ppc/vm/sharedRuntime_ppc.cpp Fri Jun 17 22:08:33 2016 -0700 +@@ -778,6 +778,8 @@ + // Although AIX runs on big endian CPU, float is in the most + // significant word of an argument slot. + #define FLOAT_WORD_OFFSET_IN_SLOT 0 ++#elif defined(BSD) ++#define FLOAT_WORD_OFFSET_IN_SLOT 1 + #else + #error "unknown OS" + #endif --- ./hotspot/src/cpu/x86/vm/jni_x86.h Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/cpu/x86/vm/jni_x86.h Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/cpu/x86/vm/jni_x86.h Fri Jun 17 22:08:33 2016 -0700 @@ -34,7 +34,7 @@ #ifndef __has_attribute #define __has_attribute(x) 0 @@ -3166,7 +3125,7 @@ #define JNIIMPORT __attribute__((visibility("default"))) #else --- ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -2266,7 +2266,7 @@ if (!is_critical_native) { // reset handle block @@ -3177,7 +3136,7 @@ // Any exception pending? __ cmpptr(Address(thread, in_bytes(Thread::pending_exception_offset())), (int32_t)NULL_WORD); --- ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -1293,7 +1293,7 @@ // reset handle block @@ -3188,7 +3147,7 @@ // If result was an oop then unbox and save it in the frame { Label L; --- ./hotspot/src/cpu/x86/vm/x86_32.ad Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/cpu/x86/vm/x86_32.ad Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/cpu/x86/vm/x86_32.ad Fri Jun 17 22:08:33 2016 -0700 @@ -1250,6 +1250,7 @@ @@ -3198,7 +3157,7 @@ #ifndef PRODUCT --- ./hotspot/src/os/aix/vm/os_aix.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/aix/vm/os_aix.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/aix/vm/os_aix.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -5236,6 +5236,10 @@ return 0; } @@ -3211,7 +3170,7 @@ } --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -0,0 +1,53 @@ +/* + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -3267,7 +3226,7 @@ +} +#endif --- ./hotspot/src/os/bsd/vm/jsig.c Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/bsd/vm/jsig.c Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/bsd/vm/jsig.c Fri Jun 17 22:08:33 2016 -0700 @@ -165,9 +165,8 @@ } @@ -3281,7 +3240,7 @@ static int call_os_sigaction(int sig, const struct sigaction *act, struct sigaction *oact) { --- ./hotspot/src/os/bsd/vm/jvm_bsd.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/bsd/vm/jvm_bsd.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/bsd/vm/jvm_bsd.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -50,6 +50,7 @@ case INTERRUPT_SIGNAL: case SIGFPE: @@ -3392,7 +3351,7 @@ + return true; } --- ./hotspot/src/os/bsd/vm/jvm_bsd.h Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/bsd/vm/jvm_bsd.h Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/bsd/vm/jvm_bsd.h Fri Jun 17 22:08:33 2016 -0700 @@ -112,20 +112,6 @@ #define SHUTDOWN2_SIGNAL SIGINT #define SHUTDOWN3_SIGNAL SIGTERM @@ -3415,7 +3374,7 @@ #endif // OS_BSD_VM_JVM_BSD_H --- ./hotspot/src/os/bsd/vm/osThread_bsd.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/bsd/vm/osThread_bsd.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/bsd/vm/osThread_bsd.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -30,7 +30,7 @@ void OSThread::pd_initialize() { @@ -3426,7 +3385,7 @@ #else _thread_id = NULL; --- ./hotspot/src/os/bsd/vm/os_bsd.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/bsd/vm/os_bsd.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/bsd/vm/os_bsd.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -97,16 +97,31 @@ # include #ifndef __APPLE__ @@ -3989,7 +3948,7 @@ #ifndef PRODUCT --- ./hotspot/src/os/bsd/vm/os_bsd.hpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/bsd/vm/os_bsd.hpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/bsd/vm/os_bsd.hpp Fri Jun 17 22:08:33 2016 -0700 @@ -58,12 +58,16 @@ // For signal flags diagnostics static int sigflags[MAXSIGNUM]; @@ -4018,7 +3977,7 @@ static void set_page_size(int val) { _page_size = val; } --- ./hotspot/src/os/bsd/vm/vmError_bsd.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/bsd/vm/vmError_bsd.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/bsd/vm/vmError_bsd.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -33,30 +33,50 @@ #include #include @@ -4081,7 +4040,7 @@ yes = false; } --- ./hotspot/src/os/linux/vm/os_linux.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/linux/vm/os_linux.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/linux/vm/os_linux.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -6048,6 +6048,10 @@ return 0; } @@ -4094,7 +4053,7 @@ } --- ./hotspot/src/os/posix/vm/os_posix.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/posix/vm/os_posix.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/posix/vm/os_posix.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -53,12 +53,11 @@ n = get_core_path(buffer, bufferSize); @@ -4158,7 +4117,7 @@ #ifdef SI_TKILL { SI_TKILL, "SI_TKILL", "Signal sent by tkill (pthread_kill)" }, --- ./hotspot/src/os/solaris/vm/os_solaris.cpp Tue Mar 22 11:05:52 2016 -0700 -+++ ./hotspot/src/os/solaris/vm/os_solaris.cpp Mon May 09 17:15:53 2016 -0400 ++++ ./hotspot/src/os/solaris/vm/os_solaris.cpp Fri Jun 17 22:08:33 2016 -0700 @@ -6375,6 +6375,10 @@ return 0; } @@ -4171,8 +4130,8 @@ } --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/src/os_cpu/bsd_ppc/vm/atomic_bsd_ppc.inline.hpp Mon May 09 17:15:53 2016 -0400 -@@ -0,0 +1,800 @@ ++++ ./hotspot/src/os_cpu/bsd_ppc/vm/atomic_bsd_ppc.inline.hpp Fri Jun 17 22:08:33 2016 -0700 +@@ -0,0 +1,400 @@ +/* + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright 2012, 2013 SAP AG. All rights reserved. @@ -4573,6 +4532,108 @@ +#undef strasm_nobarrier_clobber_memory + +#endif // OS_CPU_BSD_PPC_VM_ATOMIC_BSD_PPC_INLINE_HPP +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/src/os_cpu/bsd_ppc/vm/bytes_bsd_ppc.inline.hpp Fri Jun 17 22:08:33 2016 -0700 +@@ -0,0 +1,39 @@ ++/* ++ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright 2014 Google Inc. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ * ++ */ ++ ++#ifndef OS_CPU_BSD_PPC_VM_BYTES_BSD_PPC_INLINE_HPP ++#define OS_CPU_BSD_PPC_VM_BYTES_BSD_PPC_INLINE_HPP ++ ++#if defined(VM_LITTLE_ENDIAN) ++#include ++ ++// Efficient swapping of data bytes from Java byte ++// ordering to native byte ordering and vice versa. ++inline u2 Bytes::swap_u2(u2 x) { return bswap_16(x); } ++inline u4 Bytes::swap_u4(u4 x) { return bswap_32(x); } ++inline u8 Bytes::swap_u8(u8 x) { return bswap_64(x); } ++#endif // VM_LITTLE_ENDIAN ++ ++#endif // OS_CPU_BSD_PPC_VM_BYTES_BSD_PPC_INLINE_HPP +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/src/os_cpu/bsd_ppc/vm/globals_bsd_ppc.hpp Fri Jun 17 22:08:33 2016 -0700 +@@ -0,0 +1,54 @@ ++/* ++ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright 2012, 2013 SAP AG. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ * ++ */ ++ ++#ifndef OS_CPU_BSD_PPC_VM_GLOBALS_BSD_PPC_HPP ++#define OS_CPU_BSD_PPC_VM_GLOBALS_BSD_PPC_HPP ++ ++// Sets the default values for platform dependent flags used by the runtime system. ++// (see globals.hpp) ++ ++define_pd_global(bool, DontYieldALot, false); ++define_pd_global(intx, ThreadStackSize, 2048); // 0 => use system default ++define_pd_global(intx, VMThreadStackSize, 2048); ++ ++// if we set CompilerThreadStackSize to a value different than 0, it will ++// be used in os::create_thread(). Otherwise, due the strange logic in os::create_thread(), ++// the stack size for compiler threads will default to VMThreadStackSize, although it ++// is defined to 4M in os::Bsd::default_stack_size()! ++define_pd_global(intx, CompilerThreadStackSize, 4096); ++ ++// Allow extra space in DEBUG builds for asserts. ++define_pd_global(uintx,JVMInvokeMethodSlack, 8192); ++ ++define_pd_global(intx, StackYellowPages, 6); ++define_pd_global(intx, StackRedPages, 1); ++define_pd_global(intx, StackShadowPages, 6 DEBUG_ONLY(+2)); ++ ++// Only used on 64 bit platforms ++define_pd_global(uintx,HeapBaseMinAddress, 2*G); ++// Only used on 64 bit Windows platforms ++define_pd_global(bool, UseVectoredExceptions, false); ++ ++#endif // OS_CPU_BSD_PPC_VM_GLOBALS_BSD_PPC_HPP +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/src/os_cpu/bsd_ppc/vm/orderAccess_bsd_ppc.inline.hpp Fri Jun 17 22:08:33 2016 -0700 +@@ -0,0 +1,149 @@ +/* + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright 2012, 2013 SAP AG. All rights reserved. @@ -4598,1543 +4659,133 @@ + * + */ + -+#ifndef OS_CPU_BSD_PPC_VM_ATOMIC_BSD_PPC_INLINE_HPP -+#define OS_CPU_BSD_PPC_VM_ATOMIC_BSD_PPC_INLINE_HPP ++#ifndef OS_CPU_BSD_PPC_VM_ORDERACCESS_BSD_PPC_INLINE_HPP ++#define OS_CPU_BSD_PPC_VM_ORDERACCESS_BSD_PPC_INLINE_HPP + -+#include "runtime/atomic.hpp" -+#include "runtime/os.hpp" ++#include "runtime/orderAccess.hpp" +#include "vm_version_ppc.hpp" + +#ifndef PPC64 -+#error "Atomic currently only implemented for PPC64" ++#error "OrderAccess currently only implemented for PPC64" +#endif + -+// Implementation of class atomic -+ -+inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } -+inline void Atomic::store (jshort store_value, jshort* dest) { *dest = store_value; } -+inline void Atomic::store (jint store_value, jint* dest) { *dest = store_value; } -+inline void Atomic::store (jlong store_value, jlong* dest) { *dest = store_value; } -+inline void Atomic::store_ptr(intptr_t store_value, intptr_t* dest) { *dest = store_value; } -+inline void Atomic::store_ptr(void* store_value, void* dest) { *(void**)dest = store_value; } -+ -+inline void Atomic::store (jbyte store_value, volatile jbyte* dest) { *dest = store_value; } -+inline void Atomic::store (jshort store_value, volatile jshort* dest) { *dest = store_value; } -+inline void Atomic::store (jint store_value, volatile jint* dest) { *dest = store_value; } -+inline void Atomic::store (jlong store_value, volatile jlong* dest) { *dest = store_value; } -+inline void Atomic::store_ptr(intptr_t store_value, volatile intptr_t* dest) { *dest = store_value; } -+inline void Atomic::store_ptr(void* store_value, volatile void* dest) { *(void* volatile *)dest = store_value; } -+ -+inline jlong Atomic::load(volatile jlong* src) { return *src; } ++// Implementation of class OrderAccess. + +// -+// machine barrier instructions: ++// Machine barrier instructions: +// -+// - sync two-way memory barrier, aka fence ++// - sync Two-way memory barrier, aka fence. +// - lwsync orders Store|Store, +// Load|Store, +// Load|Load, +// but not Store|Load -+// - eieio orders memory accesses for device memory (only) -+// - isync invalidates speculatively executed instructions -+// From the POWER ISA 2.06 documentation: -+// "[...] an isync instruction prevents the execution of -+// instructions following the isync until instructions -+// preceding the isync have completed, [...]" -+// From IBM's AIX assembler reference: -+// "The isync [...] instructions causes the processor to -+// refetch any instructions that might have been fetched -+// prior to the isync instruction. The instruction isync -+// causes the processor to wait for all previous instructions -+// to complete. Then any instructions already fetched are -+// discarded and instruction processing continues in the -+// environment established by the previous instructions." -+// -+// semantic barrier instructions: -+// (as defined in orderAccess.hpp) -+// -+// - release orders Store|Store, (maps to lwsync) -+// Load|Store -+// - acquire orders Load|Store, (maps to lwsync) -+// Load|Load -+// - fence orders Store|Store, (maps to sync) -+// Load|Store, -+// Load|Load, -+// Store|Load -+// -+ -+#define strasm_sync "\n sync \n" -+#define strasm_lwsync "\n lwsync \n" -+#define strasm_isync "\n isync \n" -+#define strasm_release strasm_lwsync -+#define strasm_acquire strasm_lwsync -+#define strasm_fence strasm_sync -+#define strasm_nobarrier "" -+#define strasm_nobarrier_clobber_memory "" -+ -+inline jint Atomic::add (jint add_value, volatile jint* dest) { -+ -+ unsigned int result; -+ -+ __asm__ __volatile__ ( -+ strasm_lwsync -+ "1: lwarx %0, 0, %2 \n" -+ " add %0, %0, %1 \n" -+ " stwcx. %0, 0, %2 \n" -+ " bne- 1b \n" -+ strasm_isync -+ : /*%0*/"=&r" (result) -+ : /*%1*/"r" (add_value), /*%2*/"r" (dest) -+ : "cc", "memory" ); -+ -+ return (jint) result; -+} -+ -+ -+inline intptr_t Atomic::add_ptr(intptr_t add_value, volatile intptr_t* dest) { -+ -+ long result; -+ -+ __asm__ __volatile__ ( -+ strasm_lwsync -+ "1: ldarx %0, 0, %2 \n" -+ " add %0, %0, %1 \n" -+ " stdcx. %0, 0, %2 \n" -+ " bne- 1b \n" -+ strasm_isync -+ : /*%0*/"=&r" (result) -+ : /*%1*/"r" (add_value), /*%2*/"r" (dest) -+ : "cc", "memory" ); -+ -+ return (intptr_t) result; -+} -+ -+inline void* Atomic::add_ptr(intptr_t add_value, volatile void* dest) { -+ return (void*)add_ptr(add_value, (volatile intptr_t*)dest); -+} -+ -+ -+inline void Atomic::inc (volatile jint* dest) { -+ -+ unsigned int temp; -+ -+ __asm__ __volatile__ ( -+ strasm_nobarrier -+ "1: lwarx %0, 0, %2 \n" -+ " addic %0, %0, 1 \n" -+ " stwcx. %0, 0, %2 \n" -+ " bne- 1b \n" -+ strasm_nobarrier -+ : /*%0*/"=&r" (temp), "=m" (*dest) -+ : /*%2*/"r" (dest), "m" (*dest) -+ : "cc" strasm_nobarrier_clobber_memory); -+ -+} -+ -+inline void Atomic::inc_ptr(volatile intptr_t* dest) { -+ -+ long temp; -+ -+ __asm__ __volatile__ ( -+ strasm_nobarrier -+ "1: ldarx %0, 0, %2 \n" -+ " addic %0, %0, 1 \n" -+ " stdcx. %0, 0, %2 \n" -+ " bne- 1b \n" -+ strasm_nobarrier -+ : /*%0*/"=&r" (temp), "=m" (*dest) -+ : /*%2*/"r" (dest), "m" (*dest) -+ : "cc" strasm_nobarrier_clobber_memory); -+ -+} -+ -+inline void Atomic::inc_ptr(volatile void* dest) { -+ inc_ptr((volatile intptr_t*)dest); -+} -+ -+ -+inline void Atomic::dec (volatile jint* dest) { -+ -+ unsigned int temp; -+ -+ __asm__ __volatile__ ( -+ strasm_nobarrier -+ "1: lwarx %0, 0, %2 \n" -+ " addic %0, %0, -1 \n" -+ " stwcx. %0, 0, %2 \n" -+ " bne- 1b \n" -+ strasm_nobarrier -+ : /*%0*/"=&r" (temp), "=m" (*dest) -+ : /*%2*/"r" (dest), "m" (*dest) -+ : "cc" strasm_nobarrier_clobber_memory); -+ -+} -+ -+inline void Atomic::dec_ptr(volatile intptr_t* dest) { -+ -+ long temp; -+ -+ __asm__ __volatile__ ( -+ strasm_nobarrier -+ "1: ldarx %0, 0, %2 \n" -+ " addic %0, %0, -1 \n" -+ " stdcx. %0, 0, %2 \n" -+ " bne- 1b \n" -+ strasm_nobarrier -+ : /*%0*/"=&r" (temp), "=m" (*dest) -+ : /*%2*/"r" (dest), "m" (*dest) -+ : "cc" strasm_nobarrier_clobber_memory); -+ -+} -+ -+inline void Atomic::dec_ptr(volatile void* dest) { -+ dec_ptr((volatile intptr_t*)dest); -+} -+ -+inline jint Atomic::xchg(jint exchange_value, volatile jint* dest) { -+ -+ // Note that xchg_ptr doesn't necessarily do an acquire -+ // (see synchronizer.cpp). -+ -+ unsigned int old_value; -+ const uint64_t zero = 0; -+ -+ __asm__ __volatile__ ( -+ /* lwsync */ -+ strasm_lwsync -+ /* atomic loop */ -+ "1: \n" -+ " lwarx %[old_value], %[dest], %[zero] \n" -+ " stwcx. %[exchange_value], %[dest], %[zero] \n" -+ " bne- 1b \n" -+ /* isync */ -+ strasm_sync -+ /* exit */ -+ "2: \n" -+ /* out */ -+ : [old_value] "=&r" (old_value), -+ "=m" (*dest) -+ /* in */ -+ : [dest] "b" (dest), -+ [zero] "r" (zero), -+ [exchange_value] "r" (exchange_value), -+ "m" (*dest) -+ /* clobber */ -+ : "cc", -+ "memory" -+ ); -+ -+ return (jint) old_value; -+} -+ -+inline intptr_t Atomic::xchg_ptr(intptr_t exchange_value, volatile intptr_t* dest) { -+ -+ // Note that xchg_ptr doesn't necessarily do an acquire -+ // (see synchronizer.cpp). -+ -+ long old_value; -+ const uint64_t zero = 0; -+ -+ __asm__ __volatile__ ( -+ /* lwsync */ -+ strasm_lwsync -+ /* atomic loop */ -+ "1: \n" -+ " ldarx %[old_value], %[dest], %[zero] \n" -+ " stdcx. %[exchange_value], %[dest], %[zero] \n" -+ " bne- 1b \n" -+ /* isync */ -+ strasm_sync -+ /* exit */ -+ "2: \n" -+ /* out */ -+ : [old_value] "=&r" (old_value), -+ "=m" (*dest) -+ /* in */ -+ : [dest] "b" (dest), -+ [zero] "r" (zero), -+ [exchange_value] "r" (exchange_value), -+ "m" (*dest) -+ /* clobber */ -+ : "cc", -+ "memory" -+ ); -+ -+ return (intptr_t) old_value; -+} -+ -+inline void* Atomic::xchg_ptr(void* exchange_value, volatile void* dest) { -+ return (void*)xchg_ptr((intptr_t)exchange_value, (volatile intptr_t*)dest); -+} -+ -+inline jint Atomic::cmpxchg(jint exchange_value, volatile jint* dest, jint compare_value) { -+ -+ // Note that cmpxchg guarantees a two-way memory barrier across -+ // the cmpxchg, so it's really a a 'fence_cmpxchg_acquire' -+ // (see atomic.hpp). -+ -+ unsigned int old_value; -+ const uint64_t zero = 0; -+ -+ __asm__ __volatile__ ( -+ /* fence */ -+ strasm_sync -+ /* simple guard */ -+ " lwz %[old_value], 0(%[dest]) \n" -+ " cmpw %[compare_value], %[old_value] \n" -+ " bne- 2f \n" -+ /* atomic loop */ -+ "1: \n" -+ " lwarx %[old_value], %[dest], %[zero] \n" -+ " cmpw %[compare_value], %[old_value] \n" -+ " bne- 2f \n" -+ " stwcx. %[exchange_value], %[dest], %[zero] \n" -+ " bne- 1b \n" -+ /* acquire */ -+ strasm_sync -+ /* exit */ -+ "2: \n" -+ /* out */ -+ : [old_value] "=&r" (old_value), -+ "=m" (*dest) -+ /* in */ -+ : [dest] "b" (dest), -+ [zero] "r" (zero), -+ [compare_value] "r" (compare_value), -+ [exchange_value] "r" (exchange_value), -+ "m" (*dest) -+ /* clobber */ -+ : "cc", -+ "memory" -+ ); -+ -+ return (jint) old_value; -+} -+ -+inline jlong Atomic::cmpxchg(jlong exchange_value, volatile jlong* dest, jlong compare_value) { -+ -+ // Note that cmpxchg guarantees a two-way memory barrier across -+ // the cmpxchg, so it's really a a 'fence_cmpxchg_acquire' -+ // (see atomic.hpp). -+ -+ long old_value; -+ const uint64_t zero = 0; -+ -+ __asm__ __volatile__ ( *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***