[OE-core] [PATCH 0/5] kernel-yocto: misc build / config changes

richard.purdie at linuxfoundation.org richard.purdie at linuxfoundation.org
Fri Aug 30 16:19:41 UTC 2019


On Fri, 2019-08-30 at 10:50 -0400, Bruce Ashfield wrote:
> On Fri, Aug 30, 2019 at 10:39 AM <richard.purdie at linuxfoundation.org>
> wrote:
> > On Thu, 2019-08-29 at 11:32 -0400, Bruce Ashfield wrote:
> > > On Thu, Aug 29, 2019 at 11:31 AM Bruce Ashfield
> > > <bruce.ashfield at gmail.com> wrote:
> > > > On Thu, Aug 29, 2019 at 11:28 AM Jonathan Rajotte-Julien
> > > > <jonathan.rajotte-julien at efficios.com> wrote:
> > > > > > FWIW: lttng-ust builds fine for me with the 5.2 kernel +
> > > > > > 5.2
> > > > > > headers,
> > > > > > it is one of the things I build and test as part of
> > > > > > core-image-kernel-dev.
> > > > > 
> > > > > Even on ppc?
> > > > > 
> > > > 
> > > > yup. I build all arches for core-image-kernel-dev, which
> > > > includes
> > > > all of lttng.
> > > 
> > > but I've recently switched to RP's master-next branch, so
> > > hopefully a
> > > difference in the configs will pop out.
> > 
> > I'll post here about what I'm finding. eudev fails since
> > SO_SNDTIMEO
> > isn't defined. This comes from asm-generic/socket.h which
> > asm/socket.h
> > include.
> > 
> > richard at jet:work/ppce300c3-poky-linux/eudev/3.2.8-
> > r0/build/src/shared$ /media/build1/poky/build/tmp/work/ppce300c3-
> > poky-linux/eudev/3.2.8-r0/recipe-sysroot-native/usr/bin/powerpc-
> > poky-linux/powerpc-poky-linux-gcc -m32 -mhard-float -mcpu=e300c3
> > -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-
> > security -Werror=format-security --
> > sysroot=/media/build1/poky/build/tmp/work/ppce300c3-poky-
> > linux/eudev/3.2.8-r0/recipe-sysroot -DHAVE_CONFIG_H -I.
> > -I../../../eudev-3.2.8/src/shared -I../.. -DUDEV_ROOT_RUN=\"/run\"
> > -include ../../config.h -O2 -pipe -g -feliminate-unused-debug-types 
> > -fmacro-prefix-map=/media/build1/poky/build/tmp/work/ppce300c3-
> > poky-linux/eudev/3.2.8-r0=/usr/src/debug/eudev/3.2.8-r0 -fdebug-
> > prefix-map=/media/build1/poky/build/tmp/work/ppce300c3-poky-
> > linux/eudev/3.2.8-r0=/usr/src/debug/eudev/3.2.8-r0 -fdebug-prefix-
> > map=/media/build1/poky/build/tmp/work/ppce300c3-poky-
> > linux/eudev/3.2.8-r0/recipe-sysroot= -fdebug-prefix-
> > map=/media/build1/poky/build/tmp/work/ppce300c3-poky-
> > linux/eudev/3.2.8-r0/recipe-sysroot-native= -c ../../../eudev-
> > 3.2.8/src/shared/log.c  -fPIC -DPIC -o .libs/log.o
> > ../../../eudev-3.2.8/src/shared/log.c: In function
> > 'create_log_socket':
> > ../../../eudev-3.2.8/src/shared/log.c:128:43: error: 'SO_SNDTIMEO'
> > undeclared (first use in this function); did you mean 'SO_TXTIME'?
> >   128 |         (void) setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv,
> > sizeof(tv));
> >       |                                           ^~~~~~~~~~~
> >       |                                           SO_TXTIME
> > 
> > The file:
> > ppce300c3-poky-linux/eudev/3.2.8-r0/recipe-sysroot/usr/include/asm-
> > generic/socket.h
> > isn't included.
> > 
> > if I put:
> > 
> > #include <asm-generic/socket.h>
> > 
> > at the top of log.c it will build, everything else doesn't.
> > 
> > Debugging with gcc -e shows its including a different 'interesting'
> > file.
> > 
> > My build has a
> > build/tmp/work/ppce300c3-poky-linux/eudev/3.2.8-r0/recipe-sysroot-
> > native/usr/lib/powerpc-poky-linux/gcc/powerpc-poky-
> > linux/9.2.0/include-fixed/asm-generic/socket.h
> > which looks totally wrong when I compare it to the real asm-
> > generic/socket.h.
> 
> This is similar to what I was seeing on some early qemuppc builds as
> well. fixincludes was tossing out the original file and putting in a
> broken variant. I had to hide the "fixed" files to build. But then it
> stopped happening, so I moved on.
> 
> I'm not familiar with how/when fixincludes fires, so I have no idea
> about any possible races, etc, that could be happening.
> 
> I'll do some more research down that route to see if anything pops
> up.

For the achieves, I've posted a patch which should fix this. Its due to
headers leaking into includes-fixed in gcc which has its dependency on
linux-libc-headers marked as "safe" for various reasons.

We don't need gcc to do this on linux so we can remove them. It
explains Bruce's previous fun here too.

We'll try a new build and see how things look with that fix.

Cheers,

Richard



More information about the Openembedded-core mailing list