注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

(转载)揪出gcc默认使用的ld链接脚本  

2013-08-14 21:05:53|  分类: LINUX编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

揪出gcc默认使用的ld链接脚本

http://linux.chinaitlab.com/c/804766.html

首先声明不是讲lds语法的

  在  <<程序员的自我修养-链接装载与库>>一书中曾提到ld默认使用的链接脚本

  说默认在/usr/lib/ldscripts/

  结果我找了半天没找到  我的系统是fedora 8

  find / -name *lds*  找不到 找script也找不到 晕了

  后来查了下发现可以用ld -verbose查看默认的lds

  输出如下:

  GNU ld version 2.19.51.0.14-34.fc12 20090722

  Supported emulations:

  elf_i386

  i386linux

  elf_x86_64

  using internal linker script:

  ==================================================

  /* Script for -z combreloc: combine and sort reloc sections */

  OUTPUT_FORMAT("elf32-i386", "elf32-i386",

  "elf32-i386")

  OUTPUT_ARCH(i386)

  ENTRY(_start)

  SEARCH_DIR("/usr/i686-redhat-linux/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");

  SECTIONS

  {

  /* Read-only sections, merged into text segment: */

  PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x08048000)); . = SEGMENT_START("text-segment",

  0x08048000) + SIZEOF_HEADERS;

  ........

  后面略

  这就奇怪了,那么这个lds到底在哪呢?

  我们用find /usr/* |xargs grep "Script for -z combreloc"看看

  结果 Binary file /usr/bin/ld matches 可见已经集成到ld中了

  readelf -P --string-dump=.rodata ld便可以找到

 

  评论这张
 
阅读(621)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017