Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2015-01-03 Thread Chen Gang S
Hello Maintainers:

It is finished with qemu today, it spends 13 days, the result is below,
please help check.

  With qemu:
=== gcc Summary ===

# of expected passes83439
# of unexpected failures175
# of unexpected successes   1
# of expected failures  100
# of unresolved testcases   349
# of unsupported tests  1954
/upstream/build-gcc-microblaze/gcc/xgcc  version 5.0.0 20141220 
(experimental) (GCC)
  
  No qemu (originally):

=== gcc Summary ===

# of expected passes65987
# of unexpected failures82
# of unexpected successes   1
# of expected failures  97
# of unresolved testcases   16378
# of unsupported tests  1810

If the result is OK, I shall start tile environments construction (
although, I guess, there is no qemu or sim for tile).

And also excuse me, during these days, gmail is broken in China, I have
to use my another mail address to send/receive emails.

Thanks.

On 12/21/14 05:45, Chen Gang wrote:
 On 12/21/2014 12:31 AM, Michael Eager wrote:
 On 12/20/14 02:09, Chen Gang wrote:
 By the way, if this thread really has negative effect with other members,
 please warn me, I should not notify it to mailing list again, and try my
 best to finish it within myself.

 I appreciate your enthusiasm and perseverance in pursuing this bug.

 If the problem you are working on has changed from the mb-gcc issue,
 change the subject.  Otherwise, keep up the good work.

 
 Thank you for your encouragement, and I should continue. At present, I
 guess my own main issues are:
 
  - Have no enough time resources on open source:
 
  sometimes need work overtime.
 
  need 4 hours per work day on subway between home and work office
  (come 2 hours, go 2 hours, so total is 4 hours).
 
  need spend time for my child: check his homework, play with him.
  (especially in weekend).
 
  - Really not familiar with gcc:
 
  Sometimes can find real world issues, but can not fix them in time.
 
  Sometimes can find coding issues, but do not know whether it can
  cause real world issues or not (may also waste other members time
  resources, but get no positive result).
 
  - Not familiar with related environments for each architectures.
 
 So next, I should change myself for solving the issues above, firstly:
 
  - I shall try to spend 1-1.5 hours for reading gcc related documents (
e.g. gcc info) in work day when I on subway (another time on subway
is for listening Holy Bible, reading news, or sleeping for a while).
 
  - I shall mainly forcus on finding real world issues and try to fix in
time. And stop finding coding issues (which may get negative effect
with others -- at least may waste other members time resources).
 
  - Still contiue for constructing all related enviroments (it is always
necessary) for architectures.
 
 Welcome any ideas, suggestions or completions by any members.
 
 Thanks.
 

-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-12-20 Thread Chen Gang

After try the latest gcc again (execuse me, during these days, I have to
do another things), all things OK, the kernel can be started by QEMU,
all related issues are fixed by other members.

I shall start the make check with qemu again (it is about 12-13 days).
I guess, this thread is almost spam thread, but I still should try my
best to finish it (then I shall try to start 'make check' for tile).

By the way, if this thread really has negative effect with other members,
please warn me, I should not notify it to mailing list again, and try my
best to finish it within myself.

Thanks.

On 11/29/2014 06:25 PM, Chen Gang wrote:
 Hello Maintainers:
 
 After analysing, it is not kernel's issue, it is gcc issue, after let
 kernel related variable bypass this gcc issue, the kernel can start up
 successfully.
 
 The issue is after declaration, the __attribute_((__section__ ...))
 will be ignored. After simplification, the related shell commands are:
 
   [root@localhost ana]# cat test.i
   extern int a;
   int a __attribute__((__section__(.data..init_task))) = 0;
   [root@localhost ana]# /upstream/release/bin/microblaze-gchen-linux-gcc -c 
 -o test.o test.i -save-temps
   [root@localhost ana]# cat test.s
   .globl  a
   .bss
   .lcomm  a,4,4
   .type   a, @object
   [root@localhost ana]# microblaze-linux-gnu-gcc -c -o test.o test.i 
 -save-temps
   [root@localhost ana]# cat test.s
   .globl  a
   .section.data..init_task,aw,@progbits
   .align  2
   .type   a,@object
   .size   a,4
   a:
   .space  4
   [root@localhost ana]# /upstream/release/bin/microblaze-gchen-linux-gcc -v
   Using built-in specs.
   COLLECT_GCC=/upstream/release/bin/microblaze-gchen-linux-gcc
   
 COLLECT_LTO_WRAPPER=/upstream/release/libexec/gcc/microblaze-gchen-linux/5.0.0/lto-wrapper
   Target: microblaze-gchen-linux
   Configured with: ../gcc-new/configure --target=microblaze-gchen-linux 
 --disable-nls --enable-languages=c --disable-threads --disable-shared 
 --with-headers=/upstream/release/kernel --disable-libssp 
 --disable-libquadmath --disable-libgomp --disable-libatomic 
 --with-sysroot=/upstream/release --prefix=/upstream/release : (reconfigured) 
 ../gcc-new/configure --target=microblaze-gchen-linux --disable-nls 
 --disable-threads --disable-shared --with-headers=/upstream/release/kernel 
 --disable-libssp --disable-libquadmath --disable-libgomp --disable-libatomic 
 --with-sysroot=/upstream/release --prefix=/upstream/release 
 target_alias=microblaze-gchen-linux --enable-languages=c,lto --no-create 
 --no-recursion
   Thread model: single
   gcc version 5.0.0 20140925 (experimental) (GCC) 
 
 
 And it is fixed in the latest microblaze gcc version, but the latest gcc
 will cause another issue for compiling kernel. I shall try to analyse it
 within next month (2014-12-31), the related issue is:
 
   net/core/dev.c: In function 'register_netdevice':
   net/core/dev.c:7285:1: internal compiler error: in verify_ssa, at 
 tree-ssa.c:939
subsys_initcall(net_dev_init);
^
   0xbf77ab verify_ssa(bool, bool)
   ../../gcc-microblaze/gcc/tree-ssa.c:939
   0x956e6b execute_function_todo
   ../../gcc-microblaze/gcc/passes.c:1947
   0x95756d do_per_function
   ../../gcc-microblaze/gcc/passes.c:1639
   0x957683 execute_todo
   ../../gcc-microblaze/gcc/passes.c:1997
   Please submit a full bug report,
   with preprocessed source if appropriate.
   Please include the complete backtrace with any bug report.
   See http://gcc.gnu.org/bugs.html for instructions.
   make[2]: *** [net/core/dev.o] Error 1
   [root@localhost ana]# 
 /upstream/release-microblaze/bin/microblaze-gchen-linux-gcc -v
   Using built-in specs.
   COLLECT_GCC=/upstream/release-microblaze/bin/microblaze-gchen-linux-gcc
   
 COLLECT_LTO_WRAPPER=/upstream/release-microblaze/libexec/gcc/microblaze-gchen-linux/5.0.0/lto-wrapper
   Target: microblaze-gchen-linux
   Configured with: ../gcc-microblaze/configure 
 --target=microblaze-gchen-linux --disable-nls --enable-languages=c 
 --disable-threads --disable-shared 
 --with-headers=/upstream/release-microblaze/kernel --disable-libssp 
 --disable-libquadmath --disable-libgomp --disable-libatomic 
 --with-sysroot=/upstream/release-microblaze 
 --prefix=/upstream/release-microblaze
   Thread model: single
   gcc version 5.0.0 20141129 (experimental) (GCC) 
 
 
 After finish analysing, I shall start make check under microblaze qemu
 (may need about 12-13 days for testing).
 
 Welcome any ideas, suggestions, and completions.
 
 Thanks.
 
 On 11/20/2014 11:33 PM, Chen Gang wrote:

 Oh, sorry, after ran more than 10 days, the qemu crashed :-(

 After checked the output log, and compare with the original log, we know
 we have finished more than 90% test, and it is OK (no any new issues).
 I guess the reason is I started too many other things on this machine.

 Next, I shall try to analyze the cross compiled Linux kernel will run
 in dead lock issue. After 

Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-12-20 Thread Michael Eager

On 12/20/14 02:09, Chen Gang wrote:

By the way, if this thread really has negative effect with other members,
please warn me, I should not notify it to mailing list again, and try my
best to finish it within myself.


I appreciate your enthusiasm and perseverance in pursuing this bug.

If the problem you are working on has changed from the mb-gcc issue,
change the subject.  Otherwise, keep up the good work.

--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-12-20 Thread Chen Gang
On 12/21/2014 12:31 AM, Michael Eager wrote:
 On 12/20/14 02:09, Chen Gang wrote:
 By the way, if this thread really has negative effect with other members,
 please warn me, I should not notify it to mailing list again, and try my
 best to finish it within myself.
 
 I appreciate your enthusiasm and perseverance in pursuing this bug.
 
 If the problem you are working on has changed from the mb-gcc issue,
 change the subject.  Otherwise, keep up the good work.
 

Thank you for your encouragement, and I should continue. At present, I
guess my own main issues are:

 - Have no enough time resources on open source:

 sometimes need work overtime.

 need 4 hours per work day on subway between home and work office
 (come 2 hours, go 2 hours, so total is 4 hours).

 need spend time for my child: check his homework, play with him.
 (especially in weekend).

 - Really not familiar with gcc:

 Sometimes can find real world issues, but can not fix them in time.

 Sometimes can find coding issues, but do not know whether it can
 cause real world issues or not (may also waste other members time
 resources, but get no positive result).

 - Not familiar with related environments for each architectures.

So next, I should change myself for solving the issues above, firstly:

 - I shall try to spend 1-1.5 hours for reading gcc related documents (
   e.g. gcc info) in work day when I on subway (another time on subway
   is for listening Holy Bible, reading news, or sleeping for a while).

 - I shall mainly forcus on finding real world issues and try to fix in
   time. And stop finding coding issues (which may get negative effect
   with others -- at least may waste other members time resources).

 - Still contiue for constructing all related enviroments (it is always
   necessary) for architectures.

Welcome any ideas, suggestions or completions by any members.

Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-11-29 Thread Chen Gang
Hello Maintainers:

After analysing, it is not kernel's issue, it is gcc issue, after let
kernel related variable bypass this gcc issue, the kernel can start up
successfully.

The issue is after declaration, the __attribute_((__section__ ...))
will be ignored. After simplification, the related shell commands are:

  [root@localhost ana]# cat test.i
  extern int a;
  int a __attribute__((__section__(.data..init_task))) = 0;
  [root@localhost ana]# /upstream/release/bin/microblaze-gchen-linux-gcc -c -o 
test.o test.i -save-temps
  [root@localhost ana]# cat test.s
.globl  a
.bss
.lcomm  a,4,4
.type   a, @object
  [root@localhost ana]# microblaze-linux-gnu-gcc -c -o test.o test.i -save-temps
  [root@localhost ana]# cat test.s
.globl  a
.section.data..init_task,aw,@progbits
.align  2
.type   a,@object
.size   a,4
  a:
.space  4
  [root@localhost ana]# /upstream/release/bin/microblaze-gchen-linux-gcc -v
  Using built-in specs.
  COLLECT_GCC=/upstream/release/bin/microblaze-gchen-linux-gcc
  
COLLECT_LTO_WRAPPER=/upstream/release/libexec/gcc/microblaze-gchen-linux/5.0.0/lto-wrapper
  Target: microblaze-gchen-linux
  Configured with: ../gcc-new/configure --target=microblaze-gchen-linux 
--disable-nls --enable-languages=c --disable-threads --disable-shared 
--with-headers=/upstream/release/kernel --disable-libssp --disable-libquadmath 
--disable-libgomp --disable-libatomic --with-sysroot=/upstream/release 
--prefix=/upstream/release : (reconfigured) ../gcc-new/configure 
--target=microblaze-gchen-linux --disable-nls --disable-threads 
--disable-shared --with-headers=/upstream/release/kernel --disable-libssp 
--disable-libquadmath --disable-libgomp --disable-libatomic 
--with-sysroot=/upstream/release --prefix=/upstream/release 
target_alias=microblaze-gchen-linux --enable-languages=c,lto --no-create 
--no-recursion
  Thread model: single
  gcc version 5.0.0 20140925 (experimental) (GCC) 


And it is fixed in the latest microblaze gcc version, but the latest gcc
will cause another issue for compiling kernel. I shall try to analyse it
within next month (2014-12-31), the related issue is:

  net/core/dev.c: In function 'register_netdevice':
  net/core/dev.c:7285:1: internal compiler error: in verify_ssa, at 
tree-ssa.c:939
   subsys_initcall(net_dev_init);
   ^
  0xbf77ab verify_ssa(bool, bool)
  ../../gcc-microblaze/gcc/tree-ssa.c:939
  0x956e6b execute_function_todo
  ../../gcc-microblaze/gcc/passes.c:1947
  0x95756d do_per_function
  ../../gcc-microblaze/gcc/passes.c:1639
  0x957683 execute_todo
  ../../gcc-microblaze/gcc/passes.c:1997
  Please submit a full bug report,
  with preprocessed source if appropriate.
  Please include the complete backtrace with any bug report.
  See http://gcc.gnu.org/bugs.html for instructions.
  make[2]: *** [net/core/dev.o] Error 1
  [root@localhost ana]# 
/upstream/release-microblaze/bin/microblaze-gchen-linux-gcc -v
  Using built-in specs.
  COLLECT_GCC=/upstream/release-microblaze/bin/microblaze-gchen-linux-gcc
  
COLLECT_LTO_WRAPPER=/upstream/release-microblaze/libexec/gcc/microblaze-gchen-linux/5.0.0/lto-wrapper
  Target: microblaze-gchen-linux
  Configured with: ../gcc-microblaze/configure --target=microblaze-gchen-linux 
--disable-nls --enable-languages=c --disable-threads --disable-shared 
--with-headers=/upstream/release-microblaze/kernel --disable-libssp 
--disable-libquadmath --disable-libgomp --disable-libatomic 
--with-sysroot=/upstream/release-microblaze 
--prefix=/upstream/release-microblaze
  Thread model: single
  gcc version 5.0.0 20141129 (experimental) (GCC) 


After finish analysing, I shall start make check under microblaze qemu
(may need about 12-13 days for testing).

Welcome any ideas, suggestions, and completions.

Thanks.

On 11/20/2014 11:33 PM, Chen Gang wrote:
 
 Oh, sorry, after ran more than 10 days, the qemu crashed :-(
 
 After checked the output log, and compare with the original log, we know
 we have finished more than 90% test, and it is OK (no any new issues).
 I guess the reason is I started too many other things on this machine.
 
 Next, I shall try to analyze the cross compiled Linux kernel will run
 in dead lock issue. After finish analyzing, I shall restart the test.
 I guess it needs 12-13 days (more than a week -- I originally expected).
 
 Thanks.
 
 On 11/9/14 21:15, Chen Gang wrote:

 At present, I use simplified sshd, ssh and scp (dropbear open source
 program) to communicate with microblaze qemu successfully, and let gcc
 'make check' have real effect.

 It is just testing, at least after almost 10 hours, the log output is
 OK. For each ssh login, it will wast 10 - 20 seconds, so I guess, the
 make check may run a week!!  The recent operations is below:

  - zlib (for dropbear):

export CHOST=microblaze-gchen-linux
export PATH=/upstream/release/bin:$PATH
./configure --prefix=/upstream/release  make  make 

Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-11-20 Thread Chen Gang

Oh, sorry, after ran more than 10 days, the qemu crashed :-(

After checked the output log, and compare with the original log, we know
we have finished more than 90% test, and it is OK (no any new issues).
I guess the reason is I started too many other things on this machine.

Next, I shall try to analyze the cross compiled Linux kernel will run
in dead lock issue. After finish analyzing, I shall restart the test.
I guess it needs 12-13 days (more than a week -- I originally expected).

Thanks.

On 11/9/14 21:15, Chen Gang wrote:
 
 At present, I use simplified sshd, ssh and scp (dropbear open source
 program) to communicate with microblaze qemu successfully, and let gcc
 'make check' have real effect.
 
 It is just testing, at least after almost 10 hours, the log output is
 OK. For each ssh login, it will wast 10 - 20 seconds, so I guess, the
 make check may run a week!!  The recent operations is below:
 
  - zlib (for dropbear):
 
export CHOST=microblaze-gchen-linux
export PATH=/upstream/release/bin:$PATH
./configure --prefix=/upstream/release  make  make install
 
  - dropbear (it is a simple sshd, ssh and scp):
 
export PATH=/upstream/release/bin:$PATH
./configure --prefix=/upstream/release \
  --host=microblaze-gchen-linux \
  CC=microblaze-gchen-linux-gcc
 
modify /ustream/release/include/stdio.h to avoid redefining sscanf to
iso99_sscanf
 
link libz.a (static lib) to 'dropbear' (sshd) and 'dbclient' (ssh).
and make scp to generate 'scp' command.
 
for supporting 'none' username:
 
  under ramfs, echo 'none:x:0:0:none:/:/bin/sh'  ./etc/passwd
 
for supporting no passwords (it is temporary fix):
 
  modify  common-session.c: ses.authstate.pw_passwd[0] = '\0';
 
put 'dropbear', 'dbclient' and 'scp' to ./sbin of ramfs and symbol
links to ./usr/bin of ramfs.
 
for temporary fix its stable issue, need modify code to let it 'fork'
as soon as startup, and only permit one child connection each time.
 
usage:
 
  in microblaze qemu:
 
/sbin/dropbear -F -E -B -p 192.168.122.2:22
 
  in host (x86_64), use system scp and ssh is OK (without password):
 
ssh none@192.168.122.2 cd /test; ./test
scp test.c none@192.168.122.2:/test/
scp none@192.168.122.2:/test/* ./
 
  - For dejagnu:
 
need `echo 192.168.122.2   microblaze-xilinx-gdb  /etc/hosts`
under /usr/local/share/dejagnu/*, use ssh/scp instead of rsh/rcp.
  (need replace all, or will cause failure during make check).
for /usr/local/share/dejagnu/baseboards/microblaze-xilinx-gdb.exp,
need add additional variables:
 
  set_board_info sockethost 192.168.122.2
  set_board_info username none
  set timeout 600
 
 Current left issues are:
 
  - Linux kernel built by current upstream microblaze toolchain will be
dead lock. I shall analyze it (I guess it may be kernel self issue,
which may caused by include/compiler-gcc5.h).
 
  - One patch for qemu microblaze dtb file, just checking by related
members (originally I though it was kernel issue, but after
communicate with kernel members, it is more suitable to change qemu).
 
  - One or more issues for dropbear (at least include stable issues), and
one or more issues for glibc. Sorry for I have to bypass them, since
I have no enough time resource on it.
 
 
 Welcome any ideas, suggestions or completions.
 
 Thanks.
 
 
 On 11/01/2014 01:07 AM, Chen Gang wrote:

 At present, I use telnet (without password), login to microblaze qemu
 successfully!  :-)

  - I compile busy box with the glibc in orginal 'ramfs', so get telnetd:
use new busybox replace the old one, and add symbol link 'telnetd' to
busybox in /bin.

  - configure qemu with network support (device xlnx.xps-ethernetlite).

yum install libvirt
yum install tunctl
tunctl -b
ip link set tap0 up
brctl addif virbr0 tap0
./microblaze-softmmu/qemu-system-microblaze -M petalogix-s3adsp1800 \
  -kernel ../linux-stable.microblaze/arch/microblaze/boot/linux.bin \
  -no-reboot -append console=ttyUL0,115200 doreboot -nographic \
  -net nic,vlan=0,model=xlnx.xps-ethernetlite,macaddr=00:16:35:AF:94:00 \
  -net tap,vlan=0,ifname=tap0,script=no,downscript=no

  - fix a kernel bug: add xlnx,xps-ethernetlite-2.00.b for compatible
with its firmware (can find it under /sys/firmware/compatible,
within microblaze qemu bash environments). Related diff:

diff --git a/drivers/net/ethernet/xilinx/xilinx_emaclite.c 
 b/drivers/net/ethernet/xilinx/xilinx_emaclite.c
index 28dbbdc..298fad3 100644
--- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c
+++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c
@@ -1236,6 +1236,7 @@ static struct of_device_id xemaclite_of_match[] = {
{ .compatible = xlnx,opb-ethernetlite-1.01.b, },
{ .compatible = xlnx,xps-ethernetlite-1.00.a, },
{ .compatible = 

Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-11-09 Thread Chen Gang

At present, I use simplified sshd, ssh and scp (dropbear open source
program) to communicate with microblaze qemu successfully, and let gcc
'make check' have real effect.

It is just testing, at least after almost 10 hours, the log output is
OK. For each ssh login, it will wast 10 - 20 seconds, so I guess, the
make check may run a week!!  The recent operations is below:

 - zlib (for dropbear):

   export CHOST=microblaze-gchen-linux
   export PATH=/upstream/release/bin:$PATH
   ./configure --prefix=/upstream/release  make  make install

 - dropbear (it is a simple sshd, ssh and scp):

   export PATH=/upstream/release/bin:$PATH
   ./configure --prefix=/upstream/release \
 --host=microblaze-gchen-linux \
 CC=microblaze-gchen-linux-gcc

   modify /ustream/release/include/stdio.h to avoid redefining sscanf to
   iso99_sscanf

   link libz.a (static lib) to 'dropbear' (sshd) and 'dbclient' (ssh).
   and make scp to generate 'scp' command.

   for supporting 'none' username:

 under ramfs, echo 'none:x:0:0:none:/:/bin/sh'  ./etc/passwd

   for supporting no passwords (it is temporary fix):

 modify  common-session.c: ses.authstate.pw_passwd[0] = '\0';

   put 'dropbear', 'dbclient' and 'scp' to ./sbin of ramfs and symbol
   links to ./usr/bin of ramfs.

   for temporary fix its stable issue, need modify code to let it 'fork'
   as soon as startup, and only permit one child connection each time.

   usage:

 in microblaze qemu:

   /sbin/dropbear -F -E -B -p 192.168.122.2:22

 in host (x86_64), use system scp and ssh is OK (without password):

   ssh none@192.168.122.2 cd /test; ./test
   scp test.c none@192.168.122.2:/test/
   scp none@192.168.122.2:/test/* ./

 - For dejagnu:

   need `echo 192.168.122.2   microblaze-xilinx-gdb  /etc/hosts`
   under /usr/local/share/dejagnu/*, use ssh/scp instead of rsh/rcp.
 (need replace all, or will cause failure during make check).
   for /usr/local/share/dejagnu/baseboards/microblaze-xilinx-gdb.exp,
   need add additional variables:

 set_board_info sockethost 192.168.122.2
 set_board_info username none
 set timeout 600

Current left issues are:

 - Linux kernel built by current upstream microblaze toolchain will be
   dead lock. I shall analyze it (I guess it may be kernel self issue,
   which may caused by include/compiler-gcc5.h).

 - One patch for qemu microblaze dtb file, just checking by related
   members (originally I though it was kernel issue, but after
   communicate with kernel members, it is more suitable to change qemu).

 - One or more issues for dropbear (at least include stable issues), and
   one or more issues for glibc. Sorry for I have to bypass them, since
   I have no enough time resource on it.


Welcome any ideas, suggestions or completions.

Thanks.


On 11/01/2014 01:07 AM, Chen Gang wrote:
 
 At present, I use telnet (without password), login to microblaze qemu
 successfully!  :-)
 
  - I compile busy box with the glibc in orginal 'ramfs', so get telnetd:
use new busybox replace the old one, and add symbol link 'telnetd' to
busybox in /bin.
 
  - configure qemu with network support (device xlnx.xps-ethernetlite).
 
yum install libvirt
yum install tunctl
tunctl -b
ip link set tap0 up
brctl addif virbr0 tap0
./microblaze-softmmu/qemu-system-microblaze -M petalogix-s3adsp1800 \
  -kernel ../linux-stable.microblaze/arch/microblaze/boot/linux.bin \
  -no-reboot -append console=ttyUL0,115200 doreboot -nographic \
  -net nic,vlan=0,model=xlnx.xps-ethernetlite,macaddr=00:16:35:AF:94:00 \
  -net tap,vlan=0,ifname=tap0,script=no,downscript=no
 
  - fix a kernel bug: add xlnx,xps-ethernetlite-2.00.b for compatible
with its firmware (can find it under /sys/firmware/compatible,
within microblaze qemu bash environments). Related diff:
 
diff --git a/drivers/net/ethernet/xilinx/xilinx_emaclite.c 
 b/drivers/net/ethernet/xilinx/xilinx_emaclite.c
index 28dbbdc..298fad3 100644
--- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c
+++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c
@@ -1236,6 +1236,7 @@ static struct of_device_id xemaclite_of_match[] = {
{ .compatible = xlnx,opb-ethernetlite-1.01.b, },
{ .compatible = xlnx,xps-ethernetlite-1.00.a, },
{ .compatible = xlnx,xps-ethernetlite-2.00.a, },
+   { .compatible = xlnx,xps-ethernetlite-2.00.b, },
{ .compatible = xlnx,xps-ethernetlite-2.01.a, },
{ .compatible = xlnx,xps-ethernetlite-3.00.a, },
{ /* end of list */ },
 
 Next, I shall send related kernel patch for upstream kernel, and continue
 for microbaze DejaGNU with microbaze qemu, and sorry again, I did not
 finish it within this month.
 
 
 Thanks.
 
 
 On 10/30/14 22:04, Chen Gang wrote:
 On 10/29/14 23:58, Chen Gang wrote:
 On 10/27/14 9:42, Chen Gang wrote:
 On 10/27/14 2:22, Michael Eager wrote:

 Microblaze-sim provides basic instruction 

Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-31 Thread Chen Gang

At present, I use telnet (without password), login to microblaze qemu
successfully!  :-)

 - I compile busy box with the glibc in orginal 'ramfs', so get telnetd:
   use new busybox replace the old one, and add symbol link 'telnetd' to
   busybox in /bin.

 - configure qemu with network support (device xlnx.xps-ethernetlite).

   yum install libvirt
   yum install tunctl
   tunctl -b
   ip link set tap0 up
   brctl addif virbr0 tap0
   ./microblaze-softmmu/qemu-system-microblaze -M petalogix-s3adsp1800 \
 -kernel ../linux-stable.microblaze/arch/microblaze/boot/linux.bin \
 -no-reboot -append console=ttyUL0,115200 doreboot -nographic \
 -net nic,vlan=0,model=xlnx.xps-ethernetlite,macaddr=00:16:35:AF:94:00 \
 -net tap,vlan=0,ifname=tap0,script=no,downscript=no

 - fix a kernel bug: add xlnx,xps-ethernetlite-2.00.b for compatible
   with its firmware (can find it under /sys/firmware/compatible,
   within microblaze qemu bash environments). Related diff:

   diff --git a/drivers/net/ethernet/xilinx/xilinx_emaclite.c 
b/drivers/net/ethernet/xilinx/xilinx_emaclite.c
   index 28dbbdc..298fad3 100644
   --- a/drivers/net/ethernet/xilinx/xilinx_emaclite.c
   +++ b/drivers/net/ethernet/xilinx/xilinx_emaclite.c
   @@ -1236,6 +1236,7 @@ static struct of_device_id xemaclite_of_match[] = {
   { .compatible = xlnx,opb-ethernetlite-1.01.b, },
   { .compatible = xlnx,xps-ethernetlite-1.00.a, },
   { .compatible = xlnx,xps-ethernetlite-2.00.a, },
   +   { .compatible = xlnx,xps-ethernetlite-2.00.b, },
   { .compatible = xlnx,xps-ethernetlite-2.01.a, },
   { .compatible = xlnx,xps-ethernetlite-3.00.a, },
   { /* end of list */ },

Next, I shall send related kernel patch for upstream kernel, and continue
for microbaze DejaGNU with microbaze qemu, and sorry again, I did not
finish it within this month.


Thanks.


On 10/30/14 22:04, Chen Gang wrote:
 On 10/29/14 23:58, Chen Gang wrote:
 On 10/27/14 9:42, Chen Gang wrote:
 On 10/27/14 2:22, Michael Eager wrote:

 Microblaze-sim provides basic instruction set architecture and memory 
 simulation.
 There is no operating system support.  (It's also quite old.  I'm not sure
 which version of the MB architecture it models, but it is not recent.)

 Microblaze-sim is not a full system simulator, like QEMU.  To be able to
 run a program which requires glibc, you need to be able to boot a full 
 Linux
 image on the simulator, which microblaze-sim cannot do.  QEMU models an
 entire processor and can boot a Linux image.


 At present, run upstream qemu 2.1.2 and upstream Linux kernel 3.17-rc7
 with simple ramfs successfully. Via modify ramfs, can run hello world
 program with static glibc (built by upstream mc_gcc), successfully.

 
 After copy the ramfs' /lib and /usr/lib to outside, build the hello
 world program again with the dynamic glibc, then put it to ramfs. The
 hello world program with dynamic glibc can run correctly inside qemu :-)
 
 Next, I need focus on networking (I have found qemu related device, and
 kernel related device, and I also know, it needs telnetd in busy box).
 But sorry, it seems I can not finish within this month :-(
 
  - I wasted much time resources on choosing qemu or sim, next I should
notice about it (do not waste time, again).
 
  - and another excuse is: I have to do it in my free time (within 2.5
hours per day, in average). My current job is not related with it
(at present, it is about Global Platform Java applet for iPhone OS).
 
 Next month:
 
  - I should finish microblaze qemu test under DejaGNU, should finish
within next month (2014-11-30).
 
  - I also shall start tile cross compiling for gcc/binutils, and use it
to Linux kernel, and test it with qemu. I shall try to finish them
within 2 months (finish before 2014-12-31).
 
  - At least, finish 1 patch for gcc, 1 patch for binutils, 1 patch for
qemu/kvm/xen, 3 patches for kernel, within next month (2014-11-30).
 
 
 Welcome any ideas, suggestions or completions.
 
 Thanks.
 
  - For ramfs:

wget 
 http://www.wiki.xilinx.com/file/view/microblaze_complete.cpio.gz/419243588/microblaze_complete.cpio.gz

  - Related qemu command:

./microblaze-softmmu/qemu-system-microblaze -M petalogix-s3adsp1800 \
  -kernel ../linux-stable.microblaze/arch/microblaze/boot/linux.bin \
  -no-reboot -append console=ttyUL0,115200 doreboot -nographic

 Next, I shall try to let our gdb and DejaGNU work for it:

  - How to let qemu support network and rsh (ramfs need telnetd, kernel
may need related driver, and qemu related hardware need be tested).

  - Let gdb work for it, then config DejaGNU (need we test the program
with dynamic glib, it will be fail now for not match glibc version
in ramfs).

  - At last, run our test.

 It seems, still many things need trying. Welcome any ideas, suggestions,
 and completions for it (especially for ramfs network and/or glibc, and
 DejaGNU configuration ...).

Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-30 Thread Chen Gang
On 10/29/14 23:58, Chen Gang wrote:
 On 10/27/14 9:42, Chen Gang wrote:
 On 10/27/14 2:22, Michael Eager wrote:

 Microblaze-sim provides basic instruction set architecture and memory 
 simulation.
 There is no operating system support.  (It's also quite old.  I'm not sure
 which version of the MB architecture it models, but it is not recent.)

 Microblaze-sim is not a full system simulator, like QEMU.  To be able to
 run a program which requires glibc, you need to be able to boot a full Linux
 image on the simulator, which microblaze-sim cannot do.  QEMU models an
 entire processor and can boot a Linux image.

 
 At present, run upstream qemu 2.1.2 and upstream Linux kernel 3.17-rc7
 with simple ramfs successfully. Via modify ramfs, can run hello world
 program with static glibc (built by upstream mc_gcc), successfully.
 

After copy the ramfs' /lib and /usr/lib to outside, build the hello
world program again with the dynamic glibc, then put it to ramfs. The
hello world program with dynamic glibc can run correctly inside qemu :-)

Next, I need focus on networking (I have found qemu related device, and
kernel related device, and I also know, it needs telnetd in busy box).
But sorry, it seems I can not finish within this month :-(

 - I wasted much time resources on choosing qemu or sim, next I should
   notice about it (do not waste time, again).

 - and another excuse is: I have to do it in my free time (within 2.5
   hours per day, in average). My current job is not related with it
   (at present, it is about Global Platform Java applet for iPhone OS).

Next month:

 - I should finish microblaze qemu test under DejaGNU, should finish
   within next month (2014-11-30).

 - I also shall start tile cross compiling for gcc/binutils, and use it
   to Linux kernel, and test it with qemu. I shall try to finish them
   within 2 months (finish before 2014-12-31).

 - At least, finish 1 patch for gcc, 1 patch for binutils, 1 patch for
   qemu/kvm/xen, 3 patches for kernel, within next month (2014-11-30).


Welcome any ideas, suggestions or completions.

Thanks.

  - For ramfs:
 
wget 
 http://www.wiki.xilinx.com/file/view/microblaze_complete.cpio.gz/419243588/microblaze_complete.cpio.gz
 
  - Related qemu command:
 
./microblaze-softmmu/qemu-system-microblaze -M petalogix-s3adsp1800 \
  -kernel ../linux-stable.microblaze/arch/microblaze/boot/linux.bin \
  -no-reboot -append console=ttyUL0,115200 doreboot -nographic
 
 Next, I shall try to let our gdb and DejaGNU work for it:
 
  - How to let qemu support network and rsh (ramfs need telnetd, kernel
may need related driver, and qemu related hardware need be tested).
 
  - Let gdb work for it, then config DejaGNU (need we test the program
with dynamic glib, it will be fail now for not match glibc version
in ramfs).
 
  - At last, run our test.
 
 It seems, still many things need trying. Welcome any ideas, suggestions,
 and completions for it (especially for ramfs network and/or glibc, and
 DejaGNU configuration ...).
 
 
 Thanks.
 

 OK, thank you very much, I shall rewind to qemu, and should try my best
 to finish within within this month.


 
 
 Thanks
 

-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-29 Thread Chen Gang
On 10/27/14 9:42, Chen Gang wrote:
 On 10/27/14 2:22, Michael Eager wrote:

 Microblaze-sim provides basic instruction set architecture and memory 
 simulation.
 There is no operating system support.  (It's also quite old.  I'm not sure
 which version of the MB architecture it models, but it is not recent.)

 Microblaze-sim is not a full system simulator, like QEMU.  To be able to
 run a program which requires glibc, you need to be able to boot a full Linux
 image on the simulator, which microblaze-sim cannot do.  QEMU models an
 entire processor and can boot a Linux image.


At present, run upstream qemu 2.1.2 and upstream Linux kernel 3.17-rc7
with simple ramfs successfully. Via modify ramfs, can run hello world
program with static glibc (built by upstream mc_gcc), successfully.

 - For ramfs:

   wget 
http://www.wiki.xilinx.com/file/view/microblaze_complete.cpio.gz/419243588/microblaze_complete.cpio.gz

 - Related qemu command:

   ./microblaze-softmmu/qemu-system-microblaze -M petalogix-s3adsp1800 \
 -kernel ../linux-stable.microblaze/arch/microblaze/boot/linux.bin \
 -no-reboot -append console=ttyUL0,115200 doreboot -nographic

Next, I shall try to let our gdb and DejaGNU work for it:

 - How to let qemu support network and rsh (ramfs need telnetd, kernel
   may need related driver, and qemu related hardware need be tested).

 - Let gdb work for it, then config DejaGNU (need we test the program
   with dynamic glib, it will be fail now for not match glibc version
   in ramfs).

 - At last, run our test.

It seems, still many things need trying. Welcome any ideas, suggestions,
and completions for it (especially for ramfs network and/or glibc, and
DejaGNU configuration ...).


Thanks.

 
 OK, thank you very much, I shall rewind to qemu, and should try my best
 to finish within within this month.
 
 


Thanks
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-26 Thread Chen Gang
On 10/22/2014 09:34 AM, Chen Gang wrote:
 

 Yes, if you want to test on a target, you will need a target.  You can 
 either have a simulator (see binutils and sim/* for an example of how to 
 write one) or target hardware in some form.


After tried 'sim', I found the root cause is microblaze sim does not
support '--sysroot', which is the environments for shared libraries and
system calls (need load microblaze kernel).

 - microblaze can successfully execute simple programs which has no
   glibc and no system call.

 - In upstream master branch of binutils, for microblaze sim, it has no
   related testsuite for sim in binutils, neither support '--sysroot',
   neither support function stack, startup parameters, and environments.

 - After hard code the default stack in sim, it can start the '-static'
   program with glibc, but stop at uname() which will use system call.

So I want to consult: at present, can we let microblaze sim run 'normal'
programs (have glibc, and use system call)?


If it does not support, I have to rewind to qemu. If it really happens,
it seems I can not finish gcc testsuite with target within this month.
(although I have several excuses) :-(

Thanks.

 
 I will continue sim, and should try to finish within 2014-10-31. Sorry,
 my other things which related open source maybe be delayed (maybe can
 not finish within this month, if happens, need finish within next month).
 

 After trying sim, for me, it is really useful way for test, although I
 also met issues:

 For a hello world C program, microblaze gcc succeeded building, gdb can
 load and display the source code, and disassembe code successfully, but
 sim reported failure, the related issue is below:

   [root@localhost test]# /upstream/release/bin/microblaze-gchen-linux-run 
 ./test
   Loading section .interp, size 0xd vma 0x10f4
   Loading section .note.ABI-tag, size 0x20 vma 0x1104
   Loading section .hash, size 0x24 vma 0x1124
   Loading section .dynsym, size 0x40 vma 0x1148
   Loading section .dynstr, size 0x3c vma 0x1188
   Loading section .gnu.version, size 0x8 vma 0x11c4
   Loading section .gnu.version_r, size 0x20 vma 0x11cc
   Loading section .rela.dyn, size 0x24 vma 0x11ec
   Loading section .rela.plt, size 0x24 vma 0x1210
   Loading section .init, size 0x58 vma 0x1234
   Loading section .plt, size 0x44 vma 0x128c
   Loading section .text, size 0x3d0 vma 0x12d0
   Loading section .fini, size 0x34 vma 0x16a0
   Loading section .rodata, size 0x12 vma 0x16d4
   Loading section .eh_frame, size 0x4 vma 0x16e8
   Loading section .ctors, size 0x8 vma 0x100016ec
   Loading section .dtors, size 0x8 vma 0x100016f4
   Loading section .jcr, size 0x4 vma 0x100016fc
   Loading section .dynamic, size 0xd0 vma 0x10001700
   Loading section .got, size 0xc vma 0x100017d0
   Loading section .got.plt, size 0x18 vma 0x100017dc
   Loading section .data, size 0x10 vma 0x100017f4
   Start address 0x12d0
   Transfer rate: 14424 bits in 1 sec.
   ERROR: Unknown opcode
   program stopped with signal 4.

 For me, I guess it is sim's issue, and I shall try to fix it in the next
 month, so sorry, I can not finish emulator for microblaze within this
 month. :-(


 Welcome any ideas, suggestions or completions.

 Thanks.

 


-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-26 Thread Michael Eager

On 10/26/14 03:36, Chen Gang wrote:

On 10/22/2014 09:34 AM, Chen Gang wrote:




Yes, if you want to test on a target, you will need a target.  You can either 
have a simulator (see binutils and sim/* for an example of how to write one) or 
target hardware in some form.



After tried 'sim', I found the root cause is microblaze sim does not
support '--sysroot', which is the environments for shared libraries and
system calls (need load microblaze kernel).

  - microblaze can successfully execute simple programs which has no
glibc and no system call.

  - In upstream master branch of binutils, for microblaze sim, it has no
related testsuite for sim in binutils, neither support '--sysroot',
neither support function stack, startup parameters, and environments.

  - After hard code the default stack in sim, it can start the '-static'
program with glibc, but stop at uname() which will use system call.

So I want to consult: at present, can we let microblaze sim run 'normal'
programs (have glibc, and use system call)?


Microblaze-sim provides basic instruction set architecture and memory 
simulation.
There is no operating system support.  (It's also quite old.  I'm not sure
which version of the MB architecture it models, but it is not recent.)

Microblaze-sim is not a full system simulator, like QEMU.  To be able to
run a program which requires glibc, you need to be able to boot a full Linux
image on the simulator, which microblaze-sim cannot do.  QEMU models an
entire processor and can boot a Linux image.

--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-26 Thread Chen Gang


On 10/27/14 2:22, Michael Eager wrote:
 On 10/26/14 03:36, Chen Gang wrote:
 On 10/22/2014 09:34 AM, Chen Gang wrote:


 Yes, if you want to test on a target, you will need a target.  You can 
 either have a simulator (see binutils and sim/* for an example of how to 
 write one) or target hardware in some form.


 After tried 'sim', I found the root cause is microblaze sim does not
 support '--sysroot', which is the environments for shared libraries and
 system calls (need load microblaze kernel).

   - microblaze can successfully execute simple programs which has no
 glibc and no system call.

   - In upstream master branch of binutils, for microblaze sim, it has no
 related testsuite for sim in binutils, neither support '--sysroot',
 neither support function stack, startup parameters, and environments.

   - After hard code the default stack in sim, it can start the '-static'
 program with glibc, but stop at uname() which will use system call.

 So I want to consult: at present, can we let microblaze sim run 'normal'
 programs (have glibc, and use system call)?
 
 Microblaze-sim provides basic instruction set architecture and memory 
 simulation.
 There is no operating system support.  (It's also quite old.  I'm not sure
 which version of the MB architecture it models, but it is not recent.)
 
 Microblaze-sim is not a full system simulator, like QEMU.  To be able to
 run a program which requires glibc, you need to be able to boot a full Linux
 image on the simulator, which microblaze-sim cannot do.  QEMU models an
 entire processor and can boot a Linux image.
 

OK, thank you very much, I shall rewind to qemu, and should try my best
to finish within within this month.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-21 Thread Chen Gang
On 09/25/2014 08:12 AM, Chen Gang wrote:
 OK, thanks, next month, I shall try Qemu for microblaze (I also focus on 
 Qemu, and try to make patches for it).
 

Excuse me, after tried upstream qemu, it cann't run microblaze correctly,
even for Xilinx qemu branch, I cann't run correctly either. I tried to
consult related members in qemu mailing list, but got no result.

After compared upstream branch and Xilinx branch, I am sure upstream
microblaze qemu is lack of several related main features about
microblaze.

For qemu, I have to only focus on upstream, and try bug fix patches, new
features and version merging are out of my current border, so sorry, I
have to stop trying qemu for microblaze gcc test, at present.

 So I guess the root cause is: I only use cross-compiling environments
 under fedora x86_64, no any real or virtual target for test.
 
 Yes, if you want to test on a target, you will need a target.  You can either 
 have a simulator (see binutils and sim/* for an example of how to write one) 
 or target hardware in some form.
 

After trying sim, for me, it is really useful way for test, although I
also met issues:

For a hello world C program, microblaze gcc succeeded building, gdb can
load and display the source code, and disassembe code successfully, but
sim reported failure, the related issue is below:

  [root@localhost test]# /upstream/release/bin/microblaze-gchen-linux-run ./test
  Loading section .interp, size 0xd vma 0x10f4
  Loading section .note.ABI-tag, size 0x20 vma 0x1104
  Loading section .hash, size 0x24 vma 0x1124
  Loading section .dynsym, size 0x40 vma 0x1148
  Loading section .dynstr, size 0x3c vma 0x1188
  Loading section .gnu.version, size 0x8 vma 0x11c4
  Loading section .gnu.version_r, size 0x20 vma 0x11cc
  Loading section .rela.dyn, size 0x24 vma 0x11ec
  Loading section .rela.plt, size 0x24 vma 0x1210
  Loading section .init, size 0x58 vma 0x1234
  Loading section .plt, size 0x44 vma 0x128c
  Loading section .text, size 0x3d0 vma 0x12d0
  Loading section .fini, size 0x34 vma 0x16a0
  Loading section .rodata, size 0x12 vma 0x16d4
  Loading section .eh_frame, size 0x4 vma 0x16e8
  Loading section .ctors, size 0x8 vma 0x100016ec
  Loading section .dtors, size 0x8 vma 0x100016f4
  Loading section .jcr, size 0x4 vma 0x100016fc
  Loading section .dynamic, size 0xd0 vma 0x10001700
  Loading section .got, size 0xc vma 0x100017d0
  Loading section .got.plt, size 0x18 vma 0x100017dc
  Loading section .data, size 0x10 vma 0x100017f4
  Start address 0x12d0
  Transfer rate: 14424 bits in 1 sec.
  ERROR: Unknown opcode
  program stopped with signal 4.

For me, I guess it is sim's issue, and I shall try to fix it in the next
month, so sorry, I can not finish emulator for microblaze within this
month. :-(


Welcome any ideas, suggestions or completions.

Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-21 Thread Chen Gang
On 10/21/14 22:55, Chen Gang wrote:
 On 09/25/2014 08:12 AM, Chen Gang wrote:
 OK, thanks, next month, I shall try Qemu for microblaze (I also focus on 
 Qemu, and try to make patches for it).

 
 Excuse me, after tried upstream qemu, it cann't run microblaze correctly,
 even for Xilinx qemu branch, I cann't run correctly either. I tried to
 consult related members in qemu mailing list, but got no result.
 
 After compared upstream branch and Xilinx branch, I am sure upstream
 microblaze qemu is lack of several related main features about
 microblaze.
 
 For qemu, I have to only focus on upstream, and try bug fix patches, new
 features and version merging are out of my current border, so sorry, I
 have to stop trying qemu for microblaze gcc test, at present.
 

Oh, sorry, after communicate with the qemu members, there are multiple
upstream branches for qemu, so I can only say: for upstream develop
master qemu, it does not support microblaze main features.

There are several upstream qemu distributions may support microblaze.  I
do not mainly focus on only using qemu, so I will stop qemu and try sim.

 So I guess the root cause is: I only use cross-compiling environments
 under fedora x86_64, no any real or virtual target for test.

 Yes, if you want to test on a target, you will need a target.  You can 
 either have a simulator (see binutils and sim/* for an example of how to 
 write one) or target hardware in some form.


I will continue sim, and should try to finish within 2014-10-31. Sorry,
my other things which related open source maybe be delayed (maybe can
not finish within this month, if happens, need finish within next month).

 
 After trying sim, for me, it is really useful way for test, although I
 also met issues:
 
 For a hello world C program, microblaze gcc succeeded building, gdb can
 load and display the source code, and disassembe code successfully, but
 sim reported failure, the related issue is below:
 
   [root@localhost test]# /upstream/release/bin/microblaze-gchen-linux-run 
 ./test
   Loading section .interp, size 0xd vma 0x10f4
   Loading section .note.ABI-tag, size 0x20 vma 0x1104
   Loading section .hash, size 0x24 vma 0x1124
   Loading section .dynsym, size 0x40 vma 0x1148
   Loading section .dynstr, size 0x3c vma 0x1188
   Loading section .gnu.version, size 0x8 vma 0x11c4
   Loading section .gnu.version_r, size 0x20 vma 0x11cc
   Loading section .rela.dyn, size 0x24 vma 0x11ec
   Loading section .rela.plt, size 0x24 vma 0x1210
   Loading section .init, size 0x58 vma 0x1234
   Loading section .plt, size 0x44 vma 0x128c
   Loading section .text, size 0x3d0 vma 0x12d0
   Loading section .fini, size 0x34 vma 0x16a0
   Loading section .rodata, size 0x12 vma 0x16d4
   Loading section .eh_frame, size 0x4 vma 0x16e8
   Loading section .ctors, size 0x8 vma 0x100016ec
   Loading section .dtors, size 0x8 vma 0x100016f4
   Loading section .jcr, size 0x4 vma 0x100016fc
   Loading section .dynamic, size 0xd0 vma 0x10001700
   Loading section .got, size 0xc vma 0x100017d0
   Loading section .got.plt, size 0x18 vma 0x100017dc
   Loading section .data, size 0x10 vma 0x100017f4
   Start address 0x12d0
   Transfer rate: 14424 bits in 1 sec.
   ERROR: Unknown opcode
   program stopped with signal 4.
 
 For me, I guess it is sim's issue, and I shall try to fix it in the next
 month, so sorry, I can not finish emulator for microblaze within this
 month. :-(
 
 
 Welcome any ideas, suggestions or completions.
 
 Thanks.
 

-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Andrew Haley
On 06/10/14 05:08, Chen Gang wrote:
 After try normal configure, get almost the same result, I guess, our
 testsuite under Darwin x86_64 is OK.
 
 If no any additional reply within a week, I shall continue to try to
 analyze the libjava Throw_2 issue.

Throw_2 is a test specially contrived to detect segfaults that are
not being correctly detected and turned into NullPointerException()s.
A failure indicates that the segfault signal handler is broken.

Andrew.



Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/6/14 16:37, Andrew Haley wrote:
 On 06/10/14 05:08, Chen Gang wrote:
 After try normal configure, get almost the same result, I guess, our
 testsuite under Darwin x86_64 is OK.

 If no any additional reply within a week, I shall continue to try to
 analyze the libjava Throw_2 issue.
 
 Throw_2 is a test specially contrived to detect segfaults that are
 not being correctly detected and turned into NullPointerException()s.
 A failure indicates that the segfault signal handler is broken.
 

OK, thank, at present, it passes compiling (can generate 'Throw_2.exe'),
and after run it without any parameters, 1 is printed, but 2 is not
printed.

Under Fedora 20 x86_64, the same gcc code, it is OK (2 can be printed),
but under Darwin x86_64, it is Abort trap: 6 instead of. The related
code: try{Double.parseDouble(str());}catch, and str(){return null;}.

And I shall continue to try to analyze it (within this month), and 
welcome any additional ideas, suggestions, and completion for it, 


Thanks
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Andrew Haley
On 10/06/2014 02:53 PM, Chen Gang wrote:
 On 10/6/14 16:37, Andrew Haley wrote:
 On 06/10/14 05:08, Chen Gang wrote:
 After try normal configure, get almost the same result, I guess, our
 testsuite under Darwin x86_64 is OK.

 If no any additional reply within a week, I shall continue to try to
 analyze the libjava Throw_2 issue.

 Throw_2 is a test specially contrived to detect segfaults that are
 not being correctly detected and turned into NullPointerException()s.
 A failure indicates that the segfault signal handler is broken.
 
 OK, thank, at present, it passes compiling (can generate 'Throw_2.exe'),
 and after run it without any parameters, 1 is printed, but 2 is not
 printed.
 
 Under Fedora 20 x86_64, the same gcc code, it is OK (2 can be printed),
 but under Darwin x86_64, it is Abort trap: 6 instead of. The related
 code: try{Double.parseDouble(str());}catch, and str(){return null;}.
 
 And I shall continue to try to analyze it (within this month), and 
 welcome any additional ideas, suggestions, and completion for it, 

Not every platform supports unwinding through signal handlers.  In x86
Linux there is some very clever code which interacts with the kernel to
allow this.

Andrew.



Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/6/14 21:54, Andrew Haley wrote:
 On 10/06/2014 02:53 PM, Chen Gang wrote:
 On 10/6/14 16:37, Andrew Haley wrote:
 On 06/10/14 05:08, Chen Gang wrote:
 After try normal configure, get almost the same result, I guess, our
 testsuite under Darwin x86_64 is OK.

 If no any additional reply within a week, I shall continue to try to
 analyze the libjava Throw_2 issue.

 Throw_2 is a test specially contrived to detect segfaults that are
 not being correctly detected and turned into NullPointerException()s.
 A failure indicates that the segfault signal handler is broken.

 OK, thank, at present, it passes compiling (can generate 'Throw_2.exe'),
 and after run it without any parameters, 1 is printed, but 2 is not
 printed.

 Under Fedora 20 x86_64, the same gcc code, it is OK (2 can be printed),
 but under Darwin x86_64, it is Abort trap: 6 instead of. The related
 code: try{Double.parseDouble(str());}catch, and str(){return null;}.

 And I shall continue to try to analyze it (within this month), and 
 welcome any additional ideas, suggestions, and completion for it, 
 
 Not every platform supports unwinding through signal handlers.  In x86
 Linux there is some very clever code which interacts with the kernel to
 allow this.
 

Excuse me, I am not quite familiar with Java, I guess what you said is:

 - The related feature need OS kernel support, if OS kernel does not
   support, it may report Abort trap: 6 or others.

 - And OS kernel has feature to support 1 printed does not mean it
   also has feature to support 2 printed.

 - And I need try to make sure that my current Darwin kernel whether
   supports it or not.

If what I guess is incorrect, please let me know, thanks.

For me, whether Darwin kernel supports or not, we have to improve
current implementation (may be testsuite configure or Makefile) to
avoid testsuite breaking.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Andrew Haley
On 10/06/2014 03:27 PM, Chen Gang wrote:
 On 10/6/14 21:54, Andrew Haley wrote:
 On 10/06/2014 02:53 PM, Chen Gang wrote:
 On 10/6/14 16:37, Andrew Haley wrote:
 On 06/10/14 05:08, Chen Gang wrote:
 After try normal configure, get almost the same result, I guess, our
 testsuite under Darwin x86_64 is OK.

 If no any additional reply within a week, I shall continue to try to
 analyze the libjava Throw_2 issue.

 Throw_2 is a test specially contrived to detect segfaults that are
 not being correctly detected and turned into NullPointerException()s.
 A failure indicates that the segfault signal handler is broken.

 OK, thank, at present, it passes compiling (can generate 'Throw_2.exe'),
 and after run it without any parameters, 1 is printed, but 2 is not
 printed.

 Under Fedora 20 x86_64, the same gcc code, it is OK (2 can be printed),
 but under Darwin x86_64, it is Abort trap: 6 instead of. The related
 code: try{Double.parseDouble(str());}catch, and str(){return null;}.

 And I shall continue to try to analyze it (within this month), and 
 welcome any additional ideas, suggestions, and completion for it, 

 Not every platform supports unwinding through signal handlers.  In x86
 Linux there is some very clever code which interacts with the kernel to
 allow this.
 
 Excuse me, I am not quite familiar with Java, I guess what you said is:
 
  - The related feature need OS kernel support, if OS kernel does not
support, it may report Abort trap: 6 or others.
 
  - And OS kernel has feature to support 1 printed does not mean it
also has feature to support 2 printed.
 
  - And I need try to make sure that my current Darwin kernel whether
supports it or not.
 
 If what I guess is incorrect, please let me know, thanks.

That sounds approximately right, but it's changed a lot since I last
looked.  It may be that the magic is in glibc rather than the kernel.

 For me, whether Darwin kernel supports or not, we have to improve
 current implementation (may be testsuite configure or Makefile) to
 avoid testsuite breaking.

The testsuite isn't breaking: it's telling you something useful.

Andrew.




Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/6/14 22:28, Andrew Haley wrote:
 On 10/06/2014 03:27 PM, Chen Gang wrote:
 On 10/6/14 21:54, Andrew Haley wrote:
 On 10/06/2014 02:53 PM, Chen Gang wrote:
 On 10/6/14 16:37, Andrew Haley wrote:
 On 06/10/14 05:08, Chen Gang wrote:
 After try normal configure, get almost the same result, I guess, our
 testsuite under Darwin x86_64 is OK.

 If no any additional reply within a week, I shall continue to try to
 analyze the libjava Throw_2 issue.

 Throw_2 is a test specially contrived to detect segfaults that are
 not being correctly detected and turned into NullPointerException()s.
 A failure indicates that the segfault signal handler is broken.

 OK, thank, at present, it passes compiling (can generate 'Throw_2.exe'),
 and after run it without any parameters, 1 is printed, but 2 is not
 printed.

 Under Fedora 20 x86_64, the same gcc code, it is OK (2 can be printed),
 but under Darwin x86_64, it is Abort trap: 6 instead of. The related
 code: try{Double.parseDouble(str());}catch, and str(){return null;}.

 And I shall continue to try to analyze it (within this month), and 
 welcome any additional ideas, suggestions, and completion for it, 

 Not every platform supports unwinding through signal handlers.  In x86
 Linux there is some very clever code which interacts with the kernel to
 allow this.

 Excuse me, I am not quite familiar with Java, I guess what you said is:

  - The related feature need OS kernel support, if OS kernel does not
support, it may report Abort trap: 6 or others.

  - And OS kernel has feature to support 1 printed does not mean it
also has feature to support 2 printed.

  - And I need try to make sure that my current Darwin kernel whether
supports it or not.

 If what I guess is incorrect, please let me know, thanks.
 
 That sounds approximately right, but it's changed a lot since I last
 looked.  It may be that the magic is in glibc rather than the kernel.


OK, thanks, I shall also notice about glibc when I try to analyze it,
e.g. need try to build and install upstream glibc instead of the Darwin
glibc (I am not quite sure whether I can do that, I guess I can).

 
 For me, whether Darwin kernel supports or not, we have to improve
 current implementation (may be testsuite configure or Makefile) to
 avoid testsuite breaking.
 
 The testsuite isn't breaking: it's telling you something useful.
 

Sorry it is breaked, at present, I temporarily skipped it and then can
let make check finish, the related temporarily skip diff may like
below (in real action, I modify the related Makefile, directly):

diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
index 28fc102..d1e77de 100644
--- a/libjava/testsuite/Makefile.in
+++ b/libjava/testsuite/Makefile.in
@@ -390,7 +390,7 @@ check-DEJAGNU: site.exp
if $(SHELL) -c $$runtest --version  /dev/null 21; then \
  exit_status=0; l='$(DEJATOOL)'; for tool in $$l; do \
if $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) 
$(RUNTESTFLAGS); \
-   then :; else exit_status=1; fi; \
+   then :; else exit_status=0; fi; \
  done; \
else echo WARNING: could not find \`runtest' 12; :;\
fi; \
ba

Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Andrew Haley
On 10/06/2014 04:00 PM, Chen Gang wrote:
 On 10/6/14 22:28, Andrew Haley wrote:
 On 10/06/2014 03:27 PM, Chen Gang wrote:
 On 10/6/14 21:54, Andrew Haley wrote:
 On 10/06/2014 02:53 PM, Chen Gang wrote:
 On 10/6/14 16:37, Andrew Haley wrote:
 On 06/10/14 05:08, Chen Gang wrote:
 After try normal configure, get almost the same result, I guess, our
 testsuite under Darwin x86_64 is OK.

 If no any additional reply within a week, I shall continue to try to
 analyze the libjava Throw_2 issue.

 Throw_2 is a test specially contrived to detect segfaults that are
 not being correctly detected and turned into NullPointerException()s.
 A failure indicates that the segfault signal handler is broken.

 OK, thank, at present, it passes compiling (can generate 'Throw_2.exe'),
 and after run it without any parameters, 1 is printed, but 2 is not
 printed.

 Under Fedora 20 x86_64, the same gcc code, it is OK (2 can be printed),
 but under Darwin x86_64, it is Abort trap: 6 instead of. The related
 code: try{Double.parseDouble(str());}catch, and str(){return null;}.

 And I shall continue to try to analyze it (within this month), and 
 welcome any additional ideas, suggestions, and completion for it, 

 Not every platform supports unwinding through signal handlers.  In x86
 Linux there is some very clever code which interacts with the kernel to
 allow this.

 Excuse me, I am not quite familiar with Java, I guess what you said is:

  - The related feature need OS kernel support, if OS kernel does not
support, it may report Abort trap: 6 or others.

  - And OS kernel has feature to support 1 printed does not mean it
also has feature to support 2 printed.

  - And I need try to make sure that my current Darwin kernel whether
supports it or not.

 If what I guess is incorrect, please let me know, thanks.

 That sounds approximately right, but it's changed a lot since I last
 looked.  It may be that the magic is in glibc rather than the kernel.

 
 OK, thanks, I shall also notice about glibc when I try to analyze it,
 e.g. need try to build and install upstream glibc instead of the Darwin
 glibc (I am not quite sure whether I can do that, I guess I can).
 
  
 For me, whether Darwin kernel supports or not, we have to improve
 current implementation (may be testsuite configure or Makefile) to
 avoid testsuite breaking.

 The testsuite isn't breaking: it's telling you something useful.

 
 Sorry it is breaked, at present, I temporarily skipped it and then can
 let make check finish, the related temporarily skip diff may like
 below (in real action, I modify the related Makefile, directly):

You're missing what I'm saying.  The testuite is not broken.

You should be running make -k check.

Andrew.



Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/6/14 22:59, Andrew Haley wrote:
 On 10/06/2014 04:00 PM, Chen Gang wrote:
 On 10/6/14 22:28, Andrew Haley wrote:
[...]
 The testsuite isn't breaking: it's telling you something useful.


 Sorry it is breaked, at present, I temporarily skipped it and then can
 let make check finish, the related temporarily skip diff may like
 below (in real action, I modify the related Makefile, directly):
 
 You're missing what I'm saying.  The testuite is not broken.
 
 You should be running make -k check.
 

For me, make -k check is suitable for one sub-system (e.g. for cross
building, and mainly focus on gcc), but not for global check (full
non-cross building check):

 - make check is the standard check for global, so when find new
   issues (include environment construction), need stop in time.

 - If one sub-system wants to skip the known issue, it can mark it as
   'unexpected', or just simply return 0 to Makefile to let checking
   continue (I guess, most of other sub-system do in this way).

 - Or for other members (especially for newbies, e.g. me), he/she can
   not sure whether the environment construction for testsuite is OK or
   not:

 e.g. For our case, after build upstream glibc and let testsuite use
 it instead of Darwin glibc, all things may go OK. If really it is,
 it is environments construction (not testsuite or code) issue.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Mike Stump
On Oct 6, 2014, at 8:36 AM, Chen Gang gang.chen.5...@gmail.com wrote:
 For me, make -k check is suitable for one sub-system (e.g. for cross
 building, and mainly focus on gcc), but not for global check (full
 non-cross building check):

In our world, there is no sub-system, so, talk of such is outside the scope of 
gcc.

Let me repeat what he said differently.

You have two choices, fixing the port so that there are no unexpected failures 
or running check with -k.

I’d like to get to the point where all primary/secondary platforms can use make 
check directly, we’re not there yet.

The idea is that the single return value tells if if the suite passed or not.  
This is an absolute measure, that, when achieved means one never has to compare 
previous/present results, just know that the suite passed.  Sometimes simple is 
better.

 - make check is the standard check for global,

No sub-system, no global.

Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/7/14 1:29, Mike Stump wrote:
 On Oct 6, 2014, at 8:36 AM, Chen Gang gang.chen.5...@gmail.com wrote:
 For me, make -k check is suitable for one sub-system (e.g. for cross
 building, and mainly focus on gcc), but not for global check (full
 non-cross building check):
 
 In our world, there is no sub-system, so, talk of such is outside the scope 
 of gcc.
 
 Let me repeat what he said differently.
 
 You have two choices, fixing the port so that there are no unexpected 
 failures or running check with -k.
 
 I’d like to get to the point where all primary/secondary platforms can use 
 make check directly, we’re not there yet.
 
 The idea is that the single return value tells if if the suite passed or not. 
  This is an absolute measure, that, when achieved means one never has to 
 compare previous/present results, just know that the suite passed.  Sometimes 
 simple is better.
 
 - make check is the standard check for global,
 
 No sub-system, no global.
 

Theoretically, in each system (include gcc), always can be separated
into several 'sub-systems', and then 'global' means the system itself.

In our case, we say let 'global' pass checking means let gcc, gfortran,
g++, libjava ... all pass checking. But for mainly focus on constructing
environments, I will try to use upstream glibc instead of Darwin glibc:

 - If fix Throw_2, we know it is environments construction issue.

 - Else, I shall skip it (since make -k check should be OK).

And after finish testsuite under Darwin, within this month, I shall try
to find and send a patch for gcc, and pass testsuite under Darwin (it
seems it is not quite difficult to me).


Thanks
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: Libjava test failure Was: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-06 Thread Chen Gang
On 10/7/14 7:18, Chen Gang wrote:
 On 10/7/14 1:29, Mike Stump wrote:
 On Oct 6, 2014, at 8:36 AM, Chen Gang gang.chen.5...@gmail.com wrote:
 For me, make -k check is suitable for one sub-system (e.g. for cross
 building, and mainly focus on gcc), but not for global check (full
 non-cross building check):

 In our world, there is no sub-system, so, talk of such is outside the scope 
 of gcc.

 Let me repeat what he said differently.

 You have two choices, fixing the port so that there are no unexpected 
 failures or running check with -k.

 I’d like to get to the point where all primary/secondary platforms can use 
 make check directly, we’re not there yet.

 The idea is that the single return value tells if if the suite passed or 
 not.  This is an absolute measure, that, when achieved means one never has 
 to compare previous/present results, just know that the suite passed.  
 Sometimes simple is better.

 - make check is the standard check for global,

 No sub-system, no global.

 
 Theoretically, in each system (include gcc), always can be separated
 into several 'sub-systems', and then 'global' means the system itself.
 
 In our case, we say let 'global' pass checking means let gcc, gfortran,
 g++, libjava ... all pass checking. But for mainly focus on constructing
 environments, I will try to use upstream glibc instead of Darwin glibc:
 
  - If fix Throw_2, we know it is environments construction issue.
 
  - Else, I shall skip it (since make -k check should be OK).
 
 And after finish testsuite under Darwin, within this month, I shall try
 to find and send a patch for gcc, and pass testsuite under Darwin (it
 seems it is not quite difficult to me).
 
 

It is really unlucky, The upstream glibc does not support Darwin! And
sorry, send patches to glibc is really out of my current border, so I
have to give up. :-(

  bash-3.2# ../glibc/configure --with-prefix=/release/Darwin/ 
--with-sysroot=/release/Darwin
  checking build system type... x86_64-apple-darwin13.4.0
  checking host system type... x86_64-apple-darwin13.4.0
  checking for gcc... gcc
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether gcc accepts -g... yes
  checking for g++... g++
  checking whether we are using the GNU C++ compiler... yes
  checking whether g++ accepts -g... yes
  checking for readelf... no
  checking for sysdeps preconfigure fragments... aarch64 alpha arm hppa i386 
m68k microblaze mips powerpc s390 sh sparc tile x86_64 checking whether gcc 
compiles in -mx32 mode by default... no
  
  configure: running configure fragment for add-on libidn
  *** The GNU C library is currently not available for this platform.
  *** So far nobody cared to port it and if there is no volunteer it
  *** might never happen.  So, if you have interest to see glibc on
  *** this platform visit
  ***   http://www.gnu.org/software/libc/porting.html
  *** and join the group of porters


And I guess, this thread can be ended, and next, I shall try to find a
patch for gcc, and let it pass testsuite under Darwin.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-05 Thread Chen Gang
On 10/5/14 11:32, Chen Gang wrote:
 On 10/5/14 11:15, Chen Gang wrote:
 On 9/25/14 8:12, Chen Gang wrote:
 OK, thanks, next month, I shall try Qemu for microblaze (I also focus on 
 Qemu, and try to make patches for it).

 And, I also need finish the testsuite under Darwin x86_64, next month for 
 gcc.

 I finish tried testsuit under Darwin x86_64, originally, I incorrectly
 installed mpc: need brew install libmpc, not brew install mpc, and
 also need brew link libmpc which I missed.

 At present, except for libjave Throw_2.exe test, I guess all others are
 OK, please help check the result below, thanks. 

 
 Oh, sorry, I forgot to mention 2 things:
 
  - config with --disable-multilibs, and I shall try normal configiure
again (although I guess, it will also be OK), hope I can finish
within 2 days.
 
  - And during test libjava, it will quit with error because of Throw_2,
so I modified the related Makefile to skip it.


After try normal configure, get almost the same result, I guess, our
testsuite under Darwin x86_64 is OK.

If no any additional reply within a week, I shall continue to try to
analyze the libjava Throw_2 issue.


Thanks.
 
 
 If it passes checking, next, I shall try to fix libjava Throw_2 issue
 within this month (others, include Throw_1 and Throw_3 are all OK).

  === g++ Summary ===

 # of expected passes 82961
 # of unexpected failures 891
 # of expected failures   255
 # of unresolved testcases272
 # of unsupported tests   3421

  === gcc Summary ===

 # of expected passes 85011
 # of unexpected failures 30
 # of expected failures   182
 # of unresolved testcases10
 # of unsupported tests   2796

  === gfortran Summary ===

 # of expected passes 46354
 # of unexpected failures 1
 # of expected failures   38
 # of unsupported tests   74

  === gnat Summary ===

 # of expected passes 799
 # of unexpected failures 67
 # of unexpected successes18
 # of unresolved testcases382
 # of unsupported tests   8

  === objc Summary ===

 # of expected passes 5828
 # of unexpected failures 4
 # of expected failures   6
 # of unsupported tests   77

  === boehm-gc Summary ===

 # of expected passes 12
 # of unsupported tests   1

  === libatomic Summary ===

 # of expected passes 54

  === libffi Summary ===

 # of expected passes 1819
 # of unsupported tests   55

  === libgomp Summary ===

 # of expected passes 3194
 # of unsupported tests   38

  === libitm Summary ===

 # of expected passes 26
 # of expected failures   3
 # of unsupported tests   1

  === libjava Summary ===

 # of expected passes 2574
 # of unexpected failures 4   /* The 4 issues are all related with 
 Throw_2.exe */
 # of expected failures   4
 # of untested testcases  4

  === libstdc++ Summary ===

 # of expected passes 8956
 # of unexpected failures 159
 # of expected failures   69
 # of unresolved testcases38
 # of unsupported tests   670


 Thanks.

 

-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-04 Thread Chen Gang
On 9/25/14 8:12, Chen Gang wrote:
 OK, thanks, next month, I shall try Qemu for microblaze (I also focus on 
 Qemu, and try to make patches for it).
 
 And, I also need finish the testsuite under Darwin x86_64, next month for gcc.

I finish tried testsuit under Darwin x86_64, originally, I incorrectly
installed mpc: need brew install libmpc, not brew install mpc, and
also need brew link libmpc which I missed.

At present, except for libjave Throw_2.exe test, I guess all others are
OK, please help check the result below, thanks. 

If it passes checking, next, I shall try to fix libjava Throw_2 issue
within this month (others, include Throw_1 and Throw_3 are all OK).

=== g++ Summary ===

# of expected passes82961
# of unexpected failures891
# of expected failures  255
# of unresolved testcases   272
# of unsupported tests  3421

=== gcc Summary ===

# of expected passes85011
# of unexpected failures30
# of expected failures  182
# of unresolved testcases   10
# of unsupported tests  2796

=== gfortran Summary ===

# of expected passes46354
# of unexpected failures1
# of expected failures  38
# of unsupported tests  74

=== gnat Summary ===

# of expected passes799
# of unexpected failures67
# of unexpected successes   18
# of unresolved testcases   382
# of unsupported tests  8

=== objc Summary ===

# of expected passes5828
# of unexpected failures4
# of expected failures  6
# of unsupported tests  77

=== boehm-gc Summary ===

# of expected passes12
# of unsupported tests  1

=== libatomic Summary ===

# of expected passes54

=== libffi Summary ===

# of expected passes1819
# of unsupported tests  55

=== libgomp Summary ===

# of expected passes3194
# of unsupported tests  38

=== libitm Summary ===

# of expected passes26
# of expected failures  3
# of unsupported tests  1

=== libjava Summary ===

# of expected passes2574
# of unexpected failures4   /* The 4 issues are all related with 
Throw_2.exe */
# of expected failures  4
# of untested testcases 4

=== libstdc++ Summary ===

# of expected passes8956
# of unexpected failures159
# of expected failures  69
# of unresolved testcases   38
# of unsupported tests  670


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-10-04 Thread Chen Gang
On 10/5/14 11:15, Chen Gang wrote:
 On 9/25/14 8:12, Chen Gang wrote:
 OK, thanks, next month, I shall try Qemu for microblaze (I also focus on 
 Qemu, and try to make patches for it).

 And, I also need finish the testsuite under Darwin x86_64, next month for 
 gcc.
 
 I finish tried testsuit under Darwin x86_64, originally, I incorrectly
 installed mpc: need brew install libmpc, not brew install mpc, and
 also need brew link libmpc which I missed.
 
 At present, except for libjave Throw_2.exe test, I guess all others are
 OK, please help check the result below, thanks. 
 

Oh, sorry, I forgot to mention 2 things:

 - config with --disable-multilibs, and I shall try normal configiure
   again (although I guess, it will also be OK), hope I can finish
   within 2 days.

 - And during test libjava, it will quit with error because of Throw_2,
   so I modified the related Makefile to skip it.


 If it passes checking, next, I shall try to fix libjava Throw_2 issue
 within this month (others, include Throw_1 and Throw_3 are all OK).
 
   === g++ Summary ===
 
 # of expected passes  82961
 # of unexpected failures  891
 # of expected failures255
 # of unresolved testcases 272
 # of unsupported tests3421
 
   === gcc Summary ===
 
 # of expected passes  85011
 # of unexpected failures  30
 # of expected failures182
 # of unresolved testcases 10
 # of unsupported tests2796
 
   === gfortran Summary ===
 
 # of expected passes  46354
 # of unexpected failures  1
 # of expected failures38
 # of unsupported tests74
 
   === gnat Summary ===
 
 # of expected passes  799
 # of unexpected failures  67
 # of unexpected successes 18
 # of unresolved testcases 382
 # of unsupported tests8
 
   === objc Summary ===
 
 # of expected passes  5828
 # of unexpected failures  4
 # of expected failures6
 # of unsupported tests77
 
   === boehm-gc Summary ===
 
 # of expected passes  12
 # of unsupported tests1
 
   === libatomic Summary ===
 
 # of expected passes  54
 
   === libffi Summary ===
 
 # of expected passes  1819
 # of unsupported tests55
 
   === libgomp Summary ===
 
 # of expected passes  3194
 # of unsupported tests38
 
   === libitm Summary ===
 
 # of expected passes  26
 # of expected failures3
 # of unsupported tests1
 
   === libjava Summary ===
 
 # of expected passes  2574
 # of unexpected failures  4   /* The 4 issues are all related with 
 Throw_2.exe */
 # of expected failures4
 # of untested testcases   4
 
   === libstdc++ Summary ===
 
 # of expected passes  8956
 # of unexpected failures  159
 # of expected failures69
 # of unresolved testcases 38
 # of unsupported tests670
 
 
 Thanks.
 

-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-24 Thread Chen Gang
Hello Michael:

Firstly, thank you very much for always providing your aid to me for
microblaze.

At present, after try testsuite, the result is much better than my
original trying, please help check the result: is it enough for our
microblaze testsuite (can we say it pass checking)?

  Current result:

# of expected passes65987
# of unexpected failures82
# of unexpected successes   1
# of expected failures  97
# of unresolved testcases   16378
# of unsupported tests  1810

  Original result:

# of expected passes  48408
# of unexpected failures  17253
# of unexpected successes 1
# of expected failures97
# of unresolved testcases 16570
# of unsupported tests1854

After check the current result log, I find many remote target test
related sentences, do we have to process it?

  e.g. Download to microblaze-xilinx-gdb failed, couldn't execute rcp: no 
such file or directory.



 And I guess, it is a glibc bug: which still add root directory (e.g.
 /upstream/release) in 'libc.so' when already has --with-sysroot for
 configure.

 
 Oh, sorry, glibc should also need --with-sysroot. I shall try it today,
 hope it will let all things OK.
 

After add --with-sysroot for glibc, this issue is still existance. And I
remove the redundant direcltory manually for libc.so and libpthread.so.

If our microblaze testsuite is OK, I will skip this issue (since I have
no enough time resource on glibc, at present).


Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-24 Thread Michael Eager

On 09/24/14 07:31, Chen Gang wrote:

Hello Michael:

Firstly, thank you very much for always providing your aid to me for
microblaze.

At present, after try testsuite, the result is much better than my
original trying, please help check the result: is it enough for our
microblaze testsuite (can we say it pass checking)?

   Current result:

 # of expected passes65987
 # of unexpected failures82
 # of unexpected successes   1
 # of expected failures  97
 # of unresolved testcases   16378
 # of unsupported tests  1810


This is good.



   Original result:

 # of expected passes  48408
 # of unexpected failures  17253
 # of unexpected successes 1
 # of expected failures97
 # of unresolved testcases 16570
 # of unsupported tests1854

After check the current result log, I find many remote target test
related sentences, do we have to process it?

   e.g. Download to microblaze-xilinx-gdb failed, couldn't execute rcp: no such 
file or directory.


The test suite uses rcp to transfer files to or from the target,
either to provide input to a test case or to check the output.
Most Linux systems do not install rcp, since it is a security risk.


And I guess, it is a glibc bug: which still add root directory (e.g.
/upstream/release) in 'libc.so' when already has --with-sysroot for
configure.



Oh, sorry, glibc should also need --with-sysroot. I shall try it today,
hope it will let all things OK.



After add --with-sysroot for glibc, this issue is still existance. And I
remove the redundant direcltory manually for libc.so and libpthread.so.

If our microblaze testsuite is OK, I will skip this issue (since I have
no enough time resource on glibc, at present).


OK with me.


--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-24 Thread Mike Stump
On Sep 24, 2014, at 8:28 AM, Michael Eager ea...@eagerm.com wrote:
 After check the current result log, I find many remote target test
 related sentences, do we have to process it?
 
   e.g. Download to microblaze-xilinx-gdb failed, couldn't execute rcp: no 
 such file or directory.
 
 The test suite uses rcp to transfer files to or from the target,
 either to provide input to a test case or to check the output.
 Most Linux systems do not install rcp, since it is a security risk.

To clarify:

if {[board_info $desthost exists rcp_prog]} {
set RCP [board_info $desthost rcp_prog]
} else {
set RCP rcp
}

So, if you set rcp_prog to something else, you should be able to avoid rsh if 
you want.  Most people use ssh now-a-days.  You will want it set up to not 
require a password for testing.



Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-24 Thread Chen Gang
On 09/24/2014 11:28 PM, Michael Eager wrote:
 On 09/24/14 07:31, Chen Gang wrote:
 Hello Michael:

 Firstly, thank you very much for always providing your aid to me for
 microblaze.

 At present, after try testsuite, the result is much better than my
 original trying, please help check the result: is it enough for our
 microblaze testsuite (can we say it pass checking)?

Current result:

  # of expected passes65987
  # of unexpected failures82
  # of unexpected successes   1
  # of expected failures  97
  # of unresolved testcases   16378
  # of unsupported tests  1810
 
 This is good.
 

OK, thanks, and I shall send a fix patch for ((void (*)(void))0)()
tomorrow, it pass testsuite (old and new get the same result), but new
can fix ((void (*)(void))0)() issue. So I guess this fix is valid. :-)


Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-24 Thread Chen Gang
On 09/24/2014 11:37 PM, Mike Stump wrote:
 On Sep 24, 2014, at 8:28 AM, Michael Eager ea...@eagerm.com wrote:
 After check the current result log, I find many remote target test
 related sentences, do we have to process it?

   e.g. Download to microblaze-xilinx-gdb failed, couldn't execute rcp: 
 no such file or directory.

 The test suite uses rcp to transfer files to or from the target,
 either to provide input to a test case or to check the output.
 Most Linux systems do not install rcp, since it is a security risk.
 
 To clarify:
 
 if {[board_info $desthost exists rcp_prog]} {
 set RCP [board_info $desthost rcp_prog]
 } else {
 set RCP rcp
 }
 
 So, if you set rcp_prog to something else, you should be able to avoid rsh if 
 you want.  Most people use ssh now-a-days.  You will want it set up to not 
 require a password for testing.
 

OK, thank you for your information.

For one simple solving way under fedora: yum install rsh, and I will
get another issue:

  Download to microblaze-xilinx-gdb failed, microblaze-xilinx-gdb: Unknown 
host

So I guess the root cause is: I only use cross-compiling environments
under fedora x86_64, no any real or virtual target for test.


Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-24 Thread Mike Stump
On Sep 24, 2014, at 9:23 AM, Chen Gang gang.chen.5...@gmail.com wrote:
 For one simple solving way under fedora: yum install rsh, and I will
 get another issue:
 
  Download to microblaze-xilinx-gdb failed, microblaze-xilinx-gdb: Unknown 
 host
 
 So I guess the root cause is: I only use cross-compiling environments
 under fedora x86_64, no any real or virtual target for test.

Yes, if you want to test on a target, you will need a target.  You can either 
have a simulator (see binutils and sim/* for an example of how to write one) or 
target hardware in some form.

Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-24 Thread Michael Eager

On 09/24/14 09:23, Chen Gang wrote:

On 09/24/2014 11:37 PM, Mike Stump wrote:

On Sep 24, 2014, at 8:28 AM, Michael Eager ea...@eagerm.com wrote:

After check the current result log, I find many remote target test
related sentences, do we have to process it?

   e.g. Download to microblaze-xilinx-gdb failed, couldn't execute rcp: no such 
file or directory.


The test suite uses rcp to transfer files to or from the target,
either to provide input to a test case or to check the output.
Most Linux systems do not install rcp, since it is a security risk.


To clarify:

 if {[board_info $desthost exists rcp_prog]} {
 set RCP [board_info $desthost rcp_prog]
 } else {
 set RCP rcp
 }

So, if you set rcp_prog to something else, you should be able to avoid rsh if 
you want.  Most people use ssh now-a-days.  You will want it set up to not 
require a password for testing.



OK, thank you for your information.

For one simple solving way under fedora: yum install rsh, and I will
get another issue:

   Download to microblaze-xilinx-gdb failed, microblaze-xilinx-gdb: Unknown 
host

So I guess the root cause is: I only use cross-compiling environments
under fedora x86_64, no any real or virtual target for test.


You can see the command which is getting the error by looking at gcc.log.
If the command is not displayed, add another -v (or two) to RUNTESTFLAGS.

If I recall correctly, DejaGNU is executing a command like rcp file 
microblaze-xilinx-gdb.
This means that you need to have the name microblaze-xilinx-gdb resolved into 
an IP address.
This can be done by adding it to /etc/hosts.  Or you can specify the target IP 
address
in the DejaGNU options.  I don't recall which one off the top of my head.

--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-24 Thread Chen Gang
OK, thanks, next month, I shall try Qemu for microblaze (I also focus on Qemu, 
and try to make patches for it).

And, I also need finish the testsuite under Darwin x86_64, next month for gcc.

Hope I can succeed.

Thanks

Send from Lenovo A788t.

Mike Stump mikest...@comcast.net wrote:

On Sep 24, 2014, at 9:23 AM, Chen Gang gang.chen.5...@gmail.com wrote:
 For one simple solving way under fedora: yum install rsh, and I will
 get another issue:
 
  Download to microblaze-xilinx-gdb failed, microblaze-xilinx-gdb: Unknown 
 host
 
 So I guess the root cause is: I only use cross-compiling environments
 under fedora x86_64, no any real or virtual target for test.

Yes, if you want to test on a target, you will need a target.  You can either 
have a simulator (see binutils and sim/* for an example of how to write one) 
or target hardware in some form.

Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-24 Thread Chen Gang
Thank you for your information, I shall notice about it when trying Qemu 
microblaze.

Thanks

Send from Lenovo A788t.

Michael Eager ea...@eagerm.com wrote:

On 09/24/14 09:23, Chen Gang wrote:
 On 09/24/2014 11:37 PM, Mike Stump wrote:
 On Sep 24, 2014, at 8:28 AM, Michael Eager ea...@eagerm.com wrote:
 After check the current result log, I find many remote target test
 related sentences, do we have to process it?

e.g. Download to microblaze-xilinx-gdb failed, couldn't execute 
 rcp: no such file or directory.

 The test suite uses rcp to transfer files to or from the target,
 either to provide input to a test case or to check the output.
 Most Linux systems do not install rcp, since it is a security risk.

 To clarify:

  if {[board_info $desthost exists rcp_prog]} {
  set RCP [board_info $desthost rcp_prog]
  } else {
  set RCP rcp
  }

 So, if you set rcp_prog to something else, you should be able to avoid rsh 
 if you want.  Most people use ssh now-a-days.  You will want it set up to 
 not require a password for testing.


 OK, thank you for your information.

 For one simple solving way under fedora: yum install rsh, and I will
 get another issue:

Download to microblaze-xilinx-gdb failed, microblaze-xilinx-gdb: Unknown 
 host

 So I guess the root cause is: I only use cross-compiling environments
 under fedora x86_64, no any real or virtual target for test.

You can see the command which is getting the error by looking at gcc.log.
If the command is not displayed, add another -v (or two) to RUNTESTFLAGS.

If I recall correctly, DejaGNU is executing a command like rcp file 
microblaze-xilinx-gdb.
This means that you need to have the name microblaze-xilinx-gdb resolved into 
an IP address.
This can be done by adding it to /etc/hosts.  Or you can specify the target IP 
address
in the DejaGNU options.  I don't recall which one off the top of my head.

-- 
Michael Eager   ea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-22 Thread Michael Eager

On 09/21/14 21:10, Chen Gang wrote:

On 9/22/14 2:09, Michael Eager wrote:


Generally, you should use gcc to link programs, not ld.  gcc is
a driver which will select the appropriate libraries and support routines
(such as crt0.o, which contains _start) and pass them to the linker.



OK, thanks.

When gcc, it misses the root directory for crt1.o and crtn.o: e.g.
/lib/ld.so.1, crt1.o, crtn.o when gcc -v, but we need /upstream/
release/lib/ld.so.1, /upstream/lib/crt1.o, /upstream/libcrtn.o.


You likely need to build mb-gcc with --sysroot=/upstream.

How are you building gcc?  What are your configuration options?


--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-22 Thread Michael Eager

On 09/21/14 20:55, Chen Gang wrote:



On 9/22/14 2:03, Michael Eager wrote:

On 09/20/14 23:24, Chen Gang wrote:

And it seems, we also need 'LinkScr.ld' for ldscript, could you share it
to me, thanks.

set_board_info ldscript -T/home/eager/Xilinx/dg/microblaze_0/LinkScr.ld


Hi Chen --

The DejaGNU configuration I provided is for a bare-metal environment.

If you are testing in a Linux environment, the tool chain you uses
should provide a default linker script which matches your hardware's
memory layout. You should not need to provide a separate linker script.



OK, thanks, I shall try to find the default linker script for it.


If you are running mb-gcc which generates executables which run on
the target, you do not need to provide a linker script.


--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-22 Thread Chen Gang
On 09/22/2014 10:45 PM, Michael Eager wrote:
 On 09/21/14 21:10, Chen Gang wrote:
 On 9/22/14 2:09, Michael Eager wrote:

 Generally, you should use gcc to link programs, not ld.  gcc is
 a driver which will select the appropriate libraries and support routines
 (such as crt0.o, which contains _start) and pass them to the linker.


 OK, thanks.

 When gcc, it misses the root directory for crt1.o and crtn.o: e.g.
 /lib/ld.so.1, crt1.o, crtn.o when gcc -v, but we need /upstream/
 release/lib/ld.so.1, /upstream/lib/crt1.o, /upstream/libcrtn.o.
 
 You likely need to build mb-gcc with --sysroot=/upstream.
 

OK, thanks! I guess it will solve all issues which I met, and I shall
try next.

 How are you building gcc?  What are your configuration options?
 

The related information is below, please help check when you have time,
thanks.

[root@localhost ~]# /upstream/release/bin/microblaze-gchen-linux-gcc -v
Using built-in specs.
COLLECT_GCC=/upstream/release/bin/microblaze-gchen-linux-gcc
COLLECT_LTO_WRAPPER=/upstream/release/libexec/gcc/microblaze-gchen-linux/5.0.0/lto-wrapper
Target: microblaze-gchen-linux
Configured with: ../gcc/configure --target=microblaze-gchen-linux --disable-nls 
--enable-languages=c --disable-threads --disable-shared --without-headers 
--disable-libssp --disable-libquadmath --disable-libgomp --disable-libatomic 
--prefix=/upstream/release
Thread model: single
gcc version 5.0.0 20140920 (experimental) (GCC) 
[root@localhost ~]# 


Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-22 Thread Chen Gang
On 09/22/2014 10:46 PM, Michael Eager wrote:
 On 09/21/14 20:55, Chen Gang wrote:


 On 9/22/14 2:03, Michael Eager wrote:
 On 09/20/14 23:24, Chen Gang wrote:
 And it seems, we also need 'LinkScr.ld' for ldscript, could you share it
 to me, thanks.

 set_board_info ldscript 
 -T/home/eager/Xilinx/dg/microblaze_0/LinkScr.ld

 Hi Chen --

 The DejaGNU configuration I provided is for a bare-metal environment.

 If you are testing in a Linux environment, the tool chain you uses
 should provide a default linker script which matches your hardware's
 memory layout. You should not need to provide a separate linker script.


 OK, thanks, I shall try to find the default linker script for it.
 
 If you are running mb-gcc which generates executables which run on
 the target, you do not need to provide a linker script.
 

OK, thanks. I shall remove it, next.

Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-21 Thread Chen Gang

After check the details, I guess, we need:

 - Cross compile and install glibc with raw microblaze cross-compiler,

 - Then compile new microblaze cross compiler with glibc.

 - Then make check the new microblaze cross compiler with glibc.

And it seems, we also need 'LinkScr.ld' for ldscript, could you share it
to me, thanks.

  set_board_info ldscript -T/home/eager/Xilinx/dg/microblaze_0/LinkScr.ld

At present, I am just analyzing how to cross compile microblaze glibc,
welcome any ideas, suggestions or completions.

Thanks.

On 09/21/2014 12:41 AM, Chen Gang wrote:
 
 Thank you very much for your quickly response, I shall continue try.
 
 Thanks.
 
 On 09/21/2014 12:31 AM, Michael Eager wrote:
 On 09/20/14 08:52, Chen Gang wrote:

 Thank you very much for your attachments, it is very useful to me!

 I tried testsuite for microblaze cross target on x86_64 host, it says
 OK (echo $? == 0), but I am not quite sure about it (I still doubt
 that my configuration is incorrect), please help check, thanks.

 Welcome to the joys of DejaGNU.  Configuration can be confusing.
 As you can see, the return code is not useful.

dejagnu configuration:

  cp xmd.exp /usr/local/share/dejagnu/config/
  cp microblaze-xilinx-gdb.exp /usr/local/share/dejagn/baseboards/
  vi microblaze-xilinx-gdb.exp
s/mc_gcc/microblaze\-gchen\-linux\-gcc/g

gcc operation:

  ../gcc/configure --target=microblaze-gchen-linux --disable-nls 
 --enable-languages=c --disable-threads --disable-shared \
--without-headers --disable-libssp --disable-libquadmath 
 --disable-libgomp --disable-libatomic
  make
  make -k check-gcc 
 RUNTESTFLAGS=--target_board=microblaze-xilinx-gdb/-mno-xl-soft-mul/-mxl-barrel-shift/-mcpu=v6.00.a

 Check whether these compiler options are being passed to mb-gcc.  There is a
 line in my microblaze-xilinx-gdb.exp which sets CFLAGS:
   set_board_info cflags  -mcpu=v4.00.b -mno-xl-soft-mul -mxl-barrel-shift
 This is likely overriding any options passed to runtest.

 Make sure that the options match the features of your target board.  You 
 might
 not need any options for your initial tests.

 Make sure that the correct flags are being passed to the linker.

 Add -v or -v -v to RUNTESTFLAGS so that the gcc.log file gives useful 
 info.

 You might want to limit the number of tests run until you get problems 
 worked out:
   make check-gcc RUNTESTFLAGS=execute.exp -v -v 
 --target_board=microblaze-xilinx-gdb
 This will run only the gcc.c-torture/execute/execute.exp tests.

gcc result:

   === gcc Summary ===

  # of expected passes  48408
  # of unexpected failures  17253
  # of unexpected successes 1
  # of expected failures97
  # of unresolved testcases 16570
  # of unsupported tests1854
  /upstream/build-gcc/gcc/xgcc  version 5.0.0 20140920 (experimental) 
 (GCC)

 Look at gcc.sum and gcc.log to find out what is causing the large number of
 unexpected failures.  A large number of unresolved test cases often means 
 that
 the compiler returned an error.

 
 


-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-21 Thread Chen Gang
On 09/21/2014 02:24 PM, Chen Gang wrote:
 
 After check the details, I guess, we need:
 
  - Cross compile and install glibc with raw microblaze cross-compiler,
 

After fix a compiling break bug for microblaze glibc, I succeed building
microblaze glibc with microblaze raw cross compiler, with latest Linux
upstream kernel header for microblaze (copy manually), under x86_64 host.

I have sent related patch for glibc mailing list, and continue the next
below, hope I can succeed. :-)  thanks.

  - Then compile new microblaze cross compiler with glibc.
 
  - Then make check the new microblaze cross compiler with glibc.
 
 And it seems, we also need 'LinkScr.ld' for ldscript, could you share it
 to me, thanks.
 
   set_board_info ldscript -T/home/eager/Xilinx/dg/microblaze_0/LinkScr.ld
 
 At present, I am just analyzing how to cross compile microblaze glibc,
 welcome any ideas, suggestions or completions.
 
 Thanks.
 
 On 09/21/2014 12:41 AM, Chen Gang wrote:

 Thank you very much for your quickly response, I shall continue try.

 Thanks.

 On 09/21/2014 12:31 AM, Michael Eager wrote:
 On 09/20/14 08:52, Chen Gang wrote:

 Thank you very much for your attachments, it is very useful to me!

 I tried testsuite for microblaze cross target on x86_64 host, it says
 OK (echo $? == 0), but I am not quite sure about it (I still doubt
 that my configuration is incorrect), please help check, thanks.

 Welcome to the joys of DejaGNU.  Configuration can be confusing.
 As you can see, the return code is not useful.

dejagnu configuration:

  cp xmd.exp /usr/local/share/dejagnu/config/
  cp microblaze-xilinx-gdb.exp /usr/local/share/dejagn/baseboards/
  vi microblaze-xilinx-gdb.exp
s/mc_gcc/microblaze\-gchen\-linux\-gcc/g

gcc operation:

  ../gcc/configure --target=microblaze-gchen-linux --disable-nls 
 --enable-languages=c --disable-threads --disable-shared \
--without-headers --disable-libssp --disable-libquadmath 
 --disable-libgomp --disable-libatomic
  make
  make -k check-gcc 
 RUNTESTFLAGS=--target_board=microblaze-xilinx-gdb/-mno-xl-soft-mul/-mxl-barrel-shift/-mcpu=v6.00.a

 Check whether these compiler options are being passed to mb-gcc.  There is a
 line in my microblaze-xilinx-gdb.exp which sets CFLAGS:
   set_board_info cflags  -mcpu=v4.00.b -mno-xl-soft-mul -mxl-barrel-shift
 This is likely overriding any options passed to runtest.

 Make sure that the options match the features of your target board.  You 
 might
 not need any options for your initial tests.

 Make sure that the correct flags are being passed to the linker.

 Add -v or -v -v to RUNTESTFLAGS so that the gcc.log file gives useful 
 info.

 You might want to limit the number of tests run until you get problems 
 worked out:
   make check-gcc RUNTESTFLAGS=execute.exp -v -v 
 --target_board=microblaze-xilinx-gdb
 This will run only the gcc.c-torture/execute/execute.exp tests.

gcc result:

   === gcc Summary ===

  # of expected passes  48408
  # of unexpected failures  17253
  # of unexpected successes 1
  # of expected failures97
  # of unresolved testcases 16570
  # of unsupported tests1854
  /upstream/build-gcc/gcc/xgcc  version 5.0.0 20140920 (experimental) 
 (GCC)

 Look at gcc.sum and gcc.log to find out what is causing the large number of
 unexpected failures.  A large number of unresolved test cases often means 
 that
 the compiler returned an error.



 
 


-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-21 Thread Michael Eager

On 09/20/14 23:24, Chen Gang wrote:

And it seems, we also need 'LinkScr.ld' for ldscript, could you share it
to me, thanks.

   set_board_info ldscript -T/home/eager/Xilinx/dg/microblaze_0/LinkScr.ld


Hi Chen --

The DejaGNU configuration I provided is for a bare-metal environment.

If you are testing in a Linux environment, the tool chain you uses
should provide a default linker script which matches your hardware's
memory layout. You should not need to provide a separate linker script.

--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-21 Thread Michael Eager

On 09/21/14 03:46, Chen Gang wrote:

Excuse me, I want to consult one thing: I installed raw microblaze cross
compiler, binutils and glibc into one directory (/upstream/release), and
try to build a Hello world C program for microblaze under x86_64 host.

I guess it is OK, but I am not quite sure about it (I use raw compiler,
and have to point out /upstream/release/lib/ld.so.1 explicitly, and
receive a warning related with 'ld').

Is it really OK? can I still use raw compiler for our testsuite? Is
'LinkScr.ld' for ldscript related with current case?




   [root@localhost test]# /upstream/release/bin/microblaze-gchen-linux-gcc 
-nostdinc -c -o test.o test.c
   [root@localhost test]# /upstream/release/bin/microblaze-gchen-linux-ld -o 
test test.o /upstream/release/lib/ld.so.1 -lc -L/upstream/release/lib

 /upstream/release/bin/microblaze-gchen-linux-ld: warning: cannot find 
entry symbol _start; defaulting to 1180


Generally, you should use gcc to link programs, not ld.  gcc is
a driver which will select the appropriate libraries and support routines
(such as crt0.o, which contains _start) and pass them to the linker.

--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-21 Thread Chen Gang


On 9/22/14 2:03, Michael Eager wrote:
 On 09/20/14 23:24, Chen Gang wrote:
 And it seems, we also need 'LinkScr.ld' for ldscript, could you share it
 to me, thanks.

set_board_info ldscript -T/home/eager/Xilinx/dg/microblaze_0/LinkScr.ld
 
 Hi Chen --
 
 The DejaGNU configuration I provided is for a bare-metal environment.
 
 If you are testing in a Linux environment, the tool chain you uses
 should provide a default linker script which matches your hardware's
 memory layout. You should not need to provide a separate linker script.
 

OK, thanks, I shall try to find the default linker script for it.

Thanks
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-21 Thread Chen Gang
On 9/22/14 2:09, Michael Eager wrote:
 On 09/21/14 03:46, Chen Gang wrote:
 Excuse me, I want to consult one thing: I installed raw microblaze cross
 compiler, binutils and glibc into one directory (/upstream/release), and
 try to build a Hello world C program for microblaze under x86_64 host.

 I guess it is OK, but I am not quite sure about it (I use raw compiler,
 and have to point out /upstream/release/lib/ld.so.1 explicitly, and
 receive a warning related with 'ld').

 Is it really OK? can I still use raw compiler for our testsuite? Is
 'LinkScr.ld' for ldscript related with current case?
 
 
[root@localhost test]# /upstream/release/bin/microblaze-gchen-linux-gcc 
 -nostdinc -c -o test.o test.c
[root@localhost test]# /upstream/release/bin/microblaze-gchen-linux-ld -o 
 test test.o /upstream/release/lib/ld.so.1 -lc -L/upstream/release/lib

  /upstream/release/bin/microblaze-gchen-linux-ld: warning: cannot find 
 entry symbol _start; defaulting to 1180
 
 Generally, you should use gcc to link programs, not ld.  gcc is
 a driver which will select the appropriate libraries and support routines
 (such as crt0.o, which contains _start) and pass them to the linker.
 

OK, thanks.

When gcc, it misses the root directory for crt1.o and crtn.o: e.g.
/lib/ld.so.1, crt1.o, crtn.o when gcc -v, but we need /upstream/
release/lib/ld.so.1, /upstream/lib/crt1.o, /upstream/libcrtn.o.

I guess, we need additional flag to mark the default system link path
for gcc. But after check the all parameters of gcc, I can not find (-L
is for normal library linkage, but not for crt1.o and crtn.o).

I shall continue trying for it, and hope I can finish within this month.
Welcome any ideas, suggestions or completions.

Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-20 Thread Chen Gang
On 09/16/2014 08:33 PM, Michael Eager wrote:
 On 09/15/14 15:53, Chen Gang wrote:
 On 09/15/2014 11:30 PM, Michael Eager wrote:
 
 Configuring DejaGNU for cross-target testing requires creating a 
 configuration
 file describing the target board.


 OK, thank you very much. And could you share your configuration file,
 which I can reference to?
 
 See attached.
 

Thank you very much for your attachments, it is very useful to me!

I tried testsuite for microblaze cross target on x86_64 host, it says
OK (echo $? == 0), but I am not quite sure about it (I still doubt
that my configuration is incorrect), please help check, thanks.

  dejagnu configuration:
  
cp xmd.exp /usr/local/share/dejagnu/config/
cp microblaze-xilinx-gdb.exp /usr/local/share/dejagn/baseboards/
vi microblaze-xilinx-gdb.exp
  s/mc_gcc/microblaze\-gchen\-linux\-gcc/g
  
  gcc operation:
  
../gcc/configure --target=microblaze-gchen-linux --disable-nls 
--enable-languages=c --disable-threads --disable-shared \
  --without-headers --disable-libssp --disable-libquadmath 
--disable-libgomp --disable-libatomic
make
make -k check-gcc 
RUNTESTFLAGS=--target_board=microblaze-xilinx-gdb/-mno-xl-soft-mul/-mxl-barrel-shift/-mcpu=v6.00.a
  
  gcc result:
  
 === gcc Summary ===
  
# of expected passes  48408
# of unexpected failures  17253
# of unexpected successes 1
# of expected failures97
# of unresolved testcases 16570
# of unsupported tests1854
/upstream/build-gcc/gcc/xgcc  version 5.0.0 20140920 (experimental) (GCC) 

make[2]: Leaving directory `/upstream/build-gcc/gcc'
make[1]: Leaving directory `/upstream/build-gcc/gcc'
[root@localhost build-gcc]# echo $?
0


Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-20 Thread Michael Eager

On 09/20/14 08:52, Chen Gang wrote:


Thank you very much for your attachments, it is very useful to me!

I tried testsuite for microblaze cross target on x86_64 host, it says
OK (echo $? == 0), but I am not quite sure about it (I still doubt
that my configuration is incorrect), please help check, thanks.


Welcome to the joys of DejaGNU.  Configuration can be confusing.
As you can see, the return code is not useful.


   dejagnu configuration:

 cp xmd.exp /usr/local/share/dejagnu/config/
 cp microblaze-xilinx-gdb.exp /usr/local/share/dejagn/baseboards/
 vi microblaze-xilinx-gdb.exp
   s/mc_gcc/microblaze\-gchen\-linux\-gcc/g

   gcc operation:

 ../gcc/configure --target=microblaze-gchen-linux --disable-nls 
--enable-languages=c --disable-threads --disable-shared \
   --without-headers --disable-libssp --disable-libquadmath 
--disable-libgomp --disable-libatomic
 make
 make -k check-gcc 
RUNTESTFLAGS=--target_board=microblaze-xilinx-gdb/-mno-xl-soft-mul/-mxl-barrel-shift/-mcpu=v6.00.a


Check whether these compiler options are being passed to mb-gcc.  There is a
line in my microblaze-xilinx-gdb.exp which sets CFLAGS:
  set_board_info cflags  -mcpu=v4.00.b -mno-xl-soft-mul -mxl-barrel-shift
This is likely overriding any options passed to runtest.

Make sure that the options match the features of your target board.  You might
not need any options for your initial tests.

Make sure that the correct flags are being passed to the linker.

Add -v or -v -v to RUNTESTFLAGS so that the gcc.log file gives useful info.

You might want to limit the number of tests run until you get problems worked 
out:
  make check-gcc RUNTESTFLAGS=execute.exp -v -v 
--target_board=microblaze-xilinx-gdb
This will run only the gcc.c-torture/execute/execute.exp tests.


   gcc result:

  === gcc Summary ===

 # of expected passes  48408
 # of unexpected failures  17253
 # of unexpected successes 1
 # of expected failures97
 # of unresolved testcases 16570
 # of unsupported tests1854
 /upstream/build-gcc/gcc/xgcc  version 5.0.0 20140920 (experimental) (GCC)


Look at gcc.sum and gcc.log to find out what is causing the large number of
unexpected failures.  A large number of unresolved test cases often means that
the compiler returned an error.

--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-20 Thread Chen Gang

Thank you very much for your quickly response, I shall continue try.

Thanks.

On 09/21/2014 12:31 AM, Michael Eager wrote:
 On 09/20/14 08:52, Chen Gang wrote:
 
 Thank you very much for your attachments, it is very useful to me!

 I tried testsuite for microblaze cross target on x86_64 host, it says
 OK (echo $? == 0), but I am not quite sure about it (I still doubt
 that my configuration is incorrect), please help check, thanks.
 
 Welcome to the joys of DejaGNU.  Configuration can be confusing.
 As you can see, the return code is not useful.
 
dejagnu configuration:

  cp xmd.exp /usr/local/share/dejagnu/config/
  cp microblaze-xilinx-gdb.exp /usr/local/share/dejagn/baseboards/
  vi microblaze-xilinx-gdb.exp
s/mc_gcc/microblaze\-gchen\-linux\-gcc/g

gcc operation:

  ../gcc/configure --target=microblaze-gchen-linux --disable-nls 
 --enable-languages=c --disable-threads --disable-shared \
--without-headers --disable-libssp --disable-libquadmath 
 --disable-libgomp --disable-libatomic
  make
  make -k check-gcc 
 RUNTESTFLAGS=--target_board=microblaze-xilinx-gdb/-mno-xl-soft-mul/-mxl-barrel-shift/-mcpu=v6.00.a
 
 Check whether these compiler options are being passed to mb-gcc.  There is a
 line in my microblaze-xilinx-gdb.exp which sets CFLAGS:
   set_board_info cflags  -mcpu=v4.00.b -mno-xl-soft-mul -mxl-barrel-shift
 This is likely overriding any options passed to runtest.
 
 Make sure that the options match the features of your target board.  You might
 not need any options for your initial tests.
 
 Make sure that the correct flags are being passed to the linker.
 
 Add -v or -v -v to RUNTESTFLAGS so that the gcc.log file gives useful 
 info.
 
 You might want to limit the number of tests run until you get problems worked 
 out:
   make check-gcc RUNTESTFLAGS=execute.exp -v -v 
 --target_board=microblaze-xilinx-gdb
 This will run only the gcc.c-torture/execute/execute.exp tests.
 
gcc result:

   === gcc Summary ===

  # of expected passes  48408
  # of unexpected failures  17253
  # of unexpected successes 1
  # of expected failures97
  # of unresolved testcases 16570
  # of unsupported tests1854
  /upstream/build-gcc/gcc/xgcc  version 5.0.0 20140920 (experimental) 
 (GCC)
 
 Look at gcc.sum and gcc.log to find out what is causing the large number of
 unexpected failures.  A large number of unresolved test cases often means that
 the compiler returned an error.
 


-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-16 Thread Michael Eager

On 09/15/14 15:53, Chen Gang wrote:

On 09/15/2014 11:30 PM, Michael Eager wrote:



Configuring DejaGNU for cross-target testing requires creating a configuration
file describing the target board.



OK, thank you very much. And could you share your configuration file,
which I can reference to?


See attached.

--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077
# Xilinx remote for MicroBlaze using XMD

#load_generic_config monitor
load_generic_config xmd

# Identify multilib flags using libgloss
process_multilib_options 

# The default compiler for this target.
set_board_info compiler  mb-gcc

# We will be using the standard GDB remote protocol
set_board_info gdb_protocol remote

# Name of the computer whose socket will be used, if required.
#set_board_info sockethost gdb
set_board_info sockethost localhost

# Port ID to use for socket connection
set_board_info gdb,socketport 1234

# Port for target
#set_board_info netport gdb:1234
set_board_info netport localhost:1234

# Use techniques appropriate to a stub (don't do run command)
set_board_info use_gdb_stub 1

# This gdbserver can only run a process once per session.
set_board_info gdb,do_reload_on_run 1

# There's no support for argument-passing (yet).
set_board_info noargs 1

# Can't do input (or output) in the current gdbserver.
set_board_info gdb,noinferiorio 1

# Can't do singnals
set_board_info gdb,nosignals 1

# Can't do hardware watchpoints, in general
set_board_info gdb,no_hardware_watchpoints 1

#set_board_info cflags  [newlib_include_flags] [libgloss_include_flags]

set_board_info cflags  -mcpu=v4.00.b -mno-xl-soft-mul -mxl-barrel-shift
set_board_info addl_link_flags -L /home/eager/Xilinx/dg/microblaze_0/lib 
-Wl,-defsym -Wl,_HEAP_SIZE=0x100 -Wl,-defsym -Wl,_STACK_SIZE=0x8
set_board_info ldscript -T/home/eager/Xilinx/dg/microblaze_0/LinkScr.ld
set_board_info ldflags  [libgloss_link_flags] [newlib_link_flags] [board_info 
$board addl_link_flags]
#  Use remote protocol to XMD server

load_config monitor.exp

proc set_host_info { entry value } {
global target_info board_info
verbose set_host_info $entry $value 3

set machine host
if [info exists target_info($machine,name)] {
set machine $target_info($machine,name)
}
set board_info($machine,$entry) $value
}

proc gdb_target_exec { } {
 send_gdb cont
#gdb_test target exec No executable file now.  .*Kill it.*y or n.* 
y
}

proc remote_reboot { host } {
}



Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-15 Thread Michael Eager

On 09/14/14 21:19, Chen Gang wrote:


On 9/15/14 11:03, Michael Eager wrote:

On 09/14/14 00:51, Chen Gang wrote:

Hello maintainers:

I also find some warnings during compiling microblaze, I also shall try
to fix them, but excuse me, I am not quite familiar the testsuite for
microblaze, could you provide any related information for it?


Hi Chen --

This is the gcc DejaGNU test suite.  You can find info about DejaGNU
at http://www.gnu.org/software/dejagnu.  There is also info about
testing GCC here: https://gcc.gnu.org/wiki/Testing_GCC



OK, thanks. I finished about x86_64 testsuite, and also tried microblaze
testsuite under x86_64 machine, but failed. Do I need any additional
information for microblaze testsuite?


I run tests using these options:
-mno-xl-soft-mul -mxl-barrel-shift -mcpu=v6.00.a

Configuring DejaGNU for cross-target testing requires creating a configuration
file describing the target board.



Rather than the standard make check-gcc described on the wiki
page and elsewhere, I use a script which sets some configuration
options and executes runtest directly.  This uses a MicroBlaze processor
simulator called vpexec which was included with an older version of
Xilinx's EDK.  Xilinx no longer supports vpexec.

You can use a hardware target board to test microblaze-gcc,
or a different simulator such as QEMU.



OK, thanks, I shall try Qemu (it is the additional chance for me to
familiar with Qemu).

And do you mean I need try testsuite under the related microblaze host (
e.g. Qemu microblaze simulator)?


After finish environments construction, I shall also try to test a patch
for ((void (*)(void)) 0)() fixing.


Thanks.




--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-15 Thread Chen Gang
On 09/15/2014 11:30 PM, Michael Eager wrote:
 On 09/14/14 21:19, Chen Gang wrote:

 On 9/15/14 11:03, Michael Eager wrote:
 On 09/14/14 00:51, Chen Gang wrote:
 Hello maintainers:

 I also find some warnings during compiling microblaze, I also shall try
 to fix them, but excuse me, I am not quite familiar the testsuite for
 microblaze, could you provide any related information for it?

 Hi Chen --

 This is the gcc DejaGNU test suite.  You can find info about DejaGNU
 at http://www.gnu.org/software/dejagnu.  There is also info about
 testing GCC here: https://gcc.gnu.org/wiki/Testing_GCC


 OK, thanks. I finished about x86_64 testsuite, and also tried microblaze
 testsuite under x86_64 machine, but failed. Do I need any additional
 information for microblaze testsuite?
 
 I run tests using these options:
 -mno-xl-soft-mul -mxl-barrel-shift -mcpu=v6.00.a
 

OK, thank you for your information.

 Configuring DejaGNU for cross-target testing requires creating a configuration
 file describing the target board.
 

OK, thank you very much. And could you share your configuration file,
which I can reference to?


Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-14 Thread Chen Gang
Hello maintainers:

I also find some warnings during compiling microblaze, I also shall try
to fix them, but excuse me, I am not quite familiar the testsuite for
microblaze, could you provide any related information for it?

Thanks.

On 09/08/2014 11:28 PM, Chen Gang wrote:
 On 09/08/2014 10:24 AM, Chen Gang wrote:
 On 09/07/2014 11:17 PM, Chen Gang wrote:
 On 8/13/14 23:10, Michael Eager wrote:
 On 07/06/14 03:26, Chen Gang wrote:

* microblaze/mocroblaze.md (call_value_intern): Use 'SI' instead of
'VOID' for operand 1, just like 'call_internal1' has done.

 The related warning:

../../gcc/gcc/config/microblaze/microblaze.md:2172: warning: operand 
 1 missing mode?


 Signed-off-by: Chen Gang gang.chen.5...@gmail.com
 ---
   gcc/config/microblaze/microblaze.md | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/gcc/config/microblaze/microblaze.md 
 b/gcc/config/microblaze/microblaze.md
 index 2bd5d72..9580221 100644
 --- a/gcc/config/microblaze/microblaze.md
 +++ b/gcc/config/microblaze/microblaze.md
 @@ -2171,7 +2171,7 @@

   (define_insn call_value_intern
 [(set (match_operand:VOID 0 register_operand =d)
 -(call (mem (match_operand:VOID 1 call_insn_operand ri))
 +(call (mem (match_operand:SI 1 call_insn_operand ri))
 (match_operand:SI 2  i)))
  (clobber (match_operand:SI 3 register_operand =d))]
 

 This patch causes a test suite regression:

 Executing on host: mb-gcc  -fno-diagnostics-show-caret 
 -fdiagnostics-color=never-O0  -w -c -mno-xl-soft-mul 
 -mxl-barrel-shift -mcpu=v6.00.a   -o calls.o 
 testsuite/gcc.c-torture/compile/calls.c(timeout = 60)
 pid is 24832 -24832
 testsuite/gcc.c-torture/compile/calls.c: In function 'f1':
 testsuite/gcc.c-torture/compile/calls.c:6:1: error: unrecognizable insn:
 (call_insn 5 2 8 2 (parallel [
 (set (reg:SI 3 r3)
 (call (mem:SI (const_int 0 [0]) [0 MEM[(void * (*T29e) 
 (void))0B] S4 A32])
 (const_int 24 [0x18])))
 (clobber (reg:SI 15 r15))
 ]) testsuite/gcc.c-torture/compile/calls.c:5 -1
  (nil)
 (nil))
 testsuite/gcc.c-torture/compile/calls.c:6:1: internal compiler error: in 
 extract_insn, at recog.c:2204
 0x983018 _fatal_insn(char const*, rtx_def const*, char const*, int, char 
 const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:109
 0x983041 _fatal_insn_not_found(rtx_def const*, char const*, int, char 
 const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:117
 0x9539cd extract_insn(rtx_def*)
 /store/Xilinx/repo/fsf/gcc/gcc/recog.c:2204
 0x7a5b59 instantiate_virtual_regs_in_insn
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1561
 0x7aaa78 instantiate_virtual_regs
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1932


 
 At present, I guess the original code is correct, need not additional
 fix: When call call_insn_operand() in gencog(), related 'rtx' mode is
 VOIDmode (which need VOID, not SI).
 
 For the compiler's warning: operand 1 is VOIDmode, after give some
 related test, operand 1 is VOIDmode is all OK, the related tests are
 below:
 
  - For almost same definitions, they are OK:
 
- int *(*T)(void);
 
- char *(*T)(int);
 
...
 
  - For incorrect assignments, report related correct warning/error:
 
- char a = ((long long *(*)(short)) 0) (1);
 
- ((long long *(*)(short)) 0) ();
 
...
 
 If what I guess is correct, the below issue can be fixed in the same
 way, please help check.
 
   typedef void  (*T)(void);
   f1 ()
   {
 ((T) 0)();
   }


 Oh, sorry, neither original nor the new one (with this patch) can
 recognize the code above.

 
 Need use VOID instead of SI, or when real VOIDmode comes, it does not
 match SImode, so cause issue.
 
 The related test code ('void' will cause CALL instead of SET):
 
   typedef void (*T)(void);
   f1 ()
   {
 ((T) 0)();
   }
 
 The related error:
 
   [root@localhost gcc]# ./cc1 /tmp/calls.c -o /tmp/1.s
f1
   Analyzing compilation unit
   Performing interprocedural optimizations
*free_lang_data visibility early_local_cleanups 
 free-inline-summary whole-program inlineAssembling functions:
f1
   /tmp/calls.c: In function 'f1':
   /tmp/calls.c:5:1: error: unrecognizable insn:
}
^
   (call_insn 5 2 8 2 (parallel [
   (call (mem:SI (const_int 0 [0]) [0 MEM[(void (*T29c) 
 (void))0B] S4 A32])
   (const_int 24 [0x18]))
   (clobber (reg:SI 15 r15))
   ]) /tmp/calls.c:4 -1
(nil)
   (nil))
   /tmp/calls.c:5:1: internal compiler error: in extract_insn, at recog.c:2204
   0xb0e71b _fatal_insn(char const*, rtx_def const*, char const*, int, char 
 const*)
   ../../gcc/gcc/rtl-error.c:109
   0xb0e75c _fatal_insn_not_found(rtx_def const*, char const*, int, char 
 const*)
   ../../gcc/gcc/rtl-error.c:117
   0xac552b extract_insn(rtx_def*)
   ../../gcc/gcc/recog.c:2204
   0x8b919e instantiate_virtual_regs_in_insn
   

Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-14 Thread Michael Eager

On 09/14/14 00:51, Chen Gang wrote:

Hello maintainers:

I also find some warnings during compiling microblaze, I also shall try
to fix them, but excuse me, I am not quite familiar the testsuite for
microblaze, could you provide any related information for it?


Hi Chen --

This is the gcc DejaGNU test suite.  You can find info about DejaGNU
at http://www.gnu.org/software/dejagnu.  There is also info about
testing GCC here: https://gcc.gnu.org/wiki/Testing_GCC

Rather than the standard make check-gcc described on the wiki
page and elsewhere, I use a script which sets some configuration
options and executes runtest directly.  This uses a MicroBlaze processor
simulator called vpexec which was included with an older version of
Xilinx's EDK.  Xilinx no longer supports vpexec.

You can use a hardware target board to test microblaze-gcc,
or a different simulator such as QEMU.


--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-14 Thread Chen Gang

On 9/15/14 11:03, Michael Eager wrote:
 On 09/14/14 00:51, Chen Gang wrote:
 Hello maintainers:

 I also find some warnings during compiling microblaze, I also shall try
 to fix them, but excuse me, I am not quite familiar the testsuite for
 microblaze, could you provide any related information for it?
 
 Hi Chen --
 
 This is the gcc DejaGNU test suite.  You can find info about DejaGNU
 at http://www.gnu.org/software/dejagnu.  There is also info about
 testing GCC here: https://gcc.gnu.org/wiki/Testing_GCC
 

OK, thanks. I finished about x86_64 testsuite, and also tried microblaze
testsuite under x86_64 machine, but failed. Do I need any additional
information for microblaze testsuite?


 Rather than the standard make check-gcc described on the wiki
 page and elsewhere, I use a script which sets some configuration
 options and executes runtest directly.  This uses a MicroBlaze processor
 simulator called vpexec which was included with an older version of
 Xilinx's EDK.  Xilinx no longer supports vpexec.
 
 You can use a hardware target board to test microblaze-gcc,
 or a different simulator such as QEMU.
 

OK, thanks, I shall try Qemu (it is the additional chance for me to
familiar with Qemu).

And do you mean I need try testsuite under the related microblaze host (
e.g. Qemu microblaze simulator)?


After finish environments construction, I shall also try to test a patch
for ((void (*)(void)) 0)() fixing.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-08 Thread Chen Gang
On 09/08/2014 10:24 AM, Chen Gang wrote:
 On 09/07/2014 11:17 PM, Chen Gang wrote:
 On 8/13/14 23:10, Michael Eager wrote:
 On 07/06/14 03:26, Chen Gang wrote:

* microblaze/mocroblaze.md (call_value_intern): Use 'SI' instead of
'VOID' for operand 1, just like 'call_internal1' has done.

 The related warning:

../../gcc/gcc/config/microblaze/microblaze.md:2172: warning: operand 1 
 missing mode?


 Signed-off-by: Chen Gang gang.chen.5...@gmail.com
 ---
   gcc/config/microblaze/microblaze.md | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/gcc/config/microblaze/microblaze.md 
 b/gcc/config/microblaze/microblaze.md
 index 2bd5d72..9580221 100644
 --- a/gcc/config/microblaze/microblaze.md
 +++ b/gcc/config/microblaze/microblaze.md
 @@ -2171,7 +2171,7 @@

   (define_insn call_value_intern
 [(set (match_operand:VOID 0 register_operand =d)
 -(call (mem (match_operand:VOID 1 call_insn_operand ri))
 +(call (mem (match_operand:SI 1 call_insn_operand ri))
 (match_operand:SI 2  i)))
  (clobber (match_operand:SI 3 register_operand =d))]
 

 This patch causes a test suite regression:

 Executing on host: mb-gcc  -fno-diagnostics-show-caret 
 -fdiagnostics-color=never-O0  -w -c -mno-xl-soft-mul -mxl-barrel-shift 
 -mcpu=v6.00.a   -o calls.o testsuite/gcc.c-torture/compile/calls.c
 (timeout = 60)
 pid is 24832 -24832
 testsuite/gcc.c-torture/compile/calls.c: In function 'f1':
 testsuite/gcc.c-torture/compile/calls.c:6:1: error: unrecognizable insn:
 (call_insn 5 2 8 2 (parallel [
 (set (reg:SI 3 r3)
 (call (mem:SI (const_int 0 [0]) [0 MEM[(void * (*T29e) 
 (void))0B] S4 A32])
 (const_int 24 [0x18])))
 (clobber (reg:SI 15 r15))
 ]) testsuite/gcc.c-torture/compile/calls.c:5 -1
  (nil)
 (nil))
 testsuite/gcc.c-torture/compile/calls.c:6:1: internal compiler error: in 
 extract_insn, at recog.c:2204
 0x983018 _fatal_insn(char const*, rtx_def const*, char const*, int, char 
 const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:109
 0x983041 _fatal_insn_not_found(rtx_def const*, char const*, int, char 
 const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:117
 0x9539cd extract_insn(rtx_def*)
 /store/Xilinx/repo/fsf/gcc/gcc/recog.c:2204
 0x7a5b59 instantiate_virtual_regs_in_insn
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1561
 0x7aaa78 instantiate_virtual_regs
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1932



At present, I guess the original code is correct, need not additional
fix: When call call_insn_operand() in gencog(), related 'rtx' mode is
VOIDmode (which need VOID, not SI).

For the compiler's warning: operand 1 is VOIDmode, after give some
related test, operand 1 is VOIDmode is all OK, the related tests are
below:

 - For almost same definitions, they are OK:

   - int *(*T)(void);

   - char *(*T)(int);

   ...

 - For incorrect assignments, report related correct warning/error:

   - char a = ((long long *(*)(short)) 0) (1);

   - ((long long *(*)(short)) 0) ();

   ...

If what I guess is correct, the below issue can be fixed in the same
way, please help check.

   typedef void  (*T)(void);
   f1 ()
   {
 ((T) 0)();
   }

 
 Oh, sorry, neither original nor the new one (with this patch) can
 recognize the code above.
 

Need use VOID instead of SI, or when real VOIDmode comes, it does not
match SImode, so cause issue.

The related test code ('void' will cause CALL instead of SET):

  typedef void (*T)(void);
  f1 ()
  {
((T) 0)();
  }

The related error:

  [root@localhost gcc]# ./cc1 /tmp/calls.c -o /tmp/1.s
   f1
  Analyzing compilation unit
  Performing interprocedural optimizations
   *free_lang_data visibility early_local_cleanups free-inline-summary 
whole-program inlineAssembling functions:
   f1
  /tmp/calls.c: In function 'f1':
  /tmp/calls.c:5:1: error: unrecognizable insn:
   }
   ^
  (call_insn 5 2 8 2 (parallel [
  (call (mem:SI (const_int 0 [0]) [0 MEM[(void (*T29c) (void))0B] 
S4 A32])
  (const_int 24 [0x18]))
  (clobber (reg:SI 15 r15))
  ]) /tmp/calls.c:4 -1
   (nil)
  (nil))
  /tmp/calls.c:5:1: internal compiler error: in extract_insn, at recog.c:2204
  0xb0e71b _fatal_insn(char const*, rtx_def const*, char const*, int, char 
const*)
../../gcc/gcc/rtl-error.c:109
  0xb0e75c _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../gcc/gcc/rtl-error.c:117
  0xac552b extract_insn(rtx_def*)
../../gcc/gcc/recog.c:2204
  0x8b919e instantiate_virtual_regs_in_insn
../../gcc/gcc/function.c:1614
  0x8ba347 instantiate_virtual_regs
../../gcc/gcc/function.c:1934
  0x8ba452 execute
../../gcc/gcc/function.c:1983
  Please submit a full bug report,
  with preprocessed source if appropriate.
  Please include the complete backtrace with any bug report.
  See http://gcc.gnu.org/bugs.html for instructions.

diff 

Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-07 Thread Chen Gang
 On 8/13/14 23:10, Michael Eager wrote:
 On 07/06/14 03:26, Chen Gang wrote:

* microblaze/mocroblaze.md (call_value_intern): Use 'SI' instead of
'VOID' for operand 1, just like 'call_internal1' has done.

 The related warning:

../../gcc/gcc/config/microblaze/microblaze.md:2172: warning: operand 1 
 missing mode?


 Signed-off-by: Chen Gang gang.chen.5...@gmail.com
 ---
   gcc/config/microblaze/microblaze.md | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/gcc/config/microblaze/microblaze.md 
 b/gcc/config/microblaze/microblaze.md
 index 2bd5d72..9580221 100644
 --- a/gcc/config/microblaze/microblaze.md
 +++ b/gcc/config/microblaze/microblaze.md
 @@ -2171,7 +2171,7 @@

   (define_insn call_value_intern
 [(set (match_operand:VOID 0 register_operand =d)
 -(call (mem (match_operand:VOID 1 call_insn_operand ri))
 +(call (mem (match_operand:SI 1 call_insn_operand ri))
 (match_operand:SI 2  i)))
  (clobber (match_operand:SI 3 register_operand =d))]
 

 This patch causes a test suite regression:

 Executing on host: mb-gcc  -fno-diagnostics-show-caret 
 -fdiagnostics-color=never-O0  -w -c -mno-xl-soft-mul -mxl-barrel-shift 
 -mcpu=v6.00.a   -o calls.o testsuite/gcc.c-torture/compile/calls.c
 (timeout = 60)
 pid is 24832 -24832
 testsuite/gcc.c-torture/compile/calls.c: In function 'f1':
 testsuite/gcc.c-torture/compile/calls.c:6:1: error: unrecognizable insn:
 (call_insn 5 2 8 2 (parallel [
 (set (reg:SI 3 r3)
 (call (mem:SI (const_int 0 [0]) [0 MEM[(void * (*T29e) 
 (void))0B] S4 A32])
 (const_int 24 [0x18])))
 (clobber (reg:SI 15 r15))
 ]) testsuite/gcc.c-torture/compile/calls.c:5 -1
  (nil)
 (nil))
 testsuite/gcc.c-torture/compile/calls.c:6:1: internal compiler error: in 
 extract_insn, at recog.c:2204
 0x983018 _fatal_insn(char const*, rtx_def const*, char const*, int, char 
 const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:109
 0x983041 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:117
 0x9539cd extract_insn(rtx_def*)
 /store/Xilinx/repo/fsf/gcc/gcc/recog.c:2204
 0x7a5b59 instantiate_virtual_regs_in_insn
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1561
 0x7aaa78 instantiate_virtual_regs
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1932


It is really this patch to cause this issue. After add this patch, it
will be fail for compiling the below C code:

  typedef void  (*T)(void);
  f1 ()
  {
((T) 0)();
  }

And I guess, the original compiling warning is still useful for us: for
the almost same code, the original gcc (no this patch) also report the
same error:

  f1 ()
  {
((void (*)(void))0)();
  }

The related command is ./cc1 call.c -o /tmp/test.s ('call.c' has the
contents above).


And I shall continue analysing it (I shall try to finish within this
month). And also welcome any ideas, suggestions or completions.

Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-09-07 Thread Chen Gang
On 09/07/2014 11:17 PM, Chen Gang wrote:
 On 8/13/14 23:10, Michael Eager wrote:
 On 07/06/14 03:26, Chen Gang wrote:

* microblaze/mocroblaze.md (call_value_intern): Use 'SI' instead of
'VOID' for operand 1, just like 'call_internal1' has done.

 The related warning:

../../gcc/gcc/config/microblaze/microblaze.md:2172: warning: operand 1 
 missing mode?


 Signed-off-by: Chen Gang gang.chen.5...@gmail.com
 ---
   gcc/config/microblaze/microblaze.md | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/gcc/config/microblaze/microblaze.md 
 b/gcc/config/microblaze/microblaze.md
 index 2bd5d72..9580221 100644
 --- a/gcc/config/microblaze/microblaze.md
 +++ b/gcc/config/microblaze/microblaze.md
 @@ -2171,7 +2171,7 @@

   (define_insn call_value_intern
 [(set (match_operand:VOID 0 register_operand =d)
 -(call (mem (match_operand:VOID 1 call_insn_operand ri))
 +(call (mem (match_operand:SI 1 call_insn_operand ri))
 (match_operand:SI 2  i)))
  (clobber (match_operand:SI 3 register_operand =d))]
 

 This patch causes a test suite regression:

 Executing on host: mb-gcc  -fno-diagnostics-show-caret 
 -fdiagnostics-color=never-O0  -w -c -mno-xl-soft-mul -mxl-barrel-shift 
 -mcpu=v6.00.a   -o calls.o testsuite/gcc.c-torture/compile/calls.c
 (timeout = 60)
 pid is 24832 -24832
 testsuite/gcc.c-torture/compile/calls.c: In function 'f1':
 testsuite/gcc.c-torture/compile/calls.c:6:1: error: unrecognizable insn:
 (call_insn 5 2 8 2 (parallel [
 (set (reg:SI 3 r3)
 (call (mem:SI (const_int 0 [0]) [0 MEM[(void * (*T29e) 
 (void))0B] S4 A32])
 (const_int 24 [0x18])))
 (clobber (reg:SI 15 r15))
 ]) testsuite/gcc.c-torture/compile/calls.c:5 -1
  (nil)
 (nil))
 testsuite/gcc.c-torture/compile/calls.c:6:1: internal compiler error: in 
 extract_insn, at recog.c:2204
 0x983018 _fatal_insn(char const*, rtx_def const*, char const*, int, char 
 const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:109
 0x983041 _fatal_insn_not_found(rtx_def const*, char const*, int, char 
 const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:117
 0x9539cd extract_insn(rtx_def*)
 /store/Xilinx/repo/fsf/gcc/gcc/recog.c:2204
 0x7a5b59 instantiate_virtual_regs_in_insn
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1561
 0x7aaa78 instantiate_virtual_regs
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1932

 
 It is really this patch to cause this issue. After add this patch, it
 will be fail for compiling the below C code:
 
   typedef void  (*T)(void);
   f1 ()
   {
 ((T) 0)();
   }
 

Oh, sorry, neither original nor the new one (with this patch) can
recognize the code above.

 - The original one can recognize void *(*)(void);

 - But can not recognize void (*)(void);

 - Although new one (with this patch) also recognize void *(*)(void);,
   it causes inconsistency within config/microblaze/microblaze.md.

And the original one also can recognize all below contents (only except
void (*)(void), or void (*)(int)):

 - void **(*)(void);

 - int *(*)(void);

 - int (*)(void);

 - int (*)(int);


 And I guess, the original compiling warning is still useful for us: for
 the almost same code, the original gcc (no this patch) also report the
 same error:
 
   f1 ()
   {
 ((void (*)(void))0)();
   }
 
 The related command is ./cc1 call.c -o /tmp/test.s ('call.c' has the
 contents above).
 
 
 And I shall continue analysing it (I shall try to finish within this
 month). And also welcome any ideas, suggestions or completions.
 
 Thanks.
 


-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-08-13 Thread Michael Eager

On 07/06/14 03:26, Chen Gang wrote:


   * microblaze/mocroblaze.md (call_value_intern): Use 'SI' instead of
   'VOID' for operand 1, just like 'call_internal1' has done.

The related warning:

   ../../gcc/gcc/config/microblaze/microblaze.md:2172: warning: operand 1 
missing mode?


Signed-off-by: Chen Gang gang.chen.5...@gmail.com
---
  gcc/config/microblaze/microblaze.md | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/microblaze/microblaze.md 
b/gcc/config/microblaze/microblaze.md
index 2bd5d72..9580221 100644
--- a/gcc/config/microblaze/microblaze.md
+++ b/gcc/config/microblaze/microblaze.md
@@ -2171,7 +2171,7 @@

  (define_insn call_value_intern
[(set (match_operand:VOID 0 register_operand =d)
-(call (mem (match_operand:VOID 1 call_insn_operand ri))
+(call (mem (match_operand:SI 1 call_insn_operand ri))
(match_operand:SI 2  i)))
 (clobber (match_operand:SI 3 register_operand =d))]



This patch causes a test suite regression:

Executing on host: mb-gcc  -fno-diagnostics-show-caret -fdiagnostics-color=never-O0  -w -c 
-mno-xl-soft-mul -mxl-barrel-shift -mcpu=v6.00.a   -o calls.o 
testsuite/gcc.c-torture/compile/calls.c(timeout = 60)

pid is 24832 -24832
testsuite/gcc.c-torture/compile/calls.c: In function 'f1':
testsuite/gcc.c-torture/compile/calls.c:6:1: error: unrecognizable insn:
(call_insn 5 2 8 2 (parallel [
(set (reg:SI 3 r3)
(call (mem:SI (const_int 0 [0]) [0 MEM[(void * (*T29e) 
(void))0B] S4 A32])
(const_int 24 [0x18])))
(clobber (reg:SI 15 r15))
]) testsuite/gcc.c-torture/compile/calls.c:5 -1
 (nil)
(nil))
testsuite/gcc.c-torture/compile/calls.c:6:1: internal compiler error: in 
extract_insn, at recog.c:2204
0x983018 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*)
/store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:109
0x983041 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
/store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:117
0x9539cd extract_insn(rtx_def*)
/store/Xilinx/repo/fsf/gcc/gcc/recog.c:2204
0x7a5b59 instantiate_virtual_regs_in_insn
/store/Xilinx/repo/fsf/gcc/gcc/function.c:1561
0x7aaa78 instantiate_virtual_regs
/store/Xilinx/repo/fsf/gcc/gcc/function.c:1932



--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-08-13 Thread Chen Gang

Firstly, thank you very much for spending your time resource on the
related 2 patches.

On 8/13/14 23:10, Michael Eager wrote:
 On 07/06/14 03:26, Chen Gang wrote:

* microblaze/mocroblaze.md (call_value_intern): Use 'SI' instead of
'VOID' for operand 1, just like 'call_internal1' has done.

 The related warning:

../../gcc/gcc/config/microblaze/microblaze.md:2172: warning: operand 1 
 missing mode?


 Signed-off-by: Chen Gang gang.chen.5...@gmail.com
 ---
   gcc/config/microblaze/microblaze.md | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/gcc/config/microblaze/microblaze.md 
 b/gcc/config/microblaze/microblaze.md
 index 2bd5d72..9580221 100644
 --- a/gcc/config/microblaze/microblaze.md
 +++ b/gcc/config/microblaze/microblaze.md
 @@ -2171,7 +2171,7 @@

   (define_insn call_value_intern
 [(set (match_operand:VOID 0 register_operand =d)
 -(call (mem (match_operand:VOID 1 call_insn_operand ri))
 +(call (mem (match_operand:SI 1 call_insn_operand ri))
 (match_operand:SI 2  i)))
  (clobber (match_operand:SI 3 register_operand =d))]
 
 
 This patch causes a test suite regression:
 
 Executing on host: mb-gcc  -fno-diagnostics-show-caret 
 -fdiagnostics-color=never-O0  -w -c -mno-xl-soft-mul -mxl-barrel-shift 
 -mcpu=v6.00.a   -o calls.o testsuite/gcc.c-torture/compile/calls.c
 (timeout = 60)
 pid is 24832 -24832
 testsuite/gcc.c-torture/compile/calls.c: In function 'f1':
 testsuite/gcc.c-torture/compile/calls.c:6:1: error: unrecognizable insn:
 (call_insn 5 2 8 2 (parallel [
 (set (reg:SI 3 r3)
 (call (mem:SI (const_int 0 [0]) [0 MEM[(void * (*T29e) 
 (void))0B] S4 A32])
 (const_int 24 [0x18])))
 (clobber (reg:SI 15 r15))
 ]) testsuite/gcc.c-torture/compile/calls.c:5 -1
  (nil)
 (nil))
 testsuite/gcc.c-torture/compile/calls.c:6:1: internal compiler error: in 
 extract_insn, at recog.c:2204
 0x983018 _fatal_insn(char const*, rtx_def const*, char const*, int, char 
 const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:109
 0x983041 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:117
 0x9539cd extract_insn(rtx_def*)
 /store/Xilinx/repo/fsf/gcc/gcc/recog.c:2204
 0x7a5b59 instantiate_virtual_regs_in_insn
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1561
 0x7aaa78 instantiate_virtual_regs
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1932


OK, thanks, and I shall analyze it, but excuse me, I have to do other
things this week, so hope I can finish it within next week (2014-08-24).
If this time point is too long to bare, please let me know.


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-08-13 Thread Michael Eager

On 08/13/14 18:35, Chen Gang wrote:


Firstly, thank you very much for spending your time resource on the
related 2 patches.


You're welcome.



On 8/13/14 23:10, Michael Eager wrote:

On 07/06/14 03:26, Chen Gang wrote:


* microblaze/mocroblaze.md (call_value_intern): Use 'SI' instead of
'VOID' for operand 1, just like 'call_internal1' has done.

The related warning:

../../gcc/gcc/config/microblaze/microblaze.md:2172: warning: operand 1 
missing mode?


Signed-off-by: Chen Gang gang.chen.5...@gmail.com
---
   gcc/config/microblaze/microblaze.md | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/microblaze/microblaze.md 
b/gcc/config/microblaze/microblaze.md
index 2bd5d72..9580221 100644
--- a/gcc/config/microblaze/microblaze.md
+++ b/gcc/config/microblaze/microblaze.md
@@ -2171,7 +2171,7 @@

   (define_insn call_value_intern
 [(set (match_operand:VOID 0 register_operand =d)
-(call (mem (match_operand:VOID 1 call_insn_operand ri))
+(call (mem (match_operand:SI 1 call_insn_operand ri))
 (match_operand:SI 2  i)))
  (clobber (match_operand:SI 3 register_operand =d))]
 


This patch causes a test suite regression:

Executing on host: mb-gcc  -fno-diagnostics-show-caret 
-fdiagnostics-color=never-O0  -w -c -mno-xl-soft-mul -mxl-barrel-shift 
-mcpu=v6.00.a   -o calls.o testsuite/gcc.c-torture/compile/calls.c(timeout 
= 60)
pid is 24832 -24832
testsuite/gcc.c-torture/compile/calls.c: In function 'f1':
testsuite/gcc.c-torture/compile/calls.c:6:1: error: unrecognizable insn:
(call_insn 5 2 8 2 (parallel [
 (set (reg:SI 3 r3)
 (call (mem:SI (const_int 0 [0]) [0 MEM[(void * (*T29e) 
(void))0B] S4 A32])
 (const_int 24 [0x18])))
 (clobber (reg:SI 15 r15))
 ]) testsuite/gcc.c-torture/compile/calls.c:5 -1
  (nil)
 (nil))
testsuite/gcc.c-torture/compile/calls.c:6:1: internal compiler error: in 
extract_insn, at recog.c:2204
0x983018 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:109
0x983041 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
 /store/Xilinx/repo/fsf/gcc/gcc/rtl-error.c:117
0x9539cd extract_insn(rtx_def*)
 /store/Xilinx/repo/fsf/gcc/gcc/recog.c:2204
0x7a5b59 instantiate_virtual_regs_in_insn
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1561
0x7aaa78 instantiate_virtual_regs
 /store/Xilinx/repo/fsf/gcc/gcc/function.c:1932



OK, thanks, and I shall analyze it, but excuse me, I have to do other
things this week, so hope I can finish it within next week (2014-08-24).
If this time point is too long to bare, please let me know.


Take your time and let me know when you have this resolved.


--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


Re: [PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-08-13 Thread Chen Gang
On 8/14/14 10:14, Michael Eager wrote:
 OK, thanks, and I shall analyze it, but excuse me, I have to do other
 things this week, so hope I can finish it within next week (2014-08-24).
 If this time point is too long to bare, please let me know.
 
 Take your time and let me know when you have this resolved.

OK, thanks. I shall try to finish within next week (2014-08-24).


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed


[PATCH] microblaze: microblaze.md: Use 'SI' instead of 'VOID' for operand 1 of 'call_value_intern'

2014-07-06 Thread Chen Gang

  * microblaze/mocroblaze.md (call_value_intern): Use 'SI' instead of
  'VOID' for operand 1, just like 'call_internal1' has done.

The related warning:

  ../../gcc/gcc/config/microblaze/microblaze.md:2172: warning: operand 1 
missing mode?


Signed-off-by: Chen Gang gang.chen.5...@gmail.com
---
 gcc/config/microblaze/microblaze.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/microblaze/microblaze.md 
b/gcc/config/microblaze/microblaze.md
index 2bd5d72..9580221 100644
--- a/gcc/config/microblaze/microblaze.md
+++ b/gcc/config/microblaze/microblaze.md
@@ -2171,7 +2171,7 @@
 
 (define_insn call_value_intern
   [(set (match_operand:VOID 0 register_operand =d)
-(call (mem (match_operand:VOID 1 call_insn_operand ri))
+(call (mem (match_operand:SI 1 call_insn_operand ri))
   (match_operand:SI 2  i)))
(clobber (match_operand:SI 3 register_operand =d))]
   
-- 
1.7.11.7