aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2010-01-28 08:27:38 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2010-01-28 08:27:38 +0100
commit253bad7993825fc4f2caa3613035b3bfa36821fa (patch)
tree989f8eea4d730af9b92bd77e2d8adc482413f0c9
parent900871ca8daf805e3c3a90634b07a9d56e4fd8bb (diff)
downloadtinycc-253bad7993825fc4f2caa3613035b3bfa36821fa.tar.gz
tinycc-253bad7993825fc4f2caa3613035b3bfa36821fa.tar.bz2
Added patch to detect and use the paths for 64bit libraries as
used by CentOS (affects X86_64 only).
-rw-r--r--Makefile1
-rw-r--r--libtcc.c8
-rw-r--r--tcc.h6
-rw-r--r--tccelf.c4
4 files changed, 17 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index c530eb8..dd11a9f 100644
--- a/Makefile
+++ b/Makefile
@@ -40,6 +40,7 @@ ALLOCA_O=alloca86.o alloca86-bt.o
else
ifeq ($(ARCH),x86-64)
NATIVE_DEFINES=-DTCC_TARGET_X86_64
+NATIVE_DEFINES+=$(if $(wildcard /lib64/ld-linux-x86-64.so.2),-DTCC_TARGET_X86_64_CENTOS)
LIBTCC1=libtcc1.a
BCHECK_O=
ALLOCA_O=alloca86_64.o
diff --git a/libtcc.c b/libtcc.c
index 520abfd..2f23fe6 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -944,9 +944,15 @@ LIBTCCAPI TCCState *tcc_new(void)
#ifndef TCC_TARGET_PE
/* default library paths */
- tcc_add_library_path(s, CONFIG_SYSROOT "/usr/local/lib");
+# if defined(TCC_TARGET_X86_64_CENTOS)
+ tcc_add_library_path(s, CONFIG_SYSROOT "/usr/lib64");
+ tcc_add_library_path(s, CONFIG_SYSROOT "/lib64");
+ tcc_add_library_path(s, CONFIG_SYSROOT "/usr/local/lib64");
+# else
tcc_add_library_path(s, CONFIG_SYSROOT "/usr/lib");
tcc_add_library_path(s, CONFIG_SYSROOT "/lib");
+ tcc_add_library_path(s, CONFIG_SYSROOT "/usr/local/lib");
+# endif
#endif
/* no section zero */
diff --git a/tcc.h b/tcc.h
index 156bdd0..ef0bb78 100644
--- a/tcc.h
+++ b/tcc.h
@@ -136,7 +136,11 @@ typedef int BOOL;
/* path to find crt1.o, crti.o and crtn.o. Only needed when generating
executables or dlls */
-#define CONFIG_TCC_CRT_PREFIX CONFIG_SYSROOT "/usr/lib"
+#if defined(TCC_TARGET_X86_64_CENTOS)
+# define CONFIG_TCC_CRT_PREFIX CONFIG_SYSROOT "/usr/lib64"
+#else
+# define CONFIG_TCC_CRT_PREFIX CONFIG_SYSROOT "/usr/lib"
+#endif
#define INCLUDE_STACK_SIZE 32
#define IFDEF_STACK_SIZE 64
diff --git a/tccelf.c b/tccelf.c
index 2d884d2..f262ac5 100644
--- a/tccelf.c
+++ b/tccelf.c
@@ -1307,7 +1307,11 @@ static const char elf_interp[] = "/libexec/ld-elf.so.1";
#elif defined TCC_ARM_EABI
static const char elf_interp[] = "/lib/ld-linux.so.3";
#elif defined(TCC_TARGET_X86_64)
+# if defined(TCC_TARGET_X86_64_CENTOS)
+static const char elf_interp[] = "/lib64/ld-linux-x86-64.so.2";
+# else
static const char elf_interp[] = "/lib/ld-linux-x86-64.so.2";
+# endif /* TCC_TARGET_X86_64_CENTOS */
#elif defined(TCC_UCLIBC)
static const char elf_interp[] = "/lib/ld-uClibc.so.0";
#else