Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

Changeset 579:20c065c46b38

Show
Ignore:
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
  • .hgignore

    r555 r579  
    66*.s 
    77*.a 
     8*.so 
    89*.orig 
    910obj/* 
     
    2021tests/runminitest 
    2122tests/findregressions 
     23tests/makewebstatistics 
    2224tests/mini/obj/* 
    2325 
  • runtime/build-sharedlibs.sh

    r569 r579  
    1313cd ../tango/lib 
    1414make -f llvmdc-posix.mak clean 
    15 make -f llvmdc-posix.mak 
     15make -f llvmdc-posix.mak sharedlib 
    1616cd ../.. 
    1717 
    1818# 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 
     19rm -f lib/libllvmdc-runtime-shared.so 
     20cp runtime/internal/libllvmdc-runtime-shared.so lib 
     21rm -f lib/libtango-gc-basic-shared.so 
     22cp tango/lib/gc/basic/libtango-gc-basic-shared.so lib 
     23rm -f lib/libtango-cc-tango-shared.so 
     24cp tango/lib/common/tango/libtango-cc-tango-shared.so lib 
  • runtime/build.sh

    r569 r579  
    1313cd ../tango/lib 
    1414make -f llvmdc-posix.mak clean 
    15 make -f llvmdc-posix.mak 
     15make -f llvmdc-posix.mak lib 
    1616cd ../.. 
    1717 
  • runtime/internal/llvmdc.mak

    r569 r579  
    1414LIB_TARGET_BC_ONLY=libllvmdc-runtime-bc-only.a 
    1515LIB_TARGET_C_ONLY=libllvmdc-runtime-c-only.a 
    16 LIB_MASK=libllvmdc-runtime*.a 
     16LIB_TARGET_SHARED=libllvmdc-runtime-shared.so 
     17LIB_MASK=libllvmdc-runtime*.* 
    1718 
    1819 
     
    6263    $(DC) -c -o- $(DOCFLAGS) -Df$*.html llvmdc.ddoc $< 
    6364 
    64 targets : lib doc 
    65 all     : lib doc 
     65targets : lib sharedlib doc 
     66all     : lib sharedlib doc 
    6667lib     : llvmdc.lib llvmdc.bclib llvmdc.clib 
     68sharedlib : llvmdc.sharedlib 
    6769doc     : llvmdc.doc 
    6870 
     
    150152llvmdc.clib : $(LIB_TARGET_C_ONLY) 
    151153llvmdc.lib : $(LIB_TARGET_FULL) 
     154llvmdc.sharedlib : $(LIB_TARGET_SHARED) 
    152155 
    153156$(LIB_TARGET_BC_ONLY) : $(ALL_OBJS) 
     
    168171    $(CLC) $@ $(OBJ_C) 
    169172 
     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 
    170182llvmdc.doc : $(ALL_DOCS) 
    171183    echo No documentation available. 
  • runtime/lib/common/tango/llvmdc.mak

    r570 r579  
    1414LIB_TARGET_BC_ONLY=libtango-cc-tango-bc-only.a 
    1515LIB_TARGET_C_ONLY=libtango-cc-tango-c-only.a 
    16 LIB_MASK=libtango-cc-tango*.a 
     16LIB_TARGET_SHARED=libtango-cc-tango-shared.so 
     17LIB_MASK=libtango-cc-tango*.* 
    1718 
    1819CP=cp -f 
     
    7172#   $(DC) -c -o- $(DOCFLAGS) -Df$*.html tango.ddoc $< 
    7273 
    73 targets : lib doc 
    74 all     : lib doc 
     74targets : lib sharedlib doc 
     75all     : lib sharedlib doc 
    7576tango   : lib 
    7677lib     : tango.lib tango.bclib tango.clib 
     78sharedlib : tango.sharedlib 
    7779doc     : tango.doc 
    7880 
     
    116118tango.lib : $(LIB_TARGET_FULL) 
    117119tango.clib : $(LIB_TARGET_C_ONLY) 
     120tango.sharedlib : $(LIB_TARGET_SHARED) 
    118121 
    119122$(LIB_TARGET_BC_ONLY) : $(ALL_OBJS) 
     
    133136    $(RM) $@ 
    134137    $(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) 
    135146 
    136147 
  • runtime/lib/gc/basic/llvmdc.mak

    r569 r579  
    1313LIB_TARGET_BC=libtango-gc-basic-bc.a 
    1414LIB_TARGET_NATIVE=libtango-gc-basic.a 
    15 LIB_MASK=libtango-gc-basic*.a 
     15LIB_TARGET_SHARED=libtango-gc-basic-shared.so 
     16LIB_MASK=libtango-gc-basic*.* 
    1617 
    1718CP=cp -f 
     
    6465#   $(DC) -c -o- $(DOCFLAGS) -Df$*.html dmd.ddoc $< 
    6566 
    66 targets : lib doc 
    67 all     : lib doc 
     67targets : lib sharedlib doc 
     68all     : lib sharedlib doc 
    6869lib     : basic.lib basic.nlib 
     70sharedlib : basic.sharedlib 
    6971doc     : basic.doc 
    7072 
     
    8688basic.lib : $(LIB_TARGET_BC) 
    8789basic.nlib : $(LIB_TARGET_NATIVE) 
     90basic.sharedlib : $(LIB_TARGET_SHARED) 
    8891 
    8992$(LIB_TARGET_BC) : $(ALL_OBJS) 
     
    98101    $(CC) -c -o $@.o $@.s 
    99102    $(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 
    100110 
    101111basic.doc : $(ALL_DOCS) 
  • runtime/lib/llvmdc-posix.mak

    r569 r579  
    3838ADD_DFLAGS=-I`pwd`/common/ 
    3939 
    40 targets : lib doc 
    41 all     : lib doc 
     40targets : lib sharedlib doc 
     41all     : lib sharedlib doc 
    4242 
    4343###################################################### 
     
    5555    make -C $(DIR_RT) -fllvmdc.mak lib 
    5656    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 
     59sharedlib : $(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)" 
    5763    # could link the three parts into one here, but why should we 
    5864 
Copyright © 2008, LDC Development Team.