RFR: JDK-8074099 Even with toolchain type clang, OBJC is set to gcc

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue Mar 3 12:01:55 UTC 2015


In configure, we use the "magic" AC_PROG_OBJC function to locate the 
compiler for Objective-C files. On the systems I tested, this returns 
gcc, even if we want to use clang (by setting --with-toolchain-type=clang).

The following patch just sets OBJC to CC (that is, clang), if clang is 
selected as toolchain.

Open question: Should we do the same for toolchain-type=gcc? I'm not 
quite sure what we're getting from calling the AC_PROG_OBJC macro, 
except perhaps a loss of transparency on how our tools are picked up. 
:-/ In fact, maybe we should just skip the OBJC variable completely. In 
fact, for Objective-C++ (.mm) files, we just use the normal C++ compiler.

Bug: https://bugs.openjdk.java.net/browse/JDK-8074099

Patch inlined:

diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
--- a/common/autoconf/toolchain.m4
+++ b/common/autoconf/toolchain.m4
@@ -541,7 +541,13 @@
  AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
  [
    if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
-    AC_PROG_OBJC
+    if test "x$TOOLCHAIN_TYPE" = "xclang"; then
+      # Use clang for compiling Objective-C
+      OBJC="$CC"
+      AC_SUBST(OBJC)
+    else
+      AC_PROG_OBJC
+    fi
      BASIC_FIXUP_EXECUTABLE(OBJC)
      BASIC_PATH_PROGS(LIPO, lipo)
      BASIC_FIXUP_EXECUTABLE(LIPO)

/Magnus



More information about the build-dev mailing list