• grischka's avatar
    allow libtcc states to be used concurrently · 72729d8e
    grischka 创作于
    This allows creation of TCCStates and operation with API
    calls independently from each other, even from threads.
    
    Frontend (option parsing/libtcc.c) and backend (linker/tccelf.c)
    now depend only on the TCCState (s1) argument.
    
    Compilation per se (tccpp.c, tccgen.c) is still using
    globals for convenience.  There is only one entry point
    to this section which is tcc_compile() which is protected
    by a semaphore.
    
    There are some hacks involved to avoid too many changes,
    as well as some changes in order to avoid too many hacks ;)
    
    The test libtcc_test_mt.c shows the feature.  Except this
    new file the patch adds 87 lines overall.
    72729d8e