Re: [Libhugetlbfs-devel] [RFC PATCH] Move 64bit xB BSS into 256MB segment areas
On Tue, 2007-12-04 at 11:45 +1100, David Gibson wrote: > On Mon, Dec 03, 2007 at 02:10:54PM -0600, Steve Fox wrote: > > Right. That's what I was trying to say (apparently not so well :). The > > 0x101 address is the end of the BSS padding. I expected it to be > > at 0x200 because I added a second ALIGN statement. But your > > statements below (regarding overcommit) make me wonder if ld > > intentionally limits the amount of padding we can do. > > Uh.. that seems very unlikely. I could imagine ld choking on > too-large segments, but not silently truncating the padding. Can you > send a full copy of your modified script that we're discussing - I > think we've only seen fragments in the thread to date. Could it be > something as simple as a typo in the number of zeroes in your ALIGN? Here's the script I'm using. There's just two lines different from the current version. /* Linker script for normal executables with BSS in hugepages */ OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc", "elf64-powerpc") OUTPUT_ARCH(powerpc:common64) ENTRY(_start) SEARCH_DIR("/usr/powerpc64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/powerpc64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); INPUT(-lhugetlbfs); PHDRS { headers PT_PHDR PHDRS ; interp PT_INTERP ; text PT_LOAD FILEHDR PHDRS ; data PT_LOAD ; htlb PT_LOAD FLAGS (0x0017); dynamic PT_DYNAMIC ; note PT_NOTE ; /* this is the value of PT_GNU_EH_FRAME as defined in usr/include/elf.h but binutils does not recognize that identifier as it does other PT_ constants. */ eh_frame_hdr 1685382480 FLAGS (0x0004); } SECTIONS { /* Read-only sections, merged into text segment: */ __executable_start = 0x1000; . = 0x1000 + SIZEOF_HEADERS; .interp : { *(.interp) } :text :interp .note.SuSE : { *(.note.SuSE) } :text :note .note.ABI-tag : { *(.note.ABI-tag) } :text :note .hash : { *(.hash) } :text .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version: { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata: { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro*) } .rela.data.rel.ro : { *(.rel.data.rel.ro*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got: { *(.rel.got) } .rela.got : { *(.rela.got) } .rela.toc : { *(.rela.toc) } .rel.sdata : { *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) } .rela.sdata : { *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) } .rel.sbss : { *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) } .rela.sbss : { *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) } .rel.sdata2 : { *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) } .rela.sdata2: { *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) } .rel.sbss2 : { *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) } .rela.sbss2 : { *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) } .rel.bss: { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt: { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .rela.tocbss: { *(.rela.tocbss) } .init : { KEEP (*(.init)) } =0x6000 .text : { *(.text .stub .text.* .gnu.linkonce.t.*) KEEP (*(.text.*personality*)) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.sfpr .glink) } =0x6000 .fini : { KEEP (*(.fini)) } =0x6000 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1: { *(.rodata1) } .sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) } .sbss2 : { *(.sbss2
[Libhugetlbfs-devel] 先给花粉保健品售完结算做全面广告
寻找保健品代理商.先给产品售完结算.做全面性广告"该信息只发一次"如你感兴趣速联系。{也可全国独家代理;也可贴标生产}给优秀代理商每年投入市场开拓费,广告费5-50万元.了解详情到我厂网站http://www.nmrfhf.com [EMAIL PROTECTED] [千万不要在你现在的网站留言;根本看不到你的信息]我厂生产破壁花粉精系列保健品,系列美容面膜;花粉精与回归自然的时代潮流不谋而合,功效独特是理想的功能性保健品,完全的营养库能吃的化妆品,一次启动市场长期销售利润稳定,发展空间巨大容易接受重复购买率高 内蒙古巴彦淖尔市临河荣富花粉营养素厂 电话0478-8214979 或 13514789379 在线QQ:345140364 《内蒙古"荣富牌"破壁花粉精,畅销全国的三大优势》 下面网址专家视频讲座<破壁花粉精>第一节讲黑木耳;第二节讲<破壁花粉精>疗效!!! http://v.youku.com/v_show/id_co00XMjk0MTIxMg==.html (1)内蒙古大草原无污染有得天独厚的地理条件,造就了荣富牌花粉精的畅销。 (2)荣富牌花粉精口碑好,卖点好高科技管理好,20年的老厂诚信服务大家都知道 (3)百余家联盟代理商在全国掀起一片热潮,一次启动市场,长期销售.利润稳定.发展空间巨大.重复购买率高。 - SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4___ Libhugetlbfs-devel mailing list Libhugetlbfs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libhugetlbfs-devel