* [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool @ 2021-10-20 19:04 Fabrice Fontaine 2021-10-21 9:22 ` Kieran Bingham 0 siblings, 1 reply; 8+ messages in thread From: Fabrice Fontaine @ 2021-10-20 19:04 UTC (permalink / raw) To: buildroot; +Cc: Kieran Bingham, Fabrice Fontaine Disable compliance tool to fix the following build failure raised since commit e1d37ab0a7b2b8735e69c070519978d2898d2e79 and https://git.linuxtv.org/libcamera.git/commit/?id=02bc1108578e8b8eb68fa7d9ae3eeea558723931: /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lgtest Fixes: - http://autobuild.buildroot.org/results/e1bb8aa1de310f3d27b74ec7d8748d170ad444e2 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- package/libcamera/libcamera.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk index 8ab95fb42a..638c9ac553 100644 --- a/package/libcamera/libcamera.mk +++ b/package/libcamera/libcamera.mk @@ -17,6 +17,7 @@ LIBCAMERA_DEPENDENCIES = \ LIBCAMERA_CONF_OPTS = \ -Dandroid=disabled \ -Ddocumentation=disabled \ + -Dlc-compliance=disabled \ -Dtest=false \ -Dwerror=false LIBCAMERA_INSTALL_STAGING = YES -- 2.33.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool 2021-10-20 19:04 [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool Fabrice Fontaine @ 2021-10-21 9:22 ` Kieran Bingham 2021-10-21 16:05 ` Fabrice Fontaine 0 siblings, 1 reply; 8+ messages in thread From: Kieran Bingham @ 2021-10-21 9:22 UTC (permalink / raw) To: Fabrice Fontaine, buildroot; +Cc: Fabrice Fontaine Hi Fabrice, Quoting Fabrice Fontaine (2021-10-20 20:04:23) > Disable compliance tool to fix the following build failure > raised since commit e1d37ab0a7b2b8735e69c070519978d2898d2e79 and > https://git.linuxtv.org/libcamera.git/commit/?id=02bc1108578e8b8eb68fa7d9ae3eeea558723931: > > /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lgtest > > Fixes: > - http://autobuild.buildroot.org/results/e1bb8aa1de310f3d27b74ec7d8748d170ad444e2 > Any idea why we're failing to find gtest? Our meson.build for src/lc-compliance contains the following: """ # SPDX-License-Identifier: CC0-1.0 libevent = dependency('libevent_pthreads', required : get_option('lc-compliance')) libgtest = dependency('gtest', required : get_option('lc-compliance')) if not (libevent.found() and libgtest.found()) lc_compliance_enabled = false subdir_done() endif lc_compliance_enabled = true """ Which implies that libgtest was found during the configuration phase, but not during the linking phase.... Is libgtest built as part of this build configuration? If it is - I'd expect lc-compliance to get built against it. If not - then it would automatically be disabled by our build... > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > --- > package/libcamera/libcamera.mk | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk > index 8ab95fb42a..638c9ac553 100644 > --- a/package/libcamera/libcamera.mk > +++ b/package/libcamera/libcamera.mk > @@ -17,6 +17,7 @@ LIBCAMERA_DEPENDENCIES = \ > LIBCAMERA_CONF_OPTS = \ > -Dandroid=disabled \ > -Ddocumentation=disabled \ > + -Dlc-compliance=disabled \ > -Dtest=false \ > -Dwerror=false > LIBCAMERA_INSTALL_STAGING = YES > -- > 2.33.0 > _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool 2021-10-21 9:22 ` Kieran Bingham @ 2021-10-21 16:05 ` Fabrice Fontaine 2021-10-21 16:30 ` Kieran Bingham 0 siblings, 1 reply; 8+ messages in thread From: Fabrice Fontaine @ 2021-10-21 16:05 UTC (permalink / raw) To: Kieran Bingham; +Cc: Buildroot Mailing List Hi Kieran, Le jeu. 21 oct. 2021 à 11:22, Kieran Bingham <kieran.bingham@ideasonboard.com> a écrit : > > Hi Fabrice, > > Quoting Fabrice Fontaine (2021-10-20 20:04:23) > > Disable compliance tool to fix the following build failure > > raised since commit e1d37ab0a7b2b8735e69c070519978d2898d2e79 and > > https://git.linuxtv.org/libcamera.git/commit/?id=02bc1108578e8b8eb68fa7d9ae3eeea558723931: > > > > /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lgtest > > > > Fixes: > > - http://autobuild.buildroot.org/results/e1bb8aa1de310f3d27b74ec7d8748d170ad444e2 > > > > Any idea why we're failing to find gtest? Nope, I didn't take time to find out why this is failing as I think that lc-compliance is just not needed in the context of buildroot (as gtest is not installed on target). > > Our meson.build for src/lc-compliance contains the following: > > """ > # SPDX-License-Identifier: CC0-1.0 > > libevent = dependency('libevent_pthreads', required : get_option('lc-compliance')) > libgtest = dependency('gtest', required : get_option('lc-compliance')) > > if not (libevent.found() and libgtest.found()) > lc_compliance_enabled = false > subdir_done() > endif > > lc_compliance_enabled = true > """ > > Which implies that libgtest was found during the configuration phase, > but not during the linking phase.... > > Is libgtest built as part of this build configuration? If it is - I'd > expect lc-compliance to get built against it. If not - then it would > automatically be disabled by our build... Yes, it is built and found by meson otherwise lc-compliance won't be built but for an unknown reason, the link step fails. > > > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > > --- > > package/libcamera/libcamera.mk | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk > > index 8ab95fb42a..638c9ac553 100644 > > --- a/package/libcamera/libcamera.mk > > +++ b/package/libcamera/libcamera.mk > > @@ -17,6 +17,7 @@ LIBCAMERA_DEPENDENCIES = \ > > LIBCAMERA_CONF_OPTS = \ > > -Dandroid=disabled \ > > -Ddocumentation=disabled \ > > + -Dlc-compliance=disabled \ > > -Dtest=false \ > > -Dwerror=false > > LIBCAMERA_INSTALL_STAGING = YES > > -- > > 2.33.0 > > Best Regards, Fabrice _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool 2021-10-21 16:05 ` Fabrice Fontaine @ 2021-10-21 16:30 ` Kieran Bingham 2021-10-21 17:05 ` Fabrice Fontaine 0 siblings, 1 reply; 8+ messages in thread From: Kieran Bingham @ 2021-10-21 16:30 UTC (permalink / raw) To: Fabrice Fontaine; +Cc: Buildroot Mailing List Quoting Fabrice Fontaine (2021-10-21 17:05:51) > Hi Kieran, > > Le jeu. 21 oct. 2021 à 11:22, Kieran Bingham > <kieran.bingham@ideasonboard.com> a écrit : > > > > Hi Fabrice, > > > > Quoting Fabrice Fontaine (2021-10-20 20:04:23) > > > Disable compliance tool to fix the following build failure > > > raised since commit e1d37ab0a7b2b8735e69c070519978d2898d2e79 and > > > https://git.linuxtv.org/libcamera.git/commit/?id=02bc1108578e8b8eb68fa7d9ae3eeea558723931: > > > > > > /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lgtest > > > > > > Fixes: > > > - http://autobuild.buildroot.org/results/e1bb8aa1de310f3d27b74ec7d8748d170ad444e2 > > > > > > > Any idea why we're failing to find gtest? > Nope, I didn't take time to find out why this is failing as I think > that lc-compliance is just not needed in the context of buildroot (as > gtest is not installed on target). > > > > Our meson.build for src/lc-compliance contains the following: > > > > """ > > # SPDX-License-Identifier: CC0-1.0 > > > > libevent = dependency('libevent_pthreads', required : get_option('lc-compliance')) > > libgtest = dependency('gtest', required : get_option('lc-compliance')) > > > > if not (libevent.found() and libgtest.found()) > > lc_compliance_enabled = false > > subdir_done() > > endif > > > > lc_compliance_enabled = true > > """ > > > > Which implies that libgtest was found during the configuration phase, > > but not during the linking phase.... > > > > Is libgtest built as part of this build configuration? If it is - I'd > > expect lc-compliance to get built against it. If not - then it would > > automatically be disabled by our build... > Yes, it is built and found by meson otherwise lc-compliance won't be > built but for an unknown reason, the link step fails. You've mentioned above that gtest won't be installed on the target... So .. I would expect that means it isn't in the target sysroot, and can't be linked against. So it seems that for some reason meson finds a host package instead of a target package? Do we have a way to differentiate these in buildroot? I'm not sure if there's some buildroot wizardry that would make libcamera's configure phase see only the packages that are installed on the target when being built, but if buildroot doesn't support installing gtest at all - then indeed there isn't any point supporting lc-compliance which requires it. > > > > > > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > > > --- > > > package/libcamera/libcamera.mk | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk > > > index 8ab95fb42a..638c9ac553 100644 > > > --- a/package/libcamera/libcamera.mk > > > +++ b/package/libcamera/libcamera.mk > > > @@ -17,6 +17,7 @@ LIBCAMERA_DEPENDENCIES = \ > > > LIBCAMERA_CONF_OPTS = \ > > > -Dandroid=disabled \ > > > -Ddocumentation=disabled \ > > > + -Dlc-compliance=disabled \ > > > -Dtest=false \ > > > -Dwerror=false > > > LIBCAMERA_INSTALL_STAGING = YES > > > -- > > > 2.33.0 > > > > Best Regards, > > Fabrice _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool 2021-10-21 16:30 ` Kieran Bingham @ 2021-10-21 17:05 ` Fabrice Fontaine 2021-10-21 18:05 ` Peter Seiderer 0 siblings, 1 reply; 8+ messages in thread From: Fabrice Fontaine @ 2021-10-21 17:05 UTC (permalink / raw) To: Kieran Bingham; +Cc: Buildroot Mailing List Le jeu. 21 oct. 2021 à 18:30, Kieran Bingham <kieran.bingham@ideasonboard.com> a écrit : > > Quoting Fabrice Fontaine (2021-10-21 17:05:51) > > Hi Kieran, > > > > Le jeu. 21 oct. 2021 à 11:22, Kieran Bingham > > <kieran.bingham@ideasonboard.com> a écrit : > > > > > > Hi Fabrice, > > > > > > Quoting Fabrice Fontaine (2021-10-20 20:04:23) > > > > Disable compliance tool to fix the following build failure > > > > raised since commit e1d37ab0a7b2b8735e69c070519978d2898d2e79 and > > > > https://git.linuxtv.org/libcamera.git/commit/?id=02bc1108578e8b8eb68fa7d9ae3eeea558723931: > > > > > > > > /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lgtest > > > > > > > > Fixes: > > > > - http://autobuild.buildroot.org/results/e1bb8aa1de310f3d27b74ec7d8748d170ad444e2 > > > > > > > > > > Any idea why we're failing to find gtest? > > Nope, I didn't take time to find out why this is failing as I think > > that lc-compliance is just not needed in the context of buildroot (as > > gtest is not installed on target). > > > > > > Our meson.build for src/lc-compliance contains the following: > > > > > > """ > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > libevent = dependency('libevent_pthreads', required : get_option('lc-compliance')) > > > libgtest = dependency('gtest', required : get_option('lc-compliance')) > > > > > > if not (libevent.found() and libgtest.found()) > > > lc_compliance_enabled = false > > > subdir_done() > > > endif > > > > > > lc_compliance_enabled = true > > > """ > > > > > > Which implies that libgtest was found during the configuration phase, > > > but not during the linking phase.... > > > > > > Is libgtest built as part of this build configuration? If it is - I'd > > > expect lc-compliance to get built against it. If not - then it would > > > automatically be disabled by our build... > > Yes, it is built and found by meson otherwise lc-compliance won't be > > built but for an unknown reason, the link step fails. > > You've mentioned above that gtest won't be installed on the target... So > .. I would expect that means it isn't in the target sysroot, and can't > be linked against. > > So it seems that for some reason meson finds a host package instead of a > target package? gtest is installed on staging (but not on target): GTEST_INSTALL_STAGING = YES GTEST_INSTALL_TARGET = NO It should be noted that no packages are using gtest in buldroot. IMHO, we should remove it to avoid unexpected build failures and improve build reproducibility as I assume that libcamera is not the only package that has a "hidden" gtest dependency. >> Do we have a way to differentiate these in buildroot? > > I'm not sure if there's some buildroot wizardry that would make > libcamera's configure phase see only the packages that are installed on > the target when being built, but if buildroot doesn't support installing > gtest at all - then indeed there isn't any point supporting > lc-compliance which requires it. > > > > > > > > > > > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > > > > --- > > > > package/libcamera/libcamera.mk | 1 + > > > > 1 file changed, 1 insertion(+) > > > > > > > > diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk > > > > index 8ab95fb42a..638c9ac553 100644 > > > > --- a/package/libcamera/libcamera.mk > > > > +++ b/package/libcamera/libcamera.mk > > > > @@ -17,6 +17,7 @@ LIBCAMERA_DEPENDENCIES = \ > > > > LIBCAMERA_CONF_OPTS = \ > > > > -Dandroid=disabled \ > > > > -Ddocumentation=disabled \ > > > > + -Dlc-compliance=disabled \ > > > > -Dtest=false \ > > > > -Dwerror=false > > > > LIBCAMERA_INSTALL_STAGING = YES > > > > -- > > > > 2.33.0 > > > > > > Best Regards, > > > > Fabrice Best Regards, Fabrice _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool 2021-10-21 17:05 ` Fabrice Fontaine @ 2021-10-21 18:05 ` Peter Seiderer 2021-10-21 19:04 ` Peter Seiderer 0 siblings, 1 reply; 8+ messages in thread From: Peter Seiderer @ 2021-10-21 18:05 UTC (permalink / raw) To: Fabrice Fontaine; +Cc: Kieran Bingham, Buildroot Mailing List Hello Fabrice, On Thu, 21 Oct 2021 19:05:38 +0200, Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote: > Le jeu. 21 oct. 2021 à 18:30, Kieran Bingham > <kieran.bingham@ideasonboard.com> a écrit : > > > > Quoting Fabrice Fontaine (2021-10-21 17:05:51) > > > Hi Kieran, > > > > > > Le jeu. 21 oct. 2021 à 11:22, Kieran Bingham > > > <kieran.bingham@ideasonboard.com> a écrit : > > > > > > > > Hi Fabrice, > > > > > > > > Quoting Fabrice Fontaine (2021-10-20 20:04:23) > > > > > Disable compliance tool to fix the following build failure > > > > > raised since commit e1d37ab0a7b2b8735e69c070519978d2898d2e79 and > > > > > https://git.linuxtv.org/libcamera.git/commit/?id=02bc1108578e8b8eb68fa7d9ae3eeea558723931: > > > > > > > > > > /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lgtest > > > > > > > > > > Fixes: > > > > > - http://autobuild.buildroot.org/results/e1bb8aa1de310f3d27b74ec7d8748d170ad444e2 > > > > > > > > > > > > > Any idea why we're failing to find gtest? > > > Nope, I didn't take time to find out why this is failing as I think > > > that lc-compliance is just not needed in the context of buildroot (as > > > gtest is not installed on target). > > > > > > > > Our meson.build for src/lc-compliance contains the following: > > > > > > > > """ > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > libevent = dependency('libevent_pthreads', required : get_option('lc-compliance')) > > > > libgtest = dependency('gtest', required : get_option('lc-compliance')) > > > > > > > > if not (libevent.found() and libgtest.found()) > > > > lc_compliance_enabled = false > > > > subdir_done() > > > > endif > > > > > > > > lc_compliance_enabled = true > > > > """ > > > > > > > > Which implies that libgtest was found during the configuration phase, > > > > but not during the linking phase.... > > > > > > > > Is libgtest built as part of this build configuration? If it is - I'd > > > > expect lc-compliance to get built against it. If not - then it would > > > > automatically be disabled by our build... > > > Yes, it is built and found by meson otherwise lc-compliance won't be > > > built but for an unknown reason, the link step fails. > > > > You've mentioned above that gtest won't be installed on the target... So > > .. I would expect that means it isn't in the target sysroot, and can't > > be linked against. > > > > So it seems that for some reason meson finds a host package instead of a > > target package? > gtest is installed on staging (but not on target): > GTEST_INSTALL_STAGING = YES > GTEST_INSTALL_TARGET = NO > > It should be noted that no packages are using gtest in buldroot. > IMHO, we should remove it to avoid unexpected build failures and > improve build reproducibility as I assume that libcamera is not the > only package that has a "hidden" gtest dependency. But this is normal behavior for a (maybe static) library to be installed to staging...., and the failure is a compile time one and not a runtime one? If you want reproducibility you have to add a optional dependency on gtest (and fix the link failure) or (as you suggested) disable the need/check for gtest in the failing package... I know more than one custom package using gtest (optional on the target hardware for runtime tests)... Regards, Peter > >> Do we have a way to differentiate these in buildroot? > > > > I'm not sure if there's some buildroot wizardry that would make > > libcamera's configure phase see only the packages that are installed on > > the target when being built, but if buildroot doesn't support installing > > gtest at all - then indeed there isn't any point supporting > > lc-compliance which requires it. > > > > > > > > > > > > > > > > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > > > > > --- > > > > > package/libcamera/libcamera.mk | 1 + > > > > > 1 file changed, 1 insertion(+) > > > > > > > > > > diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk > > > > > index 8ab95fb42a..638c9ac553 100644 > > > > > --- a/package/libcamera/libcamera.mk > > > > > +++ b/package/libcamera/libcamera.mk > > > > > @@ -17,6 +17,7 @@ LIBCAMERA_DEPENDENCIES = \ > > > > > LIBCAMERA_CONF_OPTS = \ > > > > > -Dandroid=disabled \ > > > > > -Ddocumentation=disabled \ > > > > > + -Dlc-compliance=disabled \ > > > > > -Dtest=false \ > > > > > -Dwerror=false > > > > > LIBCAMERA_INSTALL_STAGING = YES > > > > > -- > > > > > 2.33.0 > > > > > > > > Best Regards, > > > > > > Fabrice > Best Regards, > > Fabrice > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool 2021-10-21 18:05 ` Peter Seiderer @ 2021-10-21 19:04 ` Peter Seiderer 2021-10-22 19:10 ` Peter Seiderer 0 siblings, 1 reply; 8+ messages in thread From: Peter Seiderer @ 2021-10-21 19:04 UTC (permalink / raw) To: Fabrice Fontaine; +Cc: Kieran Bingham, Buildroot Mailing List Hello Fabrice, Kieran, On Thu, 21 Oct 2021 20:05:18 +0200, Peter Seiderer <ps.report@gmx.net> wrote: > Hello Fabrice, > > On Thu, 21 Oct 2021 19:05:38 +0200, Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote: > > > Le jeu. 21 oct. 2021 à 18:30, Kieran Bingham > > <kieran.bingham@ideasonboard.com> a écrit : > > > > > > Quoting Fabrice Fontaine (2021-10-21 17:05:51) > > > > Hi Kieran, > > > > > > > > Le jeu. 21 oct. 2021 à 11:22, Kieran Bingham > > > > <kieran.bingham@ideasonboard.com> a écrit : > > > > > > > > > > Hi Fabrice, > > > > > > > > > > Quoting Fabrice Fontaine (2021-10-20 20:04:23) > > > > > > Disable compliance tool to fix the following build failure > > > > > > raised since commit e1d37ab0a7b2b8735e69c070519978d2898d2e79 and > > > > > > https://git.linuxtv.org/libcamera.git/commit/?id=02bc1108578e8b8eb68fa7d9ae3eeea558723931: > > > > > > > > > > > > /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lgtest The failing configuration has set 'BR2_ENABLE_RUNTIME_DEBUG=y' and gtest installs its library as libgtestd.a (instead of libgtest.a as requested by gtest.pc), can be fixed by: --- a/package/gtest/gtest.mk +++ b/package/gtest/gtest.mk @@ -46,6 +46,10 @@ ifeq ($(BR2_STATIC_LIBS),) GTEST_CONF_OPTS += -DCMAKE_POSITION_INDEPENDENT_CODE=ON endif +# set build type always to Release, otherwise the library is named +# libgtestd.a and not found by dependent packages using gtest.pc +# requuesting plain libgtest.a +GTEST_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y) GTEST_CONF_OPTS += -DBUILD_GMOCK=ON else Alternative would be to fix the generation of gtest.pc... Regards, Peter > > > > > > > > > > > > Fixes: > > > > > > - http://autobuild.buildroot.org/results/e1bb8aa1de310f3d27b74ec7d8748d170ad444e2 > > > > > > > > > > > > > > > > Any idea why we're failing to find gtest? > > > > Nope, I didn't take time to find out why this is failing as I think > > > > that lc-compliance is just not needed in the context of buildroot (as > > > > gtest is not installed on target). > > > > > > > > > > Our meson.build for src/lc-compliance contains the following: > > > > > > > > > > """ > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > libevent = dependency('libevent_pthreads', required : get_option('lc-compliance')) > > > > > libgtest = dependency('gtest', required : get_option('lc-compliance')) > > > > > > > > > > if not (libevent.found() and libgtest.found()) > > > > > lc_compliance_enabled = false > > > > > subdir_done() > > > > > endif > > > > > > > > > > lc_compliance_enabled = true > > > > > """ > > > > > > > > > > Which implies that libgtest was found during the configuration phase, > > > > > but not during the linking phase.... > > > > > > > > > > Is libgtest built as part of this build configuration? If it is - I'd > > > > > expect lc-compliance to get built against it. If not - then it would > > > > > automatically be disabled by our build... > > > > Yes, it is built and found by meson otherwise lc-compliance won't be > > > > built but for an unknown reason, the link step fails. > > > > > > You've mentioned above that gtest won't be installed on the target... So > > > .. I would expect that means it isn't in the target sysroot, and can't > > > be linked against. > > > > > > So it seems that for some reason meson finds a host package instead of a > > > target package? > > gtest is installed on staging (but not on target): > > GTEST_INSTALL_STAGING = YES > > GTEST_INSTALL_TARGET = NO > > > > It should be noted that no packages are using gtest in buldroot. > > IMHO, we should remove it to avoid unexpected build failures and > > improve build reproducibility as I assume that libcamera is not the > > only package that has a "hidden" gtest dependency. > > But this is normal behavior for a (maybe static) library to be installed > to staging...., and the failure is a compile time one and not a > runtime one? If you want reproducibility you have to add a optional > dependency on gtest (and fix the link failure) or (as you suggested) > disable the need/check for gtest in the failing package... > > I know more than one custom package using gtest (optional on the > target hardware for runtime tests)... > > Regards, > Peter > > > >> Do we have a way to differentiate these in buildroot? > > > > > > I'm not sure if there's some buildroot wizardry that would make > > > libcamera's configure phase see only the packages that are installed on > > > the target when being built, but if buildroot doesn't support installing > > > gtest at all - then indeed there isn't any point supporting > > > lc-compliance which requires it. > > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > > > > > > --- > > > > > > package/libcamera/libcamera.mk | 1 + > > > > > > 1 file changed, 1 insertion(+) > > > > > > > > > > > > diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk > > > > > > index 8ab95fb42a..638c9ac553 100644 > > > > > > --- a/package/libcamera/libcamera.mk > > > > > > +++ b/package/libcamera/libcamera.mk > > > > > > @@ -17,6 +17,7 @@ LIBCAMERA_DEPENDENCIES = \ > > > > > > LIBCAMERA_CONF_OPTS = \ > > > > > > -Dandroid=disabled \ > > > > > > -Ddocumentation=disabled \ > > > > > > + -Dlc-compliance=disabled \ > > > > > > -Dtest=false \ > > > > > > -Dwerror=false > > > > > > LIBCAMERA_INSTALL_STAGING = YES > > > > > > -- > > > > > > 2.33.0 > > > > > > > > > > Best Regards, > > > > > > > > Fabrice > > Best Regards, > > > > Fabrice > > _______________________________________________ > > buildroot mailing list > > buildroot@buildroot.org > > https://lists.buildroot.org/mailman/listinfo/buildroot > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool 2021-10-21 19:04 ` Peter Seiderer @ 2021-10-22 19:10 ` Peter Seiderer 0 siblings, 0 replies; 8+ messages in thread From: Peter Seiderer @ 2021-10-22 19:10 UTC (permalink / raw) To: Fabrice Fontaine; +Cc: Kieran Bingham, Buildroot Mailing List Hello *, On Thu, 21 Oct 2021 21:04:00 +0200, Peter Seiderer <ps.report@gmx.net> wrote: > Hello Fabrice, Kieran, > > On Thu, 21 Oct 2021 20:05:18 +0200, Peter Seiderer <ps.report@gmx.net> wrote: > > > Hello Fabrice, > > > > On Thu, 21 Oct 2021 19:05:38 +0200, Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote: > > > > > Le jeu. 21 oct. 2021 à 18:30, Kieran Bingham > > > <kieran.bingham@ideasonboard.com> a écrit : > > > > > > > > Quoting Fabrice Fontaine (2021-10-21 17:05:51) > > > > > Hi Kieran, > > > > > > > > > > Le jeu. 21 oct. 2021 à 11:22, Kieran Bingham > > > > > <kieran.bingham@ideasonboard.com> a écrit : > > > > > > > > > > > > Hi Fabrice, > > > > > > > > > > > > Quoting Fabrice Fontaine (2021-10-20 20:04:23) > > > > > > > Disable compliance tool to fix the following build failure > > > > > > > raised since commit e1d37ab0a7b2b8735e69c070519978d2898d2e79 and > > > > > > > https://git.linuxtv.org/libcamera.git/commit/?id=02bc1108578e8b8eb68fa7d9ae3eeea558723931: > > > > > > > > > > > > > > /usr/lfs/hdd_v1/rc-buildroot-test/scripts/instance-1/output-1/host/lib/gcc/arm-buildroot-linux-uclibcgnueabi/10.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: cannot find -lgtest > > The failing configuration has set 'BR2_ENABLE_RUNTIME_DEBUG=y' and gtest installs > its library as libgtestd.a (instead of libgtest.a as requested by gtest.pc), can > be fixed by: > > --- a/package/gtest/gtest.mk > +++ b/package/gtest/gtest.mk > @@ -46,6 +46,10 @@ ifeq ($(BR2_STATIC_LIBS),) > GTEST_CONF_OPTS += -DCMAKE_POSITION_INDEPENDENT_CODE=ON > endif > > +# set build type always to Release, otherwise the library is named > +# libgtestd.a and not found by dependent packages using gtest.pc > +# requuesting plain libgtest.a > +GTEST_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release > ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y) > GTEST_CONF_OPTS += -DBUILD_GMOCK=ON > else > > Alternative would be to fix the generation of gtest.pc... Alternative implemented for package/gtest and added an lc-compliance option for package/libcamera (to gain an gtest consumer in buildroot), see [1] and [2]... Regards, Peter [1] https://patchwork.ozlabs.org/project/buildroot/patch/20211022190702.7782-1-ps.report@gmx.net/ [2] https://patchwork.ozlabs.org/project/buildroot/patch/20211022190702.7782-2-ps.report@gmx.net/ > > Regards, > Peter > > > > > > > > > > > > > > > Fixes: > > > > > > > - http://autobuild.buildroot.org/results/e1bb8aa1de310f3d27b74ec7d8748d170ad444e2 > > > > > > > > > > > > > > > > > > > Any idea why we're failing to find gtest? > > > > > Nope, I didn't take time to find out why this is failing as I think > > > > > that lc-compliance is just not needed in the context of buildroot (as > > > > > gtest is not installed on target). > > > > > > > > > > > > Our meson.build for src/lc-compliance contains the following: > > > > > > > > > > > > """ > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > libevent = dependency('libevent_pthreads', required : get_option('lc-compliance')) > > > > > > libgtest = dependency('gtest', required : get_option('lc-compliance')) > > > > > > > > > > > > if not (libevent.found() and libgtest.found()) > > > > > > lc_compliance_enabled = false > > > > > > subdir_done() > > > > > > endif > > > > > > > > > > > > lc_compliance_enabled = true > > > > > > """ > > > > > > > > > > > > Which implies that libgtest was found during the configuration phase, > > > > > > but not during the linking phase.... > > > > > > > > > > > > Is libgtest built as part of this build configuration? If it is - I'd > > > > > > expect lc-compliance to get built against it. If not - then it would > > > > > > automatically be disabled by our build... > > > > > Yes, it is built and found by meson otherwise lc-compliance won't be > > > > > built but for an unknown reason, the link step fails. > > > > > > > > You've mentioned above that gtest won't be installed on the target... So > > > > .. I would expect that means it isn't in the target sysroot, and can't > > > > be linked against. > > > > > > > > So it seems that for some reason meson finds a host package instead of a > > > > target package? > > > gtest is installed on staging (but not on target): > > > GTEST_INSTALL_STAGING = YES > > > GTEST_INSTALL_TARGET = NO > > > > > > It should be noted that no packages are using gtest in buldroot. > > > IMHO, we should remove it to avoid unexpected build failures and > > > improve build reproducibility as I assume that libcamera is not the > > > only package that has a "hidden" gtest dependency. > > > > But this is normal behavior for a (maybe static) library to be installed > > to staging...., and the failure is a compile time one and not a > > runtime one? If you want reproducibility you have to add a optional > > dependency on gtest (and fix the link failure) or (as you suggested) > > disable the need/check for gtest in the failing package... > > > > I know more than one custom package using gtest (optional on the > > target hardware for runtime tests)... > > > > Regards, > > Peter > > > > > >> Do we have a way to differentiate these in buildroot? > > > > > > > > I'm not sure if there's some buildroot wizardry that would make > > > > libcamera's configure phase see only the packages that are installed on > > > > the target when being built, but if buildroot doesn't support installing > > > > gtest at all - then indeed there isn't any point supporting > > > > lc-compliance which requires it. > > > > > > > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > > > > > > > --- > > > > > > > package/libcamera/libcamera.mk | 1 + > > > > > > > 1 file changed, 1 insertion(+) > > > > > > > > > > > > > > diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk > > > > > > > index 8ab95fb42a..638c9ac553 100644 > > > > > > > --- a/package/libcamera/libcamera.mk > > > > > > > +++ b/package/libcamera/libcamera.mk > > > > > > > @@ -17,6 +17,7 @@ LIBCAMERA_DEPENDENCIES = \ > > > > > > > LIBCAMERA_CONF_OPTS = \ > > > > > > > -Dandroid=disabled \ > > > > > > > -Ddocumentation=disabled \ > > > > > > > + -Dlc-compliance=disabled \ > > > > > > > -Dtest=false \ > > > > > > > -Dwerror=false > > > > > > > LIBCAMERA_INSTALL_STAGING = YES > > > > > > > -- > > > > > > > 2.33.0 > > > > > > > > > > > > Best Regards, > > > > > > > > > > Fabrice > > > Best Regards, > > > > > > Fabrice > > > _______________________________________________ > > > buildroot mailing list > > > buildroot@buildroot.org > > > https://lists.buildroot.org/mailman/listinfo/buildroot > > > > _______________________________________________ > > buildroot mailing list > > buildroot@buildroot.org > > https://lists.buildroot.org/mailman/listinfo/buildroot > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-10-22 19:11 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-10-20 19:04 [Buildroot] [PATCH 1/1] package/libcamera: disable compliance tool Fabrice Fontaine 2021-10-21 9:22 ` Kieran Bingham 2021-10-21 16:05 ` Fabrice Fontaine 2021-10-21 16:30 ` Kieran Bingham 2021-10-21 17:05 ` Fabrice Fontaine 2021-10-21 18:05 ` Peter Seiderer 2021-10-21 19:04 ` Peter Seiderer 2021-10-22 19:10 ` Peter Seiderer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox