< prev index next >

make/lib/CompileGtest.gmk

Print this page
rev 12432 : 8171408: [aix] TOC overflow when linking the gtest libjvm.so
Reviewed-by: dholmes, simonis, erikj


  37   GTEST_COPY_DEBUG_SYMBOLS := false
  38 endif
  39 
  40 ################################################################################
  41 
  42 ifeq ($(OPENJDK_TARGET_OS), windows)
  43   GTEST_JVM_MAPFILE := $(JVM_MAPFILE)
  44 else
  45   GTEST_JVM_MAPFILE := $(JVM_OUTPUTDIR)/gtest/mapfile
  46 
  47   $(JVM_OUTPUTDIR)/gtest/symbols: $(JVM_OUTPUTDIR)/symbols
  48         $(call MakeDir, $(@D))
  49         ( $(CAT) $< ; echo "runUnitTests" ) > $@
  50 
  51   $(GTEST_JVM_MAPFILE): $(JVM_OUTPUTDIR)/gtest/symbols
  52         $(call create-mapfile)
  53 endif
  54 
  55 # Disabling switch warning for clang because of test source.
  56 







  57 $(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBJVM, \
  58     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
  59     LIBRARY := jvm, \
  60     OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
  61     OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/objs, \
  62     SRC := $(GTEST_TEST_SRC), \
  63     EXCLUDES := $(JVM_EXCLUDES), \
  64     EXCLUDE_FILES := gtestLauncher.cpp, \
  65     EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
  66     EXTRA_FILES := $(GTEST_FRAMEWORK_SRC)/src/gtest-all.cc, \
  67     EXTRA_OBJECT_FILES := $(filter-out %/operator_new$(OBJ_SUFFIX), \
  68         $(BUILD_LIBJVM_ALL_OBJS)), \
  69     CFLAGS := $(JVM_CFLAGS) -I$(GTEST_FRAMEWORK_SRC) \
  70         -I$(GTEST_FRAMEWORK_SRC)/include \
  71         $(addprefix -I,$(GTEST_TEST_SRC)), \
  72     CFLAGS_windows := -EHsc, \
  73     CFLAGS_solaris := -DGTEST_HAS_EXCEPTIONS=0 -library=stlport4, \
  74     CFLAGS_macosx := -DGTEST_OS_MAC=1, \

  75     CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
  76     CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
  77     DISABLED_WARNINGS_gcc := undef, \
  78     DISABLED_WARNINGS_clang := undef switch format-nonliteral \
  79         tautological-undefined-compare $(BUILD_LIBJVM_DISABLED_WARNINGS_clang), \
  80     DISABLED_WARNINGS_solstudio := identexpected, \
  81     LDFLAGS := $(JVM_LDFLAGS), \
  82     LDFLAGS_solaris := -library=stlport4 $(call SET_SHARED_LIBRARY_ORIGIN), \

  83     LIBS := $(JVM_LIBS), \
  84     OPTIMIZATION := $(JVM_OPTIMIZATION), \
  85     MAPFILE := $(GTEST_JVM_MAPFILE), \
  86     USE_MAPFILE_FOR_SYMBOLS := true, \
  87     COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
  88     ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
  89     PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
  90     PRECOMPILED_HEADER_EXCLUDE := gtest-all.cc gtestMain.cpp, \
  91 ))
  92 
  93 TARGETS += $(BUILD_GTEST_LIBJVM)
  94 
  95 ################################################################################
  96 
  97 $(eval $(call SetupNativeCompilation, BUILD_GTEST_LAUNCHER, \
  98     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
  99     PROGRAM := gtestLauncher, \
 100     OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
 101     EXTRA_FILES := $(GTEST_LAUNCHER_SRC), \
 102     OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/launcher-objs, \


  37   GTEST_COPY_DEBUG_SYMBOLS := false
  38 endif
  39 
  40 ################################################################################
  41 
  42 ifeq ($(OPENJDK_TARGET_OS), windows)
  43   GTEST_JVM_MAPFILE := $(JVM_MAPFILE)
  44 else
  45   GTEST_JVM_MAPFILE := $(JVM_OUTPUTDIR)/gtest/mapfile
  46 
  47   $(JVM_OUTPUTDIR)/gtest/symbols: $(JVM_OUTPUTDIR)/symbols
  48         $(call MakeDir, $(@D))
  49         ( $(CAT) $< ; echo "runUnitTests" ) > $@
  50 
  51   $(GTEST_JVM_MAPFILE): $(JVM_OUTPUTDIR)/gtest/symbols
  52         $(call create-mapfile)
  53 endif
  54 
  55 # Disabling switch warning for clang because of test source.
  56 
  57 # Note: On AIX, the gtest test classes linked into the libjvm.so push the TOC
  58 # size beyond 64k, so we need to link with bigtoc. However, this means that
  59 # -qpic=large would be advisable to lessen the performance effect of bigtoc.
  60 # But we want to avoid imposing -qpic=large onto the regular libjvm.so, which
  61 # has no problem with its TOC, so do this only for object files which are
  62 # exclusive to the gtest libjvm.so.
  63 
  64 $(eval $(call SetupNativeCompilation, BUILD_GTEST_LIBJVM, \
  65     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
  66     LIBRARY := jvm, \
  67     OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
  68     OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/objs, \
  69     SRC := $(GTEST_TEST_SRC), \
  70     EXCLUDES := $(JVM_EXCLUDES), \
  71     EXCLUDE_FILES := gtestLauncher.cpp, \
  72     EXCLUDE_PATTERNS := $(JVM_EXCLUDE_PATTERNS), \
  73     EXTRA_FILES := $(GTEST_FRAMEWORK_SRC)/src/gtest-all.cc, \
  74     EXTRA_OBJECT_FILES := $(filter-out %/operator_new$(OBJ_SUFFIX), \
  75         $(BUILD_LIBJVM_ALL_OBJS)), \
  76     CFLAGS := $(JVM_CFLAGS) -I$(GTEST_FRAMEWORK_SRC) \
  77         -I$(GTEST_FRAMEWORK_SRC)/include \
  78         $(addprefix -I,$(GTEST_TEST_SRC)), \
  79     CFLAGS_windows := -EHsc, \
  80     CFLAGS_solaris := -DGTEST_HAS_EXCEPTIONS=0 -library=stlport4, \
  81     CFLAGS_macosx := -DGTEST_OS_MAC=1, \
  82     CFLAGS_aix := -qpic=large, \
  83     CFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
  84     CXXFLAGS_DEBUG_SYMBOLS := $(JVM_CFLAGS_SYMBOLS), \
  85     DISABLED_WARNINGS_gcc := undef, \
  86     DISABLED_WARNINGS_clang := undef switch format-nonliteral \
  87         tautological-undefined-compare $(BUILD_LIBJVM_DISABLED_WARNINGS_clang), \
  88     DISABLED_WARNINGS_solstudio := identexpected, \
  89     LDFLAGS := $(JVM_LDFLAGS), \
  90     LDFLAGS_solaris := -library=stlport4 $(call SET_SHARED_LIBRARY_ORIGIN), \
  91     LDFLAGS_aix := -bbigtoc, \
  92     LIBS := $(JVM_LIBS), \
  93     OPTIMIZATION := $(JVM_OPTIMIZATION), \
  94     MAPFILE := $(GTEST_JVM_MAPFILE), \
  95     USE_MAPFILE_FOR_SYMBOLS := true, \
  96     COPY_DEBUG_SYMBOLS := $(GTEST_COPY_DEBUG_SYMBOLS), \
  97     ZIP_EXTERNAL_DEBUG_SYMBOLS := false, \
  98     PRECOMPILED_HEADER := $(JVM_PRECOMPILED_HEADER), \
  99     PRECOMPILED_HEADER_EXCLUDE := gtest-all.cc gtestMain.cpp, \
 100 ))
 101 
 102 TARGETS += $(BUILD_GTEST_LIBJVM)
 103 
 104 ################################################################################
 105 
 106 $(eval $(call SetupNativeCompilation, BUILD_GTEST_LAUNCHER, \
 107     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
 108     PROGRAM := gtestLauncher, \
 109     OUTPUT_DIR := $(JVM_OUTPUTDIR)/gtest, \
 110     EXTRA_FILES := $(GTEST_LAUNCHER_SRC), \
 111     OBJECT_DIR := $(JVM_OUTPUTDIR)/gtest/launcher-objs, \
< prev index next >