diff -rup tcc-0.9.22/configure tcc-0.9.22-pdf/configure --- tcc-0.9.22/configure 2004-11-08 22:47:16.000000000 +0200 +++ tcc-0.9.22-pdf/configure 2005-03-30 22:07:59.846852856 +0200 @@ -35,6 +35,9 @@ case "$cpu" in i386|i486|i586|i686|i86pc|BePC) cpu="x86" ;; + x86_64) + cpu="x86_64" + ;; armv4l) cpu="armv4l" ;; @@ -271,6 +274,11 @@ echo "EXESUF=$EXESUF" >> config.mak if test "$cpu" = "x86" ; then echo "ARCH=i386" >> config.mak echo "#define HOST_I386 1" >> $TMPH +elif test "$cpu" = "x86_64" ; then + echo "ARCH=i386" >> config.mak + echo "X86_64=1" >> config.mak + echo "#define HOST_I386 1" >> $TMPH + echo "#define X86_64 1" >> $TMPH elif test "$cpu" = "armv4l" ; then echo "ARCH=arm" >> config.mak echo "#define HOST_ARM 1" >> $TMPH diff -rup tcc-0.9.22/Makefile tcc-0.9.22-pdf/Makefile --- tcc-0.9.22/Makefile 2004-11-08 22:47:16.000000000 +0200 +++ tcc-0.9.22-pdf/Makefile 2005-03-30 21:57:39.995084648 +0200 @@ -11,11 +11,17 @@ endif CFLAGS_P=$(CFLAGS) -pg -static -DCONFIG_TCC_STATIC LIBS_P= +X86_64FLAGS= +ifdef X86_64 +CFLAGS+=-m32 -march=i386 -DX86_64 +X86_64FLAGS=-m32 -march=i386 -DX86_64 +endif + CFLAGS+=-mpreferred-stack-boundary=2 ifeq ($(GCC_MAJOR),2) CFLAGS+=-m386 -malign-functions=0 else -CFLAGS+=-march=i386 -falign-functions=0 -fno-strict-aliasing +CFLAGS+=-march=i386 -falign-functions=0 -fno-strict-aliasing endif DISAS=objdump -d @@ -106,10 +112,10 @@ speed: tcc ex2 ex3 time ./tcc -I. ./ex3.c 35 ex2: ex2.c - $(CC) $(CFLAGS) -o $@ $< + $(CC) $(CFLAGS) -I. -o $@ $< ex3: ex3.c - $(CC) $(CFLAGS) -o $@ $< + $(CC) $(CFLAGS) -I. -o $@ $< # Native Tiny C Compiler @@ -127,13 +133,13 @@ arm-tcc$(EXESUF): tcc.c arm-gen.c tccelf # TinyCC runtime libraries libtcc1.o: libtcc1.c - $(CC) -O2 -Wall -c -o $@ $< + $(CC) -O2 -Wall $(X86_64FLAGS) -c -o $@ $< libtcc1$(LIBSUF): libtcc1.o $(AR) rcs $@ $^ bcheck.o: bcheck.c - $(CC) -O2 -Wall -c -o $@ $< + $(CC) -O2 -Wall $(X86_64FLAGS) -c -o $@ $< install: tcc_install libinstall diff -rup tcc-0.9.22/tcc.c tcc-0.9.22-pdf/tcc.c --- tcc-0.9.22/tcc.c 2004-11-08 22:47:16.000000000 +0200 +++ tcc-0.9.22-pdf/tcc.c 2005-03-30 22:05:39.200234392 +0200 @@ -107,7 +107,11 @@ typedef int BOOL; /* path to find crt1.o, crti.o and crtn.o. Only needed when generating executables or dlls */ +#ifdef X86_64 +#define CONFIG_TCC_CRT_PREFIX "/usr/lib32" +#else #define CONFIG_TCC_CRT_PREFIX "/usr/lib" +#endif #define INCLUDE_STACK_SIZE 32 #define IFDEF_STACK_SIZE 64 @@ -9589,9 +9593,13 @@ TCCState *tcc_new(void) /* default library paths */ tcc_add_library_path(s, "/usr/local/lib"); +#ifdef X86_64 + tcc_add_library_path(s, "/usr/lib32"); + tcc_add_library_path(s, "/lib32"); +#else tcc_add_library_path(s, "/usr/lib"); tcc_add_library_path(s, "/lib"); - +#endif /* no section zero */ dynarray_add((void ***)&s->sections, &s->nb_sections, NULL);