Improve multiarch detection

* Detect multiarch at configure time
* Detect based on the place where crti.o is
* Define multiarch triplet in tcc.h
This commit is contained in:
Thomas Preud'homme
2013-02-13 17:01:53 +01:00
parent 05108a3b0a
commit f6cfaa6d25
3 changed files with 44 additions and 10 deletions

28
tcc.h
View File

@ -156,6 +156,34 @@
# define CONFIG_SYSROOT ""
#endif
#if defined(CONFIG_TCC_MULTIARCH) && defined(TCC_IS_NATIVE)
/* Define architecture */
# if defined(TCC_TARGET_I386)
# define TRIPLET_ARCH "i386"
# elif defined(TCC_TARGET_X86_64)
# define TRIPLET_ARCH "x86_64"
# elif defined(TCC_TARGET_ARM)
# define TRIPLET_ARCH "arm"
# else
# define TRIPLET_ARCH "unknown"
# endif
/* Define OS */
# if defined (__linux__)
# define TRIPLET_OS "linux"
# elif defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
# define TRIPLET_OS "kfreebsd"
# elif !defined (__GNU__)
# define TRIPLET_OS "unknown"
# endif
/* Define calling convention and ABI */
# define TRIPLET_ABI "gnu"
# ifdef __GNU__
# define CONFIG_MULTIARCHDIR TRIPLET_ARCH "-" TRIPLET_ABI
# else
# define CONFIG_MULTIARCHDIR TRIPLET_ARCH "-" TRIPLET_OS "-" TRIPLET_ABI
# endif
#endif
#ifndef CONFIG_LDDIR
# ifdef CONFIG_MULTIARCHDIR
# define CONFIG_LDDIR "lib/" CONFIG_MULTIARCHDIR