Uploaded image for project: ' AGL Development'
  1. AGL Development
  2. SPEC-1534

In-tree builds fail with newer versions of app-templates

XMLWordPrintable

      We've observed in CI that some submitted service bindings fail CI builds. This happens when building in-tree using cmake . && make, but never in an isolated build tree as in mkdir build && cd build && cmake .. && make. When failing, the link flags are mangled such that whitespsace is dropped between each option. A verbose log of such a failure is as follows:

      {{
      mporter@beef:~/src/agl/agl-service-gps$ cmake .
      – The C compiler identification is GNU 7.2.0
      – The CXX compiler identification is GNU 7.2.0
      – Check for working C compiler: /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/arm-agl-linux-gnueabi/arm-agl-linux-gnueabi-gcc
      – Check for working C compiler: /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/arm-agl-linux-gnueabi/arm-agl-linux-gnueabi-gcc – works
      – Detecting C compiler ABI info
      – Detecting C compiler ABI info - done
      – Detecting C compile features
      – Detecting C compile features - done
      – Check for working CXX compiler: /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/arm-agl-linux-gnueabi/arm-agl-linux-gnueabi-g++
      – Check for working CXX compiler: /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/arm-agl-linux-gnueabi/arm-agl-linux-gnueabi-g++ – works
      – Detecting CXX compiler ABI info
      – Detecting CXX compiler ABI info - done
      – Detecting CXX compile features
      – Detecting CXX compile features - done
      – Distribution used poky-agl
      – Include: /home/mporter/src/agl/agl-service-gps/conf.d/app-templates/cmake/cmake.d/01-build_options.cmake
      – Found PkgConfig: /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/pkg-config (found version "0.29.2")
      – Checking for module 'json-c'
      – Found json-c, version 0.12.1
      – Checking for module 'libsystemd>=222'
      – Found libsystemd, version 234
      – Checking for module 'afb-daemon'
      – Found afb-daemon, version 5.99-FFRC0
      – Checking for module 'libgps'
      – Found libgps, version 3.16
      – Include: /home/mporter/src/agl/agl-service-gps/conf.d/app-templates/cmake/cmake.d/02-variables.cmake
      – -- Check gcc_minimal_version (found gcc version 7.2.0) (found g++ version 7.2.0)
      – Include: /home/mporter/src/agl/agl-service-gps/conf.d/app-templates/cmake/cmake.d/03-macros.cmake
      – Include: /home/mporter/src/agl/agl-service-gps/conf.d/app-templates/cmake/cmake.d/04-extra_targets.cmake
      .. Warning: RSYNC_TARGET RSYNC_PREFIX not defined 'make remote-target-populate' not instanciated
      .. Warning: RSYNC_TARGET not defined 'make widget-target-install' not instanciated
      – Configuring done
      – Generating done
      – Build files have been written to: /home/mporter/src/agl/agl-service-gps
      mporter@beef:~/src/agl/agl-service-gps$ make VERBOSE=1
      /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/cmake -H/home/mporter/src/agl/agl-service-gps -B/home/mporter/src/agl/agl-service-gps --check-build-system CMakeFiles/Makefile.cmake 0
      /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/cmake -E cmake_progress_start /home/mporter/src/agl/agl-service-gps/CMakeFiles /home/mporter/src/agl/agl-service-gps/CMakeFiles/progress.marks
      make -f CMakeFiles/Makefile2 all
      make[1]: Entering directory '/home/mporter/src/agl/agl-service-gps'
      make -f CMakeFiles/autobuild.dir/build.make CMakeFiles/autobuild.dir/depend
      make[2]: Entering directory '/home/mporter/src/agl/agl-service-gps'
      cd /home/mporter/src/agl/agl-service-gps && /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/mporter/src/agl/agl-service-gps /home/mporter/src/agl/agl-service-gps /home/mporter/src/agl/agl-service-gps /home/mporter/src/agl/agl-service-gps /home/mporter/src/agl/agl-service-gps/CMakeFiles/autobuild.dir/DependInfo.cmake --color=
      Dependee "/home/mporter/src/agl/agl-service-gps/CMakeFiles/autobuild.dir/DependInfo.cmake" is newer than depender "/home/mporter/src/agl/agl-service-gps/CMakeFiles/autobuild.dir/depend.internal".
      Dependee "/home/mporter/src/agl/agl-service-gps/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/mporter/src/agl/agl-service-gps/CMakeFiles/autobuild.dir/depend.internal".
      Scanning dependencies of target autobuild
      make[2]: Leaving directory '/home/mporter/src/agl/agl-service-gps'
      make -f CMakeFiles/autobuild.dir/build.make CMakeFiles/autobuild.dir/build
      make[2]: Entering directory '/home/mporter/src/agl/agl-service-gps'
      /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/cmake -DINFILE=/home/mporter/src/agl/agl-service-gps/conf.d/app-templates/template.d/autobuild/agl/autobuild.in -DOUTFILE=/home/mporter/src/agl/agl-service-gps/conf.d/autobuild/agl/autobuild -DPROJECT_BINARY_DIR=/home/mporter/src/agl/agl-service-gps -P /home/mporter/src/agl/agl-service-gps/conf.d/app-templates/cmake/configure_file.cmake
      /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/cmake -DINFILE=/home/mporter/src/agl/agl-service-gps/conf.d/app-templates/template.d/autobuild/agl/autobuild.in -DOUTFILE=/home/mporter/src/agl/agl-service-gps/conf.d/autobuild/linux/autobuild -DPROJECT_BINARY_DIR=/home/mporter/src/agl/agl-service-gps -P /home/mporter/src/agl/agl-service-gps/conf.d/app-templates/cmake/configure_file.cmake
      make[2]: Leaving directory '/home/mporter/src/agl/agl-service-gps'
      [ 0%] Built target autobuild
      make -f binding/CMakeFiles/afm-gps-binding.dir/build.make binding/CMakeFiles/afm-gps-binding.dir/depend
      make[2]: Entering directory '/home/mporter/src/agl/agl-service-gps'
      cd /home/mporter/src/agl/agl-service-gps && /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/mporter/src/agl/agl-service-gps /home/mporter/src/agl/agl-service-gps/binding /home/mporter/src/agl/agl-service-gps /home/mporter/src/agl/agl-service-gps/binding /home/mporter/src/agl/agl-service-gps/binding/CMakeFiles/afm-gps-binding.dir/DependInfo.cmake --color=
      Dependee "/home/mporter/src/agl/agl-service-gps/binding/CMakeFiles/afm-gps-binding.dir/DependInfo.cmake" is newer than depender "/home/mporter/src/agl/agl-service-gps/binding/CMakeFiles/afm-gps-binding.dir/depend.internal".
      Dependee "/home/mporter/src/agl/agl-service-gps/binding/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/mporter/src/agl/agl-service-gps/binding/CMakeFiles/afm-gps-binding.dir/depend.internal".
      Scanning dependencies of target afm-gps-binding
      make[2]: Leaving directory '/home/mporter/src/agl/agl-service-gps'
      make -f binding/CMakeFiles/afm-gps-binding.dir/build.make binding/CMakeFiles/afm-gps-binding.dir/build
      make[2]: Entering directory '/home/mporter/src/agl/agl-service-gps'
      [ 25%] Building C object binding/CMakeFiles/afm-gps-binding.dir/afm-gps-binding.c.o
      cd /home/mporter/src/agl/agl-service-gps/binding && /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/arm-agl-linux-gnueabi/arm-agl-linux-gnueabi-gcc -march=armv7ve -marm -mfpu=neon-vfpv4 -mfloat-abi=hard --sysroot=/opt/poky-agl/5.90.0+snapshot/sysroots/armv7vehf-neon-vfpv4-agl-linux-gnueabi -Dafm_gps_binding_EXPORTS -I/opt/poky-agl/5.90.0+snapshot/sysroots/armv7vehf-neon-vfpv4-agl-linux-gnueabi/usr/include/json-c -O2 -pipe -g -feliminate-unused-debug-types -fPIC -Wall -Wextra -Wconversion -Wno-unused-parameter -Wno-sign-compare -Wno-sign-conversion -Werror=maybe-uninitialized -Werror=implicit-function-declaration -ffunction-sections -fdata-sections -fPIC -I/opt/poky-agl/5.90.0+snapshot/sysroots/armv7vehf-neon-vfpv4-agl-linux-gnueabi/usr/include/json-c -o CMakeFiles/afm-gps-binding.dir/afm-gps-binding.c.o -c /home/mporter/src/agl/agl-service-gps/binding/afm-gps-binding.c
      [ 50%] Linking C shared module libafm-gps-binding.so
      cd /home/mporter/src/agl/agl-service-gps/binding && /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/cmake -E cmake_link_script CMakeFiles/afm-gps-binding.dir/link.txt --verbose=1
      /opt/poky-agl/5.90.0+snapshot/sysroots/x86_64-aglsdk-linux/usr/bin/arm-agl-linux-gnueabi/arm-agl-linux-gnueabi-gcc march=armv7ve -marm -mfpu=neon-vfpv4 -mfloat-abi=hard --sysroot=/opt/poky-agl/5.90.0+snapshot/sysroots/armv7vehf-neon-vfpv4-agl-linux-gnueabi -fPIC -O2 -pipe -g -feliminate-unused-debug-types -Wl,version-script="/home/mporter/src/agl/agl-service-gps/conf.d/app-templates"/cmake/export.map -Wl,-O1 -Wl,hash-style=gnu -Wl,as-needed -shared -o libafm-gps-binding.so CMakeFiles/afm-gps-binding.dir/afm-gps-binding.c.o -Wl,as-needed -Wl,-gc-sections -pthread-ljson-c-lsystemd-ljson-c-L/opt/poky-agl/5.90.0+snapshot/sysroots/armv7vehf-neon-vfpv4-agl-linux-gnueabi/usr//usr/lib-lgps
      arm-agl-linux-gnueabi-gcc: error: unrecognized command line option ‘-pthread-ljson-c-lsystemd-ljson-c-L/opt/poky-agl/5.90.0+snapshot/sysroots/armv7vehf-neon-vfpv4-agl-linux-gnueabi/usr//usr/lib-lgps’
      binding/CMakeFiles/afm-gps-binding.dir/build.make:94: recipe for target 'binding/libafm-gps-binding.so' failed
      make[2]: *** [binding/libafm-gps-binding.so] Error 1
      make[2]: Leaving directory '/home/mporter/src/agl/agl-service-gps'
      CMakeFiles/Makefile2:354: recipe for target 'binding/CMakeFiles/afm-gps-binding.dir/all' failed
      make[1]: *** [binding/CMakeFiles/afm-gps-binding.dir/all] Error 2
      make[1]: Leaving directory '/home/mporter/src/agl/agl-service-gps'
      Makefile:129: recipe for target 'all' failed
      make: *** [all] Error 2
      mporter@beef:~/src/agl/agl-service-gps$
      }}

      Note that agl-service-gps uses:

      {{
       mporter  ~  src  agl  agl-service-gps  git submodule status
      6e1a3c37e94f42f5307fd1fa749823b2d160a56b conf.d/app-templates (4.99.3-12-g6e1a3c3)
      }}

      As a workaround, pinning app-templates to version 8c2b05967a3237e624a2cc78e13fcd1c5e72991c allows the in-tree build to succeed.

        # Subject Branch Project Status CR V

            claneys Romain Forlot
            ohporter Matt Porter
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: