[yocto] [meta-raspberrypi][PATCH V4 1/5] userland: Fix install prefix and generate pkgconfigs

Joachim Schiele js at lastlog.de
Mon Oct 12 17:14:28 PDT 2015


On 03.10.2015 23:53, Andrei Gherzan wrote:
> On Sat, Oct 03, 2015 at 02:47:24PM -0700, Khem Raj wrote:
>> On Sat, Oct 3, 2015 at 2:27 PM, Andrei Gherzan <andrei at gherzan.ro> wrote:
>>> On Sat, Oct 03, 2015 at 10:46:07PM +0200, Andrei Gherzan wrote:
>>>> On Sat, Oct 03, 2015 at 10:40:50PM +0200, Andrei Gherzan wrote:
>>>>> On Sat, Oct 03, 2015 at 10:33:12PM +0200, Andrei Gherzan wrote:
>>>>>> On Sat, Oct 03, 2015 at 01:31:24PM -0700, Khem Raj wrote:
>>>>>>> On Sat, Oct 3, 2015 at 1:11 PM, Andrei Gherzan <andrei at gherzan.ro> wrote:
>>>>>>>> On Sat, Oct 03, 2015 at 01:06:55PM -0700, Khem Raj wrote:
>>>>>>>>> On Sat, Oct 3, 2015 at 12:18 PM, Andrei Gherzan <andrei at gherzan.ro> wrote:
>>>>>>>>>> I tested with and without - same result.
>>>>>>>>>> DISTRO_FEATURES="alsa argp bluetooth ext2 irda largefile pcmcia usbgadget
>>>>>>>>>> usbhost wifi xattr nfs zeroconf pci 3g nfc x11 ipv4 ipv6 libc-backtrace
>>>>>>>>>> libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt
>>>>>>>>>> libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab
>>>>>>>>>> libc-ftraverse                  libc-getlogin libc-idn libc-inet-anl libc-libm
>>>>>>>>>> libc-locales libc-locale-code                   libc-memusage libc-nis
>>>>>>>>>> libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc
>>>>>>>>>> libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp
>>>>>>>>>> libc-posix-regexp-glibc                     libc-posix-wchar-io largefile
>>>>>>>>>> opengl ptest multiarch wayland pulseaudio sysvinit bluez5"
>>>>>>>>>>
>>>>>>>>>> No modification to the default poky distro.
>>>>>>>>>
>>>>>>>>> hmm I am using angstrom and it works there and for verification I now
>>>>>>>>> tried with OE-Core ( alone ) it works there too, can you check some
>>>>>>>>> other parameters that are there in your sandbox ? here is my build
>>>>>>>>>
>>>>>>>>>  MACHINE=raspberrypi2 bitbake userland
>>>>>>>>> Parsing recipes: 100%
>>>>>>>>> |######################################################################################################################################################################################################|
>>>>>>>>> ETA:  00:00:00
>>>>>>>>> Parsing of 918 .bb files complete (0 cached, 918 parsed). 1350
>>>>>>>>> targets, 59 skipped, 0 masked, 0 errors.
>>>>>>>>> NOTE: Resolving any missing task queue dependencies
>>>>>>>>>
>>>>>>>>> Build Configuration:
>>>>>>>>> BB_VERSION        = "1.28.0"
>>>>>>>>> BUILD_SYS         = "x86_64-linux"
>>>>>>>>> NATIVELSBSTRING   = "Ubuntu-14.04"
>>>>>>>>> TARGET_SYS        = "arm-oe-linux-gnueabi"
>>>>>>>>> MACHINE           = "raspberrypi2"
>>>>>>>>> DISTRO            = "nodistro"
>>>>>>>>> DISTRO_VERSION    = "nodistro.0"
>>>>>>>>> TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard
>>>>>>>>> vfpv4 cortexa7"
>>>>>>>>> TARGET_FPU        = "vfp-vfpv4-neon"
>>>>>>>>> meta-raspberrypi  = "kraj/master:a903a9cd18ae556121265da93ed74f857944a0da"
>>>>>>>>> meta              = "kraj/master:602e512b92bcc78403144fedeb4211bbf56ff1c8"
>>>>>>>>>
>>>>>>>>> NOTE: Preparing RunQueue
>>>>>>>>> NOTE: Executing SetScene Tasks
>>>>>>>>> NOTE: Executing RunQueue Tasks
>>>>>>>>> NOTE: Tasks Summary: Attempted 454 tasks of which 315 didn't need to
>>>>>>>>> be rerun and all succeeded.
>>>>>>>>
>>>>>>>> Here is my build configuration.
>>>>>>>>
>>>>>>>> Build Configuration:
>>>>>>>> BB_VERSION        = "1.28.0"
>>>>>>>> BUILD_SYS         = "x86_64-linux"
>>>>>>>> NATIVELSBSTRING   = "Arch-rolling"
>>>>>>>> TARGET_SYS        = "arm-poky-linux-gnueabi"
>>>>>>>> MACHINE           = "raspberrypi2"
>>>>>>>> DISTRO            = "poky"
>>>>>>>> DISTRO_VERSION    = "2.0"
>>>>>>>> TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard vfpv4
>>>>>>>> cortexa7"
>>>>>>>> TARGET_FPU        = "vfp-vfpv4-neon"
>>>>>>>> meta
>>>>>>>> meta-yocto
>>>>>>>> meta-yocto-bsp    = "master:eac61f37e36099f74485dab398b57f3812826d17"
>>>>>>>> meta-raspberrypi  = "master:48da0cdc5fb147a20b41a77b2dfeef4efd483b32"
>>>>>>>> meta-oe
>>>>>>>> meta-multimedia   = "master:f4533380c8a5c1d229f692222ee0c2ef9d187ef8"
>>>>>>>>
>>>>>>>>
>>>>>>>> But anyway can you please check in your userland install dir for the header I'm
>>>>>>>> missing? Or in sysroot.
>>>>>>>
>>>>>>> its part of userland itself so no other package should be needed and
>>>>>>> not required in sysroot
>>>>>>>
>>>>>>> ./work/raspberrypi2-oe-linux-gnueabi/userland/git-r5/package/usr/src/debug/userland/git-r5/build/interface/vmcs_host/wayland-dispmanx-server-protocol.h
>>>>>>> ./work/raspberrypi2-oe-linux-gnueabi/userland/git-r5/packages-split/userland-dbg/usr/src/debug/userland/git-r5/build/interface/vmcs_host/wayland-dispmanx-server-protocol.h
>>>>>>> ./work/raspberrypi2-oe-linux-gnueabi/userland/git-r5/build/interface/khronos/wayland-dispmanx-server-protocol.h
>>>>>>> ./work/raspberrypi2-oe-linux-gnueabi/userland/git-r5/build/interface/vmcs_host/wayland-dispmanx-server-protocol.h
>>>>>>
>>>>>> This is odd... what revision of userland are you using? The one on current
>>>>>> meta-rpi master?
>>>>>>
>>>>>> --
>>>>>> Andrei Gherzan
>>>>>
>>>>> This is not even in the current HEAD of master in userland official repository:
>>>>> https://github.com/raspberrypi/userland/tree/master/interface/vmcs_host
>>>>>
>>>>> Are you sure you don't inject the file somehow? I really don't know what's
>>>>> going on.
>>>>>
>>>>> --
>>>>> Andrei Gherzan
>>>>
>>>> I found the mistery. It gets generated in another path:
>>>> ./build/interface/khronos/wayland-dispmanx-server-protocol.h
>>>>
>>>> Figuring out why.
>>>>
>>>> --
>>>> Andrei Gherzan
>>>
>>> I managed to get to the bottom of this. It's a racing issue. Basically, with
>>> MAKE_PARALLEL high enough, the
>>>
>>> add_library(EGL ${SHARED} ${EGL_SOURCE})
>>>
>>> in git/interface/khronos/CMakeLists.txt gets to run before the header is
>>> generated. No dependency configured for that. And in the sources of EGL there
>>> is egl_wayland.c which includes the generated header by the call:
>>>
>>> wayland_add_protocol_server(
>>>        EGL_SOURCE
>>>        ../../interface/wayland/dispmanx.xml
>>>        dispmanx
>>> )
>>>
>>> Any idea how to define this dependency? What is the value of your PARALLEL_MAKE
>>
>> I use -j16, can you add the .h file with path to EGL_SOURCE
> 
> Adding the path to EGL_SOURCE won't work because cmake will complain that the
> header is not in place. We need a dependency definition.
> 
> --
> Andrei Gherzan
> 

in this file:
./tmp/work/raspberrypi-poky-linux-gnueabi/userland/git-r5/egl.pc"

i replaced

Cflags: -I${includedir}/vc -I${includedir}/interface
-I${includedir}/interface/vcos -I${includedir}/interface/vcos/pthreads

with that

Cflags: -I${includedir}/vc -I${includedir}/interface
-I${includedir}/interface/vcos -I${includedir}/interface/vcos/pthreads
-I../build/interface/khronos/

(basically adding -I../build/interface/khronos/)

IIRC that worked for me. you can give that a try at least ;-)





More information about the yocto mailing list