November 2022 Archives

Fedora37 发布了

Linux内核6.0,GNOME 43桌面环境,并且支持树莓派 4(Raspberry Pi 4),还包括:

  • 支持openssl3.0;
  • 将继续支持传统 BIOS;
  • 将在 Raspberry Pi 4 设备上提供官方支持;
  • 获准使用 Web UI 安装程序;
  • 新提案:不受限制地访问 Flathub;
  • 为节省存储空间,Fedora 37 将按需安装固件;
  • 将使用最小 Curl 包,仅支持 HTTP (S) 和 FTP 协议;
  • 考虑删除旧版 X.Org 驱动程序;
  • 计划使用 RPM 4.18 ,以获得更好的安全性;

需要尝鲜的,可以体验啦!=>https://getfedora.org/

对官方tensorflow-1.15.5做了移除abseil-cpp之后,发现一些link问题,程序虽然编译和链接时,都没有问题,但是打的RPM包之后,程序运行时,会hang住。

本地正常运行也没有问题,主要体现在最后link的参数上:

 -Wl,-z -Wl,relro -Wl,-z -Wl,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld

如果一旦链接上-specs=/usr/lib/rpm/redhat/redhat-hardened-ld,就表现不正常,此问题已经在红帽子官网报告过。当前笔者使用的是CentOS8,和fedora23相当,所以此处bug仅记录。

解决办法也比较简单,spec文件中加入自定义ldflags即可:

%define build_ldflags  %{nil}

这里为不加。

本着寻根究底的精神,确认link过程中有问题,于是,查询去掉一部分link,发现并不会hang住,罪魁祸首是opennmt-tokenizer,其依赖了sentencepiece,而sentencepiece代码中依赖了protobuf和absl,在0.1.96版本中,由于SPM_USE_EXTERNAL_ABSL写反了(BUG),导致使用了thirdparty目录下的protobuf的源文件和abseil的源文件加入其中一起编译,从而导致了符号冲突。

BTW:二进制运行时提示:

[libprotobuf ERROR google/protobuf/descriptor_database.cc:641] File already exists in database: tensorflow/core/profiler/tfprof_log.proto

有几种情况:

(1)tensorflow的C库和C++库一起链接导致;

(2)其它protobuf的版本内置导致,如(abseil)

Monthly Archives

Pages

Powered by Movable Type 7.9.4

About this Archive

This page is an archive of entries from November 2022 listed from newest to oldest.

August 2022 is the previous archive.

January 2023 is the next archive.

Find recent content on the main index or look in the archives to find all content.