Package: mrxvt
Version: 0.4.1-2
Tags: patch

Our automated buildd log filter[1] detected a problem that causes your
package to segfault on architectures where the size of a pointer is
greater than the size of an integer, such as ia64 (see warnings
below).  The fix for this problem is to add -D_GNU_SOURCE to CPPFLAGS
for linux, such that strndup() gets declared.

In addition, there were some pointers which were cast to "unsigned
int" before comparing them, which won't work (reliably) on 64-bit
platforms either.  The solution for this problem is to include
<inttypes.h> and define u_intp_t as an alias of the standard-type
uintptr_t.

Thanks,

        --david

[1]http://people.debian.org/~dannf/check-implicit-pointer-functions


>>>>> On Thu, 09 Jun 2005 16:44:13 +0100, Debian/IA64 non-US Build Daemon 
>>>>> <[EMAIL PROTECTED]> said:

  >> Function `strndup' implicitly converted to pointer at 
../../../../src/command.c:5670
  >> Function `strndup' implicitly converted to pointer at 
../../../../src/init.c:2219
  >> Function `strndup' implicitly converted to pointer at 
../../../../src/tabbar.c:1387
  >> Function `strndup' implicitly converted to pointer at 
../../../../src/command.c:5670
  >> Function `strndup' implicitly converted to pointer at 
../../../../src/init.c:2219
  >> Function `strndup' implicitly converted to pointer at 
../../../../src/tabbar.c:1387
  >> Function `strndup' implicitly converted to pointer at 
../../../../src/command.c:5670
  >> Function `strndup' implicitly converted to pointer at 
../../../../src/init.c:2219
  >> Function `strndup' implicitly converted to pointer at 
../../../../src/tabbar.c:1387

diff -urN mrxvt-0.4.0/configure.ac mrxvt-0.4.0-davidm/configure.ac
--- mrxvt-0.4.0/configure.ac    2005-02-25 20:49:09.000000000 -0800
+++ mrxvt-0.4.0-davidm/configure.ac     2005-06-09 11:11:47.000000000 -0700
@@ -45,6 +45,7 @@
 *-linux*)
     AC_DEFINE(OS_LINUX, [], [set OS to linux])
     AC_DEFINE(LINUX_KEYS, [], [set linux keys])
+    CPPFLAGS=-D_GNU_SOURCE
     local_os_type="linux"
     ;;
 *-irix*)
diff -urN mrxvt-0.4.0/src/rxvtlib.h mrxvt-0.4.0-davidm/src/rxvtlib.h
--- mrxvt-0.4.0/src/rxvtlib.h   2005-02-23 00:21:44.000000000 -0800
+++ mrxvt-0.4.0-davidm/src/rxvtlib.h    2005-06-09 11:21:36.000000000 -0700
@@ -28,6 +28,7 @@
 #ifndef __RXVTLIB_H__
 #define __RXVTLIB_H__
 
+#include <inttypes.h>
 
 /*
  * If we haven't pulled in typedef's like  RINT16T  then do them ourself
@@ -36,7 +37,7 @@
 /* whatever normal size corresponds to a integer pointer */
 typedef RINT32T                        intp_t;
 /* whatever normal size corresponds to a unsigned integer pointer */
-typedef RUINT32T               u_intp_t;
+typedef uintptr_t              u_intp_t;
 /* type of unicode_t */
 typedef RUINT32T               unicode_t;
 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to