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-18) unstable; urgency=high
 .
   * 2.6.11pre test 17
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/linux.h
+++ gcl-2.6.10/h/linux.h
@@ -158,11 +158,16 @@ do { int c = 0; \
 #if defined(__x86_64__) || defined(__i386__)
 
 /* #define FPE_CODE(i_) make_fixnum((fixnum)SF(i_)->si_code) */
-#define FPE_CODE(i_,v_) make_fixnum(FFN(fSfpe_code)(UC(v_)->uc_mcontext.fpregs->swd,UC(v_)->uc_mcontext.fpregs->mxcsr))
+#ifdef __i386__
+#define FPE_CODE(i_,v_) make_fixnum(FFN(fSfpe_code)(UC(v_)->uc_mcontext.fpregs->sw,((struct _fpstate *)UC(v_)->uc_mcontext.fpregs)->mxcsr))
+#define FPE_ADDR(i_,v_) make_fixnum((UC(v_)->uc_mcontext.fpregs->tag!=-1) ? UC(v_)->uc_mcontext.fpregs->ipoff : (fixnum)SF(i_)->si_addr)
+#else
+#define FPE_CODE(i_,v_) make_fixnum(FFN(fSfpe_code)(UC(v_)->uc_mcontext.fpregs->swd,((struct _fpstate *)UC(v_)->uc_mcontext.fpregs)->mxcsr))
 #define FPE_ADDR(i_,v_) make_fixnum(UC(v_)->uc_mcontext.fpregs->fop ? UC(v_)->uc_mcontext.fpregs->rip : (fixnum)SF(i_)->si_addr)
+#endif
 #define FPE_CTXT(v_) list(3,make_fixnum((fixnum)&UC(v_)->uc_mcontext.gregs),	\
 			    make_fixnum((fixnum)&UC(v_)->uc_mcontext.fpregs->_st), \
-			    make_fixnum((fixnum)&UC(v_)->uc_mcontext.fpregs->_xmm))
+			    make_fixnum((fixnum)&((struct _fpstate *)UC(v_)->uc_mcontext.fpregs)->_xmm))
 
 #define MC(b_) v.uc_mcontext.b_
 #define REG_LIST(a_) MMcons(make_fixnum(sizeof(a_)),make_fixnum(sizeof(*a_)))
--- gcl-2.6.10.orig/info/makefile
+++ gcl-2.6.10/info/makefile
@@ -79,7 +79,7 @@ gcl/index.html: gcl.texi
 	touch $@
 	-$(HTML_CMD) gcl.texi
 
-install: $(GCL_PDF) $(GCL_HTML)
+install: #$(GCL_PDF) $(GCL_HTML)
 	mkdir -p $(DESTDIR)${INFO_DIR}
 	[ -f $(DESTDIR)$(INFO_DIR)dir ] || touch $(DESTDIR)$(INFO_DIR)dir
 	grep gcl-si $(DESTDIR)${INFO_DIR}dir >/dev/null 2>&1 || \
--- gcl-2.6.10.orig/o/main.c
+++ gcl-2.6.10/o/main.c
@@ -1018,13 +1018,13 @@ my_fprintf(void *v,const char *f,...) {
 
 static int
 my_read(bfd_vma memaddr, bfd_byte *myaddr, unsigned int length, struct disassemble_info *dinfo) {
-  memcpy(myaddr,(void *)memaddr,length);
+  memcpy(myaddr,(void *)(long)memaddr,length);
   return 0;
 }
 
 static void
 my_pa(bfd_vma addr,struct disassemble_info *dinfo) {
-  dinfo->fprintf_func(dinfo->stream,"%p",(void *)addr);
+  dinfo->fprintf_func(dinfo->stream,"%p",(void *)(long)addr);
 }
 
 #endif
@@ -1034,16 +1034,17 @@ DEFUN_NEW("DISASSEMBLE-INSTRUCTION",obje
 #ifdef HAVE_PRINT_INSN_I386
 
   static disassemble_info i;
-  /* static int k; */
   int j;
 
-  /* if (!k) {init_disassemble_info(&i,NULL,my_fprintf);k=1;} */
   memset(&i,0,sizeof(i));
+#ifdef __i386__
+  i.disassembler_options="i386";
+#endif
   i.fprintf_func=my_fprintf;
   i.read_memory_func=my_read;
   i.print_address_func=my_pa;
   bp=b;
-  
+
   j=PRINT_INSN(addr,&i);
   my_fprintf(NULL," ;");
   return MMcons(make_simple_string(b),make_fixnum(j));
