Please unblock syslinux 3.31-2
Hi,
I included the other *.c32 modules and added a patch to allow syslinux
autodetecting while booting if the system has a 32bit or a 64bit CPU,
and hence choosing the configured kernel for it.
Please unblock syslinux, debdiff is attached.
--
Address: Daniel Baumann, Burgunderstrasse 3, CH-4562 Biberist
Email: daniel.baumann@panthera-systems.net
Internet: http://people.panthera-systems.net/~daniel-baumann/
diff -u syslinux-3.31/debian/patches/00list syslinux-3.31/debian/patches/00list
--- syslinux-3.31/debian/patches/00list
+++ syslinux-3.31/debian/patches/00list
@@ -1,0 +2 @@
+02-64bit-autodetection
diff -u syslinux-3.31/debian/rules syslinux-3.31/debian/rules
--- syslinux-3.31/debian/rules
+++ syslinux-3.31/debian/rules
@@ -63,7 +63,7 @@
install -d -m 0755 debian/syslinux/usr/lib/syslinux
install -m 0644 build/* debian/syslinux/usr/lib/syslinux
- install -m 0644 copybs.com isolinux.bin isolinux-debug.bin ldlinux.bss ldlinux.sys pxelinux.0 com32/modules/menu.c32 dos/syslinux.com mbr.bin memdisk/memdisk win32/syslinux.exe debian/syslinux/usr/lib/syslinux
+ install -m 0644 copybs.com isolinux.bin isolinux-debug.bin ldlinux.bss ldlinux.sys pxelinux.0 com32/modules/*.c32 dos/syslinux.com mbr.bin memdisk/memdisk win32/syslinux.exe debian/syslinux/usr/lib/syslinux
binary-indep: build install
diff -u syslinux-3.31/debian/changelog syslinux-3.31/debian/changelog
--- syslinux-3.31/debian/changelog
+++ syslinux-3.31/debian/changelog
@@ -1,3 +1,11 @@
+syslinux (3.31-2) unstable; urgency=medium
+
+ * Including all *.c32 modules (Closes: #391152).
+ * Added patch from Byron Stanoszek <gandalf@winds.org> to autodetect 64bit
+ CPUs (Closes: #408138).
+
+ -- Daniel Baumann <daniel@debian.org> Sun, 4 Feb 2007 16:52:00 +0100
+
syslinux (3.31-1) unstable; urgency=low
* New upstream release.
only in patch2:
unchanged:
--- syslinux-3.31.orig/debian/patches/02-64bit-autodetection.dpatch
+++ syslinux-3.31/debian/patches/02-64bit-autodetection.dpatch
@@ -0,0 +1,142 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 01-64bit-autodetection.dpatch by Byron Stanoszek <gandalf@winds.org>
+##
+## DP: Allows auto-detection of 64bit CPUs (Closes: #408138), see
+## DP: http://syslinux.zytor.com/archives/2007-January/007832.html
+
+@DPATCH@
+
+diff -Naur syslinux-3.31.orig/cpuinit.inc syslinux-3.31/cpuinit.inc
+--- syslinux-3.31.orig/cpuinit.inc 2006-09-26 04:52:22.000000000 +0000
++++ syslinux-3.31/cpuinit.inc 2007-02-04 16:02:26.000000000 +0000
+@@ -48,12 +48,10 @@
+ rep movsd
+
+ ;
+-; Check if we're 386 (as opposed to 486+); if so we need to blank out
+-; the WBINVD instruction
++; Determine if we're running on a 64-bit CPU
+ ;
+-; We check for 486 by setting EFLAGS.AC
++; First, check if we're 386. If so, we need to blank out the WBINVD instruction
+ ;
+-%if DO_WBINVD
+ pushfd ; Save the good flags
+ pushfd
+ pop eax
+@@ -69,6 +67,47 @@
+ ;
+ ; 386 - Looks like we better blot out the WBINVD instruction
+ ;
++%if DO_WBINVD
+ mov byte [try_wbinvd],0c3h ; Near RET
+-is_486:
+ %endif ; DO_WBINVD
++ jmp is_32bit
++is_486:
++;
++; Check if this CPU supports the CPUID command
++;
++ pushfd ; Save the flags again
++ pushfd
++ pop eax
++ mov ebx,eax
++ xor eax,(1 << 21) ; CPUID bit
++ push eax
++ popfd
++ pushfd
++ pop eax
++ popfd ; Restore the original flags
++ xor eax,ebx
++ jz is_32bit
++;
++; Now check for the 64-bit flag in the CPU features byte ($0000_0001, edx)
++; This is bit 30 for Intel CPUs, and bit 29 for AMD CPUs
++;
++ mov eax, 00000000h ; Find last Intel cpuid #
++ cpuid
++ cmp eax, 00000000h
++ je test_amd
++ mov eax, 00000001h ; Read Intel CPU flags
++ cpuid
++ bt edx, 30 ; 64-bit if bit 30 is set
++ jc is_64bit
++
++test_amd: mov eax, 80000000h ; Find last AMD cpuid #
++ cpuid
++ cmp eax, 80000000h
++ jbe is_32bit
++ mov eax, 80000001h ; Read AMD CPU flags
++ cpuid
++ bt edx, 29 ; 64-bit if bit 29 is set
++ jnc is_32bit
++
++is_64bit: mov byte [Is64Bit],1 ; Flag that we're 64-bit
++is_32bit:
+diff -Naur syslinux-3.31.orig/keywords syslinux-3.31/keywords
+--- syslinux-3.31.orig/keywords 2006-09-26 04:52:22.000000000 +0000
++++ syslinux-3.31/keywords 2007-02-04 16:02:26.000000000 +0000
+@@ -1,6 +1,7 @@
+ menu
+ append
+ default
++default64
+ display
+ font
+ implicit
+diff -Naur syslinux-3.31.orig/keywords.inc syslinux-3.31/keywords.inc
+--- syslinux-3.31.orig/keywords.inc 2006-09-26 04:52:22.000000000 +0000
++++ syslinux-3.31/keywords.inc 2007-02-04 16:02:26.000000000 +0000
+@@ -46,6 +46,7 @@
+ keyword menu, pc_comment
+ keyword append, pc_append
+ keyword default, pc_default
++ keyword default64, pc_default64
+ keyword display, pc_filecmd, get_msg_file
+ keyword font, pc_filecmd, loadfont
+ keyword implicit, pc_setint16, AllowImplicit
+diff -Naur syslinux-3.31.orig/kwdhash.gen syslinux-3.31/kwdhash.gen
+--- syslinux-3.31.orig/kwdhash.gen 2006-09-26 04:52:27.000000000 +0000
++++ syslinux-3.31/kwdhash.gen 2007-02-04 16:02:26.000000000 +0000
+@@ -1,6 +1,7 @@
+ hash_menu equ 0x003719b5
+ hash_append equ 0xc53999a4
+ hash_default equ 0xcc5159ed
++hash_default64 equ 0x4567b1c5
+ hash_display equ 0xd509bc40
+ hash_font equ 0x0032b1b4
+ hash_implicit equ 0xa6f50207
+diff -Naur syslinux-3.31.orig/parseconfig.inc syslinux-3.31/parseconfig.inc
+--- syslinux-3.31.orig/parseconfig.inc 2006-09-26 04:52:22.000000000 +0000
++++ syslinux-3.31/parseconfig.inc 2007-02-04 16:02:26.000000000 +0000
+@@ -20,7 +20,20 @@
+ ;
+ ; "default" command
+ ;
+-pc_default: mov di,default_cmd
++pc_default: cmp byte [HasDefault64],0 ; Check if we accepted 'default64'
++ ja pc_getline ; If so, do nothing
++ mov di,default_cmd
++ call getline
++ mov byte [di-1],0 ; null-terminate
++ ret
++
++;
++; "default64" command
++;
++pc_default64: cmp byte [Is64Bit],0 ; Make sure cpu is 64-bit
++ je pc_getline
++ mov byte [HasDefault64],1 ; Note that we saw a default64
++ mov di,default_cmd
+ call getline
+ mov byte [di-1],0 ; null-terminate
+ ret
+@@ -389,6 +402,8 @@
+ SerialPort dw 0 ; Serial port base (or 0 for no serial port)
+ VKernelBytes dw 0 ; Number of bytes used by vkernels
+ VKernel db 0 ; Have we seen any "label" statements?
++Is64Bit db 0 ; Is this CPU 64-bit?
++HasDefault64 db 0 ; We've seen a 'default64' statement
+
+ section .latebss
+ alignb 4 ; For the good of REP MOVSD
Reply to: