diff make/linux/makefiles/rules.make @ 198:6470a2a42f92

6647068: libjvm.so is not built PIC Summary: Remove the preferred base address built with libjvm.so and unified the PIC approach on Solaris & Linux. Reviewed-by: never, kamg Contributed-by: xiaobin.lu@sun.com
author xlu
date Tue, 10 Jun 2008 16:39:20 -0700
parents a294fd0c4b38
children f232d7d67023
line wrap: on
line diff
--- a/make/linux/makefiles/rules.make	Fri Jun 06 14:34:24 2008 -0700
+++ b/make/linux/makefiles/rules.make	Tue Jun 10 16:39:20 2008 -0700
@@ -133,10 +133,22 @@
 COMPILE_DONE    = && { echo Done with $<; }
 endif
 
+include $(GAMMADIR)/make/defs.make
+
+# The non-PIC object files are only generated for 32 bit platforms.
+ifdef LP64
 %.o: %.cpp
 	@echo Compiling $<
 	$(QUIETLY) $(REMOVE_TARGET)
 	$(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)
+else
+%.o: %.cpp
+	@echo Compiling $<
+	$(QUIETLY) $(REMOVE_TARGET)
+	$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
+	   $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \
+	   $(COMPILE.CC) -o $@ $< $(COMPILE_DONE))
+endif
 
 %.o: %.s
 	@echo Assembling $<