RFR(S): 8049715: PPC64: First steps to enable SA on Linux/PPC64

David Holmes david.holmes at oracle.com
Thu Jul 10 02:41:33 UTC 2014


Hi Volker,

Comments below where you might expect them :)

On 10/07/2014 3:36 AM, Volker Simonis wrote:
> Hi,
>
> could someone please review and sponsor the following change which
> does some preliminary work for enabling the SA agent on Linux/PPC64:
>
> http://cr.openjdk.java.net/~simonis/webrevs/8049715/
> https://bugs.openjdk.java.net/browse/JDK-8049715
>
> Details:
>
> Currently, we don't support the SA agent on Linux/PPC64. This change
> fixes the buildsystem such that the SA libraries (i.e. libsaproc.so
> and sa-jdi.jar) will be correctly build and copied into the resulting
> jdk images.
>
> This change also contains some small fixes in sa-jdi.jar to correctly
> detect Linux/PPC64 as supported SA platform. (The actual
> implementation of the Linux/PPC64 specific code will be handled by
> "8049716 PPC64: Implement SA on Linux/PPC64" -
> https://bugs.openjdk.java.net/browse/JDK-8049716).
>
> One thing which require special attention are the changes in
> make/linux/makefiles/defs.make which may touch the closed ppc port. In
> my change I've simply added 'ppc' to the list of supported
> architectures, but this may break the 32-bit ppc build. I think the

It wouldn't break it but I was expecting to see ppc64 here.

> current code is to verbose and error prone anyway. It would be better
> to have something like:
>
> ADD_SA_BINARIES   =
> $(EXPORT_JRE_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   += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.diz
>    else
>      ADD_SA_BINARIES   += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
>    endif
> endif
>
> ifneq (,$(findstring $(ARCH), amd64 x86_64 i686 i586 sparc sparcv9 ppc64))
>    EXPORT_LIST += $(ADD_SA_BINARIES/$(HS_ARCH))

You wouldn't need/want the $(HS_ARCH) there.

> endif
>
> With this solution we only define ADD_SA_BINARIES once (because the
> various definitions for the different platforms are equal anyway). But
> again this may affect other closed ports so please advise which
> solution you'd prefer.

The above is problematic for customizations. An alternative would be to 
set ADD_SA_BINARIES/default once with all the file names. Then:

ADD_SA_BINARIES/$(ARCH) = $(ADD_SA_BINARIES/default)
# No SA Support for IA64 or zero
ifneq (, $(findstring $(ARCH), ia64, zero))
   ADD_SA_BINARIES/$(ARCH) =

Each ARCH handled elsewhere would then still set ADD_SA_BINARIES/$(ARCH) 
if needed.

Does that seem reasonable?

> Notice that this change also requires a tiny fix in the top-level
> repository which must be pushed AFTER this change.

Can you elaborate please?

Thanks,
David

> Thank you and best regards,
> Volker
>


More information about the hotspot-dev mailing list