[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#318429: #318429: libc6.1-dev: failure with g++-4.0 caused by ucontext.h



tag 318429 + patch
close 318429 2.3.4-1
thanks

Moi!

Upstream has fixed the compile-time breakage in sys/ucontext.h with g++
4.0 in ia64 in 2.3.4, so the 2.3.5 packages in experimental are not
affected. The attached patch should do the trick for 2.3.2.ds1-22 in
sid.

Regards,

Daniel.

#! /bin/sh -e

# All lines beginning with `# DP:' are a description of the patch.
# DP: Description: Fix build breakage with g++ >= 3.5.
# DP: Related bugs: #318429
# DP: Dpatch author: Daniel Kobras
# DP: Patch author: Andreas Schwab
# DP: Upstream status: In CVS
# DP: Status Details: 
# DP: Date: 2005-07-22

PATCHLEVEL=0

if [ $# -ne 2 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
    -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
    *)
	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
	exit 1
esac
exit 0

# append the patch here and adjust the -p? flag in the patch calls.
2004-09-01  Andreas Schwab  <schwab@suse.de>

        * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h [g++ >= 3.5]: Use
        __builtin_offsetof.

Index: sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- sysdeps/unix/sysv/linux/ia64/sys/ucontext.h	19 Jun 2002 07:22:14 -0000	1.7
+++ sysdeps/unix/sysv/linux/ia64/sys/ucontext.h	2 Sep 2004 03:40:06 -0000	1.8
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,10 @@
 
 typedef struct sigcontext mcontext_t;
 
-#ifdef __GNUC__
+#if defined __cplusplus && __GNUC_PREREQ (3, 5)
+# define _SC_GR0_OFFSET	\
+	__builtin_offsetof (struct sigcontext, sc_gr[0])
+#elif defined __GNUC__
 # define _SC_GR0_OFFSET	\
 	(((char *) &((struct sigcontext *) 0)->sc_gr[0]) - (char *) 0)
 #else

Reply to: