Remove support for threaded use of libtcc.a, It's out of scope
This commit is contained in:
parent
9eb10536b0
commit
ef94f0cf60
4 changed files with 4 additions and 74 deletions
|
@ -43,24 +43,24 @@ AC_ARG_ENABLE([asm_debug],
|
|||
[AS_HELP_STRING([--enable-asm-debug], [enable asm debug])])
|
||||
|
||||
AS_IF([test "x$enable_asm_debug" = "xyes"],
|
||||
[AC_DEFINE([ASM_DEBUG])])
|
||||
[AC_DEFINE([ASM_DEBUG], [1], [enable asm debug])])
|
||||
|
||||
AC_ARG_ENABLE([inc_debug],
|
||||
[AS_HELP_STRING([--enable-inc-debug], [enable include file debug])])
|
||||
|
||||
AS_IF([test "x$enable_inc_debug" = "xyes"],
|
||||
[AC_DEFINE([INC_DEBUG])])
|
||||
[AC_DEFINE([INC_DEBUG], [1], [enable include file debug])])
|
||||
|
||||
AC_ARG_ENABLE([pp_debug],
|
||||
[AS_HELP_STRING([--enable-pp-debug], [enable preprocessor debug])])
|
||||
|
||||
AS_IF([test "x$enable_pp_debug" = "xyes"],
|
||||
[AC_DEFINE([PP_DEBUG])])
|
||||
[AC_DEFINE([PP_DEBUG], [1], [enable preprocessor debug])])
|
||||
|
||||
AC_ARG_ENABLE([parser_debug],
|
||||
[AS_HELP_STRING([--enable-parser-debug], [enable parser debug])])
|
||||
|
||||
AS_IF([test "x$enable_parser_debug" = "xyes"],
|
||||
[AC_DEFINE([PARSE_DEBUG])])
|
||||
[AC_DEFINE([PARSE_DEBUG], [1], [enable parser debug])])
|
||||
|
||||
AC_OUTPUT
|
||||
|
|
|
@ -87,11 +87,6 @@ extern long double strtold (const char *__nptr, char **__endptr);
|
|||
# define CONFIG_TCC_PIC 1
|
||||
#endif
|
||||
|
||||
/* support using libtcc from threads */
|
||||
#ifndef CONFIG_TCC_SEMLOCK
|
||||
# define CONFIG_TCC_SEMLOCK 1
|
||||
#endif
|
||||
|
||||
/* ------------ path configuration ------------ */
|
||||
|
||||
#ifndef CONFIG_SYSROOT
|
||||
|
@ -1152,51 +1147,6 @@ void asm_clobber(uint8_t *clobber_regs, const char *str);
|
|||
/* ------------ tccdbg.c ------------ */
|
||||
#define eh_frame_hdr_section s1->eh_frame_hdr_section
|
||||
|
||||
/********************************************************/
|
||||
#if CONFIG_TCC_SEMLOCK
|
||||
#if defined _WIN32
|
||||
typedef struct { int init; CRITICAL_SECTION cs; } TCCSem;
|
||||
static inline void wait_sem(TCCSem *p) {
|
||||
if (!p->init)
|
||||
InitializeCriticalSection(&p->cs), p->init = 1;
|
||||
EnterCriticalSection(&p->cs);
|
||||
}
|
||||
static inline void post_sem(TCCSem *p) {
|
||||
LeaveCriticalSection(&p->cs);
|
||||
}
|
||||
#elif defined __APPLE__
|
||||
#include <dispatch/dispatch.h>
|
||||
typedef struct { int init; dispatch_semaphore_t sem; } TCCSem;
|
||||
static inline void wait_sem(TCCSem *p) {
|
||||
if (!p->init)
|
||||
p->sem = dispatch_semaphore_create(1), p->init = 1;
|
||||
dispatch_semaphore_wait(p->sem, DISPATCH_TIME_FOREVER);
|
||||
}
|
||||
static inline void post_sem(TCCSem *p) {
|
||||
dispatch_semaphore_signal(p->sem);
|
||||
}
|
||||
#else
|
||||
#include <semaphore.h>
|
||||
#include <errno.h>
|
||||
typedef struct { int init; sem_t sem; } TCCSem;
|
||||
static inline void wait_sem(TCCSem *p) {
|
||||
if (!p->init)
|
||||
sem_init(&p->sem, 0, 1), p->init = 1;
|
||||
while (sem_wait(&p->sem) < 0 && errno == EINTR);
|
||||
}
|
||||
static inline void post_sem(TCCSem *p) {
|
||||
sem_post(&p->sem);
|
||||
}
|
||||
#endif
|
||||
#define TCC_SEM(s) TCCSem s
|
||||
#define WAIT_SEM wait_sem
|
||||
#define POST_SEM post_sem
|
||||
#else
|
||||
#define TCC_SEM(s)
|
||||
#define WAIT_SEM(p)
|
||||
#define POST_SEM(p)
|
||||
#endif
|
||||
|
||||
#define common_section TCC_STATE_VAR(common_section)
|
||||
#define bounds_section TCC_STATE_VAR(bounds_section)
|
||||
#define lbounds_section TCC_STATE_VAR(lbounds_section)
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
|
||||
/* XXX: get rid of this ASAP (or maybe not) */
|
||||
struct TCCState *tcc_state;
|
||||
TCC_SEM(static tcc_compile_sem);
|
||||
/* an array of pointers to memory to be free'd after errors */
|
||||
void** stk_data;
|
||||
int nb_stk_data;
|
||||
|
@ -74,7 +73,6 @@ PUB_FUNC void tcc_enter_state(TCCState *s1)
|
|||
{
|
||||
if (s1->error_set_jmp_enabled)
|
||||
return;
|
||||
WAIT_SEM(&tcc_compile_sem);
|
||||
tcc_state = s1;
|
||||
}
|
||||
|
||||
|
@ -83,7 +81,6 @@ PUB_FUNC void tcc_exit_state(TCCState *s1)
|
|||
if (s1->error_set_jmp_enabled)
|
||||
return;
|
||||
tcc_state = NULL;
|
||||
POST_SEM(&tcc_compile_sem);
|
||||
}
|
||||
|
||||
char *tcc_load_text(int fd)
|
||||
|
|
|
@ -124,7 +124,6 @@ typedef struct MemoryDebugHeader {
|
|||
__attribute__((aligned(16))) uint8_t magic3[4];
|
||||
} MemoryDebugHeader;
|
||||
|
||||
TCC_SEM(static mem_sem);
|
||||
static MemoryDebugHeader *mem_debug_chain;
|
||||
static size_t mem_cur_size;
|
||||
size_t mem_max_size;
|
||||
|
@ -165,8 +164,6 @@ tcc_free_debug(void *ptr)
|
|||
|
||||
header = malloc_check(ptr, "tcc_free");
|
||||
|
||||
WAIT_SEM(&mem_sem);
|
||||
|
||||
mem_cur_size -= header->size;
|
||||
header->size = (size_t)-1;
|
||||
if (header->next)
|
||||
|
@ -182,8 +179,6 @@ tcc_free_debug(void *ptr)
|
|||
mem_debug_chain = header->next;
|
||||
}
|
||||
|
||||
POST_SEM(&mem_sem);
|
||||
|
||||
tcc_free(header);
|
||||
}
|
||||
|
||||
|
@ -207,8 +202,6 @@ tcc_malloc_debug(size_t size, const char *file, int line)
|
|||
strncpy(header->filename, file + (ofs > 0 ? ofs : 0), MEMORY_DEBUG_FILE_LEN);
|
||||
header->filename[MEMORY_DEBUG_FILE_LEN] = 0;
|
||||
|
||||
WAIT_SEM(&mem_sem);
|
||||
|
||||
header->next = mem_debug_chain;
|
||||
header->prev = NULL;
|
||||
if (header->next)
|
||||
|
@ -222,8 +215,6 @@ tcc_malloc_debug(size_t size, const char *file, int line)
|
|||
mem_max_size = mem_cur_size;
|
||||
}
|
||||
|
||||
POST_SEM(&mem_sem);
|
||||
|
||||
return (MEMORY_USER_PTR(header));
|
||||
}
|
||||
|
||||
|
@ -263,8 +254,6 @@ tcc_realloc_debug(void *ptr, size_t size, const char *file, int line)
|
|||
|
||||
header = malloc_check(ptr, "tcc_realloc");
|
||||
|
||||
WAIT_SEM(&mem_sem);
|
||||
|
||||
mem_cur_size -= header->size;
|
||||
mem_debug_chain_update = (header == mem_debug_chain);
|
||||
header = tcc_realloc(header, sizeof(MemoryDebugHeader) + size);
|
||||
|
@ -288,8 +277,6 @@ tcc_realloc_debug(void *ptr, size_t size, const char *file, int line)
|
|||
mem_max_size = mem_cur_size;
|
||||
}
|
||||
|
||||
POST_SEM(&mem_sem);
|
||||
|
||||
return (MEMORY_USER_PTR(header));
|
||||
}
|
||||
|
||||
|
@ -309,8 +296,6 @@ tcc_memcheck(int d)
|
|||
{
|
||||
MemoryDebugHeader *header;
|
||||
|
||||
WAIT_SEM(&mem_sem);
|
||||
|
||||
nb_states += d;
|
||||
if (0 == nb_states && mem_cur_size)
|
||||
{
|
||||
|
@ -332,8 +317,6 @@ tcc_memcheck(int d)
|
|||
exit(2);
|
||||
#endif /* TCC_MEMORY_DEBUG == 2 */
|
||||
}
|
||||
|
||||
POST_SEM(&mem_sem);
|
||||
}
|
||||
|
||||
#endif /* TCC_MEMORY_DEBUG */
|
||||
|
|
Loading…
Reference in a new issue