Add a --multiarch-triplet switch to configure

Add a --multiarch-triplet switch to configure. The switch will allow
files to be search for each default path in path/<triplet> and then
path.
Default paths handled that way:
- CONFIG_TCC_SYSINCLUDE_PATHS
- CONFIG_TCC_LIBPATH
- path to crt*.o
- path to libgcc_s.so.1

Path missing: elf interpreter path (will be handled in another commit)
This commit is contained in:
Thomas Preud'homme
2011-08-01 22:32:44 +02:00
parent 5e954fef32
commit 76adc5770f
4 changed files with 153 additions and 74 deletions

View File

@ -1238,7 +1238,10 @@ ST_FUNC void tcc_add_runtime(TCCState *s1)
if (!s1->nostdlib) {
#ifdef CONFIG_USE_LIBGCC
tcc_add_library(s1, "c");
tcc_add_file(s1, CONFIG_SYSROOT CONFIG_TCC_LDDIR"/libgcc_s.so.1");
#ifdef CONFIG_TCC_MULTIARCH_TRIPLET
if (tcc_add_file_internal(s1, CONFIG_SYSROOT CONFIG_TCC_LDDIR "/" CONFIG_TCC_MULTIARCH_TRIPLET "/libgcc_s.so.1", 0))
#endif
tcc_add_file(s1, CONFIG_SYSROOT CONFIG_TCC_LDDIR"/libgcc_s.so.1");
#else
tcc_add_library(s1, "c");
#ifndef WITHOUT_LIBTCC
@ -1252,7 +1255,10 @@ ST_FUNC void tcc_add_runtime(TCCState *s1)
}
/* add crt end if not memory output */
if (s1->output_type != TCC_OUTPUT_MEMORY && !s1->nostdlib) {
tcc_add_file(s1, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/crtn.o");
#ifdef CONFIG_TCC_MULTIARCH_TRIPLET
if (tcc_add_file_internal(s1, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/" CONFIG_TCC_MULTIARCH_TRIPLET "/crtn.o", 0))
#endif
tcc_add_file(s1, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/crtn.o");
}
}