[Bug bootstrap/28577] make of gcc-4.1.1 failed using icc v9.1.042 on ia64

wilson at specifix dot com gcc-bugzilla@gcc.gnu.org
Fri Aug 4 01:34:00 GMT 2006



------- Comment #2 from wilson at specifix dot com  2006-08-04 01:34 -------
Subject: Re:  make of gcc-4.1.1 failed using icc v9.1.042
 on ia64

pinskia at gcc dot gnu dot org wrote:
> ------- Comment #1 from pinskia at gcc dot gnu dot org  2006-08-02 20:13 -------
> If not, then what is the line 49 of the file /usr/include/sys/ucontext.h?

Essentially, we are using offsetof to size an array.  This would be a 
GCC extension that icc apparently does not support.

Here is an out of context copy of the relevant lines

#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
# define _SC_GR0_OFFSET 0xc8    /* pray that this is correct... */
#endif

typedef struct ucontext
   {
     union
       {
         mcontext_t _mc;
         struct
           {
             unsigned long _pad[_SC_GR0_OFFSET/8];
             struct ucontext *_link;     /* this should overlay sc_gr[0] */
           }
         _uc;
       }
     _u;
   }
ucontext_t;

Since current gcc uses __builtin_offsetof for both C and C++, this 
header file could perhaps be changed to use that, assuming of course 
that icc accepts this new extension, which maybe it does not.

This file is from glibc.  If anything needs to be changed here, it is 
glibc, not gcc.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28577



More information about the Java-prs mailing list