From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by yocto-www.yoctoproject.org (Postfix, from userid 118) id 1FB20E009D9; Wed, 21 Oct 2015 05:05:09 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on yocto-www.yoctoproject.org X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, URIBL_JP_SURBL autolearn=no version=3.3.1 X-Spam-HAM-Report: * -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low * trust * [209.85.212.172 listed in list.dnswl.org] * 1.2 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist * [URIs: gherzan.ro] * -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] Received: from mail-wi0-f172.google.com (mail-wi0-f172.google.com [209.85.212.172]) by yocto-www.yoctoproject.org (Postfix) with ESMTP id D9D53E00985 for ; Wed, 21 Oct 2015 05:05:06 -0700 (PDT) Received: by wijp11 with SMTP id p11so91489127wij.0 for ; Wed, 21 Oct 2015 05:05:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=f0BPUHF94oxgRaOkbON/2BD3HhkZmoGuBiefE7fgB3U=; b=JvKQCBHq4sJY9A0DHvr6t5roMqcXV9f7yO+NrPivSO676B7ZoIN+GAjsSSCRo3egla iv2O095Xie6VePuPR12J42LJ96TYjkToE9kRjRz5spa0IxLVfJWgz1TPNPSNYLZNU6k/ wo6ZywMs2Rdbj8vsz+bBXYTkJK8veItVaDFHxcnKrRuW2GQZVw1MxHQ10ryF/VRykTlM 2Mx3xYu0lJmi504XzDLkTxi8sgNh1Zt+8ukTcI2zM/UIqIhGZAoo++zym86YJTJq7gnL Xu5ODkFba52Nkirw7nwcDh00UQRUKnBKOO3CZ2tBlvls0LIUCz+diivef2ARBUi4WFUq +8Yw== X-Gm-Message-State: ALoCoQmjsxmakG6l2LjbXMtexUPqTJX4yfjOO1o90KaVnZ3MrqOuVbhdZLlMTLtiR5i5qZNy6dj0 X-Received: by 10.180.184.232 with SMTP id ex8mr10296562wic.15.1445429105383; Wed, 21 Oct 2015 05:05:05 -0700 (PDT) Received: from resin (220.204.eduroam.dynamic.rbg.tum.de. [131.159.204.220]) by smtp.gmail.com with ESMTPSA id mx13sm7027007wic.19.2015.10.21.05.05.02 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Oct 2015 05:05:03 -0700 (PDT) Date: Wed, 21 Oct 2015 14:05:00 +0200 From: Andrei Gherzan To: Joachim Schiele Message-ID: <20151021120500.GA5610@resin> References: <20151003203312.GD24208@resin> <20151003204050.GE24208@resin> <20151003204607.GF24208@resin> <20151003212752.GG24208@resin> <20151003215305.GH24208@resin> <20151013171357.GA6512@resin> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Cc: yocto@yoctoproject.org Subject: Re: [meta-raspberrypi][PATCH V4 1/5] userland: Fix install prefix and generate pkgconfigs X-BeenThere: yocto@yoctoproject.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Discussion of all things Yocto Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2015 12:05:09 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hello, On Thu, Oct 15, 2015 at 04:57:13PM +0200, Joachim Schiele wrote: > On 13.10.2015 19:13, Andrei Gherzan wrote: > > On Tue, Oct 13, 2015 at 02:14:28AM +0200, Joachim Schiele wrote: > >> 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 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 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 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 ;-) > >> > >> > >> -- > >> _______________________________________________ > >> yocto mailing list > >> yocto@yoctoproject.org > >> https://lists.yoctoproject.org/listinfo/yocto > > > > Hi Joachim, > > > > I'm not sure how would this help as long as the pc file is generated by > > userland and the error I'm facing is while compiling userland. > > > > -- > > Andrei Gherzan > > > > hi andrei, > > you are right, my last answer was actually fror a different problem. > after looking into this issue, which is basically finding a way to make > -j n (with n > 1) work: > > --- in short --- > so add a custom dependency: > > ######### interface/vmcs_host/CMakeLists.txt ######### > if (BUILD_WAYLAND) > wayland_add_protocol_server( > VCHOSTIF_SOURCE > ../../interface/wayland/dispmanx.xml > dispmanx > ) > + add_custom_target (myVmcs_hostTarget DEPENDS > wayland-dispmanx-server-protocol.h) > > ######### interface/khronos/CMakeLists.txt ######### > add_library(wayland-egl ${SHARED} ${WAYLAND_EGL_SOURCE}) > + add_dependencies(wayland-egl myVmcs_hostTarget) > install(TARGETS wayland-egl DESTINATION lib) > > > note: i consider this a rather hacky solution. it works but assumes the > filename to be wayland-dispmanx-server-protocol.h even though if someone > changes the cmake function called 'wayland_add_protocol_server' (which > comes with the patch) to use a different filename, it will break. > > the cmake background is described here: > # > http://stackoverflow.com/questions/4010212/cmake-struggling-with-add-custom-command-dependencies > > tested with: conf/local.conf: > BB_NUMBER_THREADS = "4" > PARALLEL_MAKE = "-j 4" > I tried defining a custom dep too but the error persisted. As well, I recreated the patch using exactly your changes (for the sake of being on the same code) Index: git/interface/khronos/CMakeLists.txt =================================================================== --- git.orig/interface/khronos/CMakeLists.txt +++ git/interface/khronos/CMakeLists.txt @@ -95,6 +95,7 @@ if (BUILD_WAYLAND) ) . add_library(wayland-egl ${SHARED} ${WAYLAND_EGL_SOURCE}) + add_dependencies(wayland-egl myVmcs_hostTarget) install(TARGETS wayland-egl DESTINATION lib) . configure_file ("wayland-egl/wayland-egl.pc.in" "wayland-egl/wayland-egl.pc" @ONLY) Index: git/interface/vmcs_host/CMakeLists.txt =================================================================== --- git.orig/interface/vmcs_host/CMakeLists.txt +++ git/interface/vmcs_host/CMakeLists.txt @@ -23,6 +23,7 @@ wayland_add_protocol_server( ../../interface/wayland/dispmanx.xml dispmanx ) +add_custom_target (myVmcs_hostTarget DEPENDS wayland-dispmanx-server-protocol.h) endif () . add_library(vchostif ${VCHOSTIF_SOURCE}) Now. Even with this patch, the compile fails sometimes with: tmp/work/raspberrypi2-poky-linux-gnueabi/userland/git-r 5/git/interface/vmcs_host/vc_vchi_dispmanx.h:72:66: fatal error: interface/vmcs_host/wayland-dispm anx-server-protocol.h: No such file or directory I use autodetection of BB_NUMBER_THREADS and PARALLEL_MAKE. They end up: BB_NUMBER_THREADS="4" PARALLEL_MAKEINST="-j 4" Regards, -- Andrei Gherzan