[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