Package: syslinux
Version: 2.11-0.1
Severity: important
Tags: patch

Please fix 'syslinux' to support the amd64 architecture.

When trying to build 'syslinux' on amd64, I get the following error:

gcc -m32 -W -Wall -march=i386 -Os -fomit-frame-pointer -I../com32/include -c -o 
chain.o chain.c
chain.c:45: warning: conflicting types for built-in function 'isspace'
ld -m elf_i386 -Ttext 0x101000 -e _start -o chain.elf c32entry.o chain.o 
libcom32.a
chain.o(.text+0x471): In function `__start':
: undefined reference to `memcpy'
make[2]: *** [chain.elf] Error 1
make[2]: Leaving directory `/syslinux-2.11/sample'

With the attached patch 'syslinux' can be compiled on amd64.

The patch also includes a fix for the following error, which occurs when
compiling syslinux with gcc-4.0:

gcc -m32 -I../com32/include -g -W -Wall -Os -fomit-frame-pointer -march=i386 
-falign-functions=0 -falign-jumps=0 -falign-loops=0 -DVERSION='"2.11"' 
-DDATE='"(Debian, 2005-04-24)"' -S -o unzip.s unzip.c
In file included from unzip.c:103:
inflate.c: In function 'huft_build':
inflate.c:392: warning: signed and unsigned type in conditional expression
inflate.c: At top level:
inflate.c:1001: error: static declaration of 'crc_32_tab' follows non-static 
declaration
unzip.c:73: error: previous declaration of 'crc_32_tab' was here


Regards
Andreas Jochens

diff -urN ../tmp-orig/syslinux-2.11/debian/control ./debian/control
--- ../tmp-orig/syslinux-2.11/debian/control    2005-04-24 11:57:20.436176886 
+0000
+++ ./debian/control    2005-04-24 11:57:00.794967785 +0000
@@ -6,7 +6,7 @@
 Build-Depends: nasm (>= 0.98.32), mtools, netpbm, docbook-to-man, mingw32
 
 Package: syslinux
-Architecture: i386
+Architecture: amd64 i386
 Depends: ${shlibs:Depends}
 Recommends: mtools
 Description: Bootloader for Linux/i386 using MS-DOS floppies
diff -urN ../tmp-orig/syslinux-2.11/memdisk/Makefile ./memdisk/Makefile
--- ../tmp-orig/syslinux-2.11/memdisk/Makefile  2004-01-24 21:37:22.000000000 
+0000
+++ ./memdisk/Makefile  2005-04-24 11:55:47.371139174 +0000
@@ -39,7 +39,7 @@
 SSRC     = init.S16
 NASMSRC  = memdisk.asm init32.asm
 
-all: memdisk e820test
+all: memdisk
 
 # tidy, clean removes everything except the final binary
 tidy:
diff -urN ../tmp-orig/syslinux-2.11/memdisk/setup.c ./memdisk/setup.c
--- ../tmp-orig/syslinux-2.11/memdisk/setup.c   2004-04-27 06:48:59.000000000 
+0000
+++ ./memdisk/setup.c   2005-04-24 11:56:30.851747059 +0000
@@ -400,7 +400,8 @@
 
   /* Do we have a DOSEMU header? */
   memcpy(&dosemu, (char *)where+hd_geometry.offset, sizeof dosemu);
-  if ( !__builtin_memcmp("DOSEMU", dosemu.magic, 7) ) {
+  const char *d = dosemu.magic;
+  if ( *d++=='D' && *d++=='O' && *d++=='S' && *d++=='E' && *d++=='M' && 
*d++=='U' && !*d ) {
     /* Always a hard disk unless overruled by command-line options */
     hd_geometry.driveno = 0x80;
     hd_geometry.type = 0;
diff -urN ../tmp-orig/syslinux-2.11/sample/chain.c ./sample/chain.c
--- ../tmp-orig/syslinux-2.11/sample/chain.c    2004-05-29 22:14:17.000000000 
+0000
+++ ./sample/chain.c    2005-04-24 11:56:30.851747059 +0000
@@ -347,7 +347,8 @@
 
     /* 0x7BE is the canonical place for the first partition entry. */
     inreg.esi.w[0] = 0x7be;
-    memcpy((char *)0x7be, partinfo, sizeof(*partinfo));
+    char *d = (char*)0x7be, *s = (char*)partinfo; 
+    int n = sizeof(*partinfo); for (; n; n--) *d++ = *s++;
   }
   inreg.eax.w[0] = 0x000d;     /* Clean up and chain boot */
   inreg.edx.w[0] = 0;          /* Should be 3 for "keeppxe" */
diff -urN ../tmp-orig/syslinux-2.11/memdisk/inflate.c ./memdisk/inflate.c
--- ../tmp-orig/syslinux-2.11/memdisk/inflate.c 2004-04-27 06:48:59.000000000 
+0000
+++ ./memdisk/inflate.c 2005-04-24 11:56:30.850747252 +0000
@@ -998,7 +998,7 @@
  *
  **********************************************************************/
 
-static ulg crc_32_tab[256];
+ulg crc_32_tab[256];
 static ulg crc;                /* initialized in makecrc() so it'll reside in 
bss */
 #define CRC_VALUE (crc ^ 0xffffffffL)
 



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to