[libapp-stacktrace-perl] 01/02: Add patch by Niko Tyni to fix FTBFS with newer toolchain

Axel Beckert abe at deuxchevaux.org
Sat Dec 10 02:46:21 UTC 2016


This is an automated email from the git hooks/post-receive script.

abe pushed a commit to branch master
in repository libapp-stacktrace-perl.

commit 46dabb1f94fdef78d946427317c4a9dc3f175651
Author: Axel Beckert <abe at deuxchevaux.org>
Date:   Sat Dec 10 03:27:11 2016 +0100

    Add patch by Niko Tyni to fix FTBFS with newer toolchain
    
    Thanks Niko!
    
    Addresses: #775744
---
 debian/changelog                                   |   4 +
 .../0001-Pointers-should-be-long-not-int.patch     | 372 +++++++++++++++++++++
 debian/patches/series                              |   1 +
 3 files changed, 377 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 3de9ba2..22dea18 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,10 @@ libapp-stacktrace-perl (0.09-2) UNRELEASED; urgency=medium
   * debian/upstream/metadata: change GitHub/CPAN URL(s) to HTTPS.
   * debian/upstream/metadata: use HTTPS for GitHub URLs.
 
+  [ Axel Beckert ]
+  * Add patch by Niko Tyni to fix FTBFS with newer toolchain. Thanks!
+    (Addresses: #775744)
+
  -- Salvatore Bonaccorso <carnil at debian.org>  Sat, 30 Jan 2016 20:02:54 +0100
 
 libapp-stacktrace-perl (0.09-1) unstable; urgency=low
diff --git a/debian/patches/0001-Pointers-should-be-long-not-int.patch b/debian/patches/0001-Pointers-should-be-long-not-int.patch
new file mode 100644
index 0000000..6156c3f
--- /dev/null
+++ b/debian/patches/0001-Pointers-should-be-long-not-int.patch
@@ -0,0 +1,372 @@
+From 6712a7b680bf5e88cf30a5251b90872418c320f2 Mon Sep 17 00:00:00 2001
+From: Niko Tyni <ntyni at debian.org>
+Date: Tue, 6 Dec 2016 13:56:46 +0200
+Subject: [PATCH] Pointers should be long not int
+
+Casting pointers to int types breaks on 64-bit platforms where Perl uses
+memory areas with pointers over 32 bits, which seems to be the case for
+PIE (position independent executable) builds.
+
+This only touches the code path relevant to Debian; 5.8, 5.10,
+and unthreaded code paths are intended to be unaffected.
+
+The changes to thread dumping parts are untested as they are not covered
+by the test suite.
+
+Bug-Debian: https://bugs.debian.org/775744
+---
+ lib/App/Stacktrace/perl_backtrace_raw.txt | 118 +++++++++++++++---------------
+ 1 file changed, 59 insertions(+), 59 deletions(-)
+
+diff --git a/lib/App/Stacktrace/perl_backtrace_raw.txt b/lib/App/Stacktrace/perl_backtrace_raw.txt
+index 9480e4d..41cf4e6 100644
+--- a/lib/App/Stacktrace/perl_backtrace_raw.txt
++++ b/lib/App/Stacktrace/perl_backtrace_raw.txt
+@@ -60,13 +60,13 @@ define perl_backtrace_an_interp
+         printf "interpreter=%#x\n", $interpreter
+         if $interpreter
+             x/128xw $interpreter
+-            print $stackinfo = (int) *((int*) ($INTERPRETER_curstackinfo + (int) $interpreter))
++            print $stackinfo = (long) *((long*) ($INTERPRETER_curstackinfo + (long) $interpreter))
+         else
+-            print $stackinfo = (int) *((int*) ($INTERPRETER_curstackinfo + (int) $interpreter))
++            print $stackinfo = (long) *((long*) ($INTERPRETER_curstackinfo + (long) $interpreter))
+         end
+     else
+         if $interpreter
+-            set $stackinfo = (int) *((int*) ($INTERPRETER_curstackinfo + (int) $interpreter))
++            set $stackinfo = (long) *((long*) ($INTERPRETER_curstackinfo + (long) $interpreter))
+         else
+             set $stackinfo = 0
+         end
+@@ -76,13 +76,13 @@ define perl_backtrace_an_interp
+             printf "stackinfo=%#x\n", $stackinfo
+             if $stackinfo
+                 x/128xw $stackinfo
+-                print $cxstack = (int) *((int*) ($STACKINFO_cxstack + (int) $stackinfo))
++                print $cxstack = (long) *((long*) ($STACKINFO_cxstack + (long) $stackinfo))
+             else
+-                print $cxstack = (int) *((int*) ($STACKINFO_cxstack + (int) $stackinfo))
++                print $cxstack = (long) *((long*) ($STACKINFO_cxstack + (long) $stackinfo))
+             end
+         else
+             if $stackinfo
+-                set $cxstack = (int) *((int*) ($STACKINFO_cxstack + (int) $stackinfo))
++                set $cxstack = (long) *((long*) ($STACKINFO_cxstack + (long) $stackinfo))
+             else
+                 set $cxstack = 0
+             end
+@@ -91,13 +91,13 @@ define perl_backtrace_an_interp
+             printf "stackinfo=%#x\n", $stackinfo
+             if $stackinfo
+                 x/128xw $stackinfo
+-                print $cxix = (int) *((int*) ($STACKINFO_cxix + (int) $stackinfo))
++                print $cxix = (int) *((int*) ($STACKINFO_cxix + (long) $stackinfo))
+             else
+-                print $cxix = (int) *((int*) ($STACKINFO_cxix + (int) $stackinfo))
++                print $cxix = (int) *((int*) ($STACKINFO_cxix + (long) $stackinfo))
+             end
+         else
+             if $stackinfo
+-                set $cxix = (int) *((int*) ($STACKINFO_cxix + (int) $stackinfo))
++                set $cxix = (int) *((int*) ($STACKINFO_cxix + (long) $stackinfo))
+             else
+                 set $cxix = 0
+             end
+@@ -108,13 +108,13 @@ define perl_backtrace_an_interp
+                 printf "cxstack=%#x\n", $cxstack
+                 if $cxstack
+                     x/128xw $cxstack
+-                    print $context = (int) (($CONTEXT_sizeof * $i) + (int) $cxstack)
++                    print $context = (long) (($CONTEXT_sizeof * $i) + (long) $cxstack)
+                 else
+-                    print $context = (int) (($CONTEXT_sizeof * $i) + (int) $cxstack)
++                    print $context = (long) (($CONTEXT_sizeof * $i) + (long) $cxstack)
+                 end
+             else
+                 if $cxstack
+-                    set $context = (int) (($CONTEXT_sizeof * $i) + (int) $cxstack)
++                    set $context = (long) (($CONTEXT_sizeof * $i) + (long) $cxstack)
+                 else
+                     set $context = 0
+                 end
+@@ -123,13 +123,13 @@ define perl_backtrace_an_interp
+                 printf "context=%#x\n", $context
+                 if $context
+                     x/128xw $context
+-                    print $type = (int) (((int) *((int*) ($CONTEXT_type + (int) $context))) & $CXTYPEMASK)
++                    print $type = (int) (((int) *((int*) ($CONTEXT_type + (long) $context))) & $CXTYPEMASK)
+                 else
+-                    print $type = (int) (((int) *((int*) ($CONTEXT_type + (int) $context))) & $CXTYPEMASK)
++                    print $type = (int) (((int) *((int*) ($CONTEXT_type + (long) $context))) & $CXTYPEMASK)
+                 end
+             else
+                 if $context
+-                    set $type = (int) (((int) *((int*) ($CONTEXT_type + (int) $context))) & $CXTYPEMASK)
++                    set $type = (int) (((int) *((int*) ($CONTEXT_type + (long) $context))) & $CXTYPEMASK)
+                 else
+                     set $type = 0
+                 end
+@@ -140,13 +140,13 @@ define perl_backtrace_an_interp
+                     printf "context=%#x\n", $context
+                     if $context
+                         x/128xw $context
+-                        print $cop = (int) *((int*) ($CONTEXT_cop + (int) $context))
++                        print $cop = (long) *((long*) ($CONTEXT_cop + (long) $context))
+                     else
+-                        print $cop = (int) *((int*) ($CONTEXT_cop + (int) $context))
++                        print $cop = (long) *((long*) ($CONTEXT_cop + (long) $context))
+                     end
+                 else
+                     if $context
+-                        set $cop = (int) *((int*) ($CONTEXT_cop + (int) $context))
++                        set $cop = (long) *((long*) ($CONTEXT_cop + (long) $context))
+                     else
+                         set $cop = 0
+                     end
+@@ -155,13 +155,13 @@ define perl_backtrace_an_interp
+                     printf "cop=%#x\n", $cop
+                     if $cop
+                         x/128xw $cop
+-                        print $file = (char*) *(int*) ($COP_file + (int) $cop)
++                        print $file = (char*) *(long*) ($COP_file + (long) $cop)
+                     else
+-                        print $file = (char*) *(int*) ($COP_file + (int) $cop)
++                        print $file = (char*) *(long*) ($COP_file + (long) $cop)
+                     end
+                 else
+                     if $cop
+-                        set $file = (char*) *(int*) ($COP_file + (int) $cop)
++                        set $file = (char*) *(long*) ($COP_file + (long) $cop)
+                     else
+                         set $file = 0
+                     end
+@@ -173,13 +173,13 @@ define perl_backtrace_an_interp
+                     printf "cop=%#x\n", $cop
+                     if $cop
+                         x/128xw $cop
+-                        print $line = (int) *((int*) ($COP_line + (int) $cop))
++                        print $line = (int) *((int*) ($COP_line + (long) $cop))
+                     else
+-                        print $line = (int) *((int*) ($COP_line + (int) $cop))
++                        print $line = (int) *((int*) ($COP_line + (long) $cop))
+                     end
+                 else
+                     if $cop
+-                        set $line = (int) *((int*) ($COP_line + (int) $cop))
++                        set $line = (int) *((int*) ($COP_line + (long) $cop))
+                     else
+                         set $line = 0
+                     end
+@@ -196,13 +196,13 @@ define perl_backtrace_an_interp
+             printf "stackinfo=%#x\n", $stackinfo
+             if $stackinfo
+                 x/128xw $stackinfo
+-                print $stackinfo = (int) *((int*) ($STACKINFO_prev + (int) $stackinfo))
++                print $stackinfo = (long) *((long*) ($STACKINFO_prev + (long) $stackinfo))
+             else
+-                print $stackinfo = (int) *((int*) ($STACKINFO_prev + (int) $stackinfo))
++                print $stackinfo = (long) *((long*) ($STACKINFO_prev + (long) $stackinfo))
+             end
+         else
+             if $stackinfo
+-                set $stackinfo = (int) *((int*) ($STACKINFO_prev + (int) $stackinfo))
++                set $stackinfo = (long) *((long*) ($STACKINFO_prev + (long) $stackinfo))
+             else
+                 set $stackinfo = 0
+             end
+@@ -214,13 +214,13 @@ define perl_backtrace_a_thread
+         printf "thread=%#x\n", $thread
+         if $thread
+             x/128xw $thread
+-            print $tid = (int) *((int*) ($THREAD_tid + (int) $thread))
++            print $tid = (int) *((int*) ($THREAD_tid + (long) $thread))
+         else
+-            print $tid = (int) *((int*) ($THREAD_tid + (int) $thread))
++            print $tid = (int) *((int*) ($THREAD_tid + (long) $thread))
+         end
+     else
+         if $thread
+-            set $tid = (int) *((int*) ($THREAD_tid + (int) $thread))
++            set $tid = (int) *((int*) ($THREAD_tid + (long) $thread))
+         else
+             set $tid = 0
+         end
+@@ -229,9 +229,9 @@ define perl_backtrace_a_thread
+         printf "thread=%#x\n", $thread
+         if $thread
+             x/128xw $thread
+-            print $statei = (int) *((int*) ($THREAD_state + (int) $thread))
++            print $statei = (int) *((int*) ($THREAD_state + (long) $thread))
+         else
+-            print $statei = (int) *((int*) ($THREAD_state + (int) $thread))
++            print $statei = (int) *((int*) ($THREAD_state + (long) $thread))
+         end
+     else
+         if $thread
+@@ -274,13 +274,13 @@ define perl_backtrace_a_thread
+         printf "thread=%#x\n", $thread
+         if $thread
+             x/128xw $thread
+-            print $interpreter = (int) *((int*) ($THREAD_interpreter + (int) $thread))
++            print $interpreter = (int) *((int*) ($THREAD_interpreter + (long) $thread))
+         else
+-            print $interpreter = (int) *((int*) ($THREAD_interpreter + (int) $thread))
++            print $interpreter = (int) *((int*) ($THREAD_interpreter + (long) $thread))
+         end
+     else
+         if $thread
+-            set $interpreter = (int) *((int*) ($THREAD_interpreter + (int) $thread))
++            set $interpreter = (int) *((int*) ($THREAD_interpreter + (long) $thread))
+         else
+             set $interpreter = 0
+         end
+@@ -1399,13 +1399,13 @@ define perl_backtrace_5_12_threads
+         printf "interpreter=%#x\n", $interpreter
+         if $interpreter
+             x/128xw $interpreter
+-            print $modglobal = (int) *((int*) ($INTERPRETER_modglobal + (int) $interpreter))
++            print $modglobal = (long) *((long*) ($INTERPRETER_modglobal + (long) $interpreter))
+         else
+-            print $modglobal = (int) *((int*) ($INTERPRETER_modglobal + (int) $interpreter))
++            print $modglobal = (long) *((long*) ($INTERPRETER_modglobal + (long) $interpreter))
+         end
+     else
+         if $interpreter
+-            set $modglobal = (int) *((int*) ($INTERPRETER_modglobal + (int) $interpreter))
++            set $modglobal = (long) *((long*) ($INTERPRETER_modglobal + (long) $interpreter))
+         else
+             set $modglobal = 0
+         end
+@@ -1417,7 +1417,7 @@ define perl_backtrace_5_12_threads
+                 x/128xw $interpreter
+                 printf "modglobal=%#x\n", $modglobal
+                 x/128xw $modglobal
+-                print $my_pool_svp = (int) Perl_hv_fetch((int) $interpreter, (int) $modglobal, $POOL_KEY, $POOL_KEY_LEN, 0)
++                print $my_pool_svp = (long) Perl_hv_fetch((long) $interpreter, (long) $modglobal, $POOL_KEY, $POOL_KEY_LEN, 0)
+             else
+                 printf "interpreter=%#x\n", $interpreter
+                 x/128xw $interpreter
+@@ -1439,7 +1439,7 @@ define perl_backtrace_5_12_threads
+     else
+         if $interpreter
+             if $modglobal
+-                set $my_pool_svp = (int) Perl_hv_fetch((int) $interpreter, (int) $modglobal, $POOL_KEY, $POOL_KEY_LEN, 0)
++                set $my_pool_svp = (long) Perl_hv_fetch((long) $interpreter, (long) $modglobal, $POOL_KEY, $POOL_KEY_LEN, 0)
+             else
+                 set $my_pool_svp = 0
+             end
+@@ -1452,13 +1452,13 @@ define perl_backtrace_5_12_threads
+             printf "my_pool_svp=%#x\n", $my_pool_svp
+             if $my_pool_svp
+                 x/128xw $my_pool_svp
+-                print $my_pool_sv = (int) *((int*) (int) $my_pool_svp)
++                print $my_pool_sv = (long) *((long*) (long) $my_pool_svp)
+             else
+-                print $my_pool_sv = (int) *((int*) (int) $my_pool_svp)
++                print $my_pool_sv = (long) *((long*) (long) $my_pool_svp)
+             end
+         else
+             if $my_pool_svp
+-                set $my_pool_sv = (int) *((int*) (int) $my_pool_svp)
++                set $my_pool_sv = (long) *((long*) (long) $my_pool_svp)
+             else
+                 set $my_pool_sv = 0
+             end
+@@ -1467,13 +1467,13 @@ define perl_backtrace_5_12_threads
+             printf "my_pool_sv=%#x\n", $my_pool_sv
+             if $my_pool_sv
+                 x/128xw $my_pool_sv
+-                print $my_pool_svval = (int) *((int*) ($SV_any + (int) $my_pool_sv))
++                print $my_pool_svval = (long) *((long*) ($SV_any + (long) $my_pool_sv))
+             else
+-                print $my_pool_svval = (int) *((int*) ($SV_any + (int) $my_pool_sv))
++                print $my_pool_svval = (long) *((long*) ($SV_any + (long) $my_pool_sv))
+             end
+         else
+             if $my_pool_sv
+-                set $my_pool_svval = (int) *((int*) ($SV_any + (int) $my_pool_sv))
++                set $my_pool_svval = (long) *((long*) ($SV_any + (long) $my_pool_sv))
+             else
+                 set $my_pool_svval = 0
+             end
+@@ -1482,13 +1482,13 @@ define perl_backtrace_5_12_threads
+             printf "my_pool_svval=%#x\n", $my_pool_svval
+             if $my_pool_svval
+                 x/128xw $my_pool_svval
+-                print $my_poolp = (int) *((int*) ($SV_uv + (int) $my_pool_svval))
++                print $my_poolp = (long) *((long*) ($SV_uv + (long) $my_pool_svval))
+             else
+-                print $my_poolp = (int) *((int*) ($SV_uv + (int) $my_pool_svval))
++                print $my_poolp = (long) *((long*) ($SV_uv + (long) $my_pool_svval))
+             end
+         else
+             if $my_pool_svval
+-                set $my_poolp = (int) *((int*) ($SV_uv + (int) $my_pool_svval))
++                set $my_poolp = (long) *((long*) ($SV_uv + (long) $my_pool_svval))
+             else
+                 set $my_poolp = 0
+             end
+@@ -1497,13 +1497,13 @@ define perl_backtrace_5_12_threads
+             printf "my_poolp=%#x\n", $my_poolp
+             if $my_poolp
+                 x/128xw $my_poolp
+-                print $main_thread = $POOLP_main_thread + (int) $my_poolp
++                print $main_thread = $POOLP_main_thread + (long) $my_poolp
+             else
+-                print $main_thread = $POOLP_main_thread + (int) $my_poolp
++                print $main_thread = $POOLP_main_thread + (long) $my_poolp
+             end
+         else
+             if $my_poolp
+-                set $main_thread = $POOLP_main_thread + (int) $my_poolp
++                set $main_thread = $POOLP_main_thread + (long) $my_poolp
+             else
+                 set $main_thread = 0
+             end
+@@ -1528,13 +1528,13 @@ define perl_backtrace_5_12_threads
+             printf "main_thread=%#x\n", $main_thread
+             if $main_thread
+                 x/128xw $main_thread
+-                print $thread = (int) *((int*) ($THREAD_next + (int) $main_thread))
++                print $thread = (long) *((long*) ($THREAD_next + (long) $main_thread))
+             else
+-                print $thread = (int) *((int*) ($THREAD_next + (int) $main_thread))
++                print $thread = (long) *((long*) ($THREAD_next + (long) $main_thread))
+             end
+         else
+             if $main_thread
+-                set $thread = (int) *((int*) ($THREAD_next + (int) $main_thread))
++                set $thread = (long) *((long*) ($THREAD_next + (long) $main_thread))
+             else
+                 set $thread = 0
+             end
+@@ -1545,13 +1545,13 @@ define perl_backtrace_5_12_threads
+                 printf "thread=%#x\n", $thread
+                 if $thread
+                     x/128xw $thread
+-                    print $thread = (int) *((int*) ($THREAD_next + (int) $thread))
++                    print $thread = (long) *((long*) ($THREAD_next + (long) $thread))
+                 else
+-                    print $thread = (int) *((int*) ($THREAD_next + (int) $thread))
++                    print $thread = (long) *((long*) ($THREAD_next + (long) $thread))
+                 end
+             else
+                 if $thread
+-                    set $thread = (int) *((int*) ($THREAD_next + (int) $thread))
++                    set $thread = (long) *((long*) ($THREAD_next + (long) $thread))
+                 else
+                     set $thread = 0
+                 end
+@@ -1562,7 +1562,7 @@ define perl_backtrace_5_12_threads
+     end
+ end
+ define perl_backtrace_5_12_x
+-    set $interpreter = (int) Perl_get_context()
++    set $interpreter = (long) Perl_get_context()
+     if $interpreter
+         perl_backtrace_5_12_threads
+     else
+-- 
+2.10.2
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..1d02bec
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+0001-Pointers-should-be-long-not-int.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libapp-stacktrace-perl.git



More information about the Pkg-perl-cvs-commits mailing list