Print this page
3373 gcc >= 4.5 concerns about offsetof()

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/ib/clients/of/sol_ofs/sol_cma.h
          +++ new/usr/src/uts/common/sys/ib/clients/of/sol_ofs/sol_cma.h
↓ open down ↓ 28 lines elided ↑ open up ↑
  29   29  #ifdef __cplusplus
  30   30  extern "C" {
  31   31  #endif
  32   32  
  33   33  
  34   34  #include <sys/ib/clients/of/sol_ofs/sol_ofs_common.h>
  35   35  #include <sys/ib/clients/of/rdma/rdma_cm.h>
  36   36  #include <sys/ib/clients/of/sol_ofs/sol_ib_cma.h> /* Transport Specific */
  37   37  
  38   38  #if !defined(offsetof)
  39      -#define offsetof(s, m)          (size_t)(&(((s *)0)->m))
       39 +#if defined(__GNUC__)
       40 +#define offsetof(s, m)  __builtin_offsetof(s, m)
       41 +#else
       42 +#define offsetof(s, m)  ((size_t)(&(((s *)0)->m)))
       43 +#endif
  40   44  #endif
  41   45  
  42   46  #define IS_UDP_CMID(idp)        ((idp)->ps == RDMA_PS_UDP || \
  43   47          (idp)->ps == RDMA_PS_IPOIB)
  44   48  #define IS_VALID_SOCKADDR(sockaddrp) \
  45   49          ((sockaddrp)->sa_family == AF_INET || \
  46   50          (sockaddrp)->sa_family == AF_INET6)
  47   51  
  48   52  /*
  49   53   * Global structure which contains information about all
↓ open down ↓ 328 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX