dasharo-issues icon indicating copy to clipboard operation
dasharo-issues copied to clipboard

Fix build warnings on DTS

Open macpijan opened this issue 1 year ago • 19 comments

Component

Dasharo Tools Suite

Device

other

Dasharo version

No response

Dasharo Tools Suite version

No response

Brief summary

There are several warning when building DTS

How reproducible

100% when building from clean directory

How to reproduce

Build DTS image from: https://github.com/Dasharo/meta-dts/pull/122

Expected behavior

No warnings

Actual behavior

Following warnings have been identified:

  • linux-yocto
WARNING: linux-yocto-6.6.21+git-r0 do_kernel_configcheck: [kernel config]: This BSP contains fragments with warnings:


[INFO]: the following symbols were not found in the active configuration:
     - CONFIG_EFI_VARS
     - CONFIG_INTEL_MENLOW
  • systemd
WARNING: systemd-1_255.4-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd
  • acpi-call
WARNING: systemd-1_255.4-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd
  • others (buildpaths QA issue)
WARNING: gcab-1.6-r0 do_package_qa: QA Issue: File /usr/src/debug/gcab/1.6/libgcab/gcab-enums.c in package gcab-src contains reference to TMPDIR [buildpaths]
WARNING: intelp2m-git-r0 do_package_qa: QA Issue: File /usr/sbin/intelp2m in package intelp2m contains reference to TMPDIR [buildpaths]
WARNING: nvramtool-git-r0 do_package_qa: QA Issue: File /usr/sbin/.debug/nvramtool in package nvramtool-dbg contains reference to TMPDIR [buildpaths]

Screenshots

No response

Additional context

No response

Solutions you've tried

No response

macpijan avatar May 14 '24 20:05 macpijan

There is also another warning on current develop (built using dev cache):

WARNING: smmstoretool-git-r0 do_package_qa: QA Issue: File /usr/bin/.debug/smmstoretool in package smmstoretool-dbg contains reference to TMPDIR [buildpaths]

Binary contains build path e.g.

$ grep -ao "/build/.*" build/tmp/work/core2-64-dts-linux/smmstoretool/git/package/usr/bin/.debug/smmstoretool | head -c 105
/build/tmp/work/core2-64-dts-linux/smmstoretool/git/git/src/vendorcode/intel/edk2/UDK2017/MdePkg/Include/

m-iwanicki avatar Sep 04 '24 09:09 m-iwanicki

@m-iwanicki Thanks, I'm scheduling this for the team now.

artur-rs avatar Sep 04 '24 12:09 artur-rs

This issue https://github.com/Dasharo/dasharo-issues/issues/729 may be useful here.

DaniilKl avatar Sep 04 '24 12:09 DaniilKl

@DaniilKl Thanks for input but for 6.X kernel series

  • CONFIG_EFI_VARS
  • CONFIG_INTEL_MENLOW are not deprecated?

dancios avatar Sep 05 '24 09:09 dancios

@dancios What kind of answer do expect? Is your question based on any source? If so, please link it. That would help to driver the discussion. Otherwise it seems that to answer your question, we would need to look it up ourselves.

macpijan avatar Sep 05 '24 09:09 macpijan

https://github.com/torvalds/linux/commit/0f5b2c69a4cbe4166ca24b76d5ada98ed2867741

I usually check https://cateee.net/lkddb/ to see kconfig options and in which versions they are available e.g.: https://cateee.net/lkddb/web-lkddb/EFI_VARS.html

m-iwanicki avatar Sep 05 '24 09:09 m-iwanicki

@macpijan I asked doing my quick research not seeing such opts in trunk. CONFIG_INTEL_MENLOW: (DROPPED - No Active Users) https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/thermal/intel/intel_menlow.c?h=v6.10.7&id=2b6a7409ac390d3edb49822ea602ac129486ea3f

CONFIG_EFI_VARS: (deprecated) https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/firmware/efi/efivars.c?h=v6.10.8&id=0f5b2c69a4cbe4166ca24b76d5ada98ed2867741

dancios avatar Sep 05 '24 09:09 dancios

Current replacement: https://cateee.net/lkddb/web-lkddb/EFIVAR_FS.html

m-iwanicki avatar Sep 05 '24 09:09 m-iwanicki

@macpijan @m-iwanicki

WARNING: nvramtool-git-r0 do_package_qa: QA Issue: File /usr/sbin/.debug/nvramtool in package nvramtool-dbg contains reference to TMPDIR [buildpaths]
WARNING: intelp2m-git-r0 do_package_qa: QA Issue: File /usr/sbin/intelp2m in package intelp2m contains reference to TMPDIR [buildpaths]
WARNING: wolfssl-5.7.0-r0 do_package_qa: QA Issue: File /usr/lib/libwolfssl.so.42.1.0 in package wolfssl contains reference to TMPDIR [buildpaths]
WARNING: smmstoretool-git-r0 do_package_qa: QA Issue: File /usr/bin/.debug/smmstoretool in package smmstoretool-dbg contains reference to TMPDIR [buildpaths]
WARNING: gcab-1.6-r0 do_package_qa: QA Issue: File /usr/src/debug/gcab/1.6/libgcab/gcab-enums.c in package gcab-src contains reference to TMPDIR [buildpaths]

i found error reference in yocto documentation.

File <filename> in package <packagename> contains reference to TMPDIR [buildpaths]

        This check ensures that build system paths (including [TMPDIR](https://docs.yoctoproject.org/ref-manual/variables.html#term-TMPDIR)) do not appear in output files, which not only leaks build system configuration into the target, but also hinders binary reproducibility as the output will change if the build system configuration changes.

        Typically these paths will enter the output through some mechanism in the configuration or compilation of the software being built by the recipe. To resolve this issue you will need to determine how the detected path is entering the output. Sometimes it may require adjusting scripts or code to use a relative path rather than an absolute one, or to pick up the path from runtime configuration or environment variables.

I understand that it's releated with build susbsystem GO/C/WhateeverBIN not directly with YOCTO/DTS but project tjhat work with recipies like intelp2m/nvramtool/wolfssl?

dancios avatar Sep 05 '24 10:09 dancios

Series that remove:

WARNING: nvramtool-git-r0 do_package_qa: QA Issue: File /usr/sbin/.debug/nvramtool in package nvramtool-dbg contains reference to TMPDIR [buildpaths]

PR160

WARNING: intelp2m-git-r0 do_package_qa: QA Issue: File /usr/sbin/intelp2m in package intelp2m contains reference to TMPDIR [buildpaths]

PR159

WARNING: smmstoretool-git-r0 do_package_qa: QA Issue: File /usr/bin/.debug/smmstoretool in package smmstoretool-dbg contains reference to TMPDIR [buildpaths]

PR161

dancios avatar Sep 09 '24 16:09 dancios

@dancios you wrote

INHIBIT_PACKAGE_DEBUG_SPLIT="1" this change force system not to build debug packages

Does it stop building -dbg packages or includes all debug and source information inside normal package?

m-iwanicki avatar Sep 10 '24 07:09 m-iwanicki

@dancios you wrote

INHIBIT_PACKAGE_DEBUG_SPLIT="1" this change force system not to build debug packages

Does it stop building -dbg packages or includes all debug and source information inside normal package?

@m-iwanicki This is tricky :> INHIBIT_PACKAGE_DEBUG_SPLIT = "1" is including all information in package - but in the end binary are striiped so basically all debug data is lost and we want it to silent this warning. In case when you want have one packege with debug data you also add INHIBIT_PACKAGE_STRIP = "1". If -dbg is required we can only silence this build leaving as it is.

dancios avatar Sep 10 '24 10:09 dancios

I don't think we used -dbg packages anyway I was just concerned that debug parts would get included in normal package.

m-iwanicki avatar Sep 10 '24 10:09 m-iwanicki

WARNING: systemd-1_255.4-r0 do_install: Using /home/root as root user's home directory is not fully supported by systemd                                                                                                             

PR164


WARNING: gcab-1.6-r0 do_package_qa: QA Issue: File /usr/src/debug/gcab/1.6/libgcab/gcab-enums.c in package gcab-src contains reference to TMPDIR [buildpaths]

PR165


WARNING: wolfssl-5.7.0-r0 do_package_qa: QA Issue: File /usr/lib/libwolfssl.so.42.1.0 in package wolfssl contains reference to TMPDIR [buildpaths]

PR166

dancios avatar Sep 11 '24 09:09 dancios

@dancios Would be easier to have all those changes in one PR (with multiple commits), no need to rebuild image 6 times

m-iwanicki avatar Sep 11 '24 11:09 m-iwanicki

@dancios Would be easier to have all those changes in one PR (with multiple commits), no need to rebuild image 6 times

@m-iwanicki https://github.com/Dasharo/meta-dts/pull/167 suggestion makes sense taking in consideration rebuild times. To make faster build without rm -fr build/ i found that this may be sufficient:

bitbake -ccleansstate smmstoretool gcab systemd smmstoretool wolfssl nvramtool linux-yocto

dancios avatar Sep 11 '24 13:09 dancios

@m-iwanicki, what is the status of this issue? I see here some PRs which are said to fix the issues, do they work?

DaniilKl avatar Sep 27 '24 10:09 DaniilKl

@DaniilKl I haven't tested them yet as I couldn't find time to do that. I'll run a clean build without cache on builder to see if there are any warnings still.

m-iwanicki avatar Sep 27 '24 12:09 m-iwanicki

@DaniilKl 2 comments to be addressed and PR could be merged. Build completed without warnings.

m-iwanicki avatar Sep 27 '24 13:09 m-iwanicki

We can confirm whether warnings from this comment could be fixed here as well: https://github.com/Dasharo/meta-dts/pull/179#issuecomment-2385540465

artur-rs avatar Oct 23 '24 09:10 artur-rs