diff --git a/inject/javax_inject/environment.mk b/inject/javax_inject/environment.mk index 40a72470a3..97c2d0aa81 100644 --- a/inject/javax_inject/environment.mk +++ b/inject/javax_inject/environment.mk @@ -30,7 +30,7 @@ CLASSES_DIR = $(BUILD_DIR)/classes INJECT_SRC_JAR = $(JAVA_DEPS_JAR_DIR)/$(JAVAX_INJECT_SOURCE_JAR) INJECT_JAR_FULL = $(JAVA_DEPS_JAR_DIR)/$(JAVAX_INJECT_JAR) -OBJCFLAGS := $(CC_WARNINGS) $(DEBUGFLAGS) +OBJCFLAGS := $(CC_WARNINGS) $(DEBUGFLAGS) -fobjc-weak # J2ObjC settings J2OBJC = $(DIST_DIR)/j2objc -classpath $(INJECT_JAR_FULL) -d $(BUILD_DIR) diff --git a/jre_emul/Classes/J2ObjC_common.h b/jre_emul/Classes/J2ObjC_common.h index 0c3d98f71d..9183ec37ca 100644 --- a/jre_emul/Classes/J2ObjC_common.h +++ b/jre_emul/Classes/J2ObjC_common.h @@ -124,7 +124,7 @@ __attribute__((always_inline)) inline id JreRetainedAutoreleasedReturnValue(id v #if __has_feature(objc_arc_weak) # define WEAK_ __weak #else -# define WEAK_ __unsafe_unretained +# error j2objc requires zeroing Objective-C weak references. #endif CF_EXTERN_C_BEGIN diff --git a/jre_emul/environment.mk b/jre_emul/environment.mk index 9941cbce53..ec0b40a2f0 100644 --- a/jre_emul/environment.mk +++ b/jre_emul/environment.mk @@ -154,7 +154,7 @@ endif # The -fobjc flags match XCode (a link fails without them because of # missing symbols of the form OBJC_CLASS_$_[classname]). -OBJCFLAGS += $(WARNINGS) -fno-strict-overflow \ +OBJCFLAGS += $(WARNINGS) -fobjc-weak -fno-strict-overflow \ -fobjc-abi-version=2 -fobjc-legacy-dispatch $(DEBUGFLAGS) \ -I/System/Library/Frameworks/ExceptionHandling.framework/Headers \ -I/System/Library/Frameworks/Security.framework/Headers \ @@ -185,5 +185,5 @@ ifeq ("$(strip $(CLANG_ENABLE_OBJC_ARC))", "YES") TRANSLATE_ARGS += -use-arc OBJCFLAGS := $(OBJCFLAGS) -fobjc-arc -fobjc-arc-exceptions\ -Wno-arc-bridge-casts-disallowed-in-nonarc \ - -Xclang -fobjc-runtime-has-weak + -Xclang endif diff --git a/junit/environment.mk b/junit/environment.mk index 3553d4007d..6d00ae754c 100644 --- a/junit/environment.mk +++ b/junit/environment.mk @@ -36,7 +36,7 @@ RUNNER_LIB_DIST = $(ARCH_LIB_DIR)/libjunit_runner.a # The -fobjc flags match XCode (a link fails without them because of # missing symbols of the form OBJC_CLASS_$_[classname]). -OBJCFLAGS := -ObjC $(CC_WARNINGS) \ +OBJCFLAGS := -ObjC $(CC_WARNINGS) -fobjc-weak \ -fobjc-abi-version=2 -fobjc-legacy-dispatch $(DEBUGFLAGS) \ -I/System/Library/Frameworks/ExceptionHandling.framework/Headers @@ -47,5 +47,5 @@ ifeq ("$(strip $(CLANG_ENABLE_OBJC_ARC))", "YES") J2OBJC := $(J2OBJC) -use-arc OBJCFLAGS := $(OBJCFLAGS) -fobjc-arc -fobjc-arc-exceptions\ -Wno-arc-bridge-casts-disallowed-in-nonarc \ - -Xclang -fobjc-runtime-has-weak + -Xclang endif