Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 02 Aug 2016 10:09:48 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 211304] 11.0 -r303168 buildkernel via devel/amd64-gcc fails for: dev/cxgbe/common/t4_hw.c warning: overflow in implicit constant conversion; more
Message-ID:  <bug-211304-8-vnX96S8UxH@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-211304-8@https.bugs.freebsd.org/bugzilla/>
References:  <bug-211304-8@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D211304

Mark Millard <markmi@dsl-only.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|11.0-STABLE                 |11.0-BETA3

--- Comment #4 from Mark Millard <markmi@dsl-only.net> ---
11.0-BETA2 and 11.0-BETA3 have been added to the Version list and x86/endia=
n.h
still has the implicit truncation referenced: So update Version to 11.0-BET=
A3.

My guess at this point is that changes for getting amd64-gcc based 11.0 bui=
lds
to work will be done after 11.0-RELEASE.



I'll note that Bruce Evans wrote a reply to the submittal notice that in pa=
rt
said:

Try this old patch.  The extra casts might fix this.  The removal of
masks is a style fix that perhaps depends on the casts to work.  IIRC,
without the casts, bswap16(x) and bswap32(x) can return extra bits in
some macro cases, so they are incompatible with the KPI.  In the
inline function cases, function semantics of course prevent the
extra bits from being returned, but the code might be a bit sloppy
in depending on this.

X Index: endian.h
X =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
X --- endian.h  (revision 302972)
X +++ endian.h  (working copy)
X @@ -65,20 +65,20 @@
X=20
X  #define      __bswap16_gen(x)        (__uint16_t)((x) << 8 | (x) >> 8)
X  #define      __bswap32_gen(x)                \
X -     (((__uint32_t)__bswap16((x) & 0xffff) << 16) | __bswap16((x) >> 16))
X +     (((__uint32_t)__bswap16(x) << 16) | __bswap16((x) >> 16))
X  #define      __bswap64_gen(x)                \
X -     (((__uint64_t)__bswap32((x) & 0xffffffff) << 32) | __bswap32((x) >>
32))
X +     (((__uint64_t)__bswap32(x) << 32) | __bswap32((x) >> 32))
X=20
X  #ifdef __GNUCLIKE_BUILTIN_CONSTANT_P
X  #define      __bswap16(x)                            \
X       ((__uint16_t)(__builtin_constant_p(x) ? \
X -         __bswap16_gen((__uint16_t)(x)) : __bswap16_var(x)))
X +         __bswap16_gen((__uint16_t)(x)) : __bswap16_var((__uint16_t)(x))=
))
X  #define      __bswap32(x)                    \
X       (__builtin_constant_p(x) ?      \
X -         __bswap32_gen((__uint32_t)(x)) : __bswap32_var(x))
X +         __bswap32_gen((__uint32_t)(x)) : __bswap32_var((__uint32_t)(x)))
X  #define      __bswap64(x)                    \
X       (__builtin_constant_p(x) ?      \
X -         __bswap64_gen((__uint64_t)(x)) : __bswap64_var(x))
X +         __bswap64_gen((__uint64_t)(x)) : __bswap64_var((__uint64_t)(x)))
X  #else
X  /* XXX these are broken for use in static initializers. */
X  #define      __bswap16(x)    __bswap16_var(x)

Bruce


(I've not tried his patch, in part because there are other submittals for
amd64-gcc build issues and I'm guessing that such submittals will not be
addressed for 11.0-STABLE until after 11.0-RELEASE. I've no clue if these
various submittals are complete in their coverage yet.)

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-211304-8-vnX96S8UxH>