From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C75BAC2D0CE for ; Tue, 21 Jan 2020 13:52:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 77FBE21569 for ; Tue, 21 Jan 2020 13:52:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="uV6p7mOF" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729074AbgAUNwH (ORCPT ); Tue, 21 Jan 2020 08:52:07 -0500 Received: from perceval.ideasonboard.com ([213.167.242.64]:51476 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729073AbgAUNwH (ORCPT ); Tue, 21 Jan 2020 08:52:07 -0500 Received: from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 201AE52A; Tue, 21 Jan 2020 14:52:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1579614725; bh=oC5lsywz9hBMHT35z4zpz5XtvrW9n7huZX9mpw0KkPE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=uV6p7mOFeKnklsDnLRF3rOLuedGMjkgZ529uPoNU1owaTwePKKUhhCsMzsBo6JTCk ppwJZcAkVB8P7EvbrDoRBfsQLqTape9mIFu0/q6fEn+jM8xsoMVrigORaLNc1cbAfF B0rLaNihcGlCfAE8h2APLjdRpShBquh6ZnuHSTeo= Date: Tue, 21 Jan 2020 15:51:49 +0200 From: Laurent Pinchart To: Mauro Carvalho Chehab Cc: Kieran Bingham , LibCamera Devel , Jenkins Builder Robot , linux-media@vger.kernel.org Subject: Re: [libcamera-devel] Build failed in Jenkins: libcamera #72 Message-ID: <20200121135149.GA7686@pendragon.ideasonboard.com> References: <659134945.14.1579046596894.JavaMail.jenkins@builder.linuxtv.org> <263aa6e2-9b6c-5939-687d-005ae8fc2059@ideasonboard.com> <20200121141246.4d1b2ac5@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200121141246.4d1b2ac5@kernel.org> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Hi Mauro, On Tue, Jan 21, 2020 at 02:12:46PM +0100, Mauro Carvalho Chehab wrote: > Em Sun, 19 Jan 2020 21:16:31 +0000 Kieran Bingham escreveu: > > Hi Mauro, > > > > It looks like the Jenkins jobs for Libcamera are failing continuously. > > > > I believe it looks like the jobs reuse an existing build configuration, > > and that doesn't get reconfigured if we change the top level meson.build > > or such. > > > > In particular, here we have changed to C++14, and the build should > > certainly be done from clean, as compiler flags should be updated. > > > > As a side note, is it possible (or desirable?) to cc > > on these failures to make sure we > > see them? > > > > On 15/01/2020 00:03, Jenkins Builder Robot wrote: > > > See > > > > > > Changes: > > > > > > [laurent.pinchart] meson.build: Switch to C++14 > > > > > > [laurent.pinchart] libcamera: Switch from utils::make_unique to std::make_unique > > > > > > > > > ------------------------------------------ > > > Started by an SCM change > > > Running as SYSTEM > > > Building remotely on slave1 in workspace > > > No credentials specified > > > > git rev-parse --is-inside-work-tree # timeout=10 > > > Fetching changes from the remote Git repository > > > > git config remote.origin.url git://linuxtv.org/libcamera.git # timeout=10 > > > Fetching upstream changes from git://linuxtv.org/libcamera.git > > > > git --version # timeout=10 > > > > git fetch --tags --force --progress -- git://linuxtv.org/libcamera.git +refs/heads/*:refs/remotes/origin/* # timeout=10 > > > > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 > > > > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10 > > > Checking out Revision acf18e4265dec2991e62f7c8baecfacf1a6708b3 (refs/remotes/origin/master) > > > > git config core.sparsecheckout # timeout=10 > > > > git checkout -f acf18e4265dec2991e62f7c8baecfacf1a6708b3 # timeout=10 > > > Commit message: "libcamera: Switch from utils::make_unique to std::make_unique" > > > > git rev-list --no-walk 055335bf49dbcb8c149bdcd4e96004c68e6b6ece # timeout=10 > > > [libcamera] $ /bin/sh -xe /tmp/jenkins2777310540601637282.sh > > > + meson build -Dandroid=true > > > Directory already configured. > > > > ^^ This implies the previous build is being re-used. > > > > Perhaps for a CI job, would it make more sense to do from-scratch clean > > configure and rebuilds? > > > > It would be nice if meson always knew when to reconfigure, but I'm not > > sure how to make sure that always happens :-D > > > > > Just run your build command (e.g. ninja) and Meson will regenerate as necessary. > > > If ninja fails, run "ninja reconfigure" or "meson --reconfigure" > > > to force Meson to regenerate. > > > > > > If build failures persist, run "meson setup --wipe" to rebuild from scratch > > > using the same options as passed when configuring the build. > > > To change option values, run "meson configure" instead. > > > + cd build > > > + ninja > > > [0/1] Regenerating build files. > > > The Meson build system > > > Version: 0.49.2 > > > Source dir: > > > Build dir: > > > Build type: native build > > > Project name: libcamera > > > Project version: 0.0.0 > > > Native C compiler: ccache cc (gcc 8.3.0 "cc (Debian 8.3.0-6) 8.3.0") > > > Native C++ compiler: ccache c++ (gcc 8.3.0 "c++ (Debian 8.3.0-6) 8.3.0") > > > Build machine cpu family: x86_64 > > > Build machine cpu: x86_64 > > > Header has symbol "backtrace" : YES > > > Header has symbol "secure_getenv" : YES > > > Configuring version.h using configuration > > > Dependency libudev found: YES (cached) > > > Library atomic found: YES > > > Library dl found: YES > > > Dependency threads found: YES (cached) > > > WARNING: rcc dependencies will not work reliably until this upstream issue is fixed: https://bugreports.qt.io/browse/QTBUG-45460 > > > Dependency qt5 found: YES (cached) > > > Detecting Qt5 tools > > > moc: YES (/usr/lib/x86_64-linux-gnu/qt5/bin/moc, 5.11.3) > > > uic: YES (/usr/lib/x86_64-linux-gnu/qt5/bin/uic, 5.11.3) > > > rcc: YES (/usr/lib/x86_64-linux-gnu/qt5/bin/rcc, 5.11.3) > > > lrelease: NO > > > Program doxygen found: YES (/usr/bin/doxygen) > > > Configuring Doxyfile using configuration > > > Program sphinx-build-3 found: NO > > > Program sphinx-build found: YES (/usr/bin/sphinx-build) > > > Configuring config.h using configuration > > > Build targets in project: 68 > > > Option werror is: True [default: true] > > > Option cpp_std is: c++11 [default: c++14] > > > Found ninja-1.8.2 at /usr/bin/ninja > > > [1/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/buffer.cpp.o'. > > > [2/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/message.cpp.o'. > > > [3/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/object.cpp.o'. > > > [4/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/media_object.cpp.o'. > > > [5/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/process.cpp.o'. > > > [6/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o'. > > > FAILED: src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o > > > ccache c++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera -I../src/libcamera -Iinclude -I../include -Isrc/libcamera/include -I../src/libcamera/include -I../include/android/hardware/libhardware/include/ -I../include/android/metadata/ -I../include/android/system/core/include -Iinclude/libcamera -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter -include config.h -fPIC -pthread -MD -MQ 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o' -MF 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o.d' -o 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o' -c ../src/libcamera/pipeline/vimc.cpp > > > ../src/libcamera/pipeline/vimc.cpp: In member function ‘virtual bool libcamera::PipelineHandlerVimc::match(libcamera::DeviceEnumerator*)’: > > > ../src/libcamera/pipeline/vimc.cpp:368:46: error: ‘make_unique’ is not a member of ‘std’ > > > std::unique_ptr data = std::make_unique(this); > > > ^~~~~~~~~~~ > > > ../src/libcamera/pipeline/vimc.cpp:368:46: note: ‘std::make_unique’ is defined in header ‘’; did you forget to ‘#include ’? > > > ../src/libcamera/pipeline/vimc.cpp:34:1: > > > +#include > > > > > > ../src/libcamera/pipeline/vimc.cpp:368:46: > > > std::unique_ptr data = std::make_unique(this); > > > ^~~~~~~~~~~ > > > ../src/libcamera/pipeline/vimc.cpp:368:72: error: expected primary-expression before ‘>’ token > > > std::unique_ptr data = std::make_unique(this); > > > ^ > > > [7/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/framebuffer_allocator.cpp.o'. > > > [8/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_ipu3_ipu3.cpp.o'. > > > FAILED: src/libcamera/4ab8042@@camera@sha/pipeline_ipu3_ipu3.cpp.o > > > ccache c++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera -I../src/libcamera -Iinclude -I../include -Isrc/libcamera/include -I../src/libcamera/include -I../include/android/hardware/libhardware/include/ -I../include/android/metadata/ -I../include/android/system/core/include -Iinclude/libcamera -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter -include config.h -fPIC -pthread -MD -MQ 'src/libcamera/4ab8042@@camera@sha/pipeline_ipu3_ipu3.cpp.o' -MF 'src/libcamera/4ab8042@@camera@sha/pipeline_ipu3_ipu3.cpp.o.d' -o 'src/libcamera/4ab8042@@camera@sha/pipeline_ipu3_ipu3.cpp.o' -c ../src/libcamera/pipeline/ipu3/ipu3.cpp > > > ../src/libcamera/pipeline/ipu3/ipu3.cpp: In member function ‘int libcamera::PipelineHandlerIPU3::registerCameras()’: > > > ../src/libcamera/pipeline/ipu3/ipu3.cpp:879:9: error: ‘make_unique’ is not a member of ‘std’ > > > std::make_unique(this); > > > ^~~~~~~~~~~ > > > ../src/libcamera/pipeline/ipu3/ipu3.cpp:879:9: note: ‘std::make_unique’ is defined in header ‘’; did you forget to ‘#include ’? > > > ../src/libcamera/pipeline/ipu3/ipu3.cpp:29:1: > > > +#include > > > > > > ../src/libcamera/pipeline/ipu3/ipu3.cpp:879:9: > > > std::make_unique(this); > > > ^~~~~~~~~~~ > > > ../src/libcamera/pipeline/ipu3/ipu3.cpp:879:35: error: expected primary-expression before ‘>’ token > > > std::make_unique(this); > > > ^ > > > [9/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/request.cpp.o'. > > > [10/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_timeline.cpp.o'. > > > [11/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_handler.cpp.o'. > > > [12/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/proxy_ipa_proxy_linux.cpp.o'. > > > FAILED: src/libcamera/4ab8042@@camera@sha/proxy_ipa_proxy_linux.cpp.o > > > ccache c++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera -I../src/libcamera -Iinclude -I../include -Isrc/libcamera/include -I../src/libcamera/include -I../include/android/hardware/libhardware/include/ -I../include/android/metadata/ -I../include/android/system/core/include -Iinclude/libcamera -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter -include config.h -fPIC -pthread -MD -MQ 'src/libcamera/4ab8042@@camera@sha/proxy_ipa_proxy_linux.cpp.o' -MF 'src/libcamera/4ab8042@@camera@sha/proxy_ipa_proxy_linux.cpp.o.d' -o 'src/libcamera/4ab8042@@camera@sha/proxy_ipa_proxy_linux.cpp.o' -c ../src/libcamera/proxy/ipa_proxy_linux.cpp > > > In file included from ../src/libcamera/proxy/ipa_proxy_linux.cpp:14: > > > ../src/libcamera/proxy/ipa_proxy_linux.cpp: In member function ‘virtual std::unique_ptr libcamera::IPAProxyLinuxFactory::create(libcamera::IPAModule*)’: > > > ../src/libcamera/include/ipa_proxy.h:58:15: error: ‘make_unique’ is not a member of ‘std’ > > > return std::make_unique(ipam); \ > > > ^~~~~~~~~~~ > > > ../src/libcamera/proxy/ipa_proxy_linux.cpp:93:1: note: in expansion of macro ‘REGISTER_IPA_PROXY’ > > > REGISTER_IPA_PROXY(IPAProxyLinux) > > > ^~~~~~~~~~~~~~~~~~ > > > ../src/libcamera/include/ipa_proxy.h:58:15: note: ‘std::make_unique’ is defined in header ‘’; did you forget to ‘#include ’? > > > return std::make_unique(ipam); \ > > > ^~~~~~~~~~~ > > > ../src/libcamera/proxy/ipa_proxy_linux.cpp:93:1: note: in expansion of macro ‘REGISTER_IPA_PROXY’ > > > REGISTER_IPA_PROXY(IPAProxyLinux) > > > ^~~~~~~~~~~~~~~~~~ > > > ../src/libcamera/include/ipa_proxy.h:58:32: error: expected primary-expression before ‘>’ token > > > return std::make_unique(ipam); \ > > > ^ > > > ../src/libcamera/proxy/ipa_proxy_linux.cpp:93:1: note: in expansion of macro ‘REGISTER_IPA_PROXY’ > > > REGISTER_IPA_PROXY(IPAProxyLinux) > > > ^~~~~~~~~~~~~~~~~~ > > > [13/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/.._android_camera3_hal.cpp.o'. > > > [14/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/device_enumerator_udev.cpp.o'. > > > [15/144] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o'. > > > FAILED: src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o > > > ccache c++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera -I../src/libcamera -Iinclude -I../include -Isrc/libcamera/include -I../src/libcamera/include -I../include/android/hardware/libhardware/include/ -I../include/android/metadata/ -I../include/android/system/core/include -Iinclude/libcamera -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter -include config.h -fPIC -pthread -MD -MQ 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o' -MF 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o.d' -o 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o' -c ../src/libcamera/pipeline/rkisp1/rkisp1.cpp > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp: In member function ‘void libcamera::RkISP1CameraData::queueFrameAction(unsigned int, const libcamera::IPAOperationData&)’: > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:391:33: error: ‘make_unique’ is not a member of ‘std’ > > > timeline_.scheduleAction(std::make_unique(frame, > > > ^~~~~~~~~~~ > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:391:33: note: ‘std::make_unique’ is defined in header ‘’; did you forget to ‘#include ’? > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:34:1: > > > +#include > > > > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:391:33: > > > timeline_.scheduleAction(std::make_unique(frame, > > > ^~~~~~~~~~~ > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:391:66: error: expected primary-expression before ‘>’ token > > > timeline_.scheduleAction(std::make_unique(frame, > > > ^ > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:392:12: error: left operand of comma operator has no effect [-Werror=unused-value] > > > sensor_, > > > ^~~~~~~ > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:392:12: error: right operand of comma operator has no effect [-Werror=unused-value] > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp: In member function ‘virtual int libcamera::PipelineHandlerRkISP1::queueRequestDevice(libcamera::Camera*, libcamera::Request*)’: > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:849:38: error: ‘make_unique’ is not a member of ‘std’ > > > data->timeline_.scheduleAction(std::make_unique(data->frame_, > > > ^~~~~~~~~~~ > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:849:38: note: ‘std::make_unique’ is defined in header ‘’; did you forget to ‘#include ’? > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:849:74: error: expected primary-expression before ‘>’ token > > > data->timeline_.scheduleAction(std::make_unique(data->frame_, > > > ^ > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:849:82: error: left operand of comma operator has no effect [-Werror=unused-value] > > > data->timeline_.scheduleAction(std::make_unique(data->frame_, > > > ~~~~~~^~~~~~ > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:851:13: error: right operand of comma operator has no effect [-Werror=unused-value] > > > this)); > > > ^~~~ > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp: In member function ‘int libcamera::PipelineHandlerRkISP1::createCamera(libcamera::MediaEntity*)’: > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:895:8: error: ‘make_unique’ is not a member of ‘std’ > > > std::make_unique(this); > > > ^~~~~~~~~~~ > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:895:8: note: ‘std::make_unique’ is defined in header ‘’; did you forget to ‘#include ’? > > > ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:895:36: error: expected primary-expression before ‘>’ token > > > std::make_unique(this); > > > ^ > > > cc1plus: all warnings being treated as errors > > > ninja: build stopped: subcommand failed. > > > Build step 'Execute shell' marked build as failure > > I added a clean step, just to be sure, e. g. the current build script is: > > ninja -C build clean > meson build -Dandroid=true > ninja -C build The recommended steps are meson -Dandroid=true build ninja -C build clean ninja -C build This will ensure the build directory is created if it doesn't exist before trying to run ninja in it. However, the meson step will will be a no-op in case the directory exists. If you want to change options for an existing build directory, you have to run meson --reconfigure -Dandroid=true build This will fail if the build directory doesn't exist. The following script should work in all cases. options="-Dandroid=true" if [[ -d build ]] ; then meson --reconfigure $options build else meson $options build fi ninja -C build clean ninja -C build > But it still produces errors when trying to build. Clean is a good idea, but won't be enough when core configuration options of the project change I'm afraid :-( We need to wipe out the build directory completely, or run meson configure -Dcpp_std=c++14 build However, the only configuration option that requires such an operation to prevent breakages is cpp_std, and we don't envision switching to C++17 very soon. Even if we did, that would be a one time change, as there's no other published C++ version after that :-) Could you handle this manually to fix the build ? No further action should be needed after that. While at it, could you also set -Dv4l2=true to compile-test the V4L2 compatibility layer ? -- Regards, Laurent Pinchart