2019-08-21

Q:ld链接railcar的时候报错找不到libseccomp

libseccomp.so(lib secure computing mode.shared object)

  • 属性:The libseccomp library provides an easy to use, platform independent, interface to the Linux Kernel's syscall filtering mechanism。
  • 依赖:libseccomp->libseccomp2->libc6,其中libc6是GNU C的动态链接库,从属于glibc(GNU C/linux的重要组件),随系统安装。
  • apt install libseccomp:关键创建了如下几个文件
    • /lib/架构/libseccomp.so.2.4.1(数字后缀为版本)
    • /lib/架构/libseccomp.so.2-->/lib/libseccomp.so.2.4.1(软链接)
    • /usr/lib/架构/libseccomp.so-->/lib/seccomp.so.2.4.1(软链接)

ld

  • 在指定了linker="arrch64-linux-gnu-gcc"之后ld会在如下几个文件夹中搜索libseccomp.so(忽略libseccomp.so.2.4.1等so)
    • /usr/local/lib/aarch64-linux-gnu
    • /lib/aarch64-linux-gnu
    • /usr/lib/aarch64-linux-gnu
  • 非交叉编译环境下正常ld的搜索路径,可以看到随()架构区分
    • /usr/local/lib/x86_64-linux-gnu
    • /lib/x86_64-linux-gnu
    • /usr/lib/x86_64-linux-gnu

交叉编译包

  • 和交叉编译相关的包有两类
    • toolchain,如g++-8-aarch64-linux-gnu,组成成分为交叉编译相关的二进制工具
    • lib-cross,如libc6-arm64-cross,组成成分为arm64下的libc6
  • 所以着重调查lib-cross有关的包,官网上查找了多个包的list of files后并没有发现libseccomp的踪迹

结论

考虑到libseccomp.so在libc6这种关键的依赖库之上,是系统调用的封装,并且默认系统也是没有安装libseccomp,所以大概率目前源里面并没有包含libseccomp:arm64的包,如目前源里没有vim:arm64这类软件,还是需要通过指定arm64源来下载。
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~

你可能感兴趣的:(2019-08-21)