On Thu, 1 Mar 2012, Kai Tietz wrote: > 2012/3/1 Joseph S. Myers <jos...@codesourcery.com>: > > On Thu, 1 Mar 2012, Kai Tietz wrote: > > > >> Thanks, I adjusted ChangeLog, comment, and added the copyright year. > >> It would be kind, if somebody could apply this patch to glibc's > >> repository as I don't have commit access to it. ?I can do the applying > >> to gcc's tree, if patch is ok-ed. > > > > This patch doesn't apply cleanly. ?Please resend in a way that does not > > munge any of the whitespace in the patch (including at ends of lines), > > maybe as an attachment. > > Ok, as attachment.
This still didn't apply cleanly because it appeared you had diffed against the copy of the files in GCC and not the version in glibc's git repository where one file had an updated copyright header since it was last imported into GCC. In general you need to produce diffs relative to the mainline sources of the project to which you are submitting changes, not some other project or some other branch. I've applied the patch to glibc in this version. For GCC, you should *not* make the changes by applying a patch and committing the results; you should copy the current versions of all shared soft-fp files from glibc's git repository and check in the result of that copying, so getting any other changes that have been applied to those files in glibc as well. diff --git a/ChangeLog b/ChangeLog index e2bc926..a2e0d6c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2012-03-01 Kai Tietz <kti...@redhat.com> + + * soft-fp/soft-fp.h (_FP_STRUCT_LAYOUT): New macro. + * soft-fp/quad.h (_FP_UNION_Q): Use _FP_STRUCT_LAYOUT on struct + containing bit-fields. + * soft-fp/extended.h (_FP_UNION_E): Likewise. + * soft-fp/single.h (_FP_UNION_S): Likewise. + * soft-fp/double.h (_FP_UNION_D): Likewise. + 2012-02-29 Joseph Myers <jos...@codesourcery.com> [BZ #13786] diff --git a/soft-fp/double.h b/soft-fp/double.h index e247e6e..5bad49c 100644 --- a/soft-fp/double.h +++ b/soft-fp/double.h @@ -1,6 +1,6 @@ /* Software floating-point emulation. Definitions for IEEE Double Precision - Copyright (C) 1997, 1998, 1999, 2006, 2007, 2008, 2009 + Copyright (C) 1997, 1998, 1999, 2006, 2007, 2008, 2009, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (r...@cygnus.com), @@ -67,7 +67,7 @@ typedef float DFtype __attribute__((mode(DF))); union _FP_UNION_D { DFtype flt; - struct { + struct _FP_STRUCT_LAYOUT { #if __BYTE_ORDER == __BIG_ENDIAN unsigned sign : 1; unsigned exp : _FP_EXPBITS_D; @@ -166,7 +166,7 @@ union _FP_UNION_D union _FP_UNION_D { DFtype flt; - struct { + struct _FP_STRUCT_LAYOUT { #if __BYTE_ORDER == __BIG_ENDIAN unsigned sign : 1; unsigned exp : _FP_EXPBITS_D; diff --git a/soft-fp/extended.h b/soft-fp/extended.h index 3ab6b6a..af9c6e6 100644 --- a/soft-fp/extended.h +++ b/soft-fp/extended.h @@ -1,6 +1,6 @@ /* Software floating-point emulation. Definitions for IEEE Extended Precision. - Copyright (C) 1999,2006,2007 Free Software Foundation, Inc. + Copyright (C) 1999,2006,2007,2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek (j...@ultra.linux.cz). @@ -63,7 +63,7 @@ typedef float XFtype __attribute__((mode(XF))); union _FP_UNION_E { XFtype flt; - struct + struct _FP_STRUCT_LAYOUT { #if __BYTE_ORDER == __BIG_ENDIAN unsigned long pad1 : _FP_W_TYPE_SIZE; @@ -262,7 +262,7 @@ union _FP_UNION_E union _FP_UNION_E { XFtype flt; - struct { + struct _FP_STRUCT_LAYOUT { #if __BYTE_ORDER == __BIG_ENDIAN _FP_W_TYPE pad : (_FP_W_TYPE_SIZE - 1 - _FP_EXPBITS_E); unsigned sign : 1; diff --git a/soft-fp/quad.h b/soft-fp/quad.h index ea70138..b05bd2d 100644 --- a/soft-fp/quad.h +++ b/soft-fp/quad.h @@ -1,6 +1,6 @@ /* Software floating-point emulation. Definitions for IEEE Quad Precision. - Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc. + Copyright (C) 1997,1998,1999,2006,2007,2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (r...@cygnus.com), Jakub Jelinek (j...@ultra.linux.cz), @@ -66,7 +66,7 @@ typedef float TFtype __attribute__((mode(TF))); union _FP_UNION_Q { TFtype flt; - struct + struct _FP_STRUCT_LAYOUT { #if __BYTE_ORDER == __BIG_ENDIAN unsigned sign : 1; @@ -170,10 +170,10 @@ union _FP_UNION_Q union _FP_UNION_Q { TFtype flt /* __attribute__((mode(TF))) */ ; - struct { + struct _FP_STRUCT_LAYOUT { _FP_W_TYPE a, b; } longs; - struct { + struct _FP_STRUCT_LAYOUT { #if __BYTE_ORDER == __BIG_ENDIAN unsigned sign : 1; unsigned exp : _FP_EXPBITS_Q; diff --git a/soft-fp/single.h b/soft-fp/single.h index c10d25a..119d0db 100644 --- a/soft-fp/single.h +++ b/soft-fp/single.h @@ -1,6 +1,6 @@ /* Software floating-point emulation. Definitions for IEEE Single Precision. - Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc. + Copyright (C) 1997,1998,1999,2006,2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (r...@cygnus.com), Jakub Jelinek (j...@ultra.linux.cz), @@ -57,7 +57,7 @@ typedef float SFtype __attribute__((mode(SF))); union _FP_UNION_S { SFtype flt; - struct { + struct _FP_STRUCT_LAYOUT { #if __BYTE_ORDER == __BIG_ENDIAN unsigned sign : 1; unsigned exp : _FP_EXPBITS_S; diff --git a/soft-fp/soft-fp.h b/soft-fp/soft-fp.h index ed4d39d..46cb1cf 100644 --- a/soft-fp/soft-fp.h +++ b/soft-fp/soft-fp.h @@ -1,5 +1,5 @@ /* Software floating-point emulation. - Copyright (C) 1997,1998,1999,2000,2002,2003,2005,2006,2007 + Copyright (C) 1997,1998,1999,2000,2002,2003,2005,2006,2007,2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (r...@cygnus.com), @@ -84,6 +84,16 @@ #define FP_EX_DENORM 0 #endif +/* _FP_STRUCT_LAYOUT may be defined as an attribute to determine the + struct layout variant used for structures where bit-fields are used + to access specific parts of binary floating-point numbers. This is + required for systems where the default ABI uses struct layout with + differences in how consecutive bit-fields are laid out from the + default expected by soft-fp. */ +#ifndef _FP_STRUCT_LAYOUT +#define _FP_STRUCT_LAYOUT +#endif + #ifdef _FP_DECL_EX #define FP_DECL_EX \ int _fex = 0; \ -- Joseph S. Myers jos...@codesourcery.com