--- ./netboot-0.10.1/make.rules.orig 2007-01-25 16:23:21.000000000 +1100 +++ ./netboot-0.10.1/make.rules 2007-01-25 16:24:27.000000000 +1100 @@ -162,7 +162,7 @@ DOGCC86 = $(GCC86) $(CPP86INCS) $(GCC86FLAGS) -S %.t86:: %.c86 - $(DOGCC86) $($(<:%.c86=%)_FLAGS) -o $@ $< + $(DOGCC86) -fno-pie -fno-stack-protector $($(<:%.c86=%)_FLAGS) -o $@ $< %-debug.t86:: %.c86 --- ./netboot-0.10.1/i386/libc/Makefile.orig 2007-01-25 16:27:17.000000000 +1100 +++ ./netboot-0.10.1/i386/libc/Makefile 2007-01-25 16:27:32.000000000 +1100 @@ -50,7 +50,7 @@ .INTERMEDIATE: $(STROBJS:%.o86=%.t86) $(STROBJS:%.o86=%.t86): cstrings.c86 $(INCDIR)/i386/string.h86 - $(DOGCC86) -DL_$(@:%.t86=%) -o $@ $< + $(DOGCC86) -fno-pie -fno-stack-protector -DL_$(@:%.t86=%) -o $@ $< # distrib generates all files which are not removed by distclean --- ./netboot-0.10.1/include/i386/string.h86.org 2007-01-29 10:54:42.000000000 +1100 +++ ./netboot-0.10.1/include/i386/string.h86 2007-01-29 12:04:09.000000000 +1100 @@ -639,16 +639,16 @@ */ __nb_inline__ short movemem(__lptr src, __lptr dest, __long n) { - __u32 d0, d1, d2; + __u32 d0, d1; register __u16 __res; __asm__ __volatile__( "call movmem\n\t" "setnc %b0\n\t" "cbtw" - : "=&a" (__res), "=&b" (d0), "=&c" (d1), "=&S" (d2) + : "=&a" (__res), "=&b" (d0), "=&c" (d1) : "0" ((__u32)src), "1" ((__u32)dest), "2" ((__u32)n) - : "memory", "cc"); + : "memory", "cc", "%esi"); return((short)__res); }