I had been working on a fix for this prior to the link of the gentoo patches - not sure if they'd be a better match, but I've prepared a NMUish update that fixes this problem that can be found here if it helps:
http://www.variadic.org/debian/etch/liblzo1/ The patch to stick in debian/patches is attached as well.
Add a .note.GNU-stack section to the assembly files so that selinux can recognize this library and anything that links with it doesn't need an executable stack. Done in the same way as was done to fix gcc in this patch by Jakub Jelinek: http://svn.pardus.org.tr/pardus/2007/system/devel/gcc/files/65_all_gcc3.4-noteGNUstack.patch - Steven Brown <[EMAIL PROTECTED]> diff -ruN lzo-1.08/src/i386/src/lzo1c_s1.s ../liblzo1/lzo-1.08/src/i386/src/lzo1c_s1.s --- lzo-1.08/src/i386/src/lzo1c_s1.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1c_s1.s 2007-05-10 20:46:20.000000000 -0700 @@ -30,6 +30,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1c_decompress_asm) diff -ruN lzo-1.08/src/i386/src/lzo1c_s2.s ../liblzo1/lzo-1.08/src/i386/src/lzo1c_s2.s --- lzo-1.08/src/i386/src/lzo1c_s2.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1c_s2.s 2007-05-10 20:46:24.000000000 -0700 @@ -34,6 +34,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1c_decompress_asm_safe) diff -ruN lzo-1.08/src/i386/src/lzo1f_f1.s ../liblzo1/lzo-1.08/src/i386/src/lzo1f_f1.s --- lzo-1.08/src/i386/src/lzo1f_f1.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1f_f1.s 2007-05-10 20:46:30.000000000 -0700 @@ -30,6 +30,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1f_decompress_asm_fast) diff -ruN lzo-1.08/src/i386/src/lzo1f_f2.s ../liblzo1/lzo-1.08/src/i386/src/lzo1f_f2.s --- lzo-1.08/src/i386/src/lzo1f_f2.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1f_f2.s 2007-05-10 20:46:37.000000000 -0700 @@ -34,6 +34,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1f_decompress_asm_fast_safe) diff -ruN lzo-1.08/src/i386/src/lzo1x_f1.s ../liblzo1/lzo-1.08/src/i386/src/lzo1x_f1.s --- lzo-1.08/src/i386/src/lzo1x_f1.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1x_f1.s 2007-05-10 20:46:41.000000000 -0700 @@ -32,6 +32,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1x_decompress_asm_fast) diff -ruN lzo-1.08/src/i386/src/lzo1x_f2.s ../liblzo1/lzo-1.08/src/i386/src/lzo1x_f2.s --- lzo-1.08/src/i386/src/lzo1x_f2.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1x_f2.s 2007-05-10 20:46:46.000000000 -0700 @@ -36,6 +36,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1x_decompress_asm_fast_safe) diff -ruN lzo-1.08/src/i386/src/lzo1x_s1.s ../liblzo1/lzo-1.08/src/i386/src/lzo1x_s1.s --- lzo-1.08/src/i386/src/lzo1x_s1.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1x_s1.s 2007-05-10 20:46:48.000000000 -0700 @@ -30,6 +30,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1x_decompress_asm) diff -ruN lzo-1.08/src/i386/src/lzo1x_s2.s ../liblzo1/lzo-1.08/src/i386/src/lzo1x_s2.s --- lzo-1.08/src/i386/src/lzo1x_s2.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1x_s2.s 2007-05-10 20:46:50.000000000 -0700 @@ -34,6 +34,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1x_decompress_asm_safe) diff -ruN lzo-1.08/src/i386/src/lzo1y_f1.s ../liblzo1/lzo-1.08/src/i386/src/lzo1y_f1.s --- lzo-1.08/src/i386/src/lzo1y_f1.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1y_f1.s 2007-05-10 20:46:52.000000000 -0700 @@ -32,6 +32,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1y_decompress_asm_fast) diff -ruN lzo-1.08/src/i386/src/lzo1y_f2.s ../liblzo1/lzo-1.08/src/i386/src/lzo1y_f2.s --- lzo-1.08/src/i386/src/lzo1y_f2.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1y_f2.s 2007-05-10 20:46:56.000000000 -0700 @@ -36,6 +36,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1y_decompress_asm_fast_safe) diff -ruN lzo-1.08/src/i386/src/lzo1y_s1.s ../liblzo1/lzo-1.08/src/i386/src/lzo1y_s1.s --- lzo-1.08/src/i386/src/lzo1y_s1.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1y_s1.s 2007-05-10 20:46:58.000000000 -0700 @@ -30,6 +30,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1y_decompress_asm) diff -ruN lzo-1.08/src/i386/src/lzo1y_s2.s ../liblzo1/lzo-1.08/src/i386/src/lzo1y_s2.s --- lzo-1.08/src/i386/src/lzo1y_s2.s 2002-07-12 18:31:52.000000000 -0700 +++ ../liblzo1/lzo-1.08/src/i386/src/lzo1y_s2.s 2007-05-10 20:46:13.000000000 -0700 @@ -34,6 +34,10 @@ #include "lzo_asm.h" +#if defined __ELF__ && defined __linux__ + .section .note.GNU-stack,"",@progbits +#endif + .text LZO_PUBLIC(lzo1y_decompress_asm_safe)