[Bug target/54106] New: OMAP3: encountered a blocking structure assignment, occurring only on OMAP3 processors

wolfgang.hauser.external at cassidian dot com gcc-bugzilla@gcc.gnu.org
Fri Jul 27 11:51:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54106

             Bug #: 54106
           Summary: OMAP3: encountered a blocking structure assignment,
                    occurring only on OMAP3 processors
    Classification: Unclassified
           Product: gcc
           Version: 4.5.3
            Status: UNCONFIRMED
          Severity: blocker
          Priority: P3
         Component: target
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: wolfgang.hauser.external@cassidian.com


Created attachment 27880
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27880
Example causing the problem and showing the workarround

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 workaround ?
Compiler,eglibc,kernel ??
Some patches ?

Usage of the example program:

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

Compiler Infos:

Using built-in specs.
COLLECT_GCC=arm-angstrom-linux-gnueabi-gcc
Target: arm-angstrom-linux-gnueabi
Configured with:
/angstrom/temp/warrior21_angstrom/work/i686-armv7a-sdk-angstrom-linux-gnueabi/gcc-cross-sdk-4.5-r33.2+svnr170443/gcc-4_5-branch/configure
--build=i686-linux --host=i686-linux --target=arm-angstrom-linux-gnueabi
--prefix=/usr/local/angstrom/arm --exec_prefix=/usr/local/angstrom/arm
--bindir=/usr/local/angstrom/arm/bin --sbindir=/usr/local/angstrom/arm/bin
--libexecdir=/usr/local/angstrom/arm/libexec
--datadir=/usr/local/angstrom/arm/share
--sysconfdir=/usr/local/angstrom/arm/etc
--sharedstatedir=/usr/local/angstrom/arm/share/com
--localstatedir=/usr/local/angstrom/arm/var
--libdir=/usr/local/angstrom/arm/lib
--includedir=/usr/local/angstrom/arm/include
--oldincludedir=/usr/local/angstrom/arm/include
--infodir=/usr/local/angstrom/arm/share/info
--mandir=/usr/local/angstrom/arm/share/man --with-libtool-sysroot
--disable-largefile --disable-nls --enable-ipv6 --with-gnu-ld --enable-shared
--enable-languages=c,c++,objc --enable-threads=posix --disable-multilib
--enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch
--program-prefix=arm-angstrom-linux-gnueabi- --enable-target-optspace
--enable-lto --enable-libssp --disable-bootstrap --disable-libgomp
--disable-libmudflap
--with-sysroot=/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi
--with-build-time-tools=/angstrom/temp/warrior21_angstrom/sysroots/i686-linux/usr/armv7a/arm-angstrom-linux-gnueabi/bin
--with-build-sysroot=/angstrom/temp/warrior21_angstrom/sysroots/armv7a-angstrom-linux-gnueabi
--disable-libunwind-exceptions
--with-mpfr=/angstrom/temp/warrior21_angstrom/sysroots/i686-linux/usr
--with-system-zlib --enable-__cxa_atexit
Thread model: posix
gcc version 4.5.3 20110223 (prerelease) (GCC) 
COLLECT_GCC_OPTIONS='-march=armv7-a' '-mtune=cortex-a8' '-mfpu=neon'
'-mfloat-abi=softfp' '-mthumb-interwork' '-mno-thumb' '-v' '-c'
 /usr/local/angstrom/arm/libexec/gcc/arm-angstrom-linux-gnueabi/4.5.3/cc1plus
-quiet -v -isysroot /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi
-D_GNU_SOURCE blocking_assignment_test.cpp -quiet -dumpbase
blocking_assignment_test.cpp -march=armv7-a -mtune=cortex-a8 -mfpu=neon
-mfloat-abi=softfp -mthumb-interwork -mno-thumb -auxbase
blocking_assignment_test -version -o /tmp/ccIIYKvS.s
GNU C++ (GCC) version 4.5.3 20110223 (prerelease) (arm-angstrom-linux-gnueabi)
    compiled by GNU C version 4.3.2, GMP version 4.2.4, MPFR version 3.0.0-p7,
MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory
"/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/local/include"
ignoring duplicate directory
"/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include"
  as it is a non-system directory that duplicates a system directory
ignoring duplicate directory
"/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include"
  as it is a non-system directory that duplicates a system directory
#include "..." search starts here:
#include <...> search starts here:
 .

/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/../../../../arm-angstrom-linux-gnueabi/include/c++/4.5.3

/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/../../../../arm-angstrom-linux-gnueabi/include/c++/4.5.3/arm-angstrom-linux-gnueabi

/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/../../../../arm-angstrom-linux-gnueabi/include/c++/4.5.3/backward
 /usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/include
 /usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/include-fixed

/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/../../../../arm-angstrom-linux-gnueabi/include
 /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include
End of search list.
GNU C++ (GCC) version 4.5.3 20110223 (prerelease) (arm-angstrom-linux-gnueabi)
    compiled by GNU C version 4.3.2, GMP version 4.2.4, MPFR version 3.0.0-p7,
MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: c599fab3f4e3208f846bd0001f7e29ba
COLLECT_GCC_OPTIONS='-march=armv7-a' '-mtune=cortex-a8' '-mfpu=neon'
'-mfloat-abi=softfp' '-mthumb-interwork' '-mno-thumb' '-v' '-c'

/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/../../../../arm-angstrom-linux-gnueabi/bin/as
-march=armv7-a -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -meabi=5 -o
blocking_assignment_test.o /tmp/ccIIYKvS.s
COMPILER_PATH=/usr/local/angstrom/arm/libexec/gcc/arm-angstrom-linux-gnueabi/4.5.3/:/usr/local/angstrom/arm/libexec/gcc/arm-angstrom-linux-gnueabi/4.5.3/:/usr/local/angstrom/arm/libexec/gcc/arm-angstrom-linux-gnueabi/:/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/:/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/:/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/../../../../arm-angstrom-linux-gnueabi/bin/
LIBRARY_PATH=/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/:/usr/local/angstrom/arm/lib/gcc/arm-angstrom-linux-gnueabi/4.5.3/../../../../arm-angstrom-linux-gnueabi/lib/:/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/lib/:/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/lib/
COLLECT_GCC_OPTIONS='-march=armv7-a' '-mtune=cortex-a8' '-mfpu=neon'
'-mfloat-abi=softfp' '-mthumb-interwork' '-mno-thumb' '-v' '-c'



More information about the Gcc-bugs mailing list