This patch is too long. There are a lot of helper functions but I
don't think they are necessary. For example, for the last piece of the
changes in wgen_spin_symbol.cxx:
VLS_SIZE is never used.

2012/1/3 Sun Chan <sun.c...@gmail.com>:
> Thx for the clarification. I will try look at the changes. ljx, would
> you take a look also?
> Thx!
> Sun
>
> On Tue, Jan 3, 2012 at 6:40 PM, Ling Kun <erlv5...@gmail.com> wrote:
>> Hi, Sun:
>>    Sorry for my confusing expression.
>>    This patch is only a private merged patch for Gang Yu's kernel building
>> mail. And is  only a draft version patch, which is not intended for SVN
>> submit currently. It is not in Open64 trunck yet.
>>
>> Ling Kun
>>
>>
>> On Tue, Jan 3, 2012 at 6:34 PM, Sun Chan <sun.c...@gmail.com> wrote:
>>>
>>> when did this checkin happened? Did that gone through code review and
>>> checkin review permission?
>>> Sun
>>>
>>> On Tue, Jan 3, 2012 at 6:27 PM, Ling Kun <erlv5...@gmail.com> wrote:
>>> > Hi, Jian-Xin:
>>> >     Yes, it support.
>>> >
>>> >     I am afraid the comment need to update. We only support last field
>>> > variant-length firstly as the comment says, but after some regression
>>> > test
>>> > for kernel build  and debugging, we  finally add any field
>>> > variant-length
>>> > support.
>>> >
>>> > Ling  Kun
>>> >
>>> >
>>> >
>>> >
>>> > 2012/1/3 Jian-Xin Lai <laij...@gmail.com>
>>> >>
>>> >> From the comments, this patch only supports the case of the last field
>>> >> is variant-length? Does this patch work for the following case:
>>> >> int foo(int x, int y) {
>>> >>  struct {
>>> >>    int arr1[x];
>>> >>    int arr2[0];
>>> >>    int arr3[y];
>>> >>  } st;
>>> >>  st.arr1[0] = st.arr2[0] = st.arr3[0] = 1;
>>> >>  printf("%d, %d, %d\n", st.arr1[0], st.arr2[0], st.arr3[0]);
>>> >> }
>>> >>
>>> >> 2012/1/3 Ling Kun <erlv5...@gmail.com>:
>>> >> > Hi, Gang and Sun:
>>> >> >      I have merged ICT's VLAS patch to open64,  the code can work for
>>> >> > a
>>> >> > minimal testcase. Please see the attachment. More testcase following
>>> >> > the
>>> >> > standard is needed, and I am working on it.
>>> >> >
>>> >> >      To make things done quickly, I modified some of the code, the
>>> >> > patch
>>> >> > in
>>> >> > the attachment is only a draft version. I also need more information
>>> >> > about
>>> >> > the x86 kernel building environment to go on. And the patch itself
>>> >> > need
>>> >> > some
>>> >> > modification to satisfy the svn trunck commit rules.
>>> >> >
>>> >> >      My team mate Zhao Hongjian is working on the document. It will
>>> >> > take
>>> >> > him
>>> >> > some times to finish.
>>> >> >
>>> >> >
>>> >> >      Gang, would you please give me some details about your compile
>>> >> > command
>>> >> > and the .i file after preprocessor. Thanks.
>>> >> >
>>> >> > Ling Kun.
>>> >> >
>>> >> > The testcase :
>>> >> > #include <assert.h>
>>> >> > int f2(int i2){  return i2; }
>>> >> > static void f1(int i1) {
>>> >> >   struct VLS{ int ary1[f2(i1)]; } st1;
>>> >> >   st1.ary1[1] = i1 + 1;
>>> >> >   assert( st1.ary1[1] == 3);
>>> >> > }
>>> >> >
>>> >> > int main () {
>>> >> >         f1(2);
>>> >> >         return 0;
>>> >> >
>>> >> > }
>>> >> >
>>> >> >
>>> >> > On Sun, Jan 1, 2012 at 9:02 PM, Gang Yu <yugang...@gmail.com> wrote:
>>> >> >>
>>> >> >> Hi, Ling Kun:
>>> >> >>
>>> >> >>   Glad to hear loongson team has solved this issue!  I googled this
>>> >> >> feature on gnu site, I do not find the relevant documents. Could you
>>> >> >> please
>>> >> >> write some documents or elaborate more on your patch?
>>> >> >>
>>> >> >>    Thanks a lot!
>>> >> >>
>>> >> >> Regards
>>> >> >> Gang
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >> 2012/1/1 凌坤 <erlv5...@gmail.com>
>>> >> >>>
>>> >> >>> Hi, Sun:
>>> >> >>>    I am glad to do that. And now I am trying to merge this patch to
>>> >> >>> Open64 svn trunck, it is a little complex to try to pick it from
>>> >> >>> the
>>> >> >>> Loongson branch :)
>>> >> >>>    Hoping that a patch that can pass some testcase can be submit in
>>> >> >>> 1-2
>>> >> >>> days  :)
>>> >> >>>
>>> >> >>>    Happy New year.
>>> >> >>>
>>> >> >>> Ling Kun
>>> >> >>>
>>> >> >>>
>>> >> >>> ------------------ Original ------------------
>>> >> >>> From:  "Sun Chan"<sun.c...@gmail.com>;
>>> >> >>> Date:  Sun, Jan 1, 2012 02:25 PM
>>> >> >>> To:  "Ling Kun"<lkun.e...@gmail.com>;
>>> >> >>> Cc:  "open64-devel"<open64-devel@lists.sourceforge.net>;
>>> >> >>> Subject:  Re: [Open64-devel] Current build status for linux kernel
>>> >> >>> on
>>> >> >>> open64
>>> >> >>>
>>> >> >>> LingKun,
>>> >> >>>
>>> >> >>> can you send the changes for VLS (or VLA) to this alias (or send to
>>> >> >>> me
>>> >> >>> and Yugang privately and we can help review and test out on x86)
>>> >> >>> for
>>> >> >>> review?
>>> >> >>> Sun
>>> >> >>>
>>> >> >>> On Sun, Jan 1, 2012 at 10:14 AM, Ling Kun <lkun.e...@gmail.com>
>>> >> >>> wrote:
>>> >> >>> > hi, Gang Yu:
>>> >> >>> >   Loongson compiler(based on Open64) team have successfully build
>>> >> >>> > MIPS
>>> >> >>> > Linux kernel 2.6.35, and make it run on Qemu. And we have solved
>>> >> >>> > the
>>> >> >>> > VLA
>>> >> >>> > issue, the debug record and patches (based on the Open64 trunck
>>> >> >>> > svn
>>> >> >>> > r28xx)
>>> >> >>> > of Loongson teams' work have be sent to Zhu qing.
>>> >> >>> >   If it is possible, we are glad to merge our VLA work to Open64
>>> >> >>> > current
>>> >> >>> > SVN trunck version.
>>> >> >>> >
>>> >> >>> > Ling Kun.
>>> >> >>> >
>>> >> >>> >
>>> >> >>> >
>>> >> >>> > On Sat, Dec 31, 2011 at 10:45 AM, Gang Yu <yugang...@gmail.com>
>>> >> >>> > wrote:
>>> >> >>> >>
>>> >> >>> >> Thanks. we also wish could get input from the original wgen
>>> >> >>> >> authors,
>>> >> >>> >> it is
>>> >> >>> >> leaving an unsupported feature for VLA and then compiler
>>> >> >>> >> asserts.
>>> >> >>> >> In
>>> >> >>> >> order
>>> >> >>> >> to avoid duplication of effort, we wish learn from the seniors
>>> >> >>> >> and
>>> >> >>> >> then we
>>> >> >>> >> can go ahead or make workaround.
>>> >> >>> >>
>>> >> >>> >>
>>> >> >>> >> Regards
>>> >> >>> >> Gang
>>> >> >>> >>
>>> >> >>> >>
>>> >> >>> >>
>>> >> >>> >> On Sat, Dec 31, 2011 at 10:42 AM, Sun Chan <sun.c...@gmail.com>
>>> >> >>> >> wrote:
>>> >> >>> >>>
>>> >> >>> >>> Let me try to understand. You are asking for opinions on
>>> >> >>> >>> whether
>>> >> >>> >>> ope64
>>> >> >>> >>> should ignore the VLA problem until there is further
>>> >> >>> >>> documentation
>>> >> >>> >>> and/or evidence of more VLA usage? Until then, workaround that
>>> >> >>> >>> by
>>> >> >>> >>> changing kernel source?
>>> >> >>> >>> Sun
>>> >> >>> >>>
>>> >> >>> >>> On Sat, Dec 31, 2011 at 10:36 AM, Gang Yu <yugang...@gmail.com>
>>> >> >>> >>> wrote:
>>> >> >>> >>> > Hi, list:
>>> >> >>> >>> >
>>> >> >>> >>> >   We have some efforts on building and tuning linux kernel on
>>> >> >>> >>> > open64,
>>> >> >>> >>> > we
>>> >> >>> >>> > have fixed several bugs and now we have only two building
>>> >> >>> >>> > issues
>>> >> >>> >>> >  and
>>> >> >>> >>> > several running issues at x86_64 target, O2 level.
>>> >> >>> >>> >
>>> >> >>> >>> > linux 2.6.32 as an example, the two building issues are:
>>> >> >>> >>> >
>>> >> >>> >>> > A). bug787, Rao Shivarama has submitted a patch, but due to
>>> >> >>> >>> > the
>>> >> >>> >>> > regression
>>> >> >>> >>> > filed as bug882, the patch is backed out. This is still a
>>> >> >>> >>> > pending
>>> >> >>> >>> > issue. My
>>> >> >>> >>> > personally investigation shows Rao's approach is on the right
>>> >> >>> >>> > track,
>>> >> >>> >>> > the
>>> >> >>> >>> > bug882 shows the fix triggers the SSA version verification
>>> >> >>> >>> > issues
>>> >> >>> >>> > which
>>> >> >>> >>> > are
>>> >> >>> >>> > already known in open64, filed as bug889/891/892. We will
>>> >> >>> >>> > continue
>>> >> >>> >>> > work
>>> >> >>> >>> > on
>>> >> >>> >>> > it.
>>> >> >>> >>> >
>>> >> >>> >>> > B). the Variable Length Array in Structs (VLAS), this is a
>>> >> >>> >>> > common
>>> >> >>> >>> > issue
>>> >> >>> >>> > for
>>> >> >>> >>> > non-gnu compilers.
>>> >> >>> >>> >
>>> >> >>> >>> > clang documents the issue below:
>>> >> >>> >>> >
>>> >> >>> >>> > Intentionally unsupported GCC extensions
>>> >> >>> >>> >
>>> >> >>> >>> > clang does not support the gcc extension that allows
>>> >> >>> >>> > variable-length
>>> >> >>> >>> > arrays
>>> >> >>> >>> > in structures. This is for a few reasons: one, it is tricky
>>> >> >>> >>> > to
>>> >> >>> >>> > implement,
>>> >> >>> >>> > two, the extension is completely undocumented, and three, the
>>> >> >>> >>> > extension
>>> >> >>> >>> > appears to be rarely used. Note that clang does support
>>> >> >>> >>> > flexible
>>> >> >>> >>> > array
>>> >> >>> >>> > members (arrays with a zero or unspecified size at the end of
>>> >> >>> >>> > a
>>> >> >>> >>> > structure).
>>> >> >>> >>> >
>>> >> >>> >>> >
>>> >> >>> >>> > I review the failure case of kernel build, the VLAS are not
>>> >> >>> >>> > the
>>> >> >>> >>> > flexible
>>> >> >>> >>> > array members(case like this : struct  A { int a; int b; char
>>> >> >>> >>> > ctx[]} is
>>> >> >>> >>> > called Flexible array menbers. It is a newly introduced
>>> >> >>> >>> > feature
>>> >> >>> >>> > c99
>>> >> >>> >>> > or
>>> >> >>> >>> > later, open64 supports it well.)
>>> >> >>> >>> >
>>> >> >>> >>> > VLAS does not appear in linux kernel source code frequently:
>>> >> >>> >>> >
>>> >> >>> >>> > lib/libcrc32c.c
>>> >> >>> >>> > u32 crc32c(u32 crc, const void *address, unsigned int length)
>>> >> >>> >>> > 43{
>>> >> >>> >>> > 44  struct {
>>> >> >>> >>> > 45  struct shash_desc shash;
>>> >> >>> >>> > 46  char ctx[crypto_shash_descsize(tfm)];
>>> >> >>> >>> > 47  } desc;
>>> >> >>> >>> > crypto/testmgr.c
>>> >> >>> >>> >   struct {
>>> >> >>> >>> > 1432  struct shash_desc shash;
>>> >> >>> >>> > 1433  char ctx[crypto_shash_descsize(tfm)];
>>> >> >>> >>> > 1434  } sdesc;
>>> >> >>> >>> > crypo/hmac.c
>>> >> >>> >>> >   struct {
>>> >> >>> >>> > 1432  struct shash_desc shash;
>>> >> >>> >>> > 1433  char ctx[crypto_shash_descsize(tfm)
>>> >> >>> >>> > ];
>>> >> >>> >>> > 1434  } sdesc;
>>> >> >>> >>> >
>>> >> >>> >>> >
>>> >> >>> >>> >   I just speculate that clang will support kernel build by
>>> >> >>> >>> > flexible
>>> >> >>> >>> > array
>>> >> >>> >>> > members. It is not the case,
>>> >> >>> >>> >
>>> >> >>> >>> > http://llvm.org/bugs/show_bug.cgi?id=4071
>>> >> >>> >>> >
>>> >> >>> >>> > and people claim that they build up kernel with clang, but it
>>> >> >>> >>> > is
>>> >> >>> >>> > not
>>> >> >>> >>> > fully
>>> >> >>> >>> > functional.
>>> >> >>> >>> >
>>> >> >>> >>> >
>>> >> >>> >>> >
>>> >> >>> >>> > http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-October/011711.html
>>> >> >>> >>> >
>>> >> >>> >>> > as this guy pointed out,
>>> >> >>> >>> >
>>> >> >>> >>> >   * SELinux, Posix ACLs, IPSec, eCrypt, anything that uses
>>> >> >>> >>> > the
>>> >> >>> >>> > crypto
>>> >> >>> >>> > API -
>>> >> >>> >>> > None
>>> >> >>> >>> >   of these will compile, due to either an ICE or
>>> >> >>> >>> > variable-length
>>> >> >>> >>> > arrays in
>>> >> >>> >>> >   structures (don't remember which, it's in my notes
>>> >> >>> >>> > somewhere).
>>> >> >>> >>> > If
>>> >> >>> >>> > it's
>>> >> >>> >>> >   variable-length arrays or another intentionally unsupported
>>> >> >>> >>> > GNUtension,
>>> >> >>> >>> > I'm
>>> >> >>> >>> >   hoping it's just used in some isolated implementation
>>> >> >>> >>> > detail
>>> >> >>> >>> > (or
>>> >> >>> >>> > details),
>>> >> >>> >>> >   and not a fundamental part of the crypto API (honestly just
>>> >> >>> >>> > haven't
>>> >> >>> >>> > had
>>> >> >>> >>> > a
>>> >> >>> >>> >   chance to dive into the crypto source yet). I'm really
>>> >> >>> >>> > hoping
>>> >> >>> >>> > it's
>>> >> >>> >>> > an
>>> >> >>> >>> > issue
>>> >> >>> >>> >   in Clang, though, as it's easier for me to hack Clang and
>>> >> >>> >>> > I'm
>>> >> >>> >>> > trying to
>>> >> >>> >>> >   avoid kernel patches as much as possible.
>>> >> >>> >>> >
>>> >> >>> >>> >
>>> >> >>> >>> > We meet the problem and post it out, we wish we could get
>>> >> >>> >>> > input
>>> >> >>> >>> > from
>>> >> >>> >>> > community and go on the kernel building/tuning work to
>>> >> >>> >>> > broaden
>>> >> >>> >>> > the
>>> >> >>> >>> > open64's
>>> >> >>> >>> > application and improve the code quality.
>>> >> >>> >>> >
>>> >> >>> >>> > Thanks.
>>> >> >>> >>> >
>>> >> >>> >>> > Regards
>>> >> >>> >>> > Gang
>>> >> >>> >>> >
>>> >> >>> >>> >
>>> >> >>> >>> >
>>> >> >>> >>> >
>>> >> >>> >>> >
>>> >> >>> >>> > ------------------------------------------------------------------------------
>>> >> >>> >>> > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't
>>> >> >>> >>> > need
>>> >> >>> >>> > a
>>> >> >>> >>> > complex
>>> >> >>> >>> > infrastructure or vast IT resources to deliver seamless,
>>> >> >>> >>> > secure
>>> >> >>> >>> > access
>>> >> >>> >>> > to
>>> >> >>> >>> > virtual desktops. With this all-in-one solution, easily
>>> >> >>> >>> > deploy
>>> >> >>> >>> > virtual
>>> >> >>> >>> > desktops for less than the cost of PCs and save 60% on VDI
>>> >> >>> >>> > infrastructure
>>> >> >>> >>> > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
>>> >> >>> >>> > _______________________________________________
>>> >> >>> >>> > Open64-devel mailing list
>>> >> >>> >>> > Open64-devel@lists.sourceforge.net
>>> >> >>> >>> > https://lists.sourceforge.net/lists/listinfo/open64-devel
>>> >> >>> >>> >
>>> >> >>> >>
>>> >> >>> >>
>>> >> >>> >>
>>> >> >>> >>
>>> >> >>> >>
>>> >> >>> >>
>>> >> >>> >>
>>> >> >>> >> ------------------------------------------------------------------------------
>>> >> >>> >> Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need
>>> >> >>> >> a
>>> >> >>> >> complex
>>> >> >>> >> infrastructure or vast IT resources to deliver seamless, secure
>>> >> >>> >> access
>>> >> >>> >> to
>>> >> >>> >> virtual desktops. With this all-in-one solution, easily deploy
>>> >> >>> >> virtual
>>> >> >>> >> desktops for less than the cost of PCs and save 60% on VDI
>>> >> >>> >> infrastructure
>>> >> >>> >> costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
>>> >> >>> >> _______________________________________________
>>> >> >>> >> Open64-devel mailing list
>>> >> >>> >> Open64-devel@lists.sourceforge.net
>>> >> >>> >> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>> >> >>> >>
>>> >> >>> >
>>> >> >>> >
>>> >> >>> >
>>> >> >>> > --
>>> >> >>> > http://www.lingcc.com
>>> >> >>> >
>>> >> >>> >
>>> >> >>> >
>>> >> >>> >
>>> >> >>> > ------------------------------------------------------------------------------
>>> >> >>> > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a
>>> >> >>> > complex
>>> >> >>> > infrastructure or vast IT resources to deliver seamless, secure
>>> >> >>> > access
>>> >> >>> > to
>>> >> >>> > virtual desktops. With this all-in-one solution, easily deploy
>>> >> >>> > virtual
>>> >> >>> > desktops for less than the cost of PCs and save 60% on VDI
>>> >> >>> > infrastructure
>>> >> >>> > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
>>> >> >>> > _______________________________________________
>>> >> >>> > Open64-devel mailing list
>>> >> >>> > Open64-devel@lists.sourceforge.net
>>> >> >>> > https://lists.sourceforge.net/lists/listinfo/open64-devel
>>> >> >>> >
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>> ------------------------------------------------------------------------------
>>> >> >>> Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a
>>> >> >>> complex
>>> >> >>> infrastructure or vast IT resources to deliver seamless, secure
>>> >> >>> access
>>> >> >>> to
>>> >> >>> virtual desktops. With this all-in-one solution, easily deploy
>>> >> >>> virtual
>>> >> >>> desktops for less than the cost of PCs and save 60% on VDI
>>> >> >>> infrastructure
>>> >> >>> costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
>>> >> >>> _______________________________________________
>>> >> >>> Open64-devel mailing list
>>> >> >>> Open64-devel@lists.sourceforge.net
>>> >> >>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>> ------------------------------------------------------------------------------
>>> >> >>> Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a
>>> >> >>> complex
>>> >> >>> infrastructure or vast IT resources to deliver seamless, secure
>>> >> >>> access
>>> >> >>> to
>>> >> >>> virtual desktops. With this all-in-one solution, easily deploy
>>> >> >>> virtual
>>> >> >>> desktops for less than the cost of PCs and save 60% on VDI
>>> >> >>> infrastructure
>>> >> >>> costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
>>> >> >>> _______________________________________________
>>> >> >>> Open64-devel mailing list
>>> >> >>> Open64-devel@lists.sourceforge.net
>>> >> >>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>> >> >>>
>>> >> >>
>>> >> >
>>> >> >
>>> >> >
>>> >> > --
>>> >> > http://www.lingcc.com
>>> >> >
>>> >> >
>>> >> >
>>> >> > ------------------------------------------------------------------------------
>>> >> > Write once. Port to many.
>>> >> > Get the SDK and tools to simplify cross-platform app development.
>>> >> > Create
>>> >> > new or port existing apps to sell to consumers worldwide. Explore the
>>> >> > Intel AppUpSM program developer opportunity.
>>> >> > appdeveloper.intel.com/join
>>> >> > http://p.sf.net/sfu/intel-appdev
>>> >> > _______________________________________________
>>> >> > Open64-devel mailing list
>>> >> > Open64-devel@lists.sourceforge.net
>>> >> > https://lists.sourceforge.net/lists/listinfo/open64-devel
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Regards,
>>> >> Lai Jian-Xin
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > http://www.lingcc.com
>>
>>
>>
>>
>> --
>> http://www.lingcc.com



-- 
Regards,
Lai Jian-Xin

------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to