diff --git a/common/autoconf/basics.m4 b/common/autoconf/basics.m4 index 6a64c47b964..5824798de52 100644 --- a/common/autoconf/basics.m4 +++ b/common/autoconf/basics.m4 @@ -1022,13 +1022,21 @@ AC_DEFUN([BASIC_CHECK_TAR], AC_MSG_CHECKING([what type of tar was found]) AC_MSG_RESULT([$TAR_TYPE]) + TAR_CREATE_FILE_PARAM="" + if test "x$TAR_TYPE" = "xgnu"; then TAR_INCLUDE_PARAM="T" TAR_SUPPORTS_TRANSFORM="true" + if test "x$OPENJDK_TARGET_OS" = "xsolaris"; then + # When using gnu tar for Solaris targets, need to use compatibility mode + TAR_CREATE_EXTRA_PARAM="--format=ustar" + fi else TAR_INCLUDE_PARAM="I" TAR_SUPPORTS_TRANSFORM="false" fi + AC_SUBST(TAR_TYPE) + AC_SUBST(TAR_CREATE_EXTRA_PARAM) AC_SUBST(TAR_INCLUDE_PARAM) AC_SUBST(TAR_SUPPORTS_TRANSFORM) ]) diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index e4c2dab06f9..60c70549609 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -953,6 +953,8 @@ ZIP UNZIP TAR_SUPPORTS_TRANSFORM TAR_INCLUDE_PARAM +TAR_CREATE_EXTRA_PARAM +TAR_TYPE FIND_DELETE OUTPUT_SYNC OUTPUT_SYNC_SUPPORTED @@ -5092,7 +5094,7 @@ VS_SDK_PLATFORM_NAME_2013= #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1464173584 +DATE_WHEN_GENERATED=1464969763 ############################################################################### # @@ -21172,9 +21174,15 @@ $as_echo_n "checking what type of tar was found... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR_TYPE" >&5 $as_echo "$TAR_TYPE" >&6; } + TAR_CREATE_FILE_PARAM="" + if test "x$TAR_TYPE" = "xgnu"; then TAR_INCLUDE_PARAM="T" TAR_SUPPORTS_TRANSFORM="true" + if test "x$OPENJDK_TARGET_OS" = "xsolaris"; then + # When using gnu tar for Solaris targets, need to use compatibility mode + TAR_CREATE_EXTRA_PARAM="--format=ustar" + fi else TAR_INCLUDE_PARAM="I" TAR_SUPPORTS_TRANSFORM="false" @@ -21183,6 +21191,8 @@ $as_echo "$TAR_TYPE" >&6; } + + # These tools might not be installed by default, # need hint on how to install them. diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in index a58639f2b8a..706d5edcc59 100644 --- a/common/autoconf/spec.gmk.in +++ b/common/autoconf/spec.gmk.in @@ -687,6 +687,8 @@ XCODEBUILD=@XCODEBUILD@ DTRACE := @DTRACE@ FIXPATH:=@FIXPATH@ +TAR_TYPE:=@TAR_TYPE@ +TAR_CREATE_EXTRA_PARAM:=@TAR_CREATE_EXTRA_PARAM@ TAR_INCLUDE_PARAM:=@TAR_INCLUDE_PARAM@ TAR_SUPPORTS_TRANSFORM:=@TAR_SUPPORTS_TRANSFORM@ diff --git a/make/Bundles.gmk b/make/Bundles.gmk index 140f31afcf2..376cd315866 100644 --- a/make/Bundles.gmk +++ b/make/Bundles.gmk @@ -77,7 +77,8 @@ define SetupBundleFileBody ifneq ($$($1_SUBDIR), ) ifeq ($$($1_TYPE)-$(TAR_SUPPORTS_TRANSFORM)-$$($1_UNZIP_DEBUGINFO), tar.gz-true-false) $(CD) $$($1_BASE_DIR) \ - && ( $(TAR) cf - -$(TAR_INCLUDE_PARAM) $(SUPPORT_OUTPUTDIR)/bundles/_$1_files \ + && ( $(TAR) cf - $(TAR_CREATE_EXTRA_PARAM) \ + -$(TAR_INCLUDE_PARAM) $(SUPPORT_OUTPUTDIR)/bundles/_$1_files \ --transform 's|^|$$($1_SUBDIR)/|' $(TAR_IGNORE_EXIT_VALUE) ) \ | $(GZIP) > $$@ else @@ -97,7 +98,8 @@ define SetupBundleFileBody endif ifeq ($$($1_TYPE), tar.gz) $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1 && \ - ( $(TAR) cf - $$($1_SUBDIR) $(TAR_IGNORE_EXIT_VALUE) ) | $(GZIP) > $$@ + ( $(TAR) cf - $(TAR_CREATE_EXTRA_PARAM) $$($1_SUBDIR) $(TAR_IGNORE_EXIT_VALUE) ) \ + | $(GZIP) > $$@ else ifeq ($$($1_TYPE), zip) $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1 && $(ZIP) -qr $$@ . endif @@ -105,7 +107,8 @@ define SetupBundleFileBody else ifeq ($$($1_TYPE), tar.gz) $(CD) $$($1_BASE_DIR) \ - && ( $(TAR) cf - -$(TAR_INCLUDE_PARAM) $(SUPPORT_OUTPUTDIR)/bundles/_$1_files \ + && ( $(TAR) cf - $(TAR_CREATE_EXTRA_PARAM) \ + -$(TAR_INCLUDE_PARAM) $(SUPPORT_OUTPUTDIR)/bundles/_$1_files \ $(TAR_IGNORE_EXIT_VALUE) ) \ | $(GZIP) > $$@ else ifeq ($$($1_TYPE), zip)