OpenJDK / jdk10 / jdk10
changeset 2775:90cdfe56f154 jdk-10+21
8186470: JDK10 hotspot integration has broken all MacOS dummy builds
Reviewed-by: ctornqvi, tbell
author | erikj |
---|---|
date | Wed, 23 Aug 2017 08:55:13 +0200 |
parents | f10b706d5c33 |
children | 79d83606d48c 2c6a29c6d5c7 |
files | make/common/NativeCompilation.gmk |
diffstat | 1 files changed, 27 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/make/common/NativeCompilation.gmk Tue Aug 22 16:20:29 2017 +0200 +++ b/make/common/NativeCompilation.gmk Wed Aug 23 08:55:13 2017 +0200 @@ -932,10 +932,35 @@ endif endif + # Unfortunately the @-file trick does not work reliably when using clang. + # Clang does not propagate the @-file parameter to the ld sub process, but + # instead puts the full content on the command line. At least the llvm ld + # does not even support an @-file. + # + # When linking a large amount of object files, we risk hitting the limit + # of the command line length even on posix systems if the path length of + # the output dir is very long due to our use of absolute paths. To + # mitigate this, use paths relative to the output dir when linking over + # 500 files with clang and the output dir path is deep. + ifneq ($$(word 500, $$($1_ALL_OBJS)), ) + ifeq ($$(TOOLCHAIN_TYPE), clang) + # There is no strlen function in make, but checking path depth is a + # reasonable approximation. + ifneq ($$(word 10, $$(subst /, ,$$(OUTPUT_ROOT))), ) + $1_LINK_OBJS_RELATIVE := true + $1_ALL_OBJS_RELATIVE := $$(patsubst $$(OUTPUT_ROOT)/%, %, $$($1_ALL_OBJS)) + endif + endif + endif + $$($1_TARGET): $$($1_ALL_OBJS) $$($1_RES) $$($1_REAL_MAPFILE) \ $$($1_VARDEPS_FILE) ifneq ($$($1_OBJ_FILE_LIST), ) - $$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST))) + ifeq ($$($1_LINK_OBJS_RELATIVE), true) + $$(eval $$(call ListPathsSafely, $1_ALL_OBJS_RELATIVE, $$($1_OBJ_FILE_LIST))) + else + $$(eval $$(call ListPathsSafely, $1_ALL_OBJS, $$($1_OBJ_FILE_LIST))) + endif endif # Keep as much as possible on one execution line for best performance # on Windows @@ -951,6 +976,7 @@ $$($1_STRIP_CMD) else $$(call ExecuteWithLog, $$($1_OBJECT_DIR)/$$($1_SAFE_NAME)_link, \ + $$(if $$($1_LINK_OBJS_RELATIVE), $$(CD) $$(OUTPUT_ROOT) ; ) \ $$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $$($1_SYSROOT_LDFLAGS) \ $(LD_OUT_OPTION)$$@ $$($1_LD_OBJ_ARG) $$($1_RES) $$($1_LIBS) \ $$($1_EXTRA_LIBS)) ; \