免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3431 | 回复: 3
打印 上一主题 下一主题

编译arm工具链的glibc时出现"multiple definition of"错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-05 16:59 |只看该作者 |倒序浏览
本帖最后由 add358 于 2013-08-05 17:00 编辑

各位好!最近在做arm的工具链,做到gblic这一步,就遇到问题,问题具体如下:

编译工具:arm-linux-gcc (4.8.1 纯净)
源码包   :glibc-2.17
              glibc-ports-2.15
              glibc-linuxthreads-2.5

已经编译好binutils(2.23)和arm-linux-gcc(4.8.1 纯净);
glibc的配置如下
  1. --prefix=$(PREFIX_PATH) --host=$(TARGET) --with-header=$(PREFIX_PATH)/include --with_binutils=$(PREFIX_PATH)/bin --enable-add-ons --enable-kernel=2.6.15 --with--_thread CFLAGS="-O2 -pipe -DNDEBUG -DG_DISABLE_ASSER -fomit-frame-pointer" libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes
复制代码
出错现象:
  1. arm-cortex_a8-linux-gnueabi-gcc   -nostdlib -nostartfiles -r -o /home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/elf/librtld.map.o '-Wl,-(' /home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/elf/dl-allobjs.os /home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/libc_pic.a -lgcc '-Wl,-)' -Wl,-Map,/home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/elf/librtld.mapT
  2. /home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/libc_pic.a(dl-addr.os): In function `_dl_addr_inside_object':
  3. dl-addr.c:(.text+0x0): multiple definition of `_dl_addr_inside_object'
  4. /home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/elf/dl-allobjs.os::(.text+0x11730): first defined here
  5. /home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/libc_pic.a(init-first.os):(.data+0x0): multiple definition of `__libc_multiple_libcs'
  6. /home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/elf/dl-allobjs.os:(.bss+0x90): first defined here
  7. /home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/libc_pic.a(_itoa.os): In function `_itoa':
  8. _itoa.c:(.text+0xf8): multiple definition of `_itoa'
  9. /home/jake/project/toolchain/glibc/glibc-2.17-arm-cortex_a8-linux-gnueabi-build/elf/dl-allobjs.os::(.text+0x1451c): first defined here
  10. collect2: error: ld returned 1 exit status
复制代码
对于这方面来说,我还是个新手,所以这个错误弄了好几天,一直没有起色!
希望这方面的高手能提供一下解决方法!
thanks.

论坛徽章:
0
2 [报告]
发表于 2013-08-06 14:02 |只看该作者
风平浪静。。。。。。

论坛徽章:
0
3 [报告]
发表于 2013-08-07 11:08 |只看该作者
看来只能自问自答了!

解决方法 编译时指定 "-march=armv7-a",另外glibc-2.17无需打补丁,且glibc-ports-2.15(or 16)和glibc-linuxthread-2.5 与 glibc-2.17是不兼容的。

还有不带“--with-tls"重新编译了下纯净的 arm-cortex_a8-linux-gnueabi 编译器,不知道跟这个有没有关系。
总之是编译通过了,大吉大利,可喜可贺。

论坛徽章:
0
4 [报告]
发表于 2013-08-22 19:24 |只看该作者
可能大家没有遇到。不过你把答案贴在这里了,这个问题算是有个交待了。某天,别人从百度搜到你的提问和解答,也会感谢你的 。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP