This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP3: encountered a blocking structure assignment, occurring only on OMAP3 processors

Hello,

we use an structure assignment, containing a int64 variable (example: line 79), in our project which runs on any systems using an Intel processor, using the same source on an OMAP3 the assignment blocks/breaks the processing.(see attached little test program).

If we replace this structure assignment by assigning the values of the structure step by step, especially assigning the int64 value using an helping structure containing int32 variables, the processing work fine on the OMAP3 too.

What we encountered:

OMAP3 (oma3evm (mistral) and beagleboard):

kernel 2.6.32 (linux-omap-psp-2.6.32 Openembedded: branch 2011.03-maintenance): processing was blocked

kernel 2.6.37 (android gingerbread+extensions): processing breaks with bus error

INTEL: Debian lenny/squeeze, Opensuse, SLES, Windows -> no problems at all

What we use to build the program:

Openembedded SDK (derived from meta-toolchain.bb) Branch: 2011.03-maintenance Distro: angstrom

Compiler command:

arm-angstrom-linux-gnueabi-g++ -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mthumb-interwork -mno-thumb --sysroot=/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi -g -O2 -Wall -Wno-long-long -Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith -Wswitch -Wunused -Wuninitialized -D__arch__=32 -fPIC -Wsynth -Wreorder -Wnon-virtual-dtor -Woverloaded-virtual -pedantic -c -o blocking_assignment_test.o blocking_assignment_test.cpp

Linker command
arm-angstrom-linux-gnueabi-g++ -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -mthumb-interwork -mno-thumb --sysroot=/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi -o blocking_assignment_test blocking_assignment_test.o

Compiler version (GCC) 4.5.3 20110223 (prerelease)
eglibc Version: libc-2.12.2.so

Our question now:
What cause this problem ? compiler, eglibc, kernel, OMAP3 ?
Is it eventually impossible to fit this structure assignment on an OMAP3 ?

Is there a solution to solve the problem w/o our workarround ? Compiler,eglibc,kernel ??
Some patches ?

Usage of the example program:

Calling w/o an argument -> blocking behavior
Calling argument -w -> working workarround

1057.blocking_assignment_test.cpp