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: unassig...@gcc.gnu.org ReportedBy: wolfgang.hauser.exter...@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'