# HG changeset patch # User phh # Date 1623275147 0 # Node ID 782f3b88b5ba7d420e6c5894c19f9bf1980df239 # Parent f5e5d3ac66a0dc69f8378b5805b7863511022ee1 8267545: [8u] Enable Xcode 12 builds on macOS Summary: Makefile and source code patches to enable Xcode 12 builds Reviewed-by: simonis, andrew Contributed-by: benty@amazon.com, hohensee@amazon.com diff -r f5e5d3ac66a0 -r 782f3b88b5ba make/bsd/makefiles/gcc.make --- a/make/bsd/makefiles/gcc.make Tue Jun 01 05:34:18 2021 +0100 +++ b/make/bsd/makefiles/gcc.make Wed Jun 09 21:45:47 2021 +0000 @@ -362,7 +362,15 @@ # Linker flags # statically link libstdc++.so, work with gcc but ignored by g++ -STATIC_STDCXX = -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic +ifeq ($(OS_VENDOR), Darwin) + ifeq ($(USE_CLANG), true) + STATIC_STDCXX = -Wl,-Bstatic -lc++ -Wl,-Bdynamic + else + STATIC_STDCXX = -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic + endif +else + STATIC_STDCXX = -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic +endif ifeq ($(USE_CLANG),) # statically link libgcc and/or libgcc_s, libgcc does not exist before gcc-3.x. diff -r f5e5d3ac66a0 -r 782f3b88b5ba make/bsd/makefiles/jsig.make --- a/make/bsd/makefiles/jsig.make Tue Jun 01 05:34:18 2021 +0100 +++ b/make/bsd/makefiles/jsig.make Wed Jun 09 21:45:47 2021 +0000 @@ -54,6 +54,11 @@ LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS) +ifeq ($(OS_VENDOR), Darwin) +# bring in minimum version argument or we'll fail on OSX 10.10 +LFLAGS_JSIG += $(LFLAGS) +endif + # DEBUG_BINARIES overrides everything, use full -g debug information ifeq ($(DEBUG_BINARIES), true) JSIG_DEBUG_CFLAGS = -g diff -r f5e5d3ac66a0 -r 782f3b88b5ba src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp --- a/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp Tue Jun 01 05:34:18 2021 +0100 +++ b/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp Wed Jun 09 21:45:47 2021 +0000 @@ -846,7 +846,7 @@ *size = pthread_get_stacksize_np(self); // workaround for OS X 10.9.0 (Mavericks) // pthread_get_stacksize_np returns 128 pages even though the actual size is 2048 pages - if (pthread_main_np() == 1) { + if (::pthread_main_np() == 1) { if ((*size) < (DEFAULT_MAIN_THREAD_STACK_PAGES * (size_t)getpagesize())) { char kern_osrelease[256]; size_t kern_osrelease_size = sizeof(kern_osrelease); diff -r f5e5d3ac66a0 -r 782f3b88b5ba src/share/vm/utilities/ostream.cpp --- a/src/share/vm/utilities/ostream.cpp Tue Jun 01 05:34:18 2021 +0100 +++ b/src/share/vm/utilities/ostream.cpp Wed Jun 09 21:45:47 2021 +0000 @@ -673,7 +673,10 @@ static int vsnprintf_wrapper(char* buf, size_t len, const char* fmt, ...) { va_list args; va_start(args, fmt); +PRAGMA_DIAG_PUSH +PRAGMA_FORMAT_NONLITERAL_IGNORED_INTERNAL int result = os::vsnprintf(buf, len, fmt, args); +PRAGMA_DIAG_POP va_end(args); return result; }