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

asm-ia64/fpu.h portability improvement



The patch below makes the declaration of "struct ia64_fpreg" portable
accross compilers.  Bjorn, I think it would be good to make the same
change in 2.4.xx.

Even though it's a change to a kernel header file, this patch is
intended to fix a bug in glibc: without this patch, using a compiler
other than gcc will lead to a sigcontext/ucontext type which isn't
properly aligned.

	--david

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.1128  -> 1.1129 
#	include/asm-ia64/fpu.h	1.2     -> 1.3    
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/03/27	davidm@wailua.hpl.hp.com	1.1129
# ia64: Change struct ia64_fpreg so it will get 16-byte alignment with all
# 	ia64 compilers, not just GCC.
# --------------------------------------------
#
diff -Nru a/include/asm-ia64/fpu.h b/include/asm-ia64/fpu.h
--- a/include/asm-ia64/fpu.h	Thu Mar 27 17:05:38 2003
+++ b/include/asm-ia64/fpu.h	Thu Mar 27 17:05:38 2003
@@ -2,7 +2,7 @@
 #define _ASM_IA64_FPU_H
 
 /*
- * Copyright (C) 1998, 1999, 2002 Hewlett-Packard Co
+ * Copyright (C) 1998, 1999, 2002, 2003 Hewlett-Packard Co
  *	David Mosberger-Tang <davidm@hpl.hp.com>
  */
 
@@ -57,8 +57,9 @@
 struct ia64_fpreg {
 	union {
 		unsigned long bits[2];
+		long double __dummy;	/* force 16-byte alignment */
 	} u;
-} __attribute__ ((aligned (16)));
+};
 
 # endif /* __ASSEMBLY__ */
 



Reply to: