Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
OhNet Tests failing on ARM6
25-07-2012, 06:47 AM
Post: #1
OhNet Tests failing on ARM6
I have built OhNet for the following platform:
Code:
-bash-3.2# uname -a
Linux h61linux 2.6.31.6-rt19 #4 Thu Apr 19 15:21:12 SGT 2012 armv6l unknown

In order to cross compile I had to comment out Wno-int-to-pointer-cast in the Makefile:
Code:
...
endian ?= LITTLE
cflags_base = -fexceptions -Wall $(version_specific_cflags_third_party) -pipe -D_GNU_SOURCE -D_REENTRANT -DDEFINE_$(endian)_ENDIAN -DDEFINE_TRACE $(debug_specific_cflags) -fvisibility=hidden $(platform_cflags)
cflags_third_party = $(cflags_base) #-Wno-int-to-pointer-cast
#cflags = $(cflags_base) -Werror
...

I figured this was not a problem because it only suppresses the warnings.? That warning does not seem to be supported by the cross compiler.

When I try to run TestDvDeviceC.elf or TestProxyC.elf on the target platform they both crash with a segmentation fault. (Logs attached). After multiple runs I was able to get a backtrace from glibc.

The tests pass on my x86 Linux machine, but not on the ARM platform. I have also attached the output of ldd on the respective platforms. My guess is that the compiler or shared libraries version is not compatible for some reason. The cross compiler is:

Code:
armv6zk-none-linux-gnueabi-gcc (GCC) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I want to try out the Device stack on this platform, but I am reluctant to go much further with OhNet until it's tests pass. Any ideas why they don't?


Attached File(s)
.txt  TestDvDeviceC.txt (Size: 20.01 KB / Downloads: 5)
.txt  TestProxyC.txt (Size: 5.54 KB / Downloads: 4)
.txt  TestDvDeviceC_ldd_x86_and_arm.txt (Size: 741 bytes / Downloads: 3)
Find all posts by this user
25-07-2012, 09:55 AM (This post was last modified: 25-07-2012 09:56 AM by simonc.)
Post: #2
RE: OhNet Tests failing on ARM6
We test every commit on linux-ARM. We run on SheevaPlug which uses a Marvell Kirkwood ARM9 processor. We use a custom distribution based on debian but have often run on vanilla debian and ubuntu.

I believe another forum member, simoncn, has run on a variety of other ARM variants.

Can you let us know more about your environment:
  • which CPU are you targeting?
  • which linux distribution are you running on it?
  • which cross compiler are you using? (Later: just spotted that you've already provider this)
  • what build command did you use?
  • did you make any makefile changes other than commenting -Wno-int-to-pointer-cast?
  • anything else that seems relevant
Find all posts by this user
26-07-2012, 07:19 AM
Post: #3
RE: OhNet Tests failing on ARM6
Can you let us know more about your environment:
    Quote:
  • which CPU are you targeting?
  • Fujitsu MB86H61

    Quote:
  • which linux distribution are you running on it?
  • Code:
    -bash-3.2# uname -a
    Linux h61linux 2.6.31.6-rt19 #4 Thu Apr 19 15:21:12 SGT 2012 armv6l unknown

    Quote:
  • which cross compiler are you using? (Later: just spotted that you've already provider this)
  • Code:
    armv6zk-none-linux-gnueabi-gcc (GCC) 4.3.2
    Copyright (C) 2008 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    Quote:
  • what build command did you use?
  • Code:
    make native_only=yes debug=1

    Quote:
  • did you make any makefile changes other than commenting -Wno-int-to-pointer-cast?
  • No.

    Quote:
  • anything else that seems relevant
  • I ran each test 4 or 5 times. These are the results.
    Quote:-rwxrwxr-x 1 501 501 1980774 Thu Jul 26 06:26:07 2012 TestBuffer.elf PASS
    -rwxrwxr-x 1 501 501 6208547 Thu Jul 26 06:26:07 2012 TestCpDeviceDv.elf PASS
    -rwxrwxr-x 1 501 501 6413040 Thu Jul 26 06:26:07 2012 TestCpDeviceDvC.elf PASS
    -rwxrwxr-x 1 501 501 6359050 Thu Jul 26 06:26:07 2012 TestCpDeviceDvStd.elf PASS
    -rwxrwxr-x 1 501 501 3426034 Thu Jul 26 06:26:07 2012 TestDeviceFinder.elf ?
    -rwxrwxr-x 1 501 501 3443086 Thu Jul 26 06:26:07 2012 TestDeviceList.elf PASS
    -rwxrwxr-x 1 501 501 3336639 Thu Jul 26 06:26:07 2012 TestDeviceListC.elf PASS
    -rwxrwxr-x 1 501 501 3477490 Thu Jul 26 06:26:08 2012 TestDeviceListStd.elf PASS
    -rwxrwxr-x 1 501 501 6567390 Thu Jul 26 06:26:08 2012 TestDvDeviceC.elf FAIL
    -rwxrwxr-x 1 501 501 6642252 Thu Jul 26 06:26:08 2012 TestDvDeviceStd.elf FAIL Assertion failed. OpenHome/Net/Bindings/Cpp/ControlPoint/Tests/TestBasicCp.cpp:52
    Aborted
    -rwxrwxr-x 1 501 501 6484052 Thu Jul 26 06:26:08 2012 TestDvInvocation.elf FAIL
    -rwxrwxr-x 1 501 501 4973685 Thu Jul 26 06:26:09 2012 TestDvLights.elf ?
    -rwxrwxr-x 1 501 501 6490819 Thu Jul 26 06:26:09 2012 TestDvSubscription.elf FAIL *** glibc detected *** ./TestDvSubscription.elf: corrupted double-linked list: 0x001dbd10 ***
    -rwxrwxr-x 1 501 501 4983152 Thu Jul 26 06:26:10 2012 TestDvTestBasic.elf ?
    -rwxrwxr-x 1 501 501 6151171 Thu Jul 26 06:26:08 2012 TestDviDeviceList.elf PASS
    -rwxrwxr-x 1 501 501 4965622 Thu Jul 26 06:26:08 2012 TestDviDiscovery.elf FAIL *** glibc detected *** ./TestDviDiscovery.elf: corrupted double-linked list: 0x00181280 ***
    -rwxrwxr-x 1 501 501 1814689 Thu Jul 26 06:26:10 2012 TestEcho.elf ? Seems to hang there...
    -rwxrwxr-x 1 501 501 1874464 Thu Jul 26 06:26:11 2012 TestFifo.elf PASS
    -rwxrwxr-x 1 501 501 3542415 Thu Jul 26 06:26:12 2012 TestInvocation.elf FAIL Segmentation fault
    -rwxrwxr-x 1 501 501 3597300 Thu Jul 26 06:26:12 2012 TestInvocationStd.elf FAIL Segmentation fault
    -rwxrwxr-x 1 501 501 1933362 Thu Jul 26 06:26:12 2012 TestMulticast.elf ? Seems to hang at "Receiving from multicast endpoint 239.255.255.250:1968"
    -rwxrwxr-x 1 501 501 2023906 Thu Jul 26 06:26:13 2012 TestNetwork.elf PASS
    -rwxrwxr-x 1 501 501 3678820 Thu Jul 26 06:26:13 2012 TestProxyC.elf FAIL Segmentation fault
    -rwxrwxr-x 1 501 501 1842259 Thu Jul 26 06:26:13 2012 TestQueue.elf PASS
    -rwxrwxr-x 1 501 501 8225415 Thu Jul 26 06:26:13 2012 TestShell.elf ? Seems to hang at "Using network adapter 192.168.15.234"
    -rwxrwxr-x 1 501 501 1969475 Thu Jul 26 06:26:13 2012 TestSsdpMListen.elf PASS
    -rwxrwxr-x 1 501 501 3155979 Thu Jul 26 06:26:13 2012 TestSsdpUListen.elf PASS
    -rwxrwxr-x 1 501 501 3533234 Thu Jul 26 06:26:14 2012 TestSubscription.elf PASS
    -rwxrwxr-x 1 501 501 2060709 Thu Jul 26 06:26:14 2012 TestTextUtils.elf PASS
    -rwxrwxr-x 1 501 501 1868023 Thu Jul 26 06:26:14 2012 TestThread.elf PASS
    -rwxrwxr-x 1 501 501 1824078 Thu Jul 26 06:26:14 2012 TestTimer.elf FAIL "FAILURE: OpenHome/Tests/TestTimer.cpp:185 1 of 8 tests failed."

Find all posts by this user
26-07-2012, 07:53 AM
Post: #4
RE: OhNet Tests failing on ARM6
(25-07-2012 09:55 AM)simonc Wrote:  We test every commit on linux-ARM. We run on SheevaPlug which uses a Marvell Kirkwood ARM9 processor. We use a custom distribution based on debian but have often run on vanilla debian and ubuntu.

I believe another forum member, simoncn, has run on a variety of other ARM variants.

So far I've only built and run ohNet on the Marvell Kirkwood and Orion platforms (ARMv5).

In the near future I'll be attempting to do this for the Tegra 3, which is ARM Cortex-A9 (ARMv7).
Find all posts by this user
26-07-2012, 09:32 AM
Post: #5
RE: OhNet Tests failing on ARM6
Thanks for the answers Doug. To help decide whether this is a problem with your toolchain or in ohNet, can you pick another C++ project and try running its tests on your STB? If these tests fail too, it'd point towards a problem with your toolchain. If you find other, moderately complex, tests which pass, that'll point towards an ohNet bug.
Find all posts by this user


Forum Jump: