could you please resend the whole mail? (not reply or foward the previous
mail)
在 2012年4月25日 下午4:10,zhangliwei <lifelong830...@gmail.com>写道:
> Sorry.
> Here is the .s file:
> ......
> 24 .section .bss
> 25 .org 0x0
> 26 .align 0
> 27 .globl ccc
> 28 .type ccc, @object
> 29 .size ccc, 60
> 30 ccc: # 0x0
> 31 .skip 1024
> 32 .org 0x400
> 33 .align 0
> 34 .globl test_align
> 35 .type test_align, @object
> 36 .size test_align, 2000
> 37 test_align: # 0x400
> 38 .skip 2048
> 39 .org 0xc00
> 40 .align 0
> 41 .globl test_align11
> 42 .type test_align11, @object
> 43 .size test_align11, 1030
> 44 test_align11: # 0xc00
> 45 .skip 1040
> 46 .org 0x1010
> 47 .align 0
> 48 .globl aaa
> 49 .type aaa, @object
> 50 .size aaa, 60
> 51 aaa: # 0x1010
> 52 .skip 64
> 53 .org 0x1050
> 54 .align 0
> 55 .globl bbb
> 56 .type bbb, @object
> 57 .size bbb, 60
> 58 bbb: # 0x1050
> 59 .skip 60
> ......
>
> Best wishes,
> ZhangLiwei
>
> -----邮件原件-----
> 发件人: open64-devel-requ...@lists.sourceforge.net
> [mailto:open64-devel-requ...@lists.sourceforge.net]
> 发送时间: 2012年4月25日 16:01
> 收件人: open64-devel@lists.sourceforge.net
> 主题: Open64-devel Digest, Vol 65, Issue 35
>
> Send Open64-devel mailing list submissions to
> open64-devel@lists.sourceforge.net
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.sourceforge.net/lists/listinfo/open64-devel
> or, via email, send a message with subject or body 'help' to
> open64-devel-requ...@lists.sourceforge.net
>
> You can reach the person managing the list at
> open64-devel-ow...@lists.sourceforge.net
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Open64-devel digest..."
>
>
> Today's Topics:
>
> 1. Re: Code review request for bug968: wrong align for variables
> (Sun Chan)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 25 Apr 2012 16:00:55 +0800
> From: Sun Chan <sun.c...@gmail.com>
> Subject: Re: [Open64-devel] Code review request for bug968: wrong
> align for variables
> To: zhangliwei <lifelong830...@gmail.com>
> Cc: Ren Dongchen <dongchen....@simplnano.com>, shenruifen
> <ruifen.s...@simplnano.com>, open64-devel@lists.sourceforge.net
> Message-ID:
> <CAGtpj4hA=q2gUtne4eEqVsGhjsS=bdhzjoktm5t7fthfbrm...@mail.gmail.com
> >
> Content-Type: text/plain; charset="windows-1252"
>
> can you dump out the .s file after your change?
> Thx!
> Sun
>
> On Wed, Apr 25, 2012 at 3:07 PM, zhangliwei <lifelong830...@gmail.com
> >wrote:
>
> > **
> >
> > Hi,****
> >
> > could a gatekeeper please help review the fix for bug968? ****
> >
> > (https://bugs.open64.net/show_bug.cgi?id=968)****
> >
> > ** **
> >
> > [lwzhang@cario align]$ cat align1.c****
> >
> > int aaa[15]={0};****
> >
> > __attribute__((aligned(1024))) unsigned char test_align[2000]={0};****
> >
> > int bbb[15]={0};****
> >
> > __attribute__((aligned(1024))) unsigned char test_align11[1030]={0};****
> >
> > int ccc[15]={0};****
> >
> > int main()****
> >
> > {****
> >
> > memset(ccc, 0, sizeof(ccc));****
> >
> > memset(test_align, 0, sizeof(test_align));****
> >
> > memset(test_align11, 0, sizeof(test_align11));****
> >
> > }****
> >
> > ** **
> >
> > [lwzhang@cario align]$ opencc align1.c -o a1 -keep****
> >
> > [lwzhang@cario align]$ vi align1.s****
> >
> > ......****
> >
> > In align1.s:****
> >
> > 24 .section .bss****
> >
> > 25 .org 0x0****
> >
> > 26 .align 0****
> >
> > 27 .globl ccc****
> >
> > 28 .type ccc, @object****
> >
> > 29 .size ccc, 60****
> >
> > 30 ccc: # 0x0****
> >
> > 31 .skip 1024****
> >
> > 32 .org 0x400****
> >
> > 33 .align 0****
> >
> > 34 .globl test_align****
> >
> > 35 .type test_align, @object****
> >
> > 36 .size test_align, 2000****
> >
> > 37 test_align: # 0x400****
> >
> > 38 .skip 2048****
> >
> > 39 .org 0xc00****
> >
> > 40 .align 0****
> >
> > 41 .globl test_align11****
> >
> > 42 .type test_align11, @object****
> >
> > 43 .size test_align11, 1030****
> >
> > 44 test_align11: # 0xc00****
> >
> > 45 .skip 2048****
> >
> > 46 .org 0x1400****
> >
> > 47 .align 0****
> >
> > 48 .globl aaa****
> >
> > 49 .type aaa, @object****
> >
> > 50 .size aaa, 60****
> >
> > 51 aaa: # 0x1400****
> >
> > 52 .skip 64****
> >
> > 53 .org 0x1440****
> >
> > 54 .align 0****
> >
> > 55 .globl bbb****
> >
> > 56 .type bbb, @object****
> >
> > 57 .size bbb, 60****
> >
> > 58 bbb: # 0x1440****
> >
> > 59 .skip 60****
> >
> > ......****
> >
> > ** **
> >
> > (1)Problem:****
> >
> > For variable 'aaa': .org 0x1400 that means 'aaa''s align is same with
> > the****
> >
> > last variable 'test_align11' 1024. ****
> >
> > But 'aaa''s align should be 16, not 1024. So here align for 'aaa' is
> wrong.
> > ****
> >
> > ** **
> >
> > (2)Analysis:****
> >
> > From the source code of open64, I found the reason as follows:****
> >
> > Data_layout.cxx:****
> >
> > static void****
> >
> > Allocate_Space(ST *base, ST *blk, INT32 lpad, INT32 rpad, INT64
> maxsize)**
> > **
> >
> > {****
> >
> > ??****
> >
> > if (!STB_decrement(base)) {****
> >
> > old_offset = STB_size(base);****
> >
> > Set_ST_ofst(blk, ROUNDUP(old_offset + lpad, align));****
> >
> > Set_STB_size(base, ROUNDUP(ST_ofst(blk) + size + rpad, align));****
> >
> > }****
> >
> > else {****
> >
> > old_offset = STB_size(base);****
> >
> > /* align object end */****
> >
> > Set_ST_ofst(blk, ROUNDUP(old_offset + lpad, align)); ****
> >
> > Set_ST_ofst(blk,****
> >
> > -(INT64) ROUNDUP(ST_ofst(blk) + size + rpad, align)); /* start */****
> >
> > Set_STB_size(base, -ST_ofst(blk));****
> >
> > }****
> >
> > ??****
> >
> > }****
> >
> > For variable ?test_align**11?**, it?s offset is 0xc00, and the .bss
> > size update to 0x1400. Then for ?aaa?, it?s offset is .bss size, that is
> > 0x1400. It?s wrong.****
> >
> > The reason is that after allocating space for ?test_align**11?**, .bss
> > size update align with current variable?s align. ****
> >
> > I think it should update by adding current variable?s size without any
> > align.****
> >
> > (3)Patch:****
> >
> > Index: data_layout.cxx****
> >
> > ===================================================================****
> >
> > --- data_layout.cxx (revision 3916)****
> >
> > +++ data_layout.cxx (working copy)****
> >
> > @@ -679,12 +679,13 @@****
> >
> > if (!STB_decrement(base)) {****
> >
> > old_offset = STB_size(base);****
> >
> > Set_ST_ofst(blk, ROUNDUP(old_offset + lpad, align));****
> >
> > - Set_STB_size(base, ROUNDUP(ST_ofst(blk) + size + rpad, align));****
> >
> > + Set_STB_size(base, ST_ofst(blk) + size + rpad);****
> >
> > }****
> >
> > else {****
> >
> > old_offset = STB_size(base);****
> >
> > /* align object end */****
> >
> > - Set_ST_ofst(blk, ROUNDUP(old_offset + lpad, align));****
> >
> > + /* open64.net bug968: here need not align object end */****
> >
> > + Set_ST_ofst(blk, old_offset + lpad);****
> >
> > Set_ST_ofst(blk,****
> >
> > -(INT64) ROUNDUP(ST_ofst(blk) + size + rpad, align)); /* start
> */*
> > ***
> >
> > Set_STB_size(base, -ST_ofst(blk));****
> >
> > ** **
> >
> > ** **
> >
> > Best wishes,****
> >
> > ZhangLiwei****
> >
> >
> >
>
> ----------------------------------------------------------------------------
> --
> > Live Security Virtual Conference
> > Exclusive live event will cover all the ways today's security and
> > threat landscape has changed and how IT managers can respond. Discussions
> > will include endpoint security, mobile security and the latest in malware
> > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> > _______________________________________________
> > Open64-devel mailing list
> > Open64-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/open64-devel
> >
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
>
> ------------------------------
>
>
> ----------------------------------------------------------------------------
> --
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>
> ------------------------------
>
> _______________________________________________
> Open64-devel mailing list
> Open64-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/open64-devel
>
>
> End of Open64-devel Digest, Vol 65, Issue 35
> ********************************************
>
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Open64-devel mailing list
> Open64-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/open64-devel
>
--
Regards,
Lai Jian-Xin
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel