Messages in this thread | | | Date | Mon, 6 May 2019 14:35:59 -0700 | From | Jakub Kicinski <> | Subject | Re: netronome/nfp/bpf/jit.c cannot be build with -O3 |
| |
On Mon, 06 May 2019 23:24:39 +0200, Oleksandr Natalenko wrote: > Hi. > > On 06.05.2019 23:00, Jakub Kicinski wrote: > > Any chance you could try different compiler versions? The code in > > question does not look too unusual. Could you try if removing > > FIELD_FIT() on line 326 makes a difference? > > If building with gcc from CentOS 7: > > gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) > > the issue is not reproducible.
I just did a make CC=gcc-8 CFLAGS=-O3 with GCC 8.2 here, and doesn't seem to trigger either.
> Also, commenting out the whole "if" block with FIELD_FIT() prevents the > issue from occurring too.
Hm, could it be that GCC 8.3 has some constant propagation bug which breaks BUILD_BUG_ON()? My uneducated guess it tries to pull the mask validation out of FIELD_FIT() and FIELD_PREP() into one place but in doing so loses some information.
| |