Mercurial > hg > truffle
comparison make/bsd/makefiles/launcher.make @ 4988:eb5b24d1499f
Merge
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Mon, 27 Feb 2012 15:06:36 -0800 |
parents | 719f7007c8e8 |
children | 15ba0e7a3ff4 |
comparison
equal
deleted
inserted
replaced
4987:f292f9c590ba | 4988:eb5b24d1499f |
---|---|
48 LFLAGS_LAUNCHER$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LAUNCHER_MAPFILE)) | 48 LFLAGS_LAUNCHER$(LDNOMAP) += $(MAPFLAG:FILENAME=$(LAUNCHER_MAPFILE)) |
49 LFLAGS_LAUNCHER += $(SONAMEFLAG:SONAME=$(LIBJVM)) $(STATIC_LIBGCC) | 49 LFLAGS_LAUNCHER += $(SONAMEFLAG:SONAME=$(LIBJVM)) $(STATIC_LIBGCC) |
50 LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS) | 50 LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS) |
51 else | 51 else |
52 LAUNCHER.o = launcher.o | 52 LAUNCHER.o = launcher.o |
53 LFLAGS_LAUNCHER += -L`pwd` | 53 LFLAGS_LAUNCHER += -L`pwd` |
54 | |
55 # The gamma launcher runs the JDK from $JAVA_HOME, overriding the JVM with a | |
56 # freshly built JVM at ./libjvm.{so|dylib}. This is accomplished by setting | |
57 # the library searchpath using ({DY}LD_LIBRARY_PATH) to find the local JVM | |
58 # first. Gamma dlopen()s libjava from $JAVA_HOME/jre/lib{/$arch}, which is | |
59 # statically linked with CoreFoundation framework libs. Unfortunately, gamma's | |
60 # unique searchpath results in some unresolved symbols in the framework | |
61 # libraries, because JDK libraries are inadvertently discovered first on the | |
62 # searchpath, e.g. libjpeg. On Mac OS X, filenames are case *insensitive*. | |
63 # So, the actual filename collision is libjpeg.dylib and libJPEG.dylib. | |
64 # To resolve this, gamma needs to also statically link with the CoreFoundation | |
65 # framework libraries. | |
66 | |
67 ifeq ($(OS_VENDOR),Darwin) | |
68 LFLAGS_LAUNCHER += -framework CoreFoundation | |
69 endif | |
70 | |
54 LIBS_LAUNCHER += -l$(JVM) $(LIBS) | 71 LIBS_LAUNCHER += -l$(JVM) $(LIBS) |
55 endif | 72 endif |
56 | 73 |
57 LINK_LAUNCHER = $(LINK.c) | 74 LINK_LAUNCHER = $(LINK.CC) |
58 | 75 |
59 LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CC/PRE_HOOK) | 76 LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CXX/PRE_HOOK) |
60 LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK) | 77 LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CXX/POST_HOOK) |
61 | 78 |
62 LAUNCHER_OUT = launcher | 79 LAUNCHER_OUT = launcher |
63 | 80 |
64 SUFFIXES += .d | 81 SUFFIXES += .d |
65 | 82 |
71 DEPFILES := $(patsubst %.o,%.d,$(OBJS)) | 88 DEPFILES := $(patsubst %.o,%.d,$(OBJS)) |
72 -include $(DEPFILES) | 89 -include $(DEPFILES) |
73 | 90 |
74 $(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c | 91 $(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR_SHARE)/%.c |
75 $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); } | 92 $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); } |
76 $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS) | 93 $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS) |
77 | 94 |
78 $(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c | 95 $(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c |
79 $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); } | 96 $(QUIETLY) [ -d $(LAUNCHER_OUT) ] || { mkdir -p $(LAUNCHER_OUT); } |
80 $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CPPFLAGS) | 97 $(QUIETLY) $(CC) -g -o $@ -c $< -MMD $(LAUNCHERFLAGS) $(CXXFLAGS) |
81 | 98 |
82 $(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE) | 99 $(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE) |
83 $(QUIETLY) echo Linking launcher... | 100 $(QUIETLY) echo Linking launcher... |
84 $(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK) | 101 $(QUIETLY) $(LINK_LAUNCHER/PRE_HOOK) |
85 $(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(OBJS) $(LIBS_LAUNCHER) | 102 $(QUIETLY) $(LINK_LAUNCHER) $(LFLAGS_LAUNCHER) -o $@ $(OBJS) $(LIBS_LAUNCHER) |