File syslinux-4.04-iso9660.diff of Package syslinux

diff --git a/core/fs/iso9660/iso9660.c b/core/fs/iso9660/iso9660.c
index 3cd3ac4..9bbc299 100644
--- a/core/fs/iso9660/iso9660.c
+++ b/core/fs/iso9660/iso9660.c
@@ -228,14 +228,25 @@ static int iso_readdir(struct file *file, struct dirent *dirent)
 /* Load the config file, return 1 if failed, or 0 */
 static int iso_load_config(void)
 {
-    static const char *search_directories[] = {
-	"/boot/isolinux", 
-	"/isolinux",
-	"/boot/syslinux", 
-	"/syslinux", 
-	"/",
-	NULL
-    };
+   /*
+    * Put search_directories[] to different section so it
+    * won't be compressed (and we can patch it later).
+    */
+    __asm__(
+      ".section .data16\n"
+      ".s1: .ascii \"/boot\"\n"
+      ".s2: .string \"/isolinux\"\n"
+      ".fill 64, 1, 0\n"
+      ".s3: .ascii \"/boot\"\n"
+      ".s4: .string \"/syslinux\"\n"
+      ".s5: .string \"/\"\n"
+      ".align 4\n"
+      "search_directories:\n"
+      ".long .s1, .s2, .s3, .s4, .s5, 0\n"
+      ".text\n"
+    );
+    extern const char *search_directories[];
+
     static const char *filenames[] = {
 	"isolinux.cfg",
 	"syslinux.cfg",
openSUSE Build Service is sponsored by