22 Star 26 Fork 114

src-openEuler/gcc

 / 详情

gcc 10.3.0 __libc_vfork符号丢失(i686架构)

待办的
任务
创建于  
2022-02-25 14:24

背景:glibc 构建i686版本出现编译问题,错误日志如下:
输入图片说明

定位过程:
libc_pic.a -> libc_pic.os -> libc_pic.os.clean -> libc.so -> libc.so.6.new -> libc.so.6
依次查看动态库中是否存在__libc_vfork,在生成libc.so后没有了
输入图片说明

具体编译命令如下:
gcc -shared -static-libgcc -Wl,-O1 -Wl,-z,defs -Wl,-dynamic-linker=/lib/ld-linux.so.2
-B/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/csu/
-Wl,--version-script=/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/libc.map
-Wl,-soname=libc.so.6 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -Wl,-z,now -nostdlib -nostartfiles -e __libc_main
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/math
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/elf
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/dlfcn
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/nss
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/nis
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/rt
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/resolv
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/mathvec
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/support
-L/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/nptl -Wl,-rpath-link=/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/math:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/elf:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/dlfcn:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/nss:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/nis:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/rt:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/resolv:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/mathvec:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/support:/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/nptl
-o /home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/libc.so
/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/csu/abi-note.o
-Wl,--whole-archive /home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/libc_pic.os.clean -Wl,--no-whole-archive
/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/elf/interp.os
/home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/elf/ld.so
-lgcc /home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/elf/sofini.os

尝试寻找的解决方案:
1、-Wl,--whole-archive /home/abuild/rpmbuild/BUILD/glibc-2.34/build-i686-openEuler-linux/libc_pic.os.clean -Wl,--no-whole-archive
2、-u __libc_vfork
以上两种方法均没有效果
https://stackoverflow.com/questions/24232726/symbol-is-lost-after-linking-shared-library

怀疑是gcc 10.3.0在i686架构下有什么特殊机制,麻烦帮忙定位下,谢谢~

评论 (4)

Xayahion 创建了任务

Hi zhangyiru330, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Compiler, and any of the maintainers: @Haijian.Zhang , @CharlieZhao95 , @shihai1991 , @Noah , @eastb233 , @jiangfeilong , @HsError , @kuen , @guoge , @Peixin Qiao , @wangyadong , @Ryan Peng , @Peilin Guo

openeuler-ci-bot 添加了
 
sig/Compiler
标签
Xayahion 修改了描述
Xayahion 修改了标题

非标准openEuler X86_64 AArch64版本,同步源码构建的其他架构版本。
@wangding16 瞅瞅

eastb233 添加了
 
bug/unconfirmed
标签

@Xayahion 能否把构建glibc更改的spec的地方同步一下?

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(4)
5329419 openeuler ci bot 1632792936 7819938 zhangyiru330 1675742178
1
https://gitee.com/src-openeuler/gcc.git
git@gitee.com:src-openeuler/gcc.git
src-openeuler
gcc
gcc

搜索帮助

A270a887 8829481 3d7a4017 8829481