From d70440b406f84b2e0ed77d052682c6d39d3b1a8a Mon Sep 17 00:00:00 2001 From: seyko Date: Tue, 3 Mar 2015 18:34:22 +0300 Subject: [PATCH] A 32/64 bit tcc on linux: an arch specific path for libtcc1.a Don't use /usr/local/lib/tcc/libtcc1.a for i386 and x86_64 A $(tccdir)/i386 directory was used to install a libtcc1.a but only when cross compiling. And no x86_64 directory. And this directory location was unknown inside tccelf.c --- tccelf.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tccelf.c b/tccelf.c index 648422e..9c2ce6f 100644 --- a/tccelf.c +++ b/tccelf.c @@ -1575,7 +1575,25 @@ ST_FUNC void tcc_add_bcheck(TCCState *s1) static inline int tcc_add_support(TCCState *s1, const char *filename) { char buf[1024]; - snprintf(buf, sizeof(buf), "%s/%s", s1->tcc_lib_path, filename); + snprintf(buf, sizeof(buf), "%s/%s/%s", s1->tcc_lib_path, + /* an cpu specific path inside tcc_lib_path, mainly for keeping libtcc1.a */ + #ifdef TCC_TARGET_I386 + "i386" + #endif + #ifdef TCC_TARGET_X86_64 + "x86-64" + #endif + #ifdef TCC_TARGET_ARM + "ARM" + #endif + #ifdef TCC_TARGET_ARM64 + "ARM64" + #endif + #ifdef TCC_TARGET_C67 + "C67" + #endif + ,filename); + return tcc_add_file(s1, buf); }