Unified · Split
| @@ -261,12 +261,12 @@ if $cc -o $TMPO $TMPC 2> /dev/null ; then · 260 unmodified lines | ||
| 261 | 261 | fi |
| 262 | 262 | |
| 263 | 263 | if test -z "$cross_prefix" ; then |
| 264 | − if test -f "/usr/lib64" ; then | |
| 265 | − lddir="lib64" | |
| 266 | − elif test -z "$tcc_crtprefix" ; then # check if system is multiarch | |
| 267 | − if test ! -f $sysroot/usr/lib/crti.o -o -L $sysroot/usr/lib/crti.o ; then | |
| 268 | − use_multiarch="yes" | |
| 269 | − fi | |
| 264 | + libc_dir="$(ldd ./print_env_info | grep libc.so | sed 's|[^/]*/\(.*/\)[^/]*|\1|')" | |
| 265 | + multiarch_triplet=${libc_dir#*/} | |
| 266 | + multiarch_triplet=${multiarch_triplet%/} | |
| 267 | + lddir="${libc_dir%%/*}" | |
| 268 | + if test -n "$multiarch_triplet" ; then | |
| 269 | + lddir="$lddir/$multiarch_triplet" | |
| 270 | 270 | fi |
| 271 | 271 | fi |
| 272 | 272 | |
| @@ -501,8 +501,8 @@ if test "$have_selinux" = "yes" ; then · 228 unmodified lines | ||
| 501 | 501 | echo "#define HAVE_SELINUX" >> $TMPH |
| 502 | 502 | echo "HAVE_SELINUX=yes" >> config.mak |
| 503 | 503 | fi |
| 504 | −if test "$use_multiarch" = "yes" ; then | |
| 505 | − echo "#define CONFIG_TCC_MULTIARCH" >> $TMPH | |
| 504 | +if test -n "$multiarch_triplet" ; then | |
| 505 | + echo "#define CONFIG_MULTIARCHDIR \"$multiarch_triplet\"" >> $TMPH | |
| 506 | 506 | fi |
| 507 | 507 | if test -n "$lddir" ; then |
| 508 | 508 | echo "#define CONFIG_LDDIR \"$lddir\"" >> $TMPH |
| @@ -156,42 +156,6 @@ · 155 unmodified lines | ||
| 156 | 156 | # define CONFIG_SYSROOT "" |
| 157 | 157 | #endif |
| 158 | 158 | |
| 159 | −#if defined(CONFIG_TCC_MULTIARCH) && defined(TCC_IS_NATIVE) | |
| 160 | −/* Define architecture */ | |
| 161 | −# if defined(TCC_TARGET_I386) | |
| 162 | −# define TRIPLET_ARCH "i386" | |
| 163 | −# elif defined(TCC_TARGET_X86_64) | |
| 164 | −# define TRIPLET_ARCH "x86_64" | |
| 165 | −# elif defined(TCC_TARGET_ARM) | |
| 166 | −# define TRIPLET_ARCH "arm" | |
| 167 | −# else | |
| 168 | −# define TRIPLET_ARCH "unknown" | |
| 169 | −# endif | |
| 170 | −/* Define OS */ | |
| 171 | −# if defined (__linux__) | |
| 172 | −# define TRIPLET_OS "linux" | |
| 173 | −# elif defined (__FreeBSD__) || defined (__FreeBSD_kernel__) | |
| 174 | −# define TRIPLET_OS "kfreebsd" | |
| 175 | −# elif !defined (__GNU__) | |
| 176 | −# define TRIPLET_OS "unknown" | |
| 177 | −# endif | |
| 178 | −/* Define calling convention and ABI */ | |
| 179 | −# define TRIPLET_ABI "gnu" | |
| 180 | −# ifdef __GNU__ | |
| 181 | −# define CONFIG_MULTIARCHDIR TRIPLET_ARCH "-" TRIPLET_ABI | |
| 182 | −# else | |
| 183 | −# define CONFIG_MULTIARCHDIR TRIPLET_ARCH "-" TRIPLET_OS "-" TRIPLET_ABI | |
| 184 | −# endif | |
| 185 | −#endif | |
| 186 | − | |
| 187 | −#ifndef CONFIG_LDDIR | |
| 188 | −# ifdef CONFIG_MULTIARCHDIR | |
| 189 | −# define CONFIG_LDDIR "lib/" CONFIG_MULTIARCHDIR | |
| 190 | −# else | |
| 191 | −# define CONFIG_LDDIR "lib" | |
| 192 | −# endif | |
| 193 | −#endif | |
| 194 | − | |
| 195 | 159 | /* path to find crt1.o, crti.o and crtn.o */ |
| 196 | 160 | #ifndef CONFIG_TCC_CRTPREFIX |
| 197 | 161 | # define CONFIG_TCC_CRTPREFIX CONFIG_SYSROOT "/usr/" CONFIG_LDDIR |