pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/38417: [patch] devel/libsigsegv does not build on freebsd/amd64
>Number: 38417
>Category: pkg
>Synopsis: [patch] devel/libsigsegv does not build on freebsd/amd64
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Apr 13 11:45:00 +0000 2008
>Originator: Peter Schuller
>Release:
>Organization:
>Environment:
>Description:
The configure scripts selects fault-freebsd-i386.h, which claims sc_esp is the
stack pointer. sigcontext does not have an sc_esp member on amd64, resulting in
a compilation error.
The FreeBSD ports version of libsigsegv ends up defaulting to fault-bsd.h,
which disables the use of the stack pointer.
>How-To-Repeat:
>Fix:
This patch adds a new configuration header to define appropriate values for
freebsd on x86_64, and uses that instead of defaulting to fault-bsd:
http://distfiles.scode.org/mlref/pkgsrc_devel_libsigsegv_fbsd_amd64_esp_rsp.diff
Included inline below, but whitespace may be borked:
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/devel/libsigsegv/distinfo,v
retrieving revision 1.4
diff -u -r1.4 distinfo
--- distinfo 29 Nov 2007 18:25:22 -0000 1.4
+++ distinfo 12 Apr 2008 14:56:45 -0000
@@ -3,4 +3,5 @@
SHA1 (libsigsegv-2.5.tar.gz) = 84cf08a9aae4c4d884333421018d8127592e8c2b
RMD160 (libsigsegv-2.5.tar.gz) = 1776563a76de4286461a779cfd2b3b47533db05e
Size (libsigsegv-2.5.tar.gz) = 380512 bytes
-SHA1 (patch-aa) = 4786b1362d9277d4b654e8978514a7cd454eeaaa
+SHA1 (patch-aa) = 70f6d219996c7f1a80eacb8add2fc51b61042be6
+SHA1 (patch-ab) = 5501e63a94abcb2c70b747bb308ef458e9eb4f55
Index: patches/patch-aa
===================================================================
RCS file: /cvsroot/pkgsrc/devel/libsigsegv/patches/patch-aa,v
retrieving revision 1.1
diff -u -r1.1 patch-aa
--- patches/patch-aa 24 Jul 2006 13:39:26 -0000 1.1
+++ patches/patch-aa 12 Apr 2008 14:56:45 -0000
@@ -1,31 +1,20 @@
$NetBSD: patch-aa,v 1.1 2006/07/24 13:39:26 joerg Exp $
---- configure.orig 2006-07-24 13:19:19.000000000 +0000
+--- configure.orig 2008-04-12 16:48:26.717100600 +0200
+++ configure
-@@ -18825,7 +18825,7 @@ done
-
-
- case "$host_os" in
-- sunos4* | freebsd* | openbsd* | netbsd*)
-+ sunos4* | freebsd* | openbsd* | netbsd* | dragonfly*)
- CFG_SIGNALS=signals-bsd.h ;;
- hpux*)
- CFG_SIGNALS=signals-hpux.h ;;
-@@ -22583,7 +22583,7 @@ if test -z "$CFG_FAULT" && test "$sv_cv_
- fi
- if test -z "$CFG_FAULT" && test "$sv_cv_fault_bsd" = yes; then
+@@ -23353,10 +23353,14 @@ if test -z "$CFG_FAULT" && test "$sv_cv_
case "$host_os" in
-- freebsd*)
-+ freebsd* | dragonfly*)
+ freebsd*)
case "$host_cpu" in
- i?86 | x86_64)
+- i?86 | x86_64)
++ i?86)
CFG_FAULT=fault-freebsd-i386.h
-@@ -23072,7 +23072,7 @@ if test $sv_cv_procfsvma = yes; then
- else
- case "$host_os" in
- linux*) CFG_STACKVMA=stackvma-linux.c ;;
-- freebsd*) CFG_STACKVMA=stackvma-freebsd.c ;;
-+ freebsd* | dragonfly*) CFG_STACKVMA=stackvma-freebsd.c ;;
- beos*) CFG_STACKVMA=stackvma-beos.c ;;
- macos* | darwin*) CFG_STACKVMA=stackvma-mach.c ;;
- esac
+ FAULT_CONTEXT='struct sigcontext'
+ ;;
++ x86_64)
++ CFG_FAULT=fault-freebsd-x86_64.h
++ FAULT_CONTEXT='struct sigcontext'
++ ;;
+ *)
+ CFG_FAULT=fault-bsd.h
+ FAULT_CONTEXT='void'
Index: patches/patch-ab
===================================================================
RCS file: patches/patch-ab
diff -N patches/patch-ab
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-ab 12 Apr 2008 14:56:45 -0000
@@ -0,0 +1,26 @@
+$NetBSD$
+
+--- src/fault-freebsd-x86_64.h.orig 2008-04-12 16:49:14.991057485 +0200
++++ src/fault-freebsd-x86_64.h
+@@ -0,0 +1,21 @@
++/* Fault handler information. FreeBSD/i386 version.
++ Copyright (C) 2002 Bruno Haible <bruno%clisp.org@localhost>
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 2, or (at your option)
++ any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software Foundation,
++ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
++
++#define SIGSEGV_FAULT_HANDLER_ARGLIST int sig, int code, struct sigcontext
*scp, void *addr
++#define SIGSEGV_FAULT_ADDRESS addr
++#define SIGSEGV_FAULT_CONTEXT scp
++#define SIGSEGV_FAULT_STACKPOINTER scp->sc_rsp
Home |
Main Index |
Thread Index |
Old Index