Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 gcl (2.6.10-16) unstable; urgency=high
 .
   * 2.6.11pre test 15
Author: Camm Maguire <camm@debian.org>

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: http://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: <YYYY-MM-DD>

--- gcl-2.6.10.orig/h/compprotos.h
+++ gcl-2.6.10/h/compprotos.h
@@ -74,7 +74,6 @@ char object_to_char(object);
 void not_a_symbol(object);
 object number_expt(object,object);
 object fLrow_major_aref(object,fixnum);
-void * alloca(unsigned long);
 object car(object);
 object cdr(object);
 object caar(object);
@@ -175,6 +174,7 @@ double sin(double);
 double sqrt(double);
 double tan(double);
 #ifdef CMPINCLUDE
+void * alloca(unsigned long);
 int feof(void *);
 int getc(void *);
 int putc(int,void *);
--- gcl-2.6.10.orig/h/gnuwin95.defs
+++ gcl-2.6.10/h/gnuwin95.defs
@@ -33,14 +33,14 @@ UNIX_SAVE_DEP = unexnt.c
 # requires c/rel_.. machine dependent code.
 
 RSYM	= rsym
-SFASL	= $(ODIR)/sfasl.o
+SFASL	= sfasl.o
 
 
 
 #MPFILES= $(MPDIR)/mpi-386-winnt.o   $(MPDIR)/libmport.a
 #MPFILES= $(MPDIR)/mpi.o   $(MPDIR)/libmport.a
-FIRST_FILE=$(ODIR)/firstfile.o
-LAST_FILE=$(ODIR)/lastfile.o
+FIRST_FILE=firstfile.o
+LAST_FILE=lastfile.o
 
 
 
--- gcl-2.6.10.orig/h/include.h
+++ gcl-2.6.10/h/include.h
@@ -125,7 +125,9 @@ Foundation, 675 Mass Ave, Cambridge, MA
 #include "../h/notcomp.h"
 #include "../h/funlink.h"
 #include "../h/att_ext.h"
+#ifndef INICOMP
 #include "../h/new_decl.h"
+#endif
 #include "compat.h"
 
 #include "../h/rgbc.h"
--- gcl-2.6.10.orig/h/mingw.defs
+++ gcl-2.6.10/h/mingw.defs
@@ -16,11 +16,11 @@ UNIX_SAVE_DEP = unexnt.c
 
 RSYM	     = rsym.exe
 SPECIAL_RSYM = rsym_nt.c
-SFASL	     = $(ODIR)/sfasl.o
-FIRST_FILE   = $(ODIR)/firstfile.o
-LAST_FILE    = $(ODIR)/lastfile.o
+SFASL	     = sfasl.o
+FIRST_FILE   = firstfile.o
+LAST_FILE    = lastfile.o
 LIBFILES     = bcmp.o bzero.o bcopy.o
-EXTRAS       = ${ODIR}/mingwin.o ${ODIR}/mingfile.o
+EXTRAS       = mingwin.o mingfile.o
 
 # When using SFASL it is good to have (si::build-symbol-table)
 INITFORM     = (si::build-symbol-table)
--- gcl-2.6.10.orig/h/protoize.h
+++ gcl-2.6.10/h/protoize.h
@@ -193,7 +193,6 @@ typedef int (*FUNC)();
 /* error.c:641:OF */ extern void not_a_symbol (object obj); /* (obj) object obj; */
 /* error.c:647:OF */ extern int not_a_variable (object obj); /* (obj) object obj; */
 /* error.c:653:OF */ extern void illegal_index (object x, object i); /* (x, i) object x; object i; */
-/* error.c:660:OF */ extern void check_socket (object x); /* (x) object x; */
 /* error.c:670:OF */ extern void check_stream (object strm); /* (strm) object strm; */
 /* error.c:697:OF */ extern void check_arg_range (int n, int m); /* (n, m) int n; int m; */
 /* error.c:727:OF */ extern void gcl_init_error (void); /* () */
--- gcl-2.6.10.orig/makefile
+++ gcl-2.6.10/makefile
@@ -257,12 +257,12 @@ $(HDIR)new_decl.h:
 
 $(HDIR)mcompdefs.h: $(HDIR)compdefs.h $(HDIR)new_decl.h
 	$(AWK) 'BEGIN {print "#include \"include.h\"";print "#include \"cmponly.h\"";print "---"} {print "\"#define " $$1 "\" " $$1}' $< |\
-	cpp -I$(HDIR) |\
+	cpp -I./$(HDIR) |\
 	$(AWK) '/^\-\-\-$$/ {i=1;next} {if (!i) next} {gsub("\"","");print}' >$@
 
 $(HDIR)cmpinclude.h: $(HDIR)mcompdefs.h $(CMPINCLUDE_FILES) $(HDIR)config.h
 	cp $< $(@F)
-	cat $(CMPINCLUDE_FILES) | $(CC) -E -I./$(HDIR) - | $(AWK) '/^# |^$$/ {next}{print}' >> $(@F)
+	cat $(CMPINCLUDE_FILES) | $(CC) -E -I./$(HDIR) - | $(AWK) '/^# |^$$|^#pragma/ {next}{print}' >> $(@F)
 	./xbin/move-if-changed mv $(@F) $@
 	./xbin/move-if-changed cp $@ o/$(@F)
 
--- gcl-2.6.10.orig/o/error.c
+++ gcl-2.6.10/o/error.c
@@ -757,15 +757,6 @@ illegal_index(object x, object i)
 }
 
 void
-check_socket(object x)
-{
-
- if (type_of(x) != t_stream || x->sm.sm_mode != smm_socket) 
-   FEwrong_type_argument(sSsocket,x);
-  
-}
-
-void
 check_stream(object strm)
 {
 if (type_of(strm) != t_stream)
--- gcl-2.6.10.orig/o/makefile
+++ gcl-2.6.10/o/makefile
@@ -1,118 +1,72 @@
 # make .d more important by clearing suffixes.
 .SUFFIXES:
-.SUFFIXES: .d .o  .c .ini
+.SUFFIXES: .d .o .c .ini
 
 -include ../makedefs
 
-HDIR	= ../h
-CDIR	= ./
-MPDIR	= ../mp
-
-#OFLAG	= -O
-DEFS	= -I../h -I../gcl-tk
-ODIR	= .
-GCLIB  = ${ODIR}/gcllib.a
-RANLIB=ranlib
-AR = ar qc
-LIBFILES= bcmp.o bcopy.o bzero.o user_init.o user_match.o
-# compile main.c with -g, since signalling may not be ok on -O
-MAIN_DEBUG=
-DPP	= ../bin/dpp$(EXE)
+HDIR	 := ../h
+DEFS	 := -I../h -I../gcl-tk
+GCLIB    := gcllib.a
+RANLIB   := ranlib
+AR       := ar qc
+LIBFILES :=$(addsuffix .o,bcmp bcopy bzero user_init user_match)
+DPP	 := ../bin/dpp$(EXE)
+DECL     := $(HDIR)/new_decl.h
+ALIB     := ${LIBFILES} ${EXTRA_LIB}
+
+
+OBJS:=$(addsuffix .o,main alloc gbc bitop typespec eval macros lex bds frame predicate reference assignment\
+	bind let conditional block iteration mapfun prog multival catch symbol cfun cmpaux package big number\
+	num_pred num_comp num_arith num_sfun num_co num_log num_rand earith character sequence list hash\
+	array string regexpr structure toplevel file read backq print format pathname unixfsys unixfasl\
+	error unixtime unixsys unixsave funlink fat_string run_process nfunlink usig usig2 utils makefun\
+	sockets gmp_wrappers clxsocket init_pari nsocket sfasl)
+OBJS:=$(OBJS) $(RL_OBJS) $(EXTRAS)
 
-DECL := $(HDIR)/new_decl.h
+INI_FILES=$(patsubst %.o,%.ini,${OBJS})
+INI_FILES:=$(filter-out new_init.ini,$(filter-out boot.ini,$(INI_FILES)))
+
+OBJECTS:=$(OBJS) $(LIBFILES) new_init.o  $(GCLIB) $(LAST_FILE)  $(FIRST_FILE) 
+
+all:  $(OBJECTS)
+
+boot.o: boot.c $(DECL) boot.h
+	$(CC) -c $(CFLAGS) $(DEFS) -fPIC $*.c $(AUX_INFO) 
 
-# AUX_INFO=-aux-info $*.X
 %.o: %.c $(DECL)
 	$(CC) -c $(CFLAGS) $(DEFS) $*.c $(AUX_INFO) 
+
+%.c: %.d $(DPP)
+	$(DPP) $*
+
 %.o: %.d $(DECL)
 	$(DPP) $*
 	$(CC) -c $(CFLAGS) $(DEFS) $*.c $(AUX_INFO)
 	rm $*.c
 
-CPP=
-
-PLT=
-PLTH=
-ifneq ($(findstring bfd,$(LIBS)),) 
-PLT     = plt.o
-PLTH    = plt.h
-endif
-ifneq ($(BUILD_BFD),) 
-PLT     = plt.o
-PLTH    = plt.h
-endif
-
-%.ini: %.c grab_defs $(PLTH)
-	[ -e $(DECL) ] || touch $(DECL)
-	$(CC) -DNO_DEFUN $(CFLAGS) $(DEFS) -E $*.c | sed -e 's:\"[ ]*):\"):g' | ./grab_defs > $*.ini
+boot.ini: boot.c grab_defs
+	$(CC) -DINICOMP -DNO_DEFUN -DNO_BOOT_H $(CFLAGS) $(DEFS) -E $*.c |\
+		 sed -e 's,DEFUN,\nDEFUN,g' -e 's,^.* DEFUNB,DEFUNB,g' -e 's/DEF,//g' -e 's:\"[ ]*):\"):g' | ./grab_defs > $@
+
+boot.h: boot.ini
+	echo '#include "make-init.h"' > $@
+	echo 'void gcl_init_boot(void){' >> $@
+	cat $< >> $@
+	echo '}' >> $@
+
+%.ini: %.c grab_defs
+	$(CC) -DINICOMP -DNO_DEFUN $(CFLAGS) $(DEFS) -E $*.c |\
+		 sed -e 's,^.* DEFUNB,DEFUNB,g' -e 's/DEF,//g' -e 's:\"[ ]*):\"):g' | ./grab_defs > $*.ini
 
 %.ini: %.d $(DPP) grab_defs
-	[ -e $(DECL) ] || touch $(DECL)
 	$(DPP) $*
-	./grab_defs < $*.c > $*.ini
+	$(CC) -DINICOMP -DNO_DEFUN $(CFLAGS) $(DEFS) -E $*.c |\
+		 sed -e 's,^.* DEFUNB,DEFUNB,g' -e 's/DEF,//g' | sed -e 's:\"[ ]*):\"):g' | ./grab_defs > $*.ini
 	rm $*.c
 
-X11_INCLUDE=${TK_XINCLUDES} ${HAVE_X11}
-#CFLAGS	=  -I../gcl-tk -I$(HDIR) $(ODIR_DEBUG) 
-
-
-MP 	= $(HDIR)/mp.h
-
-CMPINCLUDE_FILES=$(HDIR)/cmpincl1.h $(HDIR)/gclincl.h $(HDIR)/compbas.h $(HDIR)/type.h $(HDIR)/mgmp.h \
-	$(HDIR)/lu.h $(HDIR)/globals.h  $(HDIR)/vs.h \
-	$(HDIR)/bds.h $(HDIR)/frame.h \
-	$(HDIR)/lex.h \
-	$(HDIR)/compprotos.h  $(HDIR)/immnum.h
-
-OTHERS=${HDIR}/notcomp.h ${HDIR}/rgbc.h ${HDIR}/stacks.h 
-
-HFILES	= $(HDIR)/include.h $(CMPINCLUDE_FILES) $(OTHERS) 
-
-# these are made elsewhere...
-MPFILES= 
-
-OBJS	= $(OD)main.o $(OD)alloc.o $(OD)gbc.o \
-	$(OD)bitop.o $(OD)typespec.o $(OD)eval.o \
-	$(OD)macros.o $(OD)lex.o $(OD)bds.o \
-	$(OD)frame.o $(OD)predicate.o $(OD)reference.o \
-	$(OD)assignment.o $(OD)bind.o $(OD)let.o \
-	$(OD)conditional.o $(OD)block.o $(OD)iteration.o \
-	$(OD)mapfun.o $(OD)prog.o $(OD)multival.o \
-	$(OD)catch.o $(OD)symbol.o $(OD)cfun.o \
-	$(OD)cmpaux.o $(OD)package.o $(OD)big.o \
-	$(OD)number.o $(OD)num_pred.o $(OD)num_comp.o \
-	$(OD)num_arith.o $(OD)num_sfun.o $(OD)num_co.o \
-	$(OD)num_log.o $(OD)num_rand.o $(OD)earith.o \
-	$(OD)character.o  $(OD)sequence.o \
-	$(OD)list.o $(OD)hash.o $(OD)array.o \
-	$(OD)string.o $(OD)regexpr.o $(OD)structure.o $(OD)toplevel.o \
-	$(OD)file.o $(OD)read.o $(OD)backq.o \
-	$(OD)print.o $(OD)format.o $(OD)pathname.o \
-	$(OD)unixfsys.o $(OD)unixfasl.o $(OD)error.o \
-	$(OD)unixtime.o $(OD)unixsys.o $(OD)unixsave.o \
-	$(OD)funlink.o  $(OD)$(PLT) \
-	$(OD)fat_string.o ${ODIR}/run_process.o \
-	$(OD)nfunlink.o $(OD)usig.o $(OD)usig2.o $(OD)utils.o \
-	$(OD)makefun.o $(OD)sockets.o $(OD)gmp_wrappers.o $(OD)clxsocket.o  \
-	$(OD)init_pari.o $(OD)nsocket.o $(NEW_INIT) $(MPFILES) $(SFASL) $(EXTRAS) \
-	$(RL_OBJS)
-
-INI_FILES=$(patsubst %.o,%.ini,${OBJS})
-
-OBJECTS:=$(OBJS) $(LIBFILES) new_init.o  $(GCLIB) $(LAST_FILE)  $(FIRST_FILE) 
-
-all:  $(OBJECTS) #plt.o
-
-go:
-	$(MAKE) "CFLAGS=${CFLAGS} -pg"
-
 $(DPP):	../bin/dpp.c
 	${CC} ${DEFS} -o $@ $<
 
-
-new-init: 
-	$(MAKE) new_init.c decls1
-
 new_init.c: ${INI_FILES}
 	echo '#include "make-init.h"' > new_init.c
 	echo 'void NewInit(void){' >> new_init.c
@@ -124,133 +78,23 @@ new_init.o: new_init.c $(DECL)
 	$(CC) -c $(NIFLAGS) $(DEFS) $< -o $@
 endif
 
-decls1: $(INI_FILES)
-	echo '#include "make-decl.h"' > foo.c
-	cat ${INI_FILES} >> foo.c
-	${CC} -E -I${HDIR} foo.c | sed -n -e '/#/d' -e '/DO_/d' -e '/[a-zA-Z;]/p' > tmpx
-	../xbin/move-if-changed mv tmpx ${HDIR}/new_decl.h
-
 $(DECL): $(HDIR)/make-decl.h $(INI_FILES)
 	echo '#include "make-decl.h"' > foo.c
-	cat ${INI_FILES} >> foo.c
-	${CC} -E -I${HDIR} foo.c | sed -n -e '/#/d' -e '/DO_/d' -e '/[a-zA-Z;]/p' > $@
-	rm foo.c
+	cat ${INI_FILES} |sed 's,DEFBFUN,DEFUN,g' >> foo.c
+	${CC} -E -I${HDIR} foo.c | sed -n -e '/#/d' -e '/DO_/d' -e '/[a-zA-Z;]/p' > tmpini
+	../xbin/move-if-changed mv tmpini $@
+	rm -f foo.c tmpini
 
 grab_defs: grab_defs.c
 	${CC} $(OFLAGS) -o grab_defs  grab_defs.c
 
-#
-# This section added to ensure that ld generates symbol values for undefined
-# symbols in external dynamic libraries with binutils >=2.14.90.0.8
-# CM 20040227
-#
-
-plttest.o: plttest.c 
-	$(CC) -c $(CFLAGS) $(DEFS) $*.c $(AUX_INFO) 
-
-plt.h: plttest.o
-	nm $< | $(AWK) '/ U / {if (NF!=2) next;a=$$2;if (k) sub("^_","",a);\
-                            print a}' \
-			k=$(LEADING_UNDERSCORE) |\
-			sort | \
-			grep -v 'restFP' | grep -v 'saveFP' | \
-			grep -v '[^ \t_]_' |\
-			sed 's,\([a-z]\)\$$.*,\1,g' |\
-			$(AWK) '{A[++k]=$$0} END {for (i=1;i<=k;i++) \
-				 printf("MY_PLT(%s)%s\n",A[i],i==k ? "" : ",");}' >$@
-
-plt.o: plt.c plt.h
-	$(CC) -c $(CFLAGS) $(DEFS) $*.c $(AUX_INFO) 
-
-
-ALIB=${LIBFILES} #user_init.o ${EXTRA_LIB}
-
 $(GCLIB): ${ALIB} 
 	rm -f gcllib.a
 	$(AR) gcllib.a ${ALIB}
 	${RANLIB} gcllib.a
-clean:
-	rm -f $(OBJS) ${ALIB} new_init.o  $(LAST_FILE) $(FIRST_FILE) *.a grab_defs$(EXE) *.ini tmpx foo.c cmpinclude.h new_init.c $(DECL) def undef udef.h void.h plt.h plttest.o grab_defs
-
-fsavres.o: /lib/libc.a
-	ar xv /lib/libc.a fsavres.o
-
-sockets.o: sockets.c
-	${CC} ${CFLAGS} $(DEFS) ${X11_INCLUDE} -c  sockets.c
-
-clxsocket.o:
-	${CC} ${CFLAGS} $(DEFS) ${X11_INCLUDE} -c  clxsocket.c
-littleXwin.o:
-	${CC} ${CFLAGS} $(DEFS) ${X11_INCLUDE} -c  littleXwin.o
-
-character.o: $(HFILES)
-file.o:	$(HFILES) file.d
-hash.o: $(HFILES) ${MP}
-list.o:	$(HFILES)
-package.o: $(HFILES)
-pathname.o: $(HFILES)
-print.o: $(HFILES) ${MP}
-read.o: $(HFILES) ${MP}
-sequence.o: $(HFILES)
-string.o: $(HFILES)
-symbol.o: $(HFILES)
-
-utils.o: $(HFILES)
-alloc.o: $(HFILES)
-array.o: $(HFILES)
-assignment.o: $(HFILES)
-backq.o: $(HFILES)
-bds.o: $(HFILES)
-big.o: $(HFILES) ${MP} gmp_big.c pari_big.c
-bind.o: $(HFILES) 
-bitop.o: $(HFILES)
-block.o: $(HFILES)
-catch.o: $(HFILES)
-cfun.o: $(HFILES)
-cmpaux.o: $(HFILES) ${MP}
-conditional.o: $(HFILES)
-earith.o: $(HFILES)
-error.o: $(HFILES)
-eval.o: $(HFILES)
-format.o: $(HFILES)
-frame.o: $(HFILES)
-gbc.o: $(HFILES) ${MP}
-interrupt.o: $(HFILES)
-iteration.o: $(HFILES)
-let.o: $(HFILES)
-lex.o: $(HFILES)
-macros.o: $(HFILES)
-main.o: $(HFILES)
-mapfun.o: $(HFILES)
-multival.o: $(HFILES)
-mpi.o: $(MP)
-num_arith.o: $(HFILES) $(HDIR)/num_include.h ${MP}
-num_co.o: $(HFILES) $(HDIR)/num_include.h ${MP}
-num_comp.o: $(HFILES) $(HDIR)/num_include.h ${MP}
-num_log.o: $(HFILES) $(HDIR)/num_include.h ${MP}
-num_pred.o: $(HFILES) $(HDIR)/num_include.h ${MP}
-num_rand.o: $(HFILES) $(HDIR)/num_include.h ${MP}
-num_sfun.o: $(HFILES) $(HDIR)/num_include.h ${MP}
-number.o: $(HFILES) $(HDIR)/num_include.h ${MP}
-predicate.o: $(HFILES)
-prog.o: $(HFILES)
-reference.o: $(HFILES)
-structure.o: $(HFILES)
-toplevel.o: $(HFILES)
-typespec.o: $(HFILES) ${MP}
-unixfasl.o: $(HFILES)
-unixfsys.o: $(HFILES)
-unixint.o: $(HFILES)
-unixsave.o: $(HFILES) $(UNIX_SAVE_DEP)
-unixsys.o: $(HFILES)
-unixtime.o: $(HFILES) unixtime.c
-funlink.o: $(HFILES)
-fat_string.o: $(HFILES)
-fasdump.o: $(HFILES)
-bitblit2.o: $(HFILES)
-regexpr.o:$(HFILES) regexp.c
-sockets.o:$(HFILES) ../gcl-tk/comm.c ../gcl-tk/sheader.h
-nsocket.ini:nsocket.c $(HFILES)
-mingwin.o:mingwin.c $(HFILES)
 
+clean:
+	rm -f $(OBJS) ${ALIB} new_init.o  $(LAST_FILE) $(FIRST_FILE) *.a grab_defs$(EXE) *.ini tmpx foo.c
+	rm -f  cmpinclude.h new_init.c $(DECL) def undef udef.h void.h TAGS boot.h
 
+.INTERMEDIATE: $(patsubst %.d,%.c,$(shell ls -1 *.d))
--- gcl-2.6.10.orig/o/nsocket.c
+++ gcl-2.6.10/o/nsocket.c
@@ -330,6 +330,15 @@ doConnect(host,port)
 
 #define SOCKET_FD(strm) ((strm)->sm.sm_fp ? fileno((strm)->sm.sm_fp) : -1)
 
+static void
+check_socket(object x)
+{
+
+ if (type_of(x) != t_stream || x->sm.sm_mode != smm_socket) 
+   FEwrong_type_argument(sSsocket,x);
+  
+}
+
 DEFUN_NEW("GETPEERNAME",object,fSgetpeername,SI,1,1,NONE,OO,OO,OO,OO,(object sock),
  "Return a list of three elements: the address, the hostname and the port for the other end of the socket.  If hostname is not available it will be equal to the address.  Invalid on server sockets. Return NIL on failure.")
 {
--- gcl-2.6.10.orig/unixport/makefile
+++ gcl-2.6.10/unixport/makefile
@@ -16,9 +16,15 @@ CLCSDIR = ../clcs
 PCLDIR  = ../pcl
 PORTDIR = $(shell pwd)
 
-LD_FLAGS=$(LDFLAGS) $(FIRST_FILE)
-LD_LIBS_PRE=$(addprefix -u ,$(PATCHED_SYMBOLS))
-LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp $(LAST_FILE)
+LD_FLAGS:=$(LDFLAGS)
+ifneq ($(FIRST_FILE),)
+LD_FLAGS:=$(LD_FLAGS) $(ODIR)/$(FIRST_FILE)
+endif
+LD_LIBS_PRE:=$(addprefix -u ,$(PATCHED_SYMBOLS))
+LD_LIBS_POST:=$(LIBS) $(LIBC) -lgclp
+ifneq ($(LAST_FILE),)
+LD_LIBS_POST:=$(LD_LIBS_POST) $(ODIR)/$(LAST_FILE)
+endif
 
 ifeq ($(ARRS),)
 ARRS:=ar rs
@@ -47,8 +53,8 @@ bfdfiles: $(shell ! [ -d ../binutils ] |
 	touch $@
 
 OOBJS:=$(shell j=$$(ar t $(ODIR)/gcllib.a) ; for i in $$(find $(ODIR) -name "*.o") ; do if ! echo $$j |grep $$(basename $$i) >/dev/null 2>&1 ; then echo $$i ; fi ; done)
-OOBJS:=$(filter-out $(FIRST_FILE),$(OOBJS))
-OOBJS:=$(filter-out $(LAST_FILE),$(OOBJS))
+OOBJS:=$(filter-out $(ODIR)/$(FIRST_FILE),$(OOBJS))
+OOBJS:=$(filter-out $(ODIR)/$(LAST_FILE),$(OOBJS))
 OOBJS:=$(filter-out $(ODIR)/plttest.o,$(OOBJS))
 OBJS:=$(OOBJS) $(shell find $(LSPDIR) -name "*.o")
 OBJS:=$(OBJS) $(shell find $(XDIR) -name "*.o")
