# HG changeset patch # User Pascal Bellard # Date 1504875762 -7200 # Node ID b991e1dba5142384a842d1085d2cacaf9a5bd3bf # Parent 12ba294405e5d1bea7a68cf56f8d6c4e80491f5b syslinux: fixes from syslinux git diff -r 12ba294405e5 -r b991e1dba514 syslinux/receipt --- a/syslinux/receipt Fri Sep 08 11:06:48 2017 +0200 +++ b/syslinux/receipt Fri Sep 08 15:02:42 2017 +0200 @@ -21,11 +21,9 @@ compile_rules() { rm -f $src/core/isolinux.bin - patch -p 0 < $stuff/extra/loadhigh.u - patch -p 0 < $stuff/extra/iso9660.u - patch -p 0 < $stuff/extra/readconfig.u - patch -p 0 < $stuff/extra/keytab-lilo.u - patch -p 0 < $stuff/extra/lzop-1.03-gcc6.u + for i in loadhigh iso9660 readconfig keytab-lilo lzop-1.03-gcc6 fixes-4.07 ; do + patch -p 0 < $stuff/extra/$i.u + done cp $stuff/tools/isohybrid.sh . cp $stuff/extra/md5sum.c com32/modules grep -q md5sum.c32 com32/modules/Makefile || diff -r 12ba294405e5 -r b991e1dba514 syslinux/stuff/extra/fixes-4.07.u --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/syslinux/stuff/extra/fixes-4.07.u Fri Sep 08 15:02:42 2017 +0200 @@ -0,0 +1,63 @@ +--- mbr/isohdpfx.S ++++ mbr/isohdpfx.S +@@ -167,20 +167,22 @@ + read_sector_cbios: movb $0x42, %ah ; jmp read_common */ + movl $0xeb42b4+((read_common-read_sector_cbios-4) << 24), \ + (read_sector_cbios) +- jmp 1f ++ jmp 2f + 1: ++ xor %cx, %cx /* Clear EBIOS flag. */ ++2: + popw %dx + pushw %cx /* EBIOS flag */ + + /* Get (C)HS geometry */ + movb $0x08, %ah + int $0x13 +- andw $0x3f, %cx /* Sector count */ + popw %bx /* EBIOS flag */ +- pushw %cx /* -16: Save sectors on the stack */ + movzbw %dh, %ax /* dh = max head */ + incw %ax /* From 0-based max to count */ +- pushw %ax /* -18: Save heads on the stack */ ++ pushw %ax /* -16: Save heads on the stack */ ++ andw $0x3f, %cx /* Sector count */ ++ pushw %cx /* -18: Save sectors on the stack */ + mulw %cx /* Heads*sectors -> sectors per cylinder */ + + pushw %bx /* -20: EBIOS flag */ +--- extlinux/main.c ++++ extlinux/main.c +@@ -1236,9 +1236,7 @@ + if (devfd < 0) + return 1; + +- if (opt.reset_adv) +- syslinux_reset_adv(syslinux_adv); +- else if (ext_read_adv(path, devfd, &filename) < 0) { ++ if (ext_read_adv(path, devfd, &filename) < 0) { + close(devfd); + return 1; + } +--- core/isolinux.asm ++++ core/isolinux.asm +@@ -426,14 +426,17 @@ + .ok: + xor bx,bx + push bp ++ push eax + call getlinsec ++ pop eax + pop cx +- mov dx,cx ++ movzx edx,cx + pop bp + pop bx + + shl cx,SECTOR_SHIFT - 4 + add bx,cx ++ add eax,edx + sub bp,dx + jnz .more +