【问题标题】:Why does my precompiled binary change in yocto?为什么我的预编译二进制文件在 yocto 中发生了变化?
【发布时间】:2021-09-02 14:28:43
【问题描述】:

我想尝试在 Yocto 中使用https://bell-sw.com/ 提供的 Liberica JDK。我没有看到它的食谱,所以我尝试创建自己的食谱。它只是拉下 32 位 arm 预编译的二进制文件并安装它们。这是我的.bb 文件。

LICENSE = "CLOSED"

SRC_URI += "\
         https://download.bell-sw.com/java/11.0.11+9/bellsoft-jdk11.0.11+9-linux-arm32-vfp-hflt-full.tar.gz \
         "
SRC_URI[sha1sum] = "973d357361fd2a9c328e37c93e6f546ee43ade5f"

S = "${WORKDIR}/jdk-11.0.11-full"

INSANE_SKIP_${PN} = "ldflags"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT  = "1"

do_install() {
        install -d ${D}/usr/share/java/
        install -d ${D}/usr/lib/jvm/jdk-11.0.11-bellsoft
        cp -r "${S}" ${D}/usr/lib/jvm/jdk-11.0.11-bellsoft
}

FILES_${PN} += "/"

do_package_qa[noexec] = "1"
EXCLUDE_FROM_SHLIBS = "1"

这会将其拉下并将其添加到我的图像中。但是,当我刷新映像并启动它时,java 二进制段错误。我觉得这很奇怪,所以我用相同的校验和手动在目标上下载了完全相同的 tarball 并将其解压缩,并且工作得很好。然后我diffed 这两个二进制文件并注意到它们有些不同!这让我想知道 yocto/bitbake 是否可以对预编译的二进制文件做些什么。

执行ls -l 表明二进制文件的大小也不同。这让我检查了工作区,看看文件在提取过程中是否发生了变化,而事实并非如此。

# Checking the workspace where I install the binary has the correct size
ls -l tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/bellsoft-jdk/11.0.11-r0/image/usr/lib/jvm/jdk-11.0.11-bellsoft/jdk-11.0.11-full/bin/java | awk '{print $5}'
8120
# Checking on the target where the image is installed has the incorrect size
ls -l /usr/lib/jvm/jdk-11.0.11-bellsoft/jdk-11.0.11-full/bin/java | awk '{print $5}'
9788

有谁知道什么可能导致二进制更改?

【问题讨论】:

  • 我还注意到 rpm 中的文件大小正确。只是在图像上有所不同。运行这个表明那个java应该是正确的......rpm -qlvp ./tmp/deploy/rpm/cortexa7t2hf_neon_vfpv4/bellsoft-jdk-11.0.11-r0.cortexa7t2hf_neon_vfpv4.rpm
  • 另外有趣的是,在图像上,如果我检查 RPM 认为大小应该是什么 RPM 认为大小是正确的。即使它仍然与那里列出的大小不同。 rpm -qlv bellsoft-jdk8120 /usr/lib/jvm/jdk-11.0.11-bellsoft/jdk-11.0.11-full/bin/java

标签: java raspberry-pi yocto bitbake


【解决方案1】:

我仍然不确定是什么导致了这种行为。但是,我随机尝试安装到${D}${datadir}/jvm/jdk-11.0.11-bellsoft,然后就没有再修改了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多