make/linux/makefiles/vm.make

Print this page




 269     LFLAGS_VM              += $(STATIC_LIBGCC)
 270     LIBS_VM                += $(STATIC_STDCXX)
 271   else
 272     LIBS_VM                += -lstdc++
 273   endif
 274 
 275   LIBS_VM                  += $(LIBS)
 276 endif
 277 ifeq ($(JVM_VARIANT_ZERO), true)
 278   LIBS_VM += $(LIBFFI_LIBS)
 279 endif
 280 ifeq ($(JVM_VARIANT_ZEROSHARK), true)
 281   LIBS_VM   += $(LIBFFI_LIBS) $(LLVM_LIBS)
 282   LFLAGS_VM += $(LLVM_LDFLAGS)
 283 endif
 284 
 285 LINK_VM = $(LINK_LIB.CC)
 286 
 287 # rule for building precompiled header
 288 $(PRECOMPILED_HEADER):
 289         $(QUIETLY) echo Generating precompiled header $@
 290         $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
 291         $(QUIETLY) rm -f $@
 292         $(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
 293 
 294 # making the library:
 295 
 296 ifneq ($(JVM_BASE_ADDR),)
 297 # By default shared library is linked at base address == 0. Modify the
 298 # linker script if JVM prefers a different base location. It can also be
 299 # implemented with 'prelink -r'. But 'prelink' is not (yet) available on
 300 # our build platform (AS-2.1).
 301 LD_SCRIPT = libjvm.so.lds
 302 $(LD_SCRIPT): $(LIBJVM_MAPFILE)
 303         $(QUIETLY) {                                                \
 304           rm -rf $@;                                                \
 305           $(LINK_VM) -Wl,--verbose $(LFLAGS_VM) 2>&1             |  \
 306             sed -e '/^======/,/^======/!d'                          \
 307                 -e '/^======/d'                                     \
 308                 -e 's/0\( + SIZEOF_HEADERS\)/$(JVM_BASE_ADDR)\1/'   \
 309                 > $@;                                               \
 310         }
 311 LD_SCRIPT_FLAG = -Wl,-T,$(LD_SCRIPT)
 312 endif
 313 
 314 # With more recent Redhat releases (or the cutting edge version Fedora), if
 315 # SELinux is configured to be enabled, the runtime linker will fail to apply
 316 # the text relocation to libjvm.so considering that it is built as a non-PIC
 317 # DSO. To workaround that, we run chcon to libjvm.so after it is built. See
 318 # details in bug 6538311.
 319 $(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
 320         $(QUIETLY) {                                                    \
 321             echo Linking vm...;                                         \
 322             $(LINK_LIB.CXX/PRE_HOOK)                                     \
 323             $(LINK_VM) $(LD_SCRIPT_FLAG)                                \
 324                        $(LFLAGS_VM) -o $@ $(sort $(LIBJVM.o)) $(LIBS_VM);       \
 325             $(LINK_LIB.CXX/POST_HOOK)                                    \
 326             rm -f $@.1; ln -s $@ $@.1;                                  \
 327             if [ \"$(CROSS_COMPILE_ARCH)\" = \"\" ] ; then                    \
 328               if [ -x /usr/sbin/selinuxenabled ] ; then                 \
 329                 /usr/sbin/selinuxenabled;                               \
 330                 if [ $$? = 0 ] ; then                                   \
 331                   /usr/bin/chcon -t textrel_shlib_t $@;                 \
 332                   if [ $$? != 0 ]; then                                 \
 333                     echo "ERROR: Cannot chcon $@";                      \
 334                   fi                                                    \
 335                 fi                                                      \
 336               fi                                                        \
 337             fi                                                          \
 338         }
 339 
 340 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 341         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)




 269     LFLAGS_VM              += $(STATIC_LIBGCC)
 270     LIBS_VM                += $(STATIC_STDCXX)
 271   else
 272     LIBS_VM                += -lstdc++
 273   endif
 274 
 275   LIBS_VM                  += $(LIBS)
 276 endif
 277 ifeq ($(JVM_VARIANT_ZERO), true)
 278   LIBS_VM += $(LIBFFI_LIBS)
 279 endif
 280 ifeq ($(JVM_VARIANT_ZEROSHARK), true)
 281   LIBS_VM   += $(LIBFFI_LIBS) $(LLVM_LIBS)
 282   LFLAGS_VM += $(LLVM_LDFLAGS)
 283 endif
 284 
 285 LINK_VM = $(LINK_LIB.CC)
 286 
 287 # rule for building precompiled header
 288 $(PRECOMPILED_HEADER):
 289         $(QUIETLY) echo $(LOG_INFO) Generating precompiled header $@
 290         $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
 291         $(QUIETLY) rm -f $@
 292         $(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
 293 
 294 # making the library:
 295 
 296 ifneq ($(JVM_BASE_ADDR),)
 297 # By default shared library is linked at base address == 0. Modify the
 298 # linker script if JVM prefers a different base location. It can also be
 299 # implemented with 'prelink -r'. But 'prelink' is not (yet) available on
 300 # our build platform (AS-2.1).
 301 LD_SCRIPT = libjvm.so.lds
 302 $(LD_SCRIPT): $(LIBJVM_MAPFILE)
 303         $(QUIETLY) {                                                \
 304           rm -rf $@;                                                \
 305           $(LINK_VM) -Wl,--verbose $(LFLAGS_VM) 2>&1             |  \
 306             sed -e '/^======/,/^======/!d'                          \
 307                 -e '/^======/d'                                     \
 308                 -e 's/0\( + SIZEOF_HEADERS\)/$(JVM_BASE_ADDR)\1/'   \
 309                 > $@;                                               \
 310         }
 311 LD_SCRIPT_FLAG = -Wl,-T,$(LD_SCRIPT)
 312 endif
 313 
 314 # With more recent Redhat releases (or the cutting edge version Fedora), if
 315 # SELinux is configured to be enabled, the runtime linker will fail to apply
 316 # the text relocation to libjvm.so considering that it is built as a non-PIC
 317 # DSO. To workaround that, we run chcon to libjvm.so after it is built. See
 318 # details in bug 6538311.
 319 $(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
 320         $(QUIETLY) {                                                    \
 321             echo $(LOG_INFO) Linking vm...;                             \
 322             $(LINK_LIB.CXX/PRE_HOOK)                                     \
 323             $(LINK_VM) $(LD_SCRIPT_FLAG)                                \
 324                        $(LFLAGS_VM) -o $@ $(sort $(LIBJVM.o)) $(LIBS_VM);       \
 325             $(LINK_LIB.CXX/POST_HOOK)                                    \
 326             rm -f $@.1; ln -s $@ $@.1;                                  \
 327             if [ \"$(CROSS_COMPILE_ARCH)\" = \"\" ] ; then                    \
 328               if [ -x /usr/sbin/selinuxenabled ] ; then                 \
 329                 /usr/sbin/selinuxenabled;                               \
 330                 if [ $$? = 0 ] ; then                                   \
 331                   /usr/bin/chcon -t textrel_shlib_t $@;                 \
 332                   if [ $$? != 0 ]; then                                 \
 333                     echo "ERROR: Cannot chcon $@";                      \
 334                   fi                                                    \
 335                 fi                                                      \
 336               fi                                                        \
 337             fi                                                          \
 338         }
 339 
 340 ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
 341         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)