History

Revert "Add a --multiarch-triplet switch to configure"

This reverts commit 76adc5770f4ab5b1aaa2e5dde6104efc06431fe2.

Thomas Preud'homme committed 15 years ago

Commit 0b665201 parent 76adc574 files · +74 −153Browse files

Unified · Split

4 files
  1. configure +35 −124
  2. libtcc.c +6 −18
  3. tcc.h +31 −3
  4. tccelf.c +2 −8
configure+35−124
@@ -31,7 +31,6 @@ includedir="" · 30 unmodified lines
31mandir=""31mandir=""
32infodir=""32infodir=""
33sysroot=""33sysroot=""
34multiarch_triplet=""
35cross_prefix=""34cross_prefix=""
36cc="gcc"35cc="gcc"
37host_cc="gcc"36host_cc="gcc"
@@ -121,8 +120,6 @@ for opt do · 83 unmodified lines
121 ;;120 ;;
122 --sysroot=*) sysroot=`echo $opt | cut -d '=' -f 2`121 --sysroot=*) sysroot=`echo $opt | cut -d '=' -f 2`
123 ;;122 ;;
124 --multiarch-triplet=*) multiarch_triplet=`echo $opt | cut -d '=' -f 2`
125 ;;
126 --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`123 --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
127 ;;124 ;;
128 --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`125 --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
@@ -238,37 +235,36 @@ Options: [defaults in brackets after descriptions] · 109 unmodified lines
238 235
239EOF236EOF
240echo "Standard options:"237echo "Standard options:"
241echo " --help print this message"238echo " --help print this message"
242echo " --prefix=PREFIX install in PREFIX [$prefix]"239echo " --prefix=PREFIX install in PREFIX [$prefix]"
243echo " --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX"240echo " --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX"
244echo " [same as prefix]"241echo " [same as prefix]"
245echo " --bindir=DIR user executables in DIR [EPREFIX/bin]"242echo " --bindir=DIR user executables in DIR [EPREFIX/bin]"
246echo " --libdir=DIR object code libraries in DIR [EPREFIX/lib]"243echo " --libdir=DIR object code libraries in DIR [EPREFIX/lib]"
247echo " --tccdir=DIR installation directory [EPREFIX/lib/tcc]"244echo " --tccdir=DIR installation directory [EPREFIX/lib/tcc]"
248echo " --includedir=DIR C header files in DIR [PREFIX/include]"245echo " --includedir=DIR C header files in DIR [PREFIX/include]"
249echo " --sharedir=DIR documentation root DIR [PREFIX]/share"246echo " --sharedir=DIR documentation root DIR [PREFIX]/share"
250echo " --docdir=DIR documentation in DIR [SHAREDIR/doc/tcc]"247echo " --docdir=DIR documentation in DIR [SHAREDIR/doc/tcc]"
251echo " --mandir=DIR man documentation in DIR [SHAREDIR/man]"248echo " --mandir=DIR man documentation in DIR [SHAREDIR/man]"
252echo " --infodir=DIR info documentation in DIR [SHAREDIR/info]"249echo " --infodir=DIR info documentation in DIR [SHAREDIR/info]"
253echo ""250echo ""
254echo "Advanced options (experts only):"251echo "Advanced options (experts only):"
255echo " --source-path=PATH path of source code [$source_path]"252echo " --source-path=PATH path of source code [$source_path]"
256echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"253echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
257echo " --sysroot=PREFIX prepend PREFIX to library/include paths []"254echo " --sysroot=PREFIX prepend PREFIX to library/include paths []"
258echo " --multiarch-triplet=SUFFIX append SUFFIX to library/include paths []"255echo " --cc=CC use C compiler CC [$cc]"
259echo " --cc=CC use C compiler CC [$cc]"256echo " --disable-static make libtcc.so instead of libtcc.a"
260echo " --disable-static make libtcc.so instead of libtcc.a"257echo " --disable-rpath disable use of -rpath with the above"
261echo " --disable-rpath disable use of -rpath with the above"258echo " --strip-binaries strip symbol tables from resulting binaries"
262echo " --strip-binaries strip symbol tables from resulting binaries"259echo " --with-libgcc use /lib/libgcc_s.so.1 instead of libtcc.a"
263echo " --with-libgcc use /lib/libgcc_s.so.1 instead of libtcc.a"260echo " --enable-mingw32 build windows version on linux with mingw32"
264echo " --enable-mingw32 build windows version on linux with mingw32"261echo " --enable-cygwin build windows version on windows with cygwin"
265echo " --enable-cygwin build windows version on windows with cygwin"262echo " [requires cygwin and mingw32-make]"
266echo " [requires cygwin and mingw32-make]"263echo " --enable-cross build cross compilers"
267echo " --enable-cross build cross compilers"264echo " --extra-cflags= extra compiler flags"
268echo " --extra-cflags= extra compiler flags"265echo " --extra-ldflags= extra linker options"
269echo " --extra-ldflags= extra linker options"266echo " --with-selinux use mmap instead of exec mem"
270echo " --with-selinux use mmap instead of exec mem"267echo " [requires write access to /tmp]"
271echo " [requires write access to /tmp]"
272echo ""268echo ""
273#echo "NOTE: The object files are build at the place where configure is launched"269#echo "NOTE: The object files are build at the place where configure is launched"
274exit 1270exit 1
@@ -334,14 +330,13 @@ echo "Manual directory $mandir" · 59 unmodified lines
334echo "Info directory $infodir"330echo "Info directory $infodir"
335echo "Doc directory $docdir"331echo "Doc directory $docdir"
336echo "Target root prefix $sysroot"332echo "Target root prefix $sysroot"
337echo "Multiarch triplet $multiarch_triplet"333echo "Source path $source_path"
338echo "Source path $source_path"334echo "C compiler $cc"
339echo "C compiler $cc"335echo "CPU $cpu"
340echo "CPU $cpu"336echo "Big Endian $bigendian"
341echo "Big Endian $bigendian"337echo "gprof enabled $gprof"
342echo "gprof enabled $gprof"338echo "cross compilers $build_cross"
343echo "cross compilers $build_cross"339echo "use libgcc $use_libgcc"
344echo "use libgcc $use_libgcc"
345 340
346echo "Creating config.mak and config.h"341echo "Creating config.mak and config.h"
347 342
@@ -361,93 +356,9 @@ echo "docdir=\$(DESTDIR)$docdir" >> config.mak · 13 unmodified lines
361echo "#ifndef CONFIG_SYSROOT" >> $TMPH356echo "#ifndef CONFIG_SYSROOT" >> $TMPH
362echo "#define CONFIG_SYSROOT \"$sysroot\"" >> $TMPH357echo "#define CONFIG_SYSROOT \"$sysroot\"" >> $TMPH
363echo "#endif" >> $TMPH358echo "#endif" >> $TMPH
364echo "" >> $TMPH
365
366# Set default include and library paths
367win_incpaths="\\\b/include;\\\b/include/winapi"
368unix_incpaths="/usr/local/include:/usr/include:\\\b/include"
369win_libpaths="\\\b/lib"
370unix_libpaths="CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX"
371unix_libpaths="$unix_libpaths\":\"CONFIG_SYSROOT CONFIG_TCC_LDDIR"
372unix_libpaths="$unix_libpaths\":\"CONFIG_SYSROOT \"/usr/local\" CONFIG_TCC_LDDIR"
373
374# sep: path separator in paths
375# tmp: paths multiarchified (one path per line)
376# q: quote (if sep contains ")
377# r: carriage return pattern (if sep contains ")
378# s: space (if sep contains ")
379multiarchify()
380{
381 local sep tmp
382
383 paths="$1"
384 sep="$2"
385 tmp=""
386 q=""
387 r=""
388 s=""
389 if [ -z "${sep%%\"*}" ] ; then
390 q="\""
391 r=" \\\\\n "
392 s=" "
393 fi
394 paths="$paths$sep"
395 while test -n "$paths" ; do
396 tmp="$tmp${tmp:+$r$sep$s}${paths%%$sep*}$s$q/$multiarch_triplet$q"
397 tmp="$tmp$r$sep$s${paths%%$sep*}"
398 paths="${paths#*$sep}"
399 done
400 paths="$tmp"
401}
402
403if test -n "$multiarch_triplet" ; then
404 multiarchify "$win_incpaths" ";"
405 win_incpaths="\"$paths\""
406 multiarchify "$unix_incpaths" ":"
407 unix_incpaths="\"$paths\""
408 multiarchify "$win_libpaths" ";"
409 win_libpaths="\"$paths\""
410 multiarchify "$unix_libpaths" "\":\""
411 unix_libpaths="$paths"
412 echo "#define CONFIG_TCC_MULTIARCH_TRIPLET \"$multiarch_triplet\"" >> $TMPH
413fi
414
415echo "#ifndef CONFIG_TCC_LDDIR" >> $TMPH
416echo " #if defined(TCC_TARGET_X86_64_CENTOS)" >> $TMPH
417echo " #define CONFIG_TCC_LDDIR \"/lib64\"" >> $TMPH
418echo " #else" >> $TMPH
419echo " #define CONFIG_TCC_LDDIR \"/lib\"" >> $TMPH
420echo " #endif" >> $TMPH
421echo "#endif" >> $TMPH
422echo "" >> $TMPH
423
424echo "/* path to find crt1.o, crti.o and crtn.o */" >> $TMPH
425echo "#ifndef CONFIG_TCC_CRT_PREFIX" >> $TMPH
426echo "# define CONFIG_TCC_CRT_PREFIX \"/usr\" CONFIG_TCC_LDDIR" >> $TMPH
427echo "#endif" >> $TMPH
428echo "" >> $TMPH
429
430echo "#ifndef CONFIG_TCC_SYSINCLUDE_PATHS" >> $TMPH
431echo "# ifdef TCC_TARGET_PE" >> $TMPH
432echo "# define CONFIG_TCC_SYSINCLUDE_PATHS $win_incpaths" >> $TMPH
433echo "# else" >> $TMPH
434echo "# define CONFIG_TCC_SYSINCLUDE_PATHS $unix_incpaths" >> $TMPH
435echo "# endif" >> $TMPH
436echo "#endif" >> $TMPH
437echo "" >> $TMPH
438echo "#ifndef CONFIG_TCC_LIBPATH" >> $TMPH
439echo "# ifdef TCC_TARGET_PE" >> $TMPH
440echo "# define CONFIG_TCC_LIBPATH $win_libpaths" >> $TMPH
441echo "# else" >> $TMPH
442echo "# define CONFIG_TCC_LIBPATH $unix_libpaths" >> $TMPH
443echo "# endif" >> $TMPH
444echo "#endif" >> $TMPH
445echo "" >> $TMPH
446
447echo "#ifndef CONFIG_TCCDIR" >> $TMPH359echo "#ifndef CONFIG_TCCDIR" >> $TMPH
448echo "#define CONFIG_TCCDIR \"$tccdir\"" >> $TMPH360echo "#define CONFIG_TCCDIR \"$tccdir\"" >> $TMPH
449echo "#endif" >> $TMPH361echo "#endif" >> $TMPH
450echo "" >> $TMPH
451echo "CC=$cc" >> config.mak362echo "CC=$cc" >> config.mak
452echo "GCC_MAJOR=$gcc_major" >> config.mak363echo "GCC_MAJOR=$gcc_major" >> config.mak
453echo "#define GCC_MAJOR $gcc_major" >> $TMPH364echo "#define GCC_MAJOR $gcc_major" >> $TMPH
libtcc.c+6−18
@@ -1226,19 +1226,14 @@ the_end: · 1225 unmodified lines
1226 return ret;1226 return ret;
1227}1227}
1228 1228
1229static int tcc_add_file_noerror(TCCState *s, const char *filename, int extra_flags)1229LIBTCCAPI int tcc_add_file(TCCState *s, const char *filename)
1230{1230{
1231 dynarray_add((void ***)&s->input_files, &s->nb_input_files, tcc_strdup(filename));1231 dynarray_add((void ***)&s->input_files, &s->nb_input_files, tcc_strdup(filename));
1232 1232
1233 if (s->output_type == TCC_OUTPUT_PREPROCESS)1233 if (s->output_type == TCC_OUTPUT_PREPROCESS)
1234 return tcc_add_file_internal(s, filename, extra_flags | AFF_PREPROCESS);1234 return tcc_add_file_internal(s, filename, AFF_PRINT_ERROR | AFF_PREPROCESS);
1235 else1235 else
1236 return tcc_add_file_internal(s, filename, extra_flags);1236 return tcc_add_file_internal(s, filename, AFF_PRINT_ERROR);
1237}
1238
1239LIBTCCAPI int tcc_add_file(TCCState *s, const char *filename)
1240{
1241 return tcc_add_file_noerror(s, filename, AFF_PRINT_ERROR);
1242}1237}
1243 1238
1244LIBTCCAPI int tcc_add_library_path(TCCState *s, const char *pathname)1239LIBTCCAPI int tcc_add_library_path(TCCState *s, const char *pathname)
@@ -1352,16 +1347,9 @@ LIBTCCAPI int tcc_set_output_type(TCCState *s, int output_type) · 107 unmodified lines
1352#else1347#else
1353 if ((output_type == TCC_OUTPUT_EXE || output_type == TCC_OUTPUT_DLL) &&1348 if ((output_type == TCC_OUTPUT_EXE || output_type == TCC_OUTPUT_DLL) &&
1354 !s->nostdlib) {1349 !s->nostdlib) {
1355 if (output_type != TCC_OUTPUT_DLL) {1350 if (output_type != TCC_OUTPUT_DLL)
1356#ifdef CONFIG_TCC_MULTIARCH_TRIPLET1351 tcc_add_file(s, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/crt1.o");
1357 if (tcc_add_file_noerror(s, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/" CONFIG_TCC_MULTIARCH_TRIPLET "/crt1.o", 0))1352 tcc_add_file(s, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/crti.o");
1358#endif
1359 tcc_add_file(s, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/crt1.o");
1360 }
1361#ifdef CONFIG_TCC_MULTIARCH_TRIPLET
1362 if (tcc_add_file_noerror(s, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/" CONFIG_TCC_MULTIARCH_TRIPLET "/crti.o", 0))
1363#endif
1364 tcc_add_file(s, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/crti.o");
1365 }1353 }
1366#endif1354#endif
1367 return 0;1355 return 0;
tcc.h+31−3
@@ -139,9 +139,37 @@ · 138 unmodified lines
139#define true 1139#define true 1
140typedef int BOOL;140typedef int BOOL;
141 141
142/* See definition of default values of CONFIG_TCC_LDDIR, CONFIG_TCC_CRT_PREFIX,142#ifndef CONFIG_TCC_LDDIR
143 CONFIG_TCC_SYSINCLUDE_PATHS and CONFIG_TCC_LIBPATH in config.h or configure143 #if defined(TCC_TARGET_X86_64_CENTOS)
144 */144 #define CONFIG_TCC_LDDIR "/lib64"
145 #else
146 #define CONFIG_TCC_LDDIR "/lib"
147 #endif
148#endif
149
150/* path to find crt1.o, crti.o and crtn.o */
151#ifndef CONFIG_TCC_CRT_PREFIX
152# define CONFIG_TCC_CRT_PREFIX "/usr" CONFIG_TCC_LDDIR
153#endif
154
155#ifndef CONFIG_TCC_SYSINCLUDE_PATHS
156# ifdef TCC_TARGET_PE
157# define CONFIG_TCC_SYSINCLUDE_PATHS "\b/include;\b/include/winapi"
158# else
159# define CONFIG_TCC_SYSINCLUDE_PATHS "/usr/local/include:/usr/include:\b/include"
160# endif
161#endif
162
163#ifndef CONFIG_TCC_LIBPATH
164# ifdef TCC_TARGET_PE
165# define CONFIG_TCC_LIBPATH "\b/lib"
166# else
167# define CONFIG_TCC_LIBPATH \
168 CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX \
169 ":" CONFIG_SYSROOT CONFIG_TCC_LDDIR \
170 ":" CONFIG_SYSROOT "/usr/local" CONFIG_TCC_LDDIR
171# endif
172#endif
145 173
146#define INCLUDE_STACK_SIZE 32174#define INCLUDE_STACK_SIZE 32
147#define IFDEF_STACK_SIZE 64175#define IFDEF_STACK_SIZE 64
tccelf.c+2−8
@@ -1238,10 +1238,7 @@ ST_FUNC void tcc_add_runtime(TCCState *s1) · 1237 unmodified lines
1238 if (!s1->nostdlib) {1238 if (!s1->nostdlib) {
1239#ifdef CONFIG_USE_LIBGCC1239#ifdef CONFIG_USE_LIBGCC
1240 tcc_add_library(s1, "c");1240 tcc_add_library(s1, "c");
1241#ifdef CONFIG_TCC_MULTIARCH_TRIPLET1241 tcc_add_file(s1, CONFIG_SYSROOT CONFIG_TCC_LDDIR"/libgcc_s.so.1");
1242 if (tcc_add_file_internal(s1, CONFIG_SYSROOT CONFIG_TCC_LDDIR "/" CONFIG_TCC_MULTIARCH_TRIPLET "/libgcc_s.so.1", 0))
1243#endif
1244 tcc_add_file(s1, CONFIG_SYSROOT CONFIG_TCC_LDDIR"/libgcc_s.so.1");
1245#else1242#else
1246 tcc_add_library(s1, "c");1243 tcc_add_library(s1, "c");
1247#ifndef WITHOUT_LIBTCC1244#ifndef WITHOUT_LIBTCC
@@ -1255,10 +1252,7 @@ ST_FUNC void tcc_add_runtime(TCCState *s1) · 7 unmodified lines
1255 }1252 }
1256 /* add crt end if not memory output */1253 /* add crt end if not memory output */
1257 if (s1->output_type != TCC_OUTPUT_MEMORY && !s1->nostdlib) {1254 if (s1->output_type != TCC_OUTPUT_MEMORY && !s1->nostdlib) {
1258#ifdef CONFIG_TCC_MULTIARCH_TRIPLET1255 tcc_add_file(s1, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/crtn.o");
1259 if (tcc_add_file_internal(s1, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/" CONFIG_TCC_MULTIARCH_TRIPLET "/crtn.o", 0))
1260#endif
1261 tcc_add_file(s1, CONFIG_SYSROOT CONFIG_TCC_CRT_PREFIX "/crtn.o");
1262 }1256 }
1263}1257}
1264 1258

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t