changeset 34290:08040a133ed1

Merge
author erikj
date Wed, 25 Nov 2015 11:34:16 +0100
parents 49b4186f5dce 2d1821a50263
children e005cf237e46 f3c9dcc5af96
files hotspot/make/aix/makefiles/sa.make hotspot/make/aix/makefiles/saproc.make hotspot/make/bsd/makefiles/sa.make hotspot/make/linux/makefiles/sa.make hotspot/make/linux/makefiles/saproc.make hotspot/make/sa.files hotspot/make/solaris/makefiles/sa.make hotspot/make/solaris/makefiles/saproc.make hotspot/make/windows/makefiles/sa.make
diffstat 45 files changed, 230 insertions(+), 1520 deletions(-) [+]
line wrap: on
line diff
--- a/hotspot/make/Makefile	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/Makefile	Wed Nov 25 11:34:16 2015 +0100
@@ -44,9 +44,7 @@
 #  ALT_EXPORT_PATH            Directory to export hotspot build to
 #  ALT_JDK_IMPORT_PATH        Current JDK build (only for create_jdk rules)
 #  ALT_JDK_TARGET_IMPORT_PATH Current JDK build when cross-compiling
-#  ALT_BUILD_WIN_SA           Building SA on Windows is disabled by default.
-#                             Set ALT_BUILD_WIN_SA=1 to enable building SA on
-#                             Windows.
+#
 # Version strings and numbers:
 #  JDK_VERSION                Current JDK version (e.g. 1.6.0)
 #  PREVIOUS_JDK_VERSION       Previous (bootdir) JDK version (e.g. 1.5.0)
--- a/hotspot/make/aix/Makefile	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/aix/Makefile	Wed Nov 25 11:34:16 2015 +0100
@@ -46,15 +46,6 @@
 #
 #    make REMOTE="rsh -l me myotherlinuxbox"
 
-# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding.
-# JDI binding on SA produces two binaries:
-#  1. sa-jdi.jar       - This is built before building libjvm.so
-#                        Please refer to ./makefiles/sa.make
-#  2. libsa.so         - Native library for SA - This is built after
-#                        libjsig.so (signal interposition library)
-#                        Please refer to ./makefiles/vm.make
-# If $(GAMMADIR)/agent dir is not present, SA components are not built.
-
 # No tests on Aix.
 TEST_IN_BUILD=false
 
--- a/hotspot/make/aix/makefiles/buildtree.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/aix/makefiles/buildtree.make	Wed Nov 25 11:34:16 2015 +0100
@@ -50,7 +50,6 @@
 # adlc.make	-
 # trace.make	- generate tracing event and type definitions
 # jvmti.make	- generate JVMTI bindings from the spec (JSR-163)
-# sa.make	- generate SA jar file and natives
 #
 # The makefiles are split this way so that "make foo" will run faster by not
 # having to read the dependency files for the vm.
@@ -125,7 +124,7 @@
 # For dependencies and recursive makes.
 BUILDTREE_MAKE	= $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
 
-BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make sa.make
+BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make
 
 BUILDTREE_VARS	= GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
 	SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
@@ -212,7 +211,6 @@
 	echo "TARGET = $(TARGET)"; \
 	echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \
 	echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \
-	echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \
 	echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
 	echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
 	echo "OPENJDK = $(OPENJDK)"; \
@@ -351,16 +349,6 @@
 	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
 	) > $@
 
-sa.make: $(BUILDTREE_MAKE)
-	@echo $(LOG_INFO) Creating $@ ...
-	$(QUIETLY) ( \
-	$(BUILDTREE_COMMENT); \
-	echo; \
-	echo include flags.make; \
-	echo; \
-	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
-	) > $@
-
 FORCE:
 
 .PHONY:  all FORCE
--- a/hotspot/make/aix/makefiles/defs.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/aix/makefiles/defs.make	Wed Nov 25 11:34:16 2015 +0100
@@ -219,11 +219,3 @@
 #    endif
 #  endif
 endif
-
-# Serviceability Binaries
-# No SA Support for PPC or zero
-ADD_SA_BINARIES/ppc   =
-ADD_SA_BINARIES/ppc64 =
-ADD_SA_BINARIES/zero  =
-
-EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
--- a/hotspot/make/aix/makefiles/rules.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/aix/makefiles/rules.make	Wed Nov 25 11:34:16 2015 +0100
@@ -103,8 +103,6 @@
 else
 
 # take from the PATH, if ALT_BOOTDIR, BOOTDIR and JAVA_HOME are not defined
-# note that this is to support hotspot build without SA. To build
-# SA along with hotspot, you need to define ALT_BOOTDIR, BOOTDIR or JAVA_HOME
 
 RUN.JAVA  = java
 RUN.JAVAP = javap
--- a/hotspot/make/aix/makefiles/sa.make	Wed Nov 25 08:18:08 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-#
-# Copyright (c) 2003, 2015, 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.
-#
-#
-
-# This makefile (sa.make) is included from the sa.make in the
-# build directories.
-
-# This makefile is used to build Serviceability Agent java code
-# and generate JNI header file for native methods.
-
-include $(GAMMADIR)/make/aix/makefiles/rules.make
-
-include $(GAMMADIR)/make/defs.make
-
-AGENT_DIR = $(GAMMADIR)/agent
-
-include $(GAMMADIR)/make/sa.files
-
-TOPDIR    = $(shell echo `pwd`)
-GENERATED = $(TOPDIR)/../generated
-
-# tools.jar is needed by the JDI - SA binding
-SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
-
-# TODO: if it's a modules image, check if SA module is installed.
-MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
-
-AGENT_FILES_LIST := $(GENERATED)/agent.classes.list
-
-SA_CLASSDIR = $(GENERATED)/saclasses
-
-SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
-
-SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
-
-# if $(AGENT_DIR) does not exist, we don't build SA
-# also, we don't build SA on Itanium, PowerPC, ARM or zero.
-
-all:
-	if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \
-             -a "$(SRCARCH)" != "arm" \
-             -a "$(SRCARCH)" != "ppc" \
-             -a "$(SRCARCH)" != "zero" ] ; then \
-	   $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
-	fi
-
-$(GENERATED)/sa-jdi.jar: $(AGENT_FILES)
-	$(QUIETLY) echo $(LOG_INFO) "Making $@"
-	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
-	  exit 1; \
-	fi
-	$(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \
-	  echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
-	  echo ""; \
-	  exit 1; \
-	fi
-	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
-	  mkdir -p $(SA_CLASSDIR);        \
-	fi
-# Note: When indented, make tries to execute the '$(shell' comment.
-# In some environments, cmd processors have limited line length.
-# To prevent the javac invocation in the next block from using
-# a very long cmd line, we use javac's @file-list option. We
-# generate the file lists using make's built-in 'foreach' control
-# flow which also avoids cmd processor line length issues. Since
-# the 'foreach' is done as part of make's macro expansion phase,
-# the initialization of the lists is also done in the same phase
-# using '$(shell rm ...' instead of using the more traditional
-# 'rm ...' rule.
-	$(shell rm -rf $(AGENT_FILES_LIST))
-# gnumake 3.78.1 does not accept the *'s that
-# are in AGENT_FILES, so use the shell to expand them.
-# Be extra carefull to not produce too long command lines in the shell!
-	$(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST)))
-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -h $(GENERATED) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST)
-	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
-	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
-	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
-	$(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
-	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/*
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/
-	$(QUIETLY) $(CP) -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/
-	$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(SA_CLASSDIR)/ .
-	$(QUIETLY) $(REMOTE) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
-
-clean:
-	rm -rf $(SA_CLASSDIR)
-	rm -rf $(GENERATED)/sa-jdi.jar
-	rm -rf $(AGENT_FILES_LIST)
--- a/hotspot/make/aix/makefiles/saproc.make	Wed Nov 25 08:18:08 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-#
-# Copyright (c) 2005, 2014, 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.
-#
-#
-include $(GAMMADIR)/make/defs.make
-
-# Rules to build serviceability agent library, used by vm.make
-
-# libsaproc.so: serviceability agent
-
-SAPROC = saproc
-LIBSAPROC = lib$(SAPROC).so
-
-LIBSAPROC_DEBUGINFO   = lib$(SAPROC).debuginfo
-LIBSAPROC_DIZ         = lib$(SAPROC).diz
-
-AGENT_DIR = $(GAMMADIR)/agent
-
-SASRCDIR = $(AGENT_DIR)/src/os/$(Platform_os_family)
-
-SASRCFILES = $(SASRCDIR)/salibelf.c                   \
-             $(SASRCDIR)/symtab.c                     \
-             $(SASRCDIR)/libproc_impl.c               \
-             $(SASRCDIR)/ps_proc.c                    \
-             $(SASRCDIR)/ps_core.c                    \
-             $(SASRCDIR)/LinuxDebuggerLocal.c         \
-
-SAMAPFILE = $(SASRCDIR)/mapfile
-
-DEST_SAPROC           = $(JDK_LIBDIR)/$(LIBSAPROC)
-DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO)
-DEST_SAPROC_DIZ       = $(JDK_LIBDIR)/$(LIBSAPROC_DIZ)
-
-# DEBUG_BINARIES overrides everything, use full -g debug information
-ifeq ($(DEBUG_BINARIES), true)
-  SA_DEBUG_CFLAGS = -g
-endif
-
-# if $(AGENT_DIR) does not exist, we don't build SA
-# also, we don't build SA on Itanium, PPC, ARM or zero.
-
-ifneq ($(wildcard $(AGENT_DIR)),)
-ifneq ($(filter-out ia64 arm ppc zero,$(SRCARCH)),)
-  BUILDLIBSAPROC = $(LIBSAPROC)
-endif
-endif
-
-
-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
-
-$(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
-	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
-	  exit 1; \
-	fi
-	@echo $(LOG_INFO) Making SA debugger back-end...
-	$(QUIETLY) $(CC) -D$(BUILDARCH) -D_GNU_SOURCE                   \
-		   -D_FILE_OFFSET_BITS=64                               \
-                   $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG)     \
-		   $(BIN_UTILS)						\
-	           -I$(SASRCDIR)                                        \
-	           -I$(GENERATED)                                       \
-	           -I$(BOOT_JAVA_HOME)/include                          \
-	           -I$(BOOT_JAVA_HOME)/include/$(Platform_os_family)    \
-	           $(SASRCFILES)                                        \
-	           $(SA_LFLAGS)                                         \
-	           $(SA_DEBUG_CFLAGS)                                   \
-	           -o $@                                                \
-	           -lthread_db
-ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
-	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
-  ifeq ($(STRIP_POLICY),all_strip)
-	$(QUIETLY) $(STRIP) $@
-  else
-    ifeq ($(STRIP_POLICY),min_strip)
-	$(QUIETLY) $(STRIP) -g $@
-    # implied else here is no stripping at all
-    endif
-  endif
-  ifeq ($(ZIP_DEBUGINFO_FILES),1)
-	$(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO)
-	$(RM) $(LIBSAPROC_DEBUGINFO)
-  endif
-endif
-
-install_saproc: $(BUILDLIBSAPROC)
-	$(QUIETLY) if [ -e $(LIBSAPROC) ] ; then             \
-	  echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)";     \
-	  test -f $(LIBSAPROC_DEBUGINFO) &&                  \
-	    $(CP) -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \
-	  test -f $(LIBSAPROC_DIZ) &&                  \
-	    $(CP) -f $(LIBSAPROC_DIZ) $(DEST_SAPROC_DIZ); \
-	  $(CP) -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done";  \
-	fi
-
-.PHONY: install_saproc
--- a/hotspot/make/aix/makefiles/top.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/aix/makefiles/top.make	Wed Nov 25 11:34:16 2015 +0100
@@ -28,7 +28,6 @@
 # It also:
 #   -builds and runs adlc via adlc.make
 #   -generates JVMTI source and docs via jvmti.make (JSR-163)
-#   -generate sa-jdi.jar (JDI binding to core files)
 
 # It assumes the following flags are set:
 # CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Obj_Files
@@ -86,7 +85,7 @@
 	@echo All done.
 
 # This is an explicit dependency for the sake of parallel makes.
-vm_build_preliminaries:  checks $(Cached_plat) $(AD_Files_If_Required) trace_stuff jvmti_stuff sa_stuff
+vm_build_preliminaries:  checks $(Cached_plat) $(AD_Files_If_Required) trace_stuff jvmti_stuff
 	@# We need a null action here, so implicit rules don't get consulted.
 
 $(Cached_plat): $(Plat_File)
@@ -104,10 +103,6 @@
 trace_stuff: jvmti_stuff $(Cached_plat) $(adjust-mflags)
 	@$(MAKE) -f trace.make $(MFLAGS-adjusted)
 
-# generate SA jar files and native header
-sa_stuff:
-	@$(MAKE) -f sa.make $(MFLAGS-adjusted)
-
 # and the VM: must use other makefile with dependencies included
 
 # We have to go to great lengths to get control over the -jN argument
@@ -146,7 +141,7 @@
 	rm -fr $(GENERATED)
 
 .PHONY: default vm_build_preliminaries
-.PHONY: lists ad_stuff jvmti_stuff sa_stuff the_vm clean realclean
+.PHONY: lists ad_stuff jvmti_stuff the_vm clean realclean
 .PHONY: checks check_os_version install
 
 .NOTPARALLEL:
--- a/hotspot/make/aix/makefiles/vm.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/aix/makefiles/vm.make	Wed Nov 25 11:34:16 2015 +0100
@@ -61,7 +61,7 @@
 # The order is important for the precompiled headers to work.
 INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
 
-# SYMFLAG is used by {jsig,saproc}.make
+# SYMFLAG is used by jsig.make
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   # always build with debug info when we can create .debuginfo files
   SYMFLAG = -g
@@ -359,13 +359,10 @@
 # Signal interposition library
 include $(MAKEFILES_DIR)/jsig.make
 
-# Serviceability agent
-include $(MAKEFILES_DIR)/saproc.make
-
 #----------------------------------------------------------------------
 
-build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC)
+build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB)
 
-install: install_jvm install_jsig install_saproc
+install: install_jvm install_jsig
 
 .PHONY: default build install install_jvm
--- a/hotspot/make/bsd/Makefile	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/bsd/Makefile	Wed Nov 25 11:34:16 2015 +0100
@@ -45,15 +45,6 @@
 #
 #    make REMOTE="rsh -l me myotherlinuxbox"
 
-# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding.
-# JDI binding on SA produces two binaries:
-#  1. sa-jdi.jar       - This is built before building libjvm.so
-#                        Please refer to ./makefiles/sa.make
-#  2. libsa.so         - Native library for SA - This is built after
-#                        libjsig.so (signal interposition library)
-#                        Please refer to ./makefiles/vm.make
-# If $(GAMMADIR)/agent dir is not present, SA components are not built.
-
 ifeq ($(GAMMADIR),)
 include ../../make/defs.make
 else
--- a/hotspot/make/bsd/makefiles/buildtree.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/bsd/makefiles/buildtree.make	Wed Nov 25 11:34:16 2015 +0100
@@ -49,7 +49,6 @@
 # adlc.make	-
 # trace.make	- generate tracing event and type definitions
 # jvmti.make	- generate JVMTI bindings from the spec (JSR-163)
-# sa.make	- generate SA jar file and natives
 #
 # The makefiles are split this way so that "make foo" will run faster by not
 # having to read the dependency files for the vm.
@@ -130,7 +129,7 @@
 BUILDTREE_MAKE	= $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
 
 # dtrace.make is used on BSD versions that implement Dtrace (like MacOS X)
-BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make sa.make dtrace.make
+BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make dtrace.make
 
 BUILDTREE_VARS	= GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
 	SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
@@ -218,7 +217,6 @@
 	echo "TARGET = $(TARGET)"; \
 	echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \
 	echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \
-	echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \
 	echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
 	echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
 	echo "OPENJDK = $(OPENJDK)"; \
@@ -360,16 +358,6 @@
 	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
 	) > $@
 
-sa.make: $(BUILDTREE_MAKE)
-	@echo $(LOG_INFO) Creating $@ ...
-	$(QUIETLY) ( \
-	$(BUILDTREE_COMMENT); \
-	echo; \
-	echo include flags.make; \
-	echo; \
-	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
-	) > $@
-
 dtrace.make: $(BUILDTREE_MAKE)
 	@echo $(LOG_INFO) Creating $@ ...
 	$(QUIETLY) ( \
--- a/hotspot/make/bsd/makefiles/defs.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/bsd/makefiles/defs.make	Wed Nov 25 11:34:16 2015 +0100
@@ -188,13 +188,13 @@
   ifneq ($(BUILD_FLAVOR),)
     # FULL_DEBUG_SYMBOLS not created for individual static libraries
     ifeq ($(STATIC_BUILD),false)
-      ifeq ($(BUILD_FLAVOR), product)
-        FULL_DEBUG_SYMBOLS ?= 1
-        ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
-      else
-        # debug variants always get Full Debug Symbols (if available)
-        ENABLE_FULL_DEBUG_SYMBOLS = 1
-      endif
+    ifeq ($(BUILD_FLAVOR), product)
+      FULL_DEBUG_SYMBOLS ?= 1
+      ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
+    else
+      # debug variants always get Full Debug Symbols (if available)
+      ENABLE_FULL_DEBUG_SYMBOLS = 1
+    endif
      endif
     $(eval $(call print_info, "ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)"))
     # since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
@@ -260,11 +260,11 @@
 
 # Library suffix
 ifneq ($(STATIC_BUILD),true)
-  ifeq ($(OS_VENDOR),Darwin)
-    LIBRARY_SUFFIX=dylib
-  else
-    LIBRARY_SUFFIX=so
-  endif
+ifeq ($(OS_VENDOR),Darwin)
+  LIBRARY_SUFFIX=dylib
+else
+  LIBRARY_SUFFIX=so
+endif
 else
   LIBRARY_SUFFIX=a
 endif
@@ -275,7 +275,7 @@
 # jsig library not needed for static builds
 ifneq ($(STATIC_BUILD),true)
 # client and server subdirectories have symbolic links to ../libjsig.so
-  EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
+EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
 endif
 
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
@@ -342,47 +342,6 @@
   endif
 endif
 
-# Serviceability Binaries
-# No SA Support for PPC, IA64, ARM or zero
-ADD_SA_BINARIES/x86   = $(EXPORT_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
-                        $(EXPORT_LIB_DIR)/sa-jdi.jar
-
-ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-  ifeq ($(ZIP_DEBUGINFO_FILES),1)
-      ADD_SA_BINARIES/x86 += $(EXPORT_LIB_ARCH_DIR)/libsaproc.diz
-  else
-    ifeq ($(OS_VENDOR), Darwin)
-        ADD_SA_BINARIES/x86 += $(EXPORT_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM
-    else
-        ADD_SA_BINARIES/x86 += $(EXPORT_LIB_ARCH_DIR)/libsaproc.debuginfo
-    endif
-  endif
-endif
-
-ADD_SA_BINARIES/sparc = $(EXPORT_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
-                        $(EXPORT_LIB_DIR)/sa-jdi.jar
-ADD_SA_BINARIES/universal = $(EXPORT_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
-                            $(EXPORT_LIB_DIR)/sa-jdi.jar
-
-ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-  ifeq ($(ZIP_DEBUGINFO_FILES),1)
-      ADD_SA_BINARIES/universal += $(EXPORT_LIB_ARCH_DIR)/libsaproc.diz
-  else
-    ifeq ($(OS_VENDOR), Darwin)
-        ADD_SA_BINARIES/universal += $(EXPORT_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM
-    else
-        ADD_SA_BINARIES/universal += $(EXPORT_LIB_ARCH_DIR)/libsaproc.debuginfo
-    endif
-  endif
-endif
-
-ADD_SA_BINARIES/ppc   =
-ADD_SA_BINARIES/ia64  =
-ADD_SA_BINARIES/arm   =
-ADD_SA_BINARIES/zero  =
-
-EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
-
 # Universal build settings
 ifeq ($(OS_VENDOR), Darwin)
   # Build universal binaries by default on Mac OS X
@@ -409,9 +368,8 @@
 
     # Binaries to 'universalize' if built
     ifneq ($(STATIC_BUILD),true)
-      UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX)
+    UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX)
     endif
-    UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX)
     UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX)
     UNIVERSAL_LIPO_LIST += $(EXPORT_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX)
 
@@ -430,12 +388,10 @@
           UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/server/libjvm.diz
           UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/client/libjvm.diz
           UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/libjsig.diz
-          UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/libsaproc.diz
       else
           UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/server/libjvm.$(LIBRARY_SUFFIX).dSYM
           UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/client/libjvm.$(LIBRARY_SUFFIX).dSYM
           UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/libjsig.$(LIBRARY_SUFFIX).dSYM
-          UNIVERSAL_COPY_LIST += $(EXPORT_LIB_DIR)/libsaproc.$(LIBRARY_SUFFIX).dSYM
       endif
     endif
 
--- a/hotspot/make/bsd/makefiles/rules.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/bsd/makefiles/rules.make	Wed Nov 25 11:34:16 2015 +0100
@@ -107,8 +107,6 @@
 else
 
 # take from the PATH, if ALT_BOOTDIR, BOOTDIR and JAVA_HOME are not defined
-# note that this is to support hotspot build without SA. To build
-# SA along with hotspot, you need to define ALT_BOOTDIR, BOOTDIR or JAVA_HOME
 
 RUN.JAVA  = java
 RUN.JAVAP = javap
--- a/hotspot/make/bsd/makefiles/sa.make	Wed Nov 25 08:18:08 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-#
-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. 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.
-#
-#
-
-# This makefile (sa.make) is included from the sa.make in the
-# build directories.
-
-define print_info
-  ifneq ($$(LOG_LEVEL), warn)
-    $$(shell echo >&2 "INFO: $1")
-  endif
-endef
-
-# This makefile is used to build Serviceability Agent java code
-# and generate JNI header file for native methods.
-
-include $(GAMMADIR)/make/bsd/makefiles/rules.make
-
-AGENT_DIR = $(GAMMADIR)/agent
-
-include $(GAMMADIR)/make/sa.files
-
--include $(HS_ALT_MAKE)/bsd/makefiles/sa.make
-
-TOPDIR    = $(shell echo `pwd`)
-GENERATED = $(TOPDIR)/../generated
-
-# SA-JDI depends on the standard JDI classes.
-# Default SA_CLASSPATH location:
-DEF_SA_CLASSPATH=$(BOOT_JAVA_HOME)/lib/tools.jar
-ifeq ($(ALT_SA_CLASSPATH),)
-  # no alternate specified; see if default exists
-  SA_CLASSPATH=$(shell test -f $(DEF_SA_CLASSPATH) && echo $(DEF_SA_CLASSPATH))
-  ifeq ($(SA_CLASSPATH),)
-    # the default doesn't exist
-    ifeq ($(OS_VENDOR), Darwin)
-      # A JDK from Apple doesn't have tools.jar; the JDI classes are
-      # are in the regular classes.jar file.
-      APPLE_JAR=$(BOOT_JAVA_HOME)/bundle/Classes/classes.jar
-      SA_CLASSPATH=$(shell test -f $(APPLE_JAR) && echo $(APPLE_JAR))
-    endif
-  endif
-else
-  $(eval $(call print_info, "ALT_SA_CLASSPATH=$(ALT_SA_CLASSPATH)"))
-  SA_CLASSPATH=$(shell test -f $(ALT_SA_CLASSPATH) && echo $(ALT_SA_CLASSPATH))
-endif
-
-ifneq ($(SA_CLASSPATH),)
-  SA_CLASSPATH_ARG := -classpath $(SA_CLASSPATH)
-endif
-
-# TODO: if it's a modules image, check if SA module is installed.
-MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
-
-AGENT_FILES_LIST := $(GENERATED)/agent.classes.list
-
-SA_CLASSDIR = $(GENERATED)/saclasses
-
-SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
-
-SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
-
-# if $(AGENT_DIR) does not exist, we don't build SA
-# also, we don't build SA on Itanium, PowerPC, ARM or zero.
-
-all:
-	if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \
-             -a "$(SRCARCH)" != "arm" \
-             -a "$(SRCARCH)" != "ppc" \
-             -a "$(SRCARCH)" != "zero" ] ; then \
-	   $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
-	fi
-
-$(GENERATED)/sa-jdi.jar: $(AGENT_FILES)
-	$(QUIETLY) echo $(LOG_INFO) "Making $@"
-	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
-	  exit 1; \
-	fi
-	$(QUIETLY) if [ ! -f "$(SA_CLASSPATH)" -a ! -d $(MODULELIB_PATH) ] ; then \
-	  echo "Cannot find JDI classes. Use 1.6.0 or later version of JDK."; \
-	  echo ""; \
-	  exit 1; \
-	fi
-	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
-	  mkdir -p $(SA_CLASSDIR);        \
-	fi
-# Note: When indented, make tries to execute the '$(shell' comment.
-# In some environments, cmd processors have limited line length.
-# To prevent the javac invocation in the next block from using
-# a very long cmd line, we use javac's @file-list option. We
-# generate the file lists using make's built-in 'foreach' control
-# flow which also avoids cmd processor line length issues. Since
-# the 'foreach' is done as part of make's macro expansion phase,
-# the initialization of the lists is also done in the same phase
-# using '$(shell rm ...' instead of using the more traditional
-# 'rm ...' rule.
-	$(shell rm -rf $(AGENT_FILES_LIST))
-# gnumake 3.78.1 does not accept the *'s that
-# are in AGENT_FILES, so use the shell to expand them.
-# Be extra carefull to not produce too long command lines in the shell!
-	$(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST)))
-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -h $(GENERATED) $(SA_CLASSPATH_ARG) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST)
-	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
-	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
-	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
-	$(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
-	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/*
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/
-	$(QUIETLY) $(CP) -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/
-	$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(SA_CLASSDIR)/ .
-	$(QUIETLY) $(REMOTE) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
-
-clean:
-	rm -rf $(SA_CLASSDIR)
-	rm -rf $(GENERATED)/sa-jdi.jar
-	rm -rf $(AGENT_FILES_LIST)
--- a/hotspot/make/bsd/makefiles/top.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/bsd/makefiles/top.make	Wed Nov 25 11:34:16 2015 +0100
@@ -28,7 +28,6 @@
 # It also:
 #   -builds and runs adlc via adlc.make
 #   -generates JVMTI source and docs via jvmti.make (JSR-163)
-#   -generate sa-jdi.jar (JDI binding to core files)
 
 # It assumes the following flags are set:
 # CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Obj_Files
@@ -86,7 +85,7 @@
 	@echo All done.
 
 # This is an explicit dependency for the sake of parallel makes.
-vm_build_preliminaries:  checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff trace_stuff sa_stuff dtrace_stuff
+vm_build_preliminaries:  checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff trace_stuff dtrace_stuff
 	@# We need a null action here, so implicit rules don't get consulted.
 
 $(Cached_plat): $(Plat_File)
@@ -113,10 +112,6 @@
 	@# We need a null action here, so implicit rules don't get consulted.
 endif
 
-# generate SA jar files and native header
-sa_stuff:
-	@$(MAKE) -f sa.make $(MFLAGS-adjusted)
-
 # and the VM: must use other makefile with dependencies included
 
 # We have to go to great lengths to get control over the -jN argument
@@ -155,7 +150,7 @@
 	rm -fr $(GENERATED)
 
 .PHONY: default vm_build_preliminaries
-.PHONY: lists ad_stuff jvmti_stuff sa_stuff the_vm clean realclean
+.PHONY: lists ad_stuff jvmti_stuff the_vm clean realclean
 .PHONY: checks check_os_version install
 
 .NOTPARALLEL:
--- a/hotspot/make/bsd/makefiles/vm.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/bsd/makefiles/vm.make	Wed Nov 25 11:34:16 2015 +0100
@@ -60,7 +60,7 @@
 # The order is important for the precompiled headers to work.
 INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
 
-# SYMFLAG is used by {jsig,saproc}.make
+# SYMFLAG is used by jsig.make
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   # always build with debug info when we can create .dSYM/.debuginfo files
   SYMFLAG = -g
@@ -299,9 +299,9 @@
 
   ifeq ($(OS_VENDOR), Darwin)
     ifneq ($(STATIC_BUILD),true)
-      LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/.
-      LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/..
-      LFLAGS_VM += -Xlinker -install_name -Xlinker @rpath/$(@F)
+    LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/.
+    LFLAGS_VM += -Xlinker -rpath -Xlinker @loader_path/..
+    LFLAGS_VM += -Xlinker -install_name -Xlinker @rpath/$(@F)
     endif
   else
     LFLAGS_VM                += -Wl,-z,defs
@@ -421,19 +421,16 @@
 # Signal interposition library
 include $(MAKEFILES_DIR)/jsig.make
 
-# Serviceability agent
-include $(MAKEFILES_DIR)/saproc.make
-
 #----------------------------------------------------------------------
 
 ifeq ($(OS_VENDOR), Darwin)
 # no libjvm_db for macosx
-build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(BUILDLIBSAPROC) dtraceCheck $(EXPORTED_SYMBOLS)
+build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) dtraceCheck $(EXPORTED_SYMBOLS)
 	echo "Doing vm.make build:"
 else
-build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) $(EXPORTED_SYMBOLS)
+build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(EXPORTED_SYMBOLS)
 endif
 
-install: install_jvm install_jsig install_saproc
+install: install_jvm install_jsigs
 
 .PHONY: default build install install_jvm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/make/gensrc/Gensrc-jdk.hotspot.agent.gmk	Wed Nov 25 11:34:16 2015 +0100
@@ -0,0 +1,47 @@
+#
+# Copyright (c) 2015, Oracle and/or its affiliates. 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.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# 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.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+
+################################################################################
+
+SA_PROPERTIES := $(SUPPORT_OUTPUTDIR)/gensrc/jdk.hotspot.agent/sa.properties
+
+SA_BUILD_VERSION_PROP_NAME := "sun.jvm.hotspot.runtime.VM.saBuildVersion"
+
+$(SA_PROPERTIES): $(call DependOnVariable, FULL_VERSION)
+	$(MKDIR) -p $(@D)
+	$(ECHO) "$(SA_BUILD_VERSION_PROP_NAME)=$(FULL_VERSION)" > $@
+
+TARGETS += $(SA_PROPERTIES)
+
+################################################################################
+
+all: $(TARGETS)
+
+.PHONY: all default
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/make/lib/Lib-jdk.hotspot.agent.gmk	Wed Nov 25 11:34:16 2015 +0100
@@ -0,0 +1,130 @@
+#
+# Copyright (c) 2015, Oracle and/or its affiliates. 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.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# 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.
+#
+
+include NativeCompilation.gmk
+
+$(eval $(call IncludeCustomExtension, hotspot, lib/Lib-jdk.hotspot.agent.gmk))
+
+################################################################################
+
+SA_TOPDIR := $(HOTSPOT_TOPDIR)/agent
+
+# SA has a slightly different OS naming scheme
+ifeq ($(OPENJDK_TARGET_OS), windows)
+  SA_TARGET_OS := win32
+else ifeq ($(OPENJDK_TARGET_OS), macosx)
+  SA_TARGET_OS := bsd
+else
+  SA_TARGET_OS := $(OPENJDK_TARGET_OS)
+endif
+
+# Defaults for most platforms
+SA_TOOLCHAIN := TOOLCHAIN_DEFAULT
+SA_NAME := saproc
+SA_SRC += $(SA_TOPDIR)/src/share/native $(SA_TOPDIR)/src/os/$(SA_TARGET_OS)
+SA_MAPFILE := $(SA_TOPDIR)/src/os/$(OPENJDK_TARGET_OS)/mapfile
+SA_INCLUDES := \
+    $(addprefix -I, $(SA_SRC)) \
+    -I$(SUPPORT_OUTPUTDIR)/headers/jdk.hotspot.agent \
+    -I$(HOTSPOT_TOPDIR)/src/os/$(OPENJDK_TARGET_OS) \
+    #
+
+ifeq ($(OPENJDK_TARGET_CPU), x86_64)
+  SA_MACHINE_FLAG_windows := -machine:AMD64
+else ifeq ($(OPENJDK_TARGET_CPU), x86)
+  SA_MACHINE_FLAG_linux := -march=i586
+  SA_MACHINE_FLAG_windows := -machine:I386
+endif
+
+ifeq ($(OPENJDK_TARGET_OS), linux)
+  SA_CFLAGS := $(CFLAGS_JDKLIB) -D_FILE_OFFSET_BITS=64 \
+      $(SA_MACHINE_FLAG_linux)
+  SA_LDFLAGS := $(LDFLAGS_JDKLIB) $(SA_MACHINE_FLAG_linux)
+  SA_LIBS := -lthread_db $(LIBDL)
+
+else ifeq ($(OPENJDK_TARGET_OS), solaris)
+  SA_TOOLCHAIN := TOOLCHAIN_LINK_CXX
+  SA_MAPFILE := $(SA_TOPDIR)/src/os/solaris/proc/mapfile
+  COMMON_CFLAGS := -I$(SA_TOPDIR)/src/os/$(OPENJDK_TARGET_OS)/proc \
+      -DSOLARIS_11_B159_OR_LATER
+  SA_CFLAGS := $(CFLAGS_JDKLIB) $(COMMON_CFLAGS)
+  SA_CXXFLAGS := $(CXXFLAGS_JDKLIB) $(COMMON_CFLAGS)
+  SA_LDFLAGS := $(subst -z defs,, $(LDFLAGS_JDKLIB)) \
+      -mt $(LDFLAGS_CXX_JDK)
+  SA_LIBS := -ldl -ldemangle -lthread -lc
+
+else ifeq ($(OPENJDK_TARGET_OS), macosx)
+  SA_EXCLUDE_FILES := BsdDebuggerLocal.c ps_proc.c salibelf.c StubDebuggerLocal.c
+  SA_CFLAGS := $(CFLAGS_JDKLIB) \
+      -Damd64 -D_GNU_SOURCE -mno-omit-leaf-frame-pointer \
+      -mstack-alignment=1 -fPIC
+  SA_LDFLAGS := $(LDFLAGS_JDKLIB)
+  SA_LIBS := -framework Foundation -framework JavaNativeFoundation \
+      -framework Security -framework CoreFoundation
+
+else ifeq ($(OPENJDK_TARGET_OS), windows)
+  SA_NAME := sawindbg
+  COMMON_CFLAGS := -D_WINDOWS -D_DEBUG -D_CONSOLE -D_MBCS -EHsc -FD
+  SA_CFLAGS := $(subst -DWIN32_LEAN_AND_MEAN,, $(CFLAGS_JDKLIB)) \
+      $(COMMON_CFLAGS)
+  SA_CXXFLAGS := $(subst -DWIN32_LEAN_AND_MEAN,, $(CXXFLAGS_JDKLIB)) \
+      $(COMMON_CFLAGS)
+  SA_LDFLAGS := $(LDFLAGS_JDKLIB) \
+      $(SA_MACHINE_FLAG_windows) -manifest \
+      -subsystem:console -map
+  SA_LIBS := dbgeng.lib
+  ifeq ($(OPENJDK_TARGET_CPU), x86_64)
+    SA_CXXFLAGS += -DWIN64
+  else
+    SA_CXXFLAGS += -RTC1 -ZI
+    SA_LDFLAGS += -SAFESEH
+  endif
+endif
+
+################################################################################
+
+$(eval $(call SetupNativeCompilation, BUILD_LIBSA, \
+    TOOLCHAIN := $(SA_TOOLCHAIN), \
+    OPTIMIZATION := NONE, \
+    DISABLED_WARNINGS_microsoft := 4267, \
+    DISABLED_WARNINGS_gcc := sign-compare, \
+    DISABLED_WARNINGS_CXX_solstudio := truncwarn unknownpragma, \
+    LIBRARY := $(SA_NAME), \
+    OUTPUT_DIR := $(call FindLibDirForModule, $(MODULE)), \
+    SRC := $(SA_SRC), \
+    EXCLUDE_FILES := test.c saproc_audit.cpp $(SA_EXCLUDE_FILES), \
+    CFLAGS := $(SA_INCLUDES) $(SA_CFLAGS) $(SA_CUSTOM_CFLAGS), \
+    CXXFLAGS := $(SA_INCLUDES) $(SA_CXXFLAGS) $(SA_CUSTOM_CXXFLAGS), \
+    LDFLAGS := $(SA_LDFLAGS) $(SA_CUSTOM_LDFLAGS), \
+    LIBS := $(SA_LIBS), \
+    MAPFILE := $(SA_MAPFILE), \
+    OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libsa, \
+    DEBUG_SYMBOLS := true, \
+    STRIP_SYMBOLS := true, \
+))
+
+TARGETS += $(BUILD_LIBSA)
+
+################################################################################
--- a/hotspot/make/linux/Makefile	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/linux/Makefile	Wed Nov 25 11:34:16 2015 +0100
@@ -45,15 +45,6 @@
 #
 #    make REMOTE="rsh -l me myotherlinuxbox"
 
-# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding.
-# JDI binding on SA produces two binaries:
-#  1. sa-jdi.jar       - This is built before building libjvm.so
-#                        Please refer to ./makefiles/sa.make
-#  2. libsa.so         - Native library for SA - This is built after
-#                        libjsig.so (signal interposition library)
-#                        Please refer to ./makefiles/vm.make
-# If $(GAMMADIR)/agent dir is not present, SA components are not built.
-
 ifeq ($(GAMMADIR),)
 include ../../make/defs.make
 else
--- a/hotspot/make/linux/makefiles/buildtree.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/linux/makefiles/buildtree.make	Wed Nov 25 11:34:16 2015 +0100
@@ -49,7 +49,6 @@
 # adlc.make	-
 # trace.make	- generate tracing event and type definitions
 # jvmti.make	- generate JVMTI bindings from the spec (JSR-163)
-# sa.make	- generate SA jar file and natives
 #
 # The makefiles are split this way so that "make foo" will run faster by not
 # having to read the dependency files for the vm.
@@ -127,7 +126,7 @@
 # For dependencies and recursive makes.
 BUILDTREE_MAKE	= $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
 
-BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make sa.make dtrace.make
+BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make dtrace.make
 
 BUILDTREE_VARS	= GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
 	SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
@@ -219,7 +218,6 @@
 	echo "TARGET = $(TARGET)"; \
 	echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \
 	echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \
-	echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \
 	echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
 	echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
 	echo "OPENJDK = $(OPENJDK)"; \
@@ -358,16 +356,6 @@
 	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
 	) > $@
 
-sa.make: $(BUILDTREE_MAKE)
-	@echo $(LOG_INFO) Creating $@ ...
-	$(QUIETLY) ( \
-	$(BUILDTREE_COMMENT); \
-	echo; \
-	echo include flags.make; \
-	echo; \
-	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
-	) > $@
-
 dtrace.make: $(BUILDTREE_MAKE)
 	@echo $(LOG_INFO) Creating $@ ...
 	$(QUIETLY) ( \
--- a/hotspot/make/linux/makefiles/defs.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/linux/makefiles/defs.make	Wed Nov 25 11:34:16 2015 +0100
@@ -293,24 +293,4 @@
   endif
 endif
 
-# Serviceability Binaries
-
-ADD_SA_BINARIES/DEFAULT = $(EXPORT_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
-                          $(EXPORT_LIB_DIR)/sa-jdi.jar
-
-ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-  ifeq ($(ZIP_DEBUGINFO_FILES),1)
-    ADD_SA_BINARIES/DEFAULT += $(EXPORT_LIB_ARCH_DIR)/libsaproc.diz
-  else
-    ADD_SA_BINARIES/DEFAULT += $(EXPORT_LIB_ARCH_DIR)/libsaproc.debuginfo
-  endif
-endif
-
-ADD_SA_BINARIES/$(HS_ARCH) = $(ADD_SA_BINARIES/DEFAULT)
-
-# No SA Support for zero
-ADD_SA_BINARIES/zero  =
-
 -include $(HS_ALT_MAKE)/linux/makefiles/defs.make
-
-EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))
--- a/hotspot/make/linux/makefiles/rules.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/linux/makefiles/rules.make	Wed Nov 25 11:34:16 2015 +0100
@@ -103,8 +103,6 @@
 else
 
 # take from the PATH, if ALT_BOOTDIR, BOOTDIR and JAVA_HOME are not defined
-# note that this is to support hotspot build without SA. To build
-# SA along with hotspot, you need to define ALT_BOOTDIR, BOOTDIR or JAVA_HOME
 
 RUN.JAVA  = java
 RUN.JAVAP = javap
--- a/hotspot/make/linux/makefiles/sa.make	Wed Nov 25 08:18:08 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-#
-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. 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.
-#
-#
-
-# This makefile (sa.make) is included from the sa.make in the
-# build directories.
-
-# This makefile is used to build Serviceability Agent java code
-# and generate JNI header file for native methods.
-
-include $(GAMMADIR)/make/linux/makefiles/rules.make
-
-include $(GAMMADIR)/make/defs.make
-include $(GAMMADIR)/make/altsrc.make
-
-AGENT_DIR = $(GAMMADIR)/agent
-
-include $(GAMMADIR)/make/sa.files
-
--include $(HS_ALT_MAKE)/linux/makefiles/sa.make
-
-
-TOPDIR    = $(shell echo `pwd`)
-GENERATED = $(TOPDIR)/../generated
-
-# tools.jar is needed by the JDI - SA binding
-SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
-
-# TODO: if it's a modules image, check if SA module is installed.
-MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
-
-AGENT_FILES_LIST := $(GENERATED)/agent.classes.list
-
-SA_CLASSDIR = $(GENERATED)/saclasses
-
-SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
-
-SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
-
-# if $(AGENT_DIR) does not exist, we don't build SA
-# also, we don't build SA on Itanium or zero.
-
-all:
-	if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \
-             -a "$(SRCARCH)" != "zero" ] ; then \
-	   $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
-	fi
-
-$(GENERATED)/sa-jdi.jar:: $(AGENT_FILES)
-	$(QUIETLY) echo $(LOG_INFO) "Making $@"
-	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
-	  exit 1; \
-	fi
-	$(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \
-	  echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
-	  echo ""; \
-	  exit 1; \
-	fi
-	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
-	  mkdir -p $(SA_CLASSDIR);        \
-	fi
-# Note: When indented, make tries to execute the '$(shell' comment.
-# In some environments, cmd processors have limited line length.
-# To prevent the javac invocation in the next block from using
-# a very long cmd line, we use javac's @file-list option. We
-# generate the file lists using make's built-in 'foreach' control
-# flow which also avoids cmd processor line length issues. Since
-# the 'foreach' is done as part of make's macro expansion phase,
-# the initialization of the lists is also done in the same phase
-# using '$(shell rm ...' instead of using the more traditional
-# 'rm ...' rule.
-	$(shell rm -rf $(AGENT_FILES_LIST))
-# gnumake 3.78.1 does not accept the *'s that
-# are in AGENT_FILES, so use the shell to expand them.
-# Be extra carefull to not produce too long command lines in the shell!
-	$(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST)))
-	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -h $(GENERATED) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST)
-	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
-	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
-	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
-	$(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
-	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/*
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/
-	$(QUIETLY) $(CP) -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/
-	$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(SA_CLASSDIR)/ .
-	$(QUIETLY) $(REMOTE) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
-
-clean:
-	rm -rf $(SA_CLASSDIR)
-	rm -rf $(GENERATED)/sa-jdi.jar
-	rm -rf $(AGENT_FILES_LIST)
-
--include $(HS_ALT_MAKE)/linux/makefiles/sa-rules.make
--- a/hotspot/make/linux/makefiles/saproc.make	Wed Nov 25 08:18:08 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-#
-# Copyright (c) 2005, 2015, Oracle and/or its affiliates. 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.
-#
-#
-include $(GAMMADIR)/make/defs.make
-include $(GAMMADIR)/make/altsrc.make
-
-# Rules to build serviceability agent library, used by vm.make
-
-# libsaproc.so: serviceability agent
-
-SAPROC = saproc
-LIBSAPROC = lib$(SAPROC).so
-
-LIBSAPROC_DEBUGINFO   = lib$(SAPROC).debuginfo
-LIBSAPROC_DIZ         = lib$(SAPROC).diz
-
-AGENT_DIR = $(GAMMADIR)/agent
-
-SASRCDIR = $(AGENT_DIR)/src/os/$(Platform_os_family)
-
-SASRCFILES = $(SASRCDIR)/salibelf.c                   \
-             $(SASRCDIR)/symtab.c                     \
-             $(SASRCDIR)/libproc_impl.c               \
-             $(SASRCDIR)/ps_proc.c                    \
-             $(SASRCDIR)/ps_core.c                    \
-             $(SASRCDIR)/LinuxDebuggerLocal.c         \
-             $(AGENT_DIR)/src/share/native/sadis.c
-
--include $(HS_ALT_MAKE)/linux/makefiles/saproc.make
-
-SAMAPFILE = $(SASRCDIR)/mapfile
-
-DEST_SAPROC           = $(JDK_LIBDIR)/$(LIBSAPROC)
-DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO)
-DEST_SAPROC_DIZ       = $(JDK_LIBDIR)/$(LIBSAPROC_DIZ)
-
-# DEBUG_BINARIES overrides everything, use full -g debug information
-ifeq ($(DEBUG_BINARIES), true)
-  SA_DEBUG_CFLAGS = -g
-endif
-
-# if $(AGENT_DIR) does not exist, we don't build SA
-# also, we don't build SA on Itanium or zero.
-
-ifneq ($(wildcard $(AGENT_DIR)),)
-ifneq ($(filter-out ia64 zero,$(SRCARCH)),)
-  BUILDLIBSAPROC = $(LIBSAPROC)
-endif
-endif
-
-ifneq ($(ALT_SASRCDIR),)
-ALT_SAINCDIR=-I$(ALT_SASRCDIR) -DALT_SASRCDIR
-else
-ALT_SAINCDIR=
-endif
-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
-
-SAARCH ?= $(BUILDARCH)
-
-$(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
-	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
-	  exit 1; \
-	fi
-	@echo $(LOG_INFO) Making SA debugger back-end...
-	$(QUIETLY) $(CC) -D$(SAARCH) -D_GNU_SOURCE                      \
-		   -D_FILE_OFFSET_BITS=64                               \
-                   $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG)     \
-	           -I$(SASRCDIR)                                        \
-	           -I$(GENERATED)                                       \
-	           -I$(BOOT_JAVA_HOME)/include                          \
-	           -I$(BOOT_JAVA_HOME)/include/$(Platform_os_family)    \
-			   $(ALT_SAINCDIR) 										\
-	           $(SASRCFILES)                                        \
-	           $(SA_LFLAGS)                                         \
-	           $(SA_DEBUG_CFLAGS)                                   \
-	           $(EXTRA_CFLAGS)                                      \
-	           -o $@                                                \
-	           -lthread_db
-ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
-	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
-  ifeq ($(STRIP_POLICY),all_strip)
-	$(QUIETLY) $(STRIP) $@
-  else
-    ifeq ($(STRIP_POLICY),min_strip)
-	$(QUIETLY) $(STRIP) -g $@
-    # implied else here is no stripping at all
-    endif
-  endif
-  ifeq ($(ZIP_DEBUGINFO_FILES),1)
-	$(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO)
-	$(RM) $(LIBSAPROC_DEBUGINFO)
-  endif
-endif
-
-install_saproc: $(BUILDLIBSAPROC)
-	$(QUIETLY) if [ -e $(LIBSAPROC) ] ; then                   \
-	  echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)";           \
-	  test ! -f $(LIBSAPROC_DEBUGINFO) ||                      \
-	    $(CP) -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \
-	  test ! -f $(LIBSAPROC_DIZ) ||                            \
-	    $(CP) -f $(LIBSAPROC_DIZ) $(DEST_SAPROC_DIZ);             \
-	  $(CP) -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done";        \
-	fi
-
-.PHONY: install_saproc
--- a/hotspot/make/linux/makefiles/top.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/linux/makefiles/top.make	Wed Nov 25 11:34:16 2015 +0100
@@ -28,7 +28,6 @@
 # It also:
 #   -builds and runs adlc via adlc.make
 #   -generates JVMTI source and docs via jvmti.make (JSR-163)
-#   -generate sa-jdi.jar (JDI binding to core files)
 
 # It assumes the following flags are set:
 # CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Obj_Files
@@ -86,7 +85,7 @@
 	@echo All done.
 
 # This is an explicit dependency for the sake of parallel makes.
-vm_build_preliminaries:  checks $(Cached_plat) $(AD_Files_If_Required) trace_stuff jvmti_stuff sa_stuff dtrace_stuff
+vm_build_preliminaries:  checks $(Cached_plat) $(AD_Files_If_Required) trace_stuff jvmti_stuff dtrace_stuff
 	@# We need a null action here, so implicit rules don't get consulted.
 
 $(Cached_plat): $(Plat_File)
@@ -104,10 +103,6 @@
 trace_stuff: jvmti_stuff $(Cached_plat) $(adjust-mflags)
 	@$(MAKE) -f trace.make $(MFLAGS-adjusted)
 
-# generate SA jar files and native header
-sa_stuff:
-	@$(MAKE) -f sa.make $(MFLAGS-adjusted)
-
 dtrace_stuff: $(Cached_plat) $(adjust-mflags)
 	@$(MAKE) -f dtrace.make dtrace_gen_headers $(MFLAGS-adjusted) GENERATED=$(GENERATED)
 
@@ -149,7 +144,7 @@
 	rm -fr $(GENERATED)
 
 .PHONY: default vm_build_preliminaries
-.PHONY: lists ad_stuff jvmti_stuff sa_stuff the_vm clean realclean
+.PHONY: lists ad_stuff jvmti_stuff the_vm clean realclean
 .PHONY: checks check_os_version install
 
 .NOTPARALLEL:
--- a/hotspot/make/linux/makefiles/vm.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/linux/makefiles/vm.make	Wed Nov 25 11:34:16 2015 +0100
@@ -62,7 +62,7 @@
 # The order is important for the precompiled headers to work.
 INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%)
 
-# SYMFLAG is used by {jsig,saproc}.make
+# SYMFLAG is used by jsig.make
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   # always build with debug info when we can create .debuginfo files
   SYMFLAG = -g
@@ -396,13 +396,10 @@
 # Signal interposition library
 include $(MAKEFILES_DIR)/jsig.make
 
-# Serviceability agent
-include $(MAKEFILES_DIR)/saproc.make
-
 #----------------------------------------------------------------------
 
-build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) dtraceCheck
+build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) dtraceCheck
 
-install: install_jvm install_jsig install_saproc
+install: install_jvm install_jsig
 
 .PHONY: default build install install_jvm $(HS_ALT_MAKE)/$(Platform_os_family)/makefiles/$(BUILDARCH).make $(HS_ALT_MAKE)/$(Platform_os_family)/makefiles/vm.make
--- a/hotspot/make/sa.files	Wed Nov 25 08:18:08 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-#
-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. 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.
-#  
-#
-
-# This filelist macro is included in platform specific sa.make
-# included all packages/*.java. package list can be generated by
-# $(GAMMADIR)/agent/make/build-pkglist. 
-
-# define AGENT_DIR before including this file in sa.make
-
-AGENT_SRC_DIR = $(AGENT_DIR)/src/share/classes
-
-# Splitted the set of files into two sets because on linux plaform
-# listing or compiling all the files results in 'Argument list too long' error.
-
-AGENT_FILES = \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/asm/sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/c1/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/ci/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/classfile/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/code/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/compiler/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/aarch64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/bsd/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/bsd/amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/bsd/x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/cdbg/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/cdbg/basic/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/dummy/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/ia64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/ia64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/ppc64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/aarch64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/linux/sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/posix/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/posix/elf/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/ppc64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/proc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/proc/amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/proc/ppc64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/proc/aarch64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/proc/sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/proc/x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/remote/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/remote/amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/remote/ppc64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/remote/sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/remote/x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/remote/aarch64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/win32/coff/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/windbg/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/windbg/amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/windbg/ia64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/windbg/x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/windows/x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/windows/amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/debugger/x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/gc/cms/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/gc/g1/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/gc/parallel/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/gc/serial/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/gc/shared/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/interpreter/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/jdi/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/memory/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/oops/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/opto/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/prims/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/aarch64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/bsd/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/bsd_amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/bsd_x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/linux/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/linux_amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/linux_aarch64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/linux_x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/linux_sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/linux_ppc64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/posix/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/solaris_amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/solaris_sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/solaris_x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/sparc/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/win32_amd64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/win32_x86/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/runtime/ppc64/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/tools/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/tools/jcore/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/tools/soql/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/types/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/types/basic/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/memo/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/action/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/classbrowser/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/table/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/tree/*.java \
-$(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/treetable/*.java \
-$(AGENT_SRC_DIR)/com/sun/java/swing/action/*.java \
-$(AGENT_SRC_DIR)/com/sun/java/swing/ui/*.java
--- a/hotspot/make/solaris/Makefile	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/solaris/Makefile	Wed Nov 25 11:34:16 2015 +0100
@@ -36,15 +36,6 @@
 # or BOOTDIR has to be set. We do *not* search javac, javah, rmic etc.
 # from the PATH.
 
-# Along with VM, Serviceability Agent (SA) is built for SA/JDI binding.
-# JDI binding on SA produces two binaries:
-#  1. sa-jdi.jar       - This is built before building libjvm.so
-#                        Please refer to ./makefiles/sa.make
-#  2. libsaproc.so     - Native library for SA - This is built after
-#                        libjsig.so (signal interposition library)
-#                        Please refer to ./makefiles/vm.make
-# If $(GAMMADIR)/agent dir is not present, SA components are not built.
-
 ifeq ($(GAMMADIR),)
 include ../../make/defs.make
 else
--- a/hotspot/make/solaris/makefiles/buildtree.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/solaris/makefiles/buildtree.make	Wed Nov 25 11:34:16 2015 +0100
@@ -49,7 +49,6 @@
 # adlc.make	-
 # trace.make	- generate tracing event and type definitions
 # jvmti.make	- generate JVMTI bindings from the spec (JSR-163)
-# sa.make	- generate SA jar file and natives
 #
 # The makefiles are split this way so that "make foo" will run faster by not
 # having to read the dependency files for the vm.
@@ -117,7 +116,7 @@
 # For dependencies and recursive makes.
 BUILDTREE_MAKE	= $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
 
-BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make sa.make dtrace.make
+BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make dtrace.make
 
 BUILDTREE_VARS	= GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
 	ARCH=$(ARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
@@ -205,7 +204,6 @@
 	echo "TARGET = $(TARGET)"; \
 	echo "HS_BUILD_VER = $(HS_BUILD_VER)"; \
 	echo "JRE_RELEASE_VER = $(JRE_RELEASE_VERSION)"; \
-	echo "SA_BUILD_VERSION = $(HS_BUILD_VER)"; \
 	echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \
 	echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \
 	echo "OPENJDK = $(OPENJDK)"; \
@@ -344,16 +342,6 @@
 	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
 	) > $@
 
-sa.make: $(BUILDTREE_MAKE)
-	@echo $(LOG_INFO) Creating $@ ...
-	$(QUIETLY) ( \
-	$(BUILDTREE_COMMENT); \
-	echo; \
-	echo include flags.make; \
-	echo; \
-	echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
-	) > $@
-
 dtrace.make: $(BUILDTREE_MAKE)
 	@echo $(LOG_INFO) Creating $@ ...
 	$(QUIETLY) ( \
--- a/hotspot/make/solaris/makefiles/defs.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/solaris/makefiles/defs.make	Wed Nov 25 11:34:16 2015 +0100
@@ -294,13 +294,3 @@
     endif
   endif
 endif
-
-EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX)
-ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-  ifeq ($(ZIP_DEBUGINFO_FILES),1)
-    EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libsaproc.diz
-  else
-    EXPORT_LIST += $(EXPORT_LIB_ARCH_DIR)/libsaproc.debuginfo
-  endif
-endif
-EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
--- a/hotspot/make/solaris/makefiles/rules.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/solaris/makefiles/rules.make	Wed Nov 25 11:34:16 2015 +0100
@@ -95,8 +95,6 @@
 else
 
 # take from the PATH, if ALT_BOOTDIR, BOOTDIR and JAVA_HOME are not defined
-# note that this is to support hotspot build without SA. To build
-# SA along with hotspot, you need to define ALT_BOOTDIR, BOOTDIR or JAVA_HOME
 
 RUN.JAVA  = java
 RUN.JAVAP = javap
--- a/hotspot/make/solaris/makefiles/sa.make	Wed Nov 25 08:18:08 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-#
-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. 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.
-#
-#
-
-# This makefile (sa.make) is included from the sa.make in the
-# build directories.
-
-# This makefile is used to build Serviceability Agent java code
-# and generate JNI header file for native methods.
-
-include $(GAMMADIR)/make/solaris/makefiles/rules.make
-include $(GAMMADIR)/make/defs.make
-AGENT_DIR = $(GAMMADIR)/agent
-include $(GAMMADIR)/make/sa.files
-
--include $(HS_ALT_MAKE)/solaris/makefiles/sa.make
-
-GENERATED = ../generated
-
-# tools.jar is needed by the JDI - SA binding
-SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
-
-# TODO: if it's a modules image, check if SA module is installed.
-MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
-
-AGENT_FILES_LIST := $(GENERATED)/agent.classes.list
-
-SA_CLASSDIR = $(GENERATED)/saclasses
-
-SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
-
-SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
-
-# if $(AGENT_DIR) does not exist, we don't build SA.
-all:
-	$(QUIETLY) if [ -d $(AGENT_DIR) ] ; then \
-	   $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
-	fi
-
-$(GENERATED)/sa-jdi.jar: $(AGENT_FILES)
-	$(QUIETLY) echo $(LOG_INFO) "Making $@";
-	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-	   echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
-	   exit 1; \
-	fi
-	$(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \
-	  echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
-	  echo ""; \
-	  exit 1; \
-	fi
-	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
-	  mkdir -p $(SA_CLASSDIR);        \
-	fi
-# Note: When indented, make tries to execute the '$(shell' comment.
-# In some environments, cmd processors have limited line length.
-# To prevent the javac invocation in the next block from using
-# a very long cmd line, we use javac's @file-list option. We
-# generate the file lists using make's built-in 'foreach' control
-# flow which also avoids cmd processor line length issues. Since
-# the 'foreach' is done as part of make's macro expansion phase,
-# the initialization of the lists is also done in the same phase
-# using '$(shell rm ...' instead of using the more traditional
-# 'rm ...' rule.
-	$(shell rm -rf $(AGENT_FILES_LIST))
-# gnumake 3.78.1 does not accept the *'s that
-# are in AGENT_FILES, so use the shell to expand them.
-# Be extra carefull to not produce too long command lines in the shell!
-	$(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST)))
-	$(QUIETLY) $(COMPILE.JAVAC) -h $(GENERATED) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST)
-	$(QUIETLY) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
-	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
-	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
-	$(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
-	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/*
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/
-	$(QUIETLY) $(CP) -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/
-	$(QUIETLY) $(RUN.JAR) cf $@ -C $(SA_CLASSDIR)/ .
-	$(QUIETLY) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
-
-clean:
-	rm -rf $(SA_CLASSDIR)
-	rm -rf $(GENERATED)/sa-jdi.jar
-	rm -rf $(AGENT_FILES_LIST)
--- a/hotspot/make/solaris/makefiles/saproc.make	Wed Nov 25 08:18:08 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-#
-# Copyright (c) 2005, 2014, Oracle and/or its affiliates. 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.
-#
-#
-
-# Rules to build serviceability agent library, used by vm.make
-
-# libsaproc.so: serviceability agent
-
-SAPROC = saproc
-SADIS = sadis
-LIBSAPROC = lib$(SAPROC).so
-SADISOBJ = $(SADIS).o
-
-LIBSAPROC_DEBUGINFO   = lib$(SAPROC).debuginfo
-LIBSAPROC_DIZ         = lib$(SAPROC).diz
-
-AGENT_DIR = $(GAMMADIR)/agent
-
-SASRCDIR = $(AGENT_DIR)/src/os/$(Platform_os_family)/proc
-
-SASRCFILES = $(SASRCDIR)/saproc.cpp
-
-SADISSRCFILES = $(AGENT_DIR)/src/share/native/sadis.c
-
-SAMAPFILE = $(SASRCDIR)/mapfile
-
-DEST_SAPROC           = $(JDK_LIBDIR)/$(LIBSAPROC)
-DEST_SAPROC_DEBUGINFO = $(JDK_LIBDIR)/$(LIBSAPROC_DEBUGINFO)
-DEST_SAPROC_DIZ       = $(JDK_LIBDIR)/$(LIBSAPROC_DIZ)
-
-# if $(AGENT_DIR) does not exist, we don't build SA
-
-ifneq ($(wildcard $(AGENT_DIR)),)
-  BUILDLIBSAPROC = $(LIBSAPROC)
-endif
-
-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE))
-
-ifdef USE_GCC
-SA_LFLAGS += -D_REENTRANT
-else
-SA_LFLAGS += -mt -xnolib -norunpath
-endif
-
-# The libproc Pstack_iter() interface changed in Nevada-B159.
-# Use 'uname -r -v' to determine the Solaris version as per
-# Solaris Nevada team request. This logic needs to match:
-# agent/src/os/solaris/proc/saproc.cpp: set_has_newer_Pstack_iter():
-#   - skip SunOS 4 or older
-#   - skip Solaris 10 or older
-#   - skip two digit internal Nevada builds
-#   - skip three digit internal Nevada builds thru 149
-#   - skip internal Nevada builds 150-158
-#   - if not skipped, print define for Nevada-B159 or later
-SOLARIS_11_B159_OR_LATER := \
-$(shell uname -r -v \
-    | sed -n \
-          -e '/^[0-4]\. /b' \
-          -e '/^5\.[0-9] /b' \
-          -e '/^5\.10 /b' \
-          -e '/ snv_[0-9][0-9]$$/b' \
-          -e '/ snv_[01][0-4][0-9]$$/b' \
-          -e '/ snv_15[0-8]$$/b' \
-          -e 's/.*/-DSOLARIS_11_B159_OR_LATER/' \
-          -e 'p' \
-          )
-
-# Uncomment the following to simulate building on Nevada-B159 or later
-# when actually building on Nevada-B158 or earlier:
-#SOLARIS_11_B159_OR_LATER=-DSOLARIS_11_B159_OR_LATER
-
-$(SADISOBJ): $(SADISSRCFILES)
-	           $(QUIETLY) $(CC)                                     \
-	           $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG)     \
-	           -I$(SASRCDIR)                                        \
-	           -I$(GENERATED)                                       \
-	           -I$(BOOT_JAVA_HOME)/include                          \
-	           -I$(BOOT_JAVA_HOME)/include/$(Platform_os_family)    \
-	           $(SOLARIS_11_B159_OR_LATER)                          \
-	           $(EXTRA_CFLAGS)					\
-	           $(SADISSRCFILES)                                     \
-	           -c -o $(SADISOBJ)
-
-$(LIBSAPROC): $(SASRCFILES) $(SADISOBJ) $(SAMAPFILE)
-	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
-	  exit 1; \
-	fi
-	@echo $(LOG_INFO) Making SA debugger back-end...
-	           $(QUIETLY) $(CXX)                                    \
-                   $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG)     \
-	           -I$(SASRCDIR)                                        \
-	           -I$(GENERATED)                                       \
-	           -I$(BOOT_JAVA_HOME)/include                          \
-	           -I$(BOOT_JAVA_HOME)/include/$(Platform_os_family)    \
-	           $(SOLARIS_11_B159_OR_LATER)                          \
-	           $(EXTRA_CXXFLAGS) $(EXTRA_LDFLAGS)			\
-	           $(SADISOBJ)                                          \
-	           $(SASRCFILES)                                        \
-	           $(SA_LFLAGS)                                         \
-	           -o $@                                                \
-	           -ldl -ldemangle -lthread -lc
-
-ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-	$(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO)
-	$(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@
-  ifeq ($(STRIP_POLICY),all_strip)
-	$(QUIETLY) $(STRIP) $@
-  else
-    ifeq ($(STRIP_POLICY),min_strip)
-	$(QUIETLY) $(STRIP) -x $@
-    # implied else here is no stripping at all
-    endif
-  endif
-  ifeq ($(ZIP_DEBUGINFO_FILES),1)
-	$(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO)
-	$(RM) $(LIBSAPROC_DEBUGINFO)
-  endif
-endif
-
-install_saproc: $(BULDLIBSAPROC)
-	$(QUIETLY) if [ -f $(LIBSAPROC) ] ; then                   \
-	  echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)";           \
-	  test ! -f $(LIBSAPROC_DEBUGINFO) ||                      \
-	    $(CP) -f $(LIBSAPROC_DEBUGINFO) $(DEST_SAPROC_DEBUGINFO); \
-	  test ! -f $(LIBSAPROC_DIZ) ||                            \
-	    $(CP) -f $(LIBSAPROC_DIZ) $(DEST_SAPROC_DIZ);             \
-	  $(CP) -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done";        \
-	fi
-
-.PHONY: install_saproc
--- a/hotspot/make/solaris/makefiles/top.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/solaris/makefiles/top.make	Wed Nov 25 11:34:16 2015 +0100
@@ -28,7 +28,6 @@
 # It also:
 #   -builds and runs adlc via adlc.make
 #   -generates JVMTI source and docs via jvmti.make (JSR-163)
-#   -generate sa-jdi.jar (JDI binding to core files)
 
 # It assumes the following flags are set:
 # CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Jvm_Obj_Files
@@ -79,7 +78,7 @@
 	@echo All done.
 
 # This is an explicit dependency for the sake of parallel makes.
-vm_build_preliminaries:  checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff trace_stuff sa_stuff dtrace_stuff
+vm_build_preliminaries:  checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff trace_stuff dtrace_stuff
 	@# We need a null action here, so implicit rules don't get consulted.
 
 $(Cached_plat): $(Plat_File)
@@ -97,10 +96,6 @@
 trace_stuff: jvmti_stuff $(Cached_plat) $(adjust-mflags)
 	@$(MAKE) -f trace.make $(MFLAGS-adjusted)
 
-# generate SA jar files and native header
-sa_stuff:
-	@$(MAKE) -f sa.make $(MFLAGS-adjusted)
-
 dtrace_stuff: $(Cached_plat) $(adjust-mflags)
 	@$(MAKE) -f dtrace.make dtrace_gen_headers $(MFLAGS-adjusted) GENERATED=$(GENERATED)
 
@@ -140,7 +135,7 @@
 	rm -fr $(GENERATED)
 
 .PHONY: default vm_build_preliminaries
-.PHONY: lists ad_stuff jvmti_stuff trace_stuff sa_stuff the_vm clean realclean
+.PHONY: lists ad_stuff jvmti_stuff trace_stuff the_vm clean realclean
 .PHONY: checks check_os_version install
 
 .NOTPARALLEL:
--- a/hotspot/make/solaris/makefiles/vm.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/solaris/makefiles/vm.make	Wed Nov 25 11:34:16 2015 +0100
@@ -55,7 +55,7 @@
 Src_Dirs_I += $(GENERATED)
 INCLUDES += $(Src_Dirs_I:%=-I%)
 
-# SYMFLAG is used by {dtrace,jsig,saproc}.make.
+# SYMFLAG is used by {dtrace,jsig}.make.
 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   # always build with debug info when we can create .debuginfo files
   # and disable 'lazy debug info' so the .so has everything.
@@ -341,13 +341,10 @@
 # Signal interposition library
 include $(MAKEFILES_DIR)/jsig.make
 
-# Serviceability agent
-include $(MAKEFILES_DIR)/saproc.make
-
 #----------------------------------------------------------------------
 
-build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) $(BUILDLIBSAPROC) dtraceCheck
+build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) dtraceCheck
 
-install: install_jvm install_jsig install_saproc
+install: install_jvm install_jsig
 
 .PHONY: default build install install_jvm
--- a/hotspot/make/windows/build.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/windows/build.make	Wed Nov 25 11:34:16 2015 +0100
@@ -30,14 +30,6 @@
 # Note: Running nmake or build.bat from the Windows command shell requires
 # that "sh" be accessible on the PATH. An MKS install does this.
 
-# SA components are built if BUILD_WIN_SA=1 is specified.
-# See notes in README. This produces files:
-#  1. sa-jdi.jar       - This is built before building jvm.dll
-#  2. sawindbg.dll     - Native library for SA - This is built after jvm.dll
-#                      - Also, .lib, .map, .pdb.
-#
-# Please refer to ./makefiles/sa.make
-
 # If we haven't set an ARCH yet use x86
 # create.bat and build.bat will set it, if used.
 !ifndef ARCH
@@ -202,30 +194,6 @@
 !endif
 !endif
 
-# We don't support SA on ia64, and we can't
-# build it if we are using a version of Vis Studio
-# older than .Net 2003.
-# SA_INCLUDE and SA_LIB are hold-overs from a previous
-# implementation in which we could build SA using
-# Debugging Tools For Windows, in which the .h/.lib files
-# and the .dlls are in different places than
-# they are for Vis Studio .Net 2003.
-# If that code ever needs to be resurrected, these vars
-# can be set here.  They are used in makefiles/sa.make.
-
-checkSA::
-
-!if "$(BUILD_WIN_SA)" != "1"
-checkSA::
-	@echo     Not building SA:  BUILD_WIN_SA != 1
-
-!elseif "$(ARCH)" == "ia64"
-BUILD_WIN_SA = 0
-checkSA::
-	@echo     Not building SA:  ARCH = ia64
-
-!endif  # ! "$(BUILD_WIN_SA)" != "1"
-
 #########################################################################
 
 defaultTarget: product
@@ -282,10 +250,6 @@
 	@ echo HS_COPYRIGHT=$(HOTSPOT_VM_COPYRIGHT)		>> $@
 	@ echo HS_NAME=$(PRODUCT_NAME) $(JDK_MKTG_VERSION)	>> $@
 	@ echo HS_BUILD_VER=$(HS_BUILD_VER)			>> $@
-	@ echo BUILD_WIN_SA=$(BUILD_WIN_SA)    			>> $@
-	@ echo SA_BUILD_VERSION=$(HS_BUILD_VER)                 >> $@
-	@ echo SA_INCLUDE=$(SA_INCLUDE)      			>> $@
-	@ echo SA_LIB=$(SA_LIB)         			>> $@
 	@ echo JDK_VER=$(JDK_VER)				>> $@
 	@ echo JDK_DOTVER=$(JDK_DOTVER)				>> $@
 	@ echo JRE_RELEASE_VER=$(JRE_RELEASE_VER)		>> $@
@@ -304,7 +268,7 @@
 	@ if "$(MV)" NEQ "" echo MV=$(MV)                       >> $@
 	@ if "$(ZIPEXE)" NEQ "" echo ZIPEXE=$(ZIPEXE)           >> $@
 
-checks: checkVariant checkWorkSpace checkSA
+checks: checkVariant checkWorkSpace
 
 checkVariant:
 	@ if "$(Variant)"=="" echo Need to specify "Variant=[tiered|compiler2|compiler1|core]" && false
--- a/hotspot/make/windows/build_vm_def.sh	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/windows/build_vm_def.sh	Wed Nov 25 11:34:16 2015 +0100
@@ -54,20 +54,6 @@
 DUMPBIN="link.exe /dump"
 export VS_UNICODE_OUTPUT= 
 
-if [ "$1" = "-nosa" ]; then
-    echo EXPORTS > vm.def
-    echo ""
-    echo "***"
-    echo "*** Not building SA: BUILD_WIN_SA != 1"
-    echo "*** C++ Vtables NOT included in vm.def"
-    echo "*** This jvm.dll will NOT work properly with SA."
-    echo "***"
-    echo "*** When in doubt, set BUILD_WIN_SA=1, clean and rebuild."
-    echo "***"
-    echo ""
-    exit
-fi
-
 echo "EXPORTS" > vm1.def
 
 # When called from IDE the first param should contain the link version, otherwise may be nill
--- a/hotspot/make/windows/makefiles/debug.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/windows/makefiles/debug.make	Wed Nov 25 11:34:16 2015 +0100
@@ -19,13 +19,12 @@
 # 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.
-#  
+#
 #
 
 HS_INTERNAL_NAME=jvm
 HS_FNAME=$(HS_INTERNAL_NAME).dll
 AOUT=$(HS_FNAME)
-SAWINDBG=sawindbg.dll
 GENERATED=../generated
 
 # Allow the user to turn off precompiled headers from the command line.
@@ -33,7 +32,7 @@
 BUILD_PCH_FILE=_build_pch_file.obj
 !endif
 
-default:: $(BUILD_PCH_FILE) $(AOUT) checkAndBuildSA
+default:: $(BUILD_PCH_FILE) $(AOUT)
 
 !include ../local.make
 !include compile.make
@@ -67,4 +66,3 @@
 !endif
 
 !include $(WorkSpace)/make/windows/makefiles/shared.make
-!include $(WorkSpace)/make/windows/makefiles/sa.make
--- a/hotspot/make/windows/makefiles/defs.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/windows/makefiles/defs.make	Wed Nov 25 11:34:16 2015 +0100
@@ -236,21 +236,6 @@
     ABS_OS_MAKEFILE := $(subst /,\\,$(shell $(CD) $(HS_MAKE_DIR)/$(OSNAME);$(PWD))/build.make)
 endif
 
-# Disable building SA on windows until we are sure
-# we want to release it.  If we build it here,
-# the SDK makefiles will copy it over and put it into
-# the created image.
-BUILD_WIN_SA = 1
-ifneq ($(ALT_BUILD_WIN_SA),)
-  BUILD_WIN_SA = $(ALT_BUILD_WIN_SA)
-endif
-
-ifeq ($(BUILD_WIN_SA), 1)
-  ifeq ($(ARCH),ia64)
-    BUILD_WIN_SA = 0
-  endif
-endif
-
 EXPORT_SERVER_DIR = $(EXPORT_BIN_DIR)/server
 EXPORT_CLIENT_DIR = $(EXPORT_BIN_DIR)/client
 
@@ -281,21 +266,6 @@
 
 EXPORT_LIST += $(EXPORT_LIB_DIR)/jvm.lib
 
-ifeq ($(BUILD_WIN_SA), 1)
-  EXPORT_LIST += $(EXPORT_BIN_DIR)/sawindbg.$(LIBRARY_SUFFIX)
-  ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
-    ifeq ($(ZIP_DEBUGINFO_FILES),1)
-      EXPORT_LIST += $(EXPORT_BIN_DIR)/sawindbg.diz
-    else
-      EXPORT_LIST += $(EXPORT_BIN_DIR)/sawindbg.pdb
-      EXPORT_LIST += $(EXPORT_BIN_DIR)/sawindbg.map
-    endif
-  endif
-  EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar
-  # Must pass this down to nmake.
-  MAKE_ARGS += BUILD_WIN_SA=1
-endif
-
 # Propagate compiler and tools paths from configure to nmake.
 # Need to make sure they contain \\ and not /.
 ifneq ($(SPEC),)
--- a/hotspot/make/windows/makefiles/fastdebug.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/windows/makefiles/fastdebug.make	Wed Nov 25 11:34:16 2015 +0100
@@ -19,13 +19,12 @@
 # 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.
-#  
+#
 #
 
 HS_INTERNAL_NAME=jvm
 HS_FNAME=$(HS_INTERNAL_NAME).dll
 AOUT=$(HS_FNAME)
-SAWINDBG=sawindbg.dll
 GENERATED=../generated
 
 # Allow the user to turn off precompiled headers from the command line.
@@ -33,7 +32,7 @@
 BUILD_PCH_FILE=_build_pch_file.obj
 !endif
 
-default:: $(BUILD_PCH_FILE) $(AOUT) checkAndBuildSA
+default:: $(BUILD_PCH_FILE) $(AOUT)
 
 !include ../local.make
 !include compile.make
@@ -66,4 +65,3 @@
 !endif
 
 !include $(WorkSpace)/make/windows/makefiles/shared.make
-!include $(WorkSpace)/make/windows/makefiles/sa.make
--- a/hotspot/make/windows/makefiles/generated.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/windows/makefiles/generated.make	Wed Nov 25 11:34:16 2015 +0100
@@ -19,7 +19,7 @@
 # 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.
-#  
+#
 #
 
 !include ../local.make
@@ -34,9 +34,6 @@
 TraceOutDir=tracefiles
 !include $(WorkSpace)/make/windows/makefiles/trace.make
 
-# Pick up rules for building SA
-!include $(WorkSpace)/make/windows/makefiles/sa.make
-
 AdlcOutDir=adfiles
 
 !if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered")
--- a/hotspot/make/windows/makefiles/product.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/windows/makefiles/product.make	Wed Nov 25 11:34:16 2015 +0100
@@ -19,7 +19,7 @@
 # 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.
-#  
+#
 #
 
 HS_INTERNAL_NAME=jvm
@@ -32,7 +32,7 @@
 BUILD_PCH_FILE=_build_pch_file.obj
 !endif
 
-default:: $(BUILD_PCH_FILE) $(AOUT) checkAndBuildSA
+default:: $(BUILD_PCH_FILE) $(AOUT)
 
 !include ../local.make
 !include compile.make
@@ -69,4 +69,3 @@
 !endif
 
 !include $(WorkSpace)/make/windows/makefiles/shared.make
-!include $(WorkSpace)/make/windows/makefiles/sa.make
--- a/hotspot/make/windows/makefiles/projectcreator.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/windows/makefiles/projectcreator.make	Wed Nov 25 11:34:16 2015 +0100
@@ -90,10 +90,6 @@
         -disablePch        getThread_windows_$(Platform_arch).cpp \
         -disablePch_compiler2     opcodes.cpp
 
-!if "$(BUILD_WIN_SA)" != "1"
-BUILD_VM_DEF_FLAG=-nosa
-!endif
-
 # Common options for the IDE builds for c1, and c2
 ProjectCreatorIDEOptions=\
         $(ProjectCreatorIDEOptions) \
@@ -106,7 +102,7 @@
         -jdkTargetRoot $(HOTSPOTJDKDIST) \
         -define ALIGN_STACK_FRAMES \
         -define VM_LITTLE_ENDIAN \
-        -prelink  "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b	set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME)	set JAVA_HOME=$(HOTSPOTJDKDIST)	$(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(BUILD_VM_DEF_FLAG) $(LD_VER)" \
+        -prelink  "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b	set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME)	set JAVA_HOME=$(HOTSPOTJDKDIST)	$(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LD_VER)" \
         -ignoreFile jsig.c \
         -ignoreFile jvmtiEnvRecommended.cpp \
         -ignoreFile jvmtiEnvStub.cpp \
--- a/hotspot/make/windows/makefiles/sa.make	Wed Nov 25 08:18:08 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-#
-# Copyright (c) 2003, 2015, Oracle and/or its affiliates. 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.
-#
-#
-
-# This makefile is used to build Serviceability Agent code
-# and generate JNI header file for native methods.
-
-AGENT_DIR = $(WorkSpace)/agent
-checkAndBuildSA::
-
-!if "$(BUILD_WIN_SA)" != "1"
-# Already warned about this in build.make
-!else
-
-# This first part is used to build sa-jdi.jar
-!include $(WorkSpace)/make/windows/makefiles/rules.make
-!include $(WorkSpace)/make/sa.files
-
-GENERATED = ../generated
-
-HS_COMMON_SRC_REL = src
-
-!if "$(OPENJDK)" != "true"
-HS_ALT_SRC_REL=src/closed
-HS_ALT_SRC = $(WorkSpace)/$(HS_ALT_SRC_REL)
-!ifndef HS_ALT_MAKE
-HS_ALT_MAKE=$(WorkSpace)/make/closed
-!endif
-!endif
-
-HS_COMMON_SRC = $(WorkSpace)/$(HS_COMMON_SRC_REL)
-
-!ifdef HS_ALT_MAKE
-!include $(HS_ALT_MAKE)/windows/makefiles/sa.make
-!endif
-
-# tools.jar is needed by the JDI - SA binding
-SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
-
-SA_CLASSDIR = $(GENERATED)/saclasses
-
-SA_BUILD_VERSION_PROP = sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)
-
-SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
-
-default::  $(GENERATED)/sa-jdi.jar
-
-# Remove the space between $(SA_BUILD_VERSION_PROP) and > below as it adds a white space
-# at the end of SA version string and causes a version mismatch with the target VM version.
-
-$(GENERATED)/sa-jdi.jar: $(AGENT_FILES)
-	$(QUIETLY) mkdir -p $(SA_CLASSDIR)
-	@echo ...Building sa-jdi.jar into $(SA_CLASSDIR)
-	@echo ...$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) ....
-	@$(COMPILE_JAVAC) -h $(GENERATED) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES)
-	$(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
-	$(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES)
-	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
-	$(QUIETLY) rm -rf $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
-	$(QUIETLY) mkdir $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
-	$(QUIETLY) $(CP) $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
-	$(QUIETLY) $(CP) -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)
-	$(RUN_JAR) cf $@ -C $(SA_CLASSDIR) .
-	$(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
-
-
-
-# This second part is used to build sawindbg.dll
-# We currently build it the same way for product, debug, and fastdebug.
-
-SAWINDBG=sawindbg.dll
-
-# Resource file containing VERSIONINFO
-SA_Res_Files=.\version.sares
-
-checkAndBuildSA:: $(SAWINDBG)
-
-# These do not need to be optimized (don't run a lot of code) and it
-# will be useful to have the assertion checks in place
-
-!if "$(BUILDARCH)" == "ia64"
-SA_CFLAGS = -nologo $(MS_RUNTIME_OPTION) -W3 $(GX_OPTION) -Od -D "WIN32" -D "WIN64" -D "_WINDOWS" -D "_DEBUG" -D "_CONSOLE" -D "_MBCS" -FD -c
-!elseif "$(BUILDARCH)" == "amd64"
-SA_CFLAGS = -nologo $(MS_RUNTIME_OPTION) -W3 $(GX_OPTION) -Od -D "WIN32" -D "WIN64" -D "_WINDOWS" -D "_DEBUG" -D "_CONSOLE" -D "_MBCS" -FD -c
-!else
-SA_CFLAGS = -nologo $(MS_RUNTIME_OPTION) -W3 $(GX_OPTION) -Od -D "WIN32" -D "_WINDOWS" -D "_DEBUG" -D "_CONSOLE" -D "_MBCS" -FD -RTC1 -c
-!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
-SA_CFLAGS = $(SA_CFLAGS) -ZI
-!endif
-!endif
-!if "$(MT)" != ""
-SA_LD_FLAGS = -manifest $(SA_LD_FLAGS)
-!endif
-
-SASRCFILES = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp \
-		$(AGENT_DIR)/src/share/native/sadis.c
-
-SA_LFLAGS = $(SA_LD_FLAGS) -nologo -subsystem:console -machine:$(MACHINE)
-!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
-SA_LFLAGS = $(SA_LFLAGS) -map -debug
-!endif
-!if "$(BUILDARCH)" == "i486"
-SA_LFLAGS = /SAFESEH $(SA_LFLAGS)
-!endif
-
-SA_CFLAGS = $(SA_CFLAGS) $(MP_FLAG)
-
-# Note that we do not keep sawindbj.obj around as it would then
-# get included in the dumpbin command in build_vm_def.sh
-
-# Force resources to be rebuilt every time
-$(SA_Res_Files): FORCE
-
-# In VS2005 or VS2008 the link command creates a .manifest file that we want
-# to insert into the linked artifact so we do not need to track it separately.
-# Use ";#2" for .dll and ";#1" for .exe in the MT command below:
-$(SAWINDBG): $(SASRCFILES) $(SA_Res_Files)
-	set INCLUDE=$(SA_INCLUDE)$(INCLUDE)
-	$(CXX) @<<
-	  -I"$(BootStrapDir)/include" -I"$(BootStrapDir)/include/win32"
-	  -I"$(GENERATED)" $(SA_CFLAGS)
-	  $(SASRCFILES)
-	  -out:$*.obj
-<<
-	set LIB=$(SA_LIB)$(LIB)
-	$(LD) -out:$@ -DLL sawindbg.obj sadis.obj dbgeng.lib $(SA_LFLAGS) $(SA_Res_Files)
-!if "$(MT)" != ""
-	$(MT) -manifest $(@F).manifest -outputresource:$(@F);#2
-!endif
-!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
-!if "$(ZIP_DEBUGINFO_FILES)" == "1"
-	$(ZIPEXE) -q $*.diz $*.map $*.pdb
-	$(RM) $*.map $*.pdb
-!endif
-!endif
-	-@rm -f $*.obj
-
-{$(COMMONSRC)\os\windows\vm}.rc.sares:
-        @$(RC) $(RC_FLAGS) /D "HS_FNAME=$(SAWINDBG)" /fo"$@" $<
-
-cleanall :
-	rm -rf $(GENERATED)/saclasses
-	rm -rf $(GENERATED)/sa-jdi.jar
-!endif
--- a/hotspot/make/windows/makefiles/vm.make	Wed Nov 25 08:18:08 2015 +0000
+++ b/hotspot/make/windows/makefiles/vm.make	Wed Nov 25 11:34:16 2015 +0100
@@ -408,10 +408,5 @@
         @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp
         $(CXX) $(CXX_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp
 
-!if "$(BUILD_WIN_SA)" != "1"
-BUILD_VM_DEF_FLAG=-nosa
-!endif
-
 vm.def: $(Obj_Files)
-	sh $(WorkSpace)/make/windows/build_vm_def.sh $(BUILD_VM_DEF_FLAG)
-
+	sh $(WorkSpace)/make/windows/build_vm_def.sh