[libcamera-devel] Build failed in Jenkins: libcamera #72

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Jan 21 14:47:07 CET 2020


Hi Mauro,

On 21/01/2020 13:12, Mauro Carvalho Chehab wrote:
> Em Sun, 19 Jan 2020 21:16:31 +0000
> Kieran Bingham <kieran.bingham at ideasonboard.com> 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
>> <libcamera-devel at lists.libcamera.org> on these failures to make sure we
>> see them?
>>
>> Thanks
>> --
>> Kieran
>>
>> On 15/01/2020 00:03, Jenkins Builder Robot wrote:
>>> See <https://builder.linuxtv.org/job/libcamera/72/display/redirect?page=changes>
>>>
>>> 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 <https://builder.linuxtv.org/job/libcamera/ws/>
>>> 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: <https://builder.linuxtv.org/job/libcamera/ws/>
>>> Build dir: <https://builder.linuxtv.org/job/libcamera/ws/build>
>>> 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 <execinfo.h> has symbol "backtrace" : YES
>>> Header <stdlib.h> 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 at sha/buffer.cpp.o'.
>>> [2/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/message.cpp.o'.
>>> [3/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/object.cpp.o'.
>>> [4/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/media_object.cpp.o'.
>>> [5/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/process.cpp.o'.
>>> [6/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/pipeline_vimc.cpp.o'.
>>> FAILED: src/libcamera/4ab8042@@camera at sha/pipeline_vimc.cpp.o 
>>> ccache c++ -Isrc/libcamera/4ab8042@@camera at 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 at sha/pipeline_vimc.cpp.o' -MF 'src/libcamera/4ab8042@@camera at sha/pipeline_vimc.cpp.o.d' -o 'src/libcamera/4ab8042@@camera at 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<VimcCameraData> data = std::make_unique<VimcCameraData>(this);
>>>                                               ^~~~~~~~~~~
>>> ../src/libcamera/pipeline/vimc.cpp:368:46: note: ‘std::make_unique’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
>>> ../src/libcamera/pipeline/vimc.cpp:34:1:
>>> +#include <memory>
>>>  
>>> ../src/libcamera/pipeline/vimc.cpp:368:46:
>>>   std::unique_ptr<VimcCameraData> data = std::make_unique<VimcCameraData>(this);
>>>                                               ^~~~~~~~~~~
>>> ../src/libcamera/pipeline/vimc.cpp:368:72: error: expected primary-expression before ‘>’ token
>>>   std::unique_ptr<VimcCameraData> data = std::make_unique<VimcCameraData>(this);
>>>                                                                         ^
>>> [7/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/framebuffer_allocator.cpp.o'.
>>> [8/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/pipeline_ipu3_ipu3.cpp.o'.
>>> FAILED: src/libcamera/4ab8042@@camera at sha/pipeline_ipu3_ipu3.cpp.o 
>>> ccache c++ -Isrc/libcamera/4ab8042@@camera at 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 at sha/pipeline_ipu3_ipu3.cpp.o' -MF 'src/libcamera/4ab8042@@camera at sha/pipeline_ipu3_ipu3.cpp.o.d' -o 'src/libcamera/4ab8042@@camera at 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<IPU3CameraData>(this);
>>>          ^~~~~~~~~~~
>>> ../src/libcamera/pipeline/ipu3/ipu3.cpp:879:9: note: ‘std::make_unique’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
>>> ../src/libcamera/pipeline/ipu3/ipu3.cpp:29:1:
>>> +#include <memory>
>>>  
>>> ../src/libcamera/pipeline/ipu3/ipu3.cpp:879:9:
>>>     std::make_unique<IPU3CameraData>(this);
>>>          ^~~~~~~~~~~
>>> ../src/libcamera/pipeline/ipu3/ipu3.cpp:879:35: error: expected primary-expression before ‘>’ token
>>>     std::make_unique<IPU3CameraData>(this);
>>>                                    ^
>>> [9/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/request.cpp.o'.
>>> [10/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/pipeline_rkisp1_timeline.cpp.o'.
>>> [11/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/pipeline_handler.cpp.o'.
>>> [12/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/proxy_ipa_proxy_linux.cpp.o'.
>>> FAILED: src/libcamera/4ab8042@@camera at sha/proxy_ipa_proxy_linux.cpp.o 
>>> ccache c++ -Isrc/libcamera/4ab8042@@camera at 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 at sha/proxy_ipa_proxy_linux.cpp.o' -MF 'src/libcamera/4ab8042@@camera at sha/proxy_ipa_proxy_linux.cpp.o.d' -o 'src/libcamera/4ab8042@@camera at 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::IPAProxy> 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<proxy>(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 ‘<memory>’; did you forget to ‘#include <memory>’?
>>>    return std::make_unique<proxy>(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<proxy>(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 at sha/.._android_camera3_hal.cpp.o'.
>>> [14/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/device_enumerator_udev.cpp.o'.
>>> [15/144] Compiling C++ object 'src/libcamera/4ab8042@@camera at sha/pipeline_rkisp1_rkisp1.cpp.o'.
>>> FAILED: src/libcamera/4ab8042@@camera at sha/pipeline_rkisp1_rkisp1.cpp.o 
>>> ccache c++ -Isrc/libcamera/4ab8042@@camera at 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 at sha/pipeline_rkisp1_rkisp1.cpp.o' -MF 'src/libcamera/4ab8042@@camera at sha/pipeline_rkisp1_rkisp1.cpp.o.d' -o 'src/libcamera/4ab8042@@camera at 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<RkISP1ActionSetSensor>(frame,
>>>                                  ^~~~~~~~~~~
>>> ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:391:33: note: ‘std::make_unique’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
>>> ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:34:1:
>>> +#include <memory>
>>>  
>>> ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:391:33:
>>>    timeline_.scheduleAction(std::make_unique<RkISP1ActionSetSensor>(frame,
>>>                                  ^~~~~~~~~~~
>>> ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:391:66: error: expected primary-expression before ‘>’ token
>>>    timeline_.scheduleAction(std::make_unique<RkISP1ActionSetSensor>(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<RkISP1ActionQueueBuffers>(data->frame_,
>>>                                       ^~~~~~~~~~~
>>> ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:849:38: note: ‘std::make_unique’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
>>> ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:849:74: error: expected primary-expression before ‘>’ token
>>>   data->timeline_.scheduleAction(std::make_unique<RkISP1ActionQueueBuffers>(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<RkISP1ActionQueueBuffers>(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<RkISP1CameraData>(this);
>>>         ^~~~~~~~~~~
>>> ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:895:8: note: ‘std::make_unique’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
>>> ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:895:36: error: expected primary-expression before ‘>’ token
>>>    std::make_unique<RkISP1CameraData>(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
> 
> But it still produces errors when trying to build.


Thanks, in this instance I believe it's the (re)configure (not just a
clean) that needs to happen because of a change in toolchain parameters.

Perhaps in the future Meson will detect this is required and reconfigure
itself automatically, but that is not happening in this case.

The command line used to build the objects shows the old compiler flags
(-std=c++11) instead of (-std=c++14)

The output above mentions the following:

>>>> 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.

So perhaps we should just add a meson --reconfigure to the start of the
script?


Thanks again.
-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list