[syslinux:elflink] core: switch LZO decompressor to "fast safe" version

syslinux-bot for H. Peter Anvin hpa at linux.intel.com
Thu Jan 17 16:54:02 PST 2013


Commit-ID:  5361540973da90c1dbde3b4c6c0dab46f997491e
Gitweb:     http://www.syslinux.org/commit/5361540973da90c1dbde3b4c6c0dab46f997491e
Author:     H. Peter Anvin <hpa at linux.intel.com>
AuthorDate: Thu, 17 Jan 2013 16:16:31 -0800
Committer:  H. Peter Anvin <hpa at linux.intel.com>
CommitDate: Thu, 17 Jan 2013 16:16:31 -0800

core: switch LZO decompressor to "fast safe" version

Switch LZO decompressor to the "fast safe" version (and bump LZO
source to version 2.06).  This allows us to use that decompressor for
module compression later without carrying another decompressor.

Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>

---
 core/init.inc                       |  6 +++---
 core/lzo/enter.ash                  |  3 +++
 core/lzo/leave.ash                  |  3 +++
 core/lzo/lzo1c_d.ash                |  3 +++
 core/lzo/lzo1f_d.ash                |  3 +++
 core/lzo/lzo1x_d.ash                |  3 +++
 core/lzo/{lzo1x_f1.S => lzo1x_f2.S} | 15 +++++++++++----
 core/lzo/lzo_asm.h                  | 23 +++++++++++++----------
 8 files changed, 42 insertions(+), 17 deletions(-)

diff --git a/core/init.inc b/core/init.inc
index 5cb8e49..ae0e631 100644
--- a/core/init.inc
+++ b/core/init.inc
@@ -45,17 +45,17 @@ common_init:
 ;
 ; The code to decompress the PM code and initialize other segments.
 ;
-		extern _lzo1x_decompress_asm_fast
+		extern _lzo1x_decompress_asm_fast_safe
 
 		section .textnr
 		bits 32
 pm_decompress:
-		push 0				; Space for decompressed size
+		push __pm_code_len + 16		; Space for decompressed size
 		push esp			; Pointer to previous word
 		push __pm_code_start		; Target address
 		push dword [lzo_data_size]	; Compressed size
 		push dword __pm_code_lma
-		call _lzo1x_decompress_asm_fast
+		call _lzo1x_decompress_asm_fast_safe
 		add esp,16
 		pop RM_EAX			; Decompressed size
 
diff --git a/core/lzo/enter.ash b/core/lzo/enter.ash
index 49c455d..c2aa081 100644
--- a/core/lzo/enter.ash
+++ b/core/lzo/enter.ash
@@ -2,6 +2,9 @@
 
    This file is part of the LZO real-time data compression library.
 
+   Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
diff --git a/core/lzo/leave.ash b/core/lzo/leave.ash
index 9550b46..0fdb729 100644
--- a/core/lzo/leave.ash
+++ b/core/lzo/leave.ash
@@ -2,6 +2,9 @@
 
    This file is part of the LZO real-time data compression library.
 
+   Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
diff --git a/core/lzo/lzo1c_d.ash b/core/lzo/lzo1c_d.ash
index 9969c86..56622ab 100644
--- a/core/lzo/lzo1c_d.ash
+++ b/core/lzo/lzo1c_d.ash
@@ -2,6 +2,9 @@
 
    This file is part of the LZO real-time data compression library.
 
+   Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
diff --git a/core/lzo/lzo1f_d.ash b/core/lzo/lzo1f_d.ash
index aa9279e..97a103c 100644
--- a/core/lzo/lzo1f_d.ash
+++ b/core/lzo/lzo1f_d.ash
@@ -2,6 +2,9 @@
 
    This file is part of the LZO real-time data compression library.
 
+   Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
diff --git a/core/lzo/lzo1x_d.ash b/core/lzo/lzo1x_d.ash
index aa13835..782b47f 100644
--- a/core/lzo/lzo1x_d.ash
+++ b/core/lzo/lzo1x_d.ash
@@ -2,6 +2,9 @@
 
    This file is part of the LZO real-time data compression library.
 
+   Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
diff --git a/core/lzo/lzo1x_f1.S b/core/lzo/lzo1x_f2.S
similarity index 80%
rename from core/lzo/lzo1x_f1.S
rename to core/lzo/lzo1x_f2.S
index 8360e34..f9ad6b3 100644
--- a/core/lzo/lzo1x_f1.S
+++ b/core/lzo/lzo1x_f2.S
@@ -1,7 +1,10 @@
-/* lzo1x_f1.S -- fast LZO1X decompression in assembler (i386 + gcc)
+/* lzo1x_f2.S -- fast LZO1X decompression in assembler (i386 + gcc)
 
    This file is part of the LZO real-time data compression library.
 
+   Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
@@ -44,17 +47,21 @@
 
 #define LZO_FAST
 
+#define LZO_TEST_DECOMPRESS_OVERRUN_INPUT
+#define LZO_TEST_DECOMPRESS_OVERRUN_OUTPUT
+#define LZO_TEST_DECOMPRESS_OVERRUN_LOOKBEHIND
+
 #include "lzo_asm.h"
 
-    .section ".textnr","ax"
+    .text
 
-    LZO_PUBLIC(lzo1x_decompress_asm_fast)
+    LZO_PUBLIC(lzo1x_decompress_asm_fast_safe)
 
 #include "enter.ash"
 #include "lzo1x_d.ash"
 #include "leave.ash"
 
-    LZO_PUBLIC_END(lzo1x_decompress_asm_fast)
+    LZO_PUBLIC_END(lzo1x_decompress_asm_fast_safe)
 
 
 /*
diff --git a/core/lzo/lzo_asm.h b/core/lzo/lzo_asm.h
index 55fdf6d..1188dd6 100644
--- a/core/lzo/lzo_asm.h
+++ b/core/lzo/lzo_asm.h
@@ -2,6 +2,9 @@
 
    This file is part of the LZO real-time data compression library.
 
+   Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
+   Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
    Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
@@ -52,17 +55,17 @@
 #else
    /* manual configuration - see defaults below */
 #  if defined(__ELF__)
-#    define MFX_ASM_HAVE_TYPE
-#    define MFX_ASM_NAME_NO_UNDERSCORES
+#    define MFX_ASM_HAVE_TYPE 1
+#    define MFX_ASM_NAME_NO_UNDERSCORES 1
 #  elif defined(__linux__)              /* Linux a.out */
-#    define MFX_ASM_ALIGN_PTWO
+#    define MFX_ASM_ALIGN_PTWO 1
 #  elif defined(__DJGPP__)
-#    define MFX_ASM_ALIGN_PTWO
+#    define MFX_ASM_ALIGN_PTWO 1
 #  elif defined(__GO32__)               /* djgpp v1 */
-#    define MFX_ASM_CANNOT_USE_EBP
+#    define MFX_ASM_CANNOT_USE_EBP 1
 #  elif defined(__EMX__)
-#    define MFX_ASM_ALIGN_PTWO
-#    define MFX_ASM_CANNOT_USE_EBP
+#    define MFX_ASM_ALIGN_PTWO 1
+#    define MFX_ASM_CANNOT_USE_EBP 1
 #  endif
 #endif
 #endif
@@ -123,7 +126,7 @@
 ************************************************************************/
 
 #if !defined(MFX_ASM_ALIGN_BYTES) && !defined(MFX_ASM_ALIGN_PTWO)
-#  define MFX_ASM_ALIGN_BYTES
+#  define MFX_ASM_ALIGN_BYTES 1
 #endif
 
 #if !defined(LZO_ASM_ALIGN)
@@ -145,10 +148,10 @@
 
 #if !defined(MFX_ASM_CANNOT_USE_EBP)
 #  if 1 && !defined(N_3_EBP) && !defined(N_255_EBP)
-#    define N_3_EBP
+#    define N_3_EBP 1
 #  endif
 #  if 0 && !defined(N_3_EBP) && !defined(N_255_EBP)
-#    define N_255_EBP
+#    define N_255_EBP 1
 #  endif
 #endif
 


More information about the Syslinux-commits mailing list