Changeset 579:20c065c46b38
- Timestamp:
- 09/05/08 17:02:18
(4 months ago)
- Author:
- Christian Kamm <kamm incasoftware de>
- branch:
- default
- Message:
Basic support for runtime in shared library.
Needs to be built with runtime/build-sharedlibs.sh and activated manually by
providing -defaultlib=llvmdc-runtime-shared -defaultlib=tango-cc-tango-shared
-defaultlib=tango-gc-basic-shared on llvmdc call at the moment.
To support D shared libraries in non-D code, we need to remove the main() from
libllvmdc-runtime-shared.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r555 |
r579 |
|
| 6 | 6 | *.s |
|---|
| 7 | 7 | *.a |
|---|
| | 8 | *.so |
|---|
| 8 | 9 | *.orig |
|---|
| 9 | 10 | obj/* |
|---|
| … | … | |
| 20 | 21 | tests/runminitest |
|---|
| 21 | 22 | tests/findregressions |
|---|
| | 23 | tests/makewebstatistics |
|---|
| 22 | 24 | tests/mini/obj/* |
|---|
| 23 | 25 | |
|---|
| r569 |
r579 |
|
| 13 | 13 | cd ../tango/lib |
|---|
| 14 | 14 | make -f llvmdc-posix.mak clean |
|---|
| 15 | | make -f llvmdc-posix.mak |
|---|
| | 15 | make -f llvmdc-posix.mak sharedlib |
|---|
| 16 | 16 | cd ../.. |
|---|
| 17 | 17 | |
|---|
| 18 | 18 | # install the runtime |
|---|
| 19 | | rm -f lib/libllvmdc-runtime*.a |
|---|
| 20 | | cp runtime/internal/libllvmdc-runtime*.a lib |
|---|
| 21 | | rm -f lib/libtango-gc-basic*.a |
|---|
| 22 | | cp tango/lib/gc/basic/libtango-gc-basic*.a lib |
|---|
| 23 | | rm -f lib/libtango-cc-tango*.a |
|---|
| 24 | | cp tango/lib/common/tango/libtango-cc-tango*.a lib |
|---|
| | 19 | rm -f lib/libllvmdc-runtime-shared.so |
|---|
| | 20 | cp runtime/internal/libllvmdc-runtime-shared.so lib |
|---|
| | 21 | rm -f lib/libtango-gc-basic-shared.so |
|---|
| | 22 | cp tango/lib/gc/basic/libtango-gc-basic-shared.so lib |
|---|
| | 23 | rm -f lib/libtango-cc-tango-shared.so |
|---|
| | 24 | cp tango/lib/common/tango/libtango-cc-tango-shared.so lib |
|---|
| r569 |
r579 |
|
| 13 | 13 | cd ../tango/lib |
|---|
| 14 | 14 | make -f llvmdc-posix.mak clean |
|---|
| 15 | | make -f llvmdc-posix.mak |
|---|
| | 15 | make -f llvmdc-posix.mak lib |
|---|
| 16 | 16 | cd ../.. |
|---|
| 17 | 17 | |
|---|
| r569 |
r579 |
|
| 14 | 14 | LIB_TARGET_BC_ONLY=libllvmdc-runtime-bc-only.a |
|---|
| 15 | 15 | LIB_TARGET_C_ONLY=libllvmdc-runtime-c-only.a |
|---|
| 16 | | LIB_MASK=libllvmdc-runtime*.a |
|---|
| | 16 | LIB_TARGET_SHARED=libllvmdc-runtime-shared.so |
|---|
| | 17 | LIB_MASK=libllvmdc-runtime*.* |
|---|
| 17 | 18 | |
|---|
| 18 | 19 | |
|---|
| … | … | |
| 62 | 63 | $(DC) -c -o- $(DOCFLAGS) -Df$*.html llvmdc.ddoc $< |
|---|
| 63 | 64 | |
|---|
| 64 | | targets : lib doc |
|---|
| 65 | | all : lib doc |
|---|
| | 65 | targets : lib sharedlib doc |
|---|
| | 66 | all : lib sharedlib doc |
|---|
| 66 | 67 | lib : llvmdc.lib llvmdc.bclib llvmdc.clib |
|---|
| | 68 | sharedlib : llvmdc.sharedlib |
|---|
| 67 | 69 | doc : llvmdc.doc |
|---|
| 68 | 70 | |
|---|
| … | … | |
| 150 | 152 | llvmdc.clib : $(LIB_TARGET_C_ONLY) |
|---|
| 151 | 153 | llvmdc.lib : $(LIB_TARGET_FULL) |
|---|
| | 154 | llvmdc.sharedlib : $(LIB_TARGET_SHARED) |
|---|
| 152 | 155 | |
|---|
| 153 | 156 | $(LIB_TARGET_BC_ONLY) : $(ALL_OBJS) |
|---|
| … | … | |
| 168 | 171 | $(CLC) $@ $(OBJ_C) |
|---|
| 169 | 172 | |
|---|
| | 173 | |
|---|
| | 174 | $(LIB_TARGET_SHARED) : $(ALL_OBJS) $(OBJ_C) |
|---|
| | 175 | $(RM) $@ $@.bc $@.s $@.o |
|---|
| | 176 | $(LLINK) -o=$@.bc $(ALL_OBJS) |
|---|
| | 177 | $(LCC) -relocation-model=pic -o=$@.s $@.bc |
|---|
| | 178 | $(CC) -c -o $@.o $@.s |
|---|
| | 179 | $(CC) -shared -o $@ $@.o $(OBJ_C) |
|---|
| | 180 | |
|---|
| | 181 | |
|---|
| 170 | 182 | llvmdc.doc : $(ALL_DOCS) |
|---|
| 171 | 183 | echo No documentation available. |
|---|
| r570 |
r579 |
|
| 14 | 14 | LIB_TARGET_BC_ONLY=libtango-cc-tango-bc-only.a |
|---|
| 15 | 15 | LIB_TARGET_C_ONLY=libtango-cc-tango-c-only.a |
|---|
| 16 | | LIB_MASK=libtango-cc-tango*.a |
|---|
| | 16 | LIB_TARGET_SHARED=libtango-cc-tango-shared.so |
|---|
| | 17 | LIB_MASK=libtango-cc-tango*.* |
|---|
| 17 | 18 | |
|---|
| 18 | 19 | CP=cp -f |
|---|
| … | … | |
| 71 | 72 | # $(DC) -c -o- $(DOCFLAGS) -Df$*.html tango.ddoc $< |
|---|
| 72 | 73 | |
|---|
| 73 | | targets : lib doc |
|---|
| 74 | | all : lib doc |
|---|
| | 74 | targets : lib sharedlib doc |
|---|
| | 75 | all : lib sharedlib doc |
|---|
| 75 | 76 | tango : lib |
|---|
| 76 | 77 | lib : tango.lib tango.bclib tango.clib |
|---|
| | 78 | sharedlib : tango.sharedlib |
|---|
| 77 | 79 | doc : tango.doc |
|---|
| 78 | 80 | |
|---|
| … | … | |
| 116 | 118 | tango.lib : $(LIB_TARGET_FULL) |
|---|
| 117 | 119 | tango.clib : $(LIB_TARGET_C_ONLY) |
|---|
| | 120 | tango.sharedlib : $(LIB_TARGET_SHARED) |
|---|
| 118 | 121 | |
|---|
| 119 | 122 | $(LIB_TARGET_BC_ONLY) : $(ALL_OBJS) |
|---|
| … | … | |
| 133 | 136 | $(RM) $@ |
|---|
| 134 | 137 | $(CLC) $@ $(OBJ_STDC) |
|---|
| | 138 | |
|---|
| | 139 | |
|---|
| | 140 | $(LIB_TARGET_SHARED) : $(ALL_OBJS) $(OBJ_STDC) |
|---|
| | 141 | $(RM) $@ $@.bc $@.s $@.o |
|---|
| | 142 | $(LLINK) -o=$@.bc $(ALL_OBJS) |
|---|
| | 143 | $(LCC) -relocation-model=pic -o=$@.s $@.bc |
|---|
| | 144 | $(CC) -c -o $@.o $@.s |
|---|
| | 145 | $(CC) -shared -o $@ $@.o $(OBJ_STDC) |
|---|
| 135 | 146 | |
|---|
| 136 | 147 | |
|---|
| r569 |
r579 |
|
| 13 | 13 | LIB_TARGET_BC=libtango-gc-basic-bc.a |
|---|
| 14 | 14 | LIB_TARGET_NATIVE=libtango-gc-basic.a |
|---|
| 15 | | LIB_MASK=libtango-gc-basic*.a |
|---|
| | 15 | LIB_TARGET_SHARED=libtango-gc-basic-shared.so |
|---|
| | 16 | LIB_MASK=libtango-gc-basic*.* |
|---|
| 16 | 17 | |
|---|
| 17 | 18 | CP=cp -f |
|---|
| … | … | |
| 64 | 65 | # $(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $< |
|---|
| 65 | 66 | |
|---|
| 66 | | targets : lib doc |
|---|
| 67 | | all : lib doc |
|---|
| | 67 | targets : lib sharedlib doc |
|---|
| | 68 | all : lib sharedlib doc |
|---|
| 68 | 69 | lib : basic.lib basic.nlib |
|---|
| | 70 | sharedlib : basic.sharedlib |
|---|
| 69 | 71 | doc : basic.doc |
|---|
| 70 | 72 | |
|---|
| … | … | |
| 86 | 88 | basic.lib : $(LIB_TARGET_BC) |
|---|
| 87 | 89 | basic.nlib : $(LIB_TARGET_NATIVE) |
|---|
| | 90 | basic.sharedlib : $(LIB_TARGET_SHARED) |
|---|
| 88 | 91 | |
|---|
| 89 | 92 | $(LIB_TARGET_BC) : $(ALL_OBJS) |
|---|
| … | … | |
| 98 | 101 | $(CC) -c -o $@.o $@.s |
|---|
| 99 | 102 | $(CLC) $@ $@.o |
|---|
| | 103 | |
|---|
| | 104 | |
|---|
| | 105 | $(LIB_TARGET_SHARED) : $(ALL_OBJS) |
|---|
| | 106 | $(RM) $@ $@.bc $@.s $@.o |
|---|
| | 107 | $(LLINK) -o=$@.bc $(ALL_OBJS) |
|---|
| | 108 | $(LCC) -relocation-model=pic -o=$@.s $@.bc |
|---|
| | 109 | $(CC) -shared -o $@ $@.s |
|---|
| 100 | 110 | |
|---|
| 101 | 111 | basic.doc : $(ALL_DOCS) |
|---|
| r569 |
r579 |
|
| 38 | 38 | ADD_DFLAGS=-I`pwd`/common/ |
|---|
| 39 | 39 | |
|---|
| 40 | | targets : lib doc |
|---|
| 41 | | all : lib doc |
|---|
| | 40 | targets : lib sharedlib doc |
|---|
| | 41 | all : lib sharedlib doc |
|---|
| 42 | 42 | |
|---|
| 43 | 43 | ###################################################### |
|---|
| … | … | |
| 55 | 55 | make -C $(DIR_RT) -fllvmdc.mak lib |
|---|
| 56 | 56 | make -C $(DIR_GC) -fllvmdc.mak lib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" |
|---|
| | 57 | # could link the three parts into one here, but why should we |
|---|
| | 58 | |
|---|
| | 59 | sharedlib : $(ALL_OBJS) |
|---|
| | 60 | make -C $(DIR_CC) -fllvmdc.mak sharedlib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" |
|---|
| | 61 | make -C $(DIR_RT) -fllvmdc.mak sharedlib |
|---|
| | 62 | make -C $(DIR_GC) -fllvmdc.mak sharedlib DC=$(DC) ADD_DFLAGS="$(ADD_DFLAGS)" ADD_CFLAGS="$(ADD_CFLAGS)" |
|---|
| 57 | 63 | # could link the three parts into one here, but why should we |
|---|
| 58 | 64 | |
|---|