summaryrefslogtreecommitdiffstats
path: root/patches/prelink-0.0.20071009/layout.c.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/prelink-0.0.20071009/layout.c.dpatch')
-rw-r--r--patches/prelink-0.0.20071009/layout.c.dpatch49
1 files changed, 49 insertions, 0 deletions
diff --git a/patches/prelink-0.0.20071009/layout.c.dpatch b/patches/prelink-0.0.20071009/layout.c.dpatch
new file mode 100644
index 000000000..a299fa146
--- /dev/null
+++ b/patches/prelink-0.0.20071009/layout.c.dpatch
@@ -0,0 +1,49 @@
+#! /bin/sh -e
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Changed optimization level.
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch) patch $patch_opts -p1 < $0;;
+ -unpatch) patch $patch_opts -p1 -R < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+@DPATCH@
+
+--- prelink-0.0.20030902.orig/src/layout.c 2003-06-13 15:12:26.000000000 +0000
++++ prelink-0.0.20030902/src/layout.c 2003-09-16 23:26:16.000000000 +0000
+@@ -614,7 +614,23 @@
+ < ((deps[j - 1]->end + max_page_size - 1)
+ & ~(max_page_size - 1))
+ && (deps[j]->type == ET_DYN || deps[j - 1]->type == ET_DYN))
++{ /* XXX some binaries cause a segfault but I do not know why -- Md*/
++ fprintf(stderr,
++ "Unknown fatal error at src/layout.c:538\n"
++ "l.binlibs[i]->filename: %s\n"
++ "deps[j]->base: %lx\n"
++ "(deps[j - 1]->end + max_page_size - 1) & ~(max_page_size - 1): %ld\n"
++ "[deps[j - 1]->end: %lx max_page_size: %lu]\n"
++ "deps[j]->type: %x deps[j - 1]->type: %x\n"
++ ,
++ l.binlibs[i]->filename,
++ deps[j]->base,
++ ((deps[j - 1]->end + max_page_size - 1) & ~(max_page_size - 1)),
++ deps[j - 1]->end, max_page_size,
++ deps[j]->type, deps[j - 1]->type
++ );
+ abort ();
++}
+ }
+ #endif
+ }