From 9e79b18bca641b12b6b12e5cec46202f6d6fad65 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Fri, 3 Jan 2014 18:17:52 +0800 Subject: [PATCH] Use libtcc.a for static link even with USE_LIBGCC When statically linking, runtime library should be static as well. tcc could link with libgcc.a but it's in a gcc version specific directory. Another solution, followed by this patch, is to use libtcc.a when statically linking, even if USE_LIBGCC was configured. --- configure | 2 +- tccelf.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/configure b/configure index d654fd9..cc8ca5a 100755 --- a/configure +++ b/configure @@ -273,7 +273,7 @@ Advanced options (experts only): --strip-binaries strip symbol tables from resulting binaries --disable-static make libtcc.so instead of libtcc.a --disable-rpath disable use of -rpath with the above - --with-libgcc use /lib/libgcc_s.so.1 instead of libtcc.a + --with-libgcc use libgcc_s.so.1 instead of libtcc.a in dynamic link --enable-mingw32 build windows version on linux with mingw32 --enable-cygwin build windows version on windows with cygwin --enable-cross build cross compilers diff --git a/tccelf.c b/tccelf.c index 91155e3..caa8281 100644 --- a/tccelf.c +++ b/tccelf.c @@ -1363,7 +1363,12 @@ ST_FUNC void tcc_add_runtime(TCCState *s1) if (!s1->nostdlib) { tcc_add_library(s1, "c"); #ifdef CONFIG_USE_LIBGCC - tcc_add_file(s1, TCC_LIBGCC); + if (!s1->static_link) + tcc_add_file(s1, TCC_LIBGCC); +#if !defined WITHOUT_LIBTCC + else + tcc_add_support(s1, "libtcc1.a"); +#endif #elif !defined WITHOUT_LIBTCC tcc_add_support(s1, "libtcc1.a"); #endif