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

------------------------------------------------------------------------------
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

Reply via email to