Boost logo

Boost Users :

From: Nik Yevik (yevik_at_[hidden])
Date: 2005-10-28 17:39:19


Hi,

I have built 64-bit Boost libraries on SUSE Linux ES 9
(SLES 9)for IBM POWER/PowerPC(PPC) using gcc 3.3.3 and
3.4.4. in both 32-bit and 64-bit.
Now, I also want to run Boost 1.33.0 regresion test
with gcc 3.4.4 in 64-bit to see if there are any
problems with 64-bit compilation.
Regression test helper programs and tests themselves
are being built in 64-bit OK. However, the run tests
give the error message:
*****************************************************
unknown location(0): fatal error in "some_test_name":
signal: memory access violation

*** errors detected in test suite "Some Test Suite
Name"; see standard output for details

EXIT STATUS: 200
*****************************************************
I enabled detailed output and here is an example of
what I see during the regression test (Just one
orbitrary chosen test - the rest show pretty much the
same picture).:
******************************************************
MkDir1
../bin/boost/libs/assign/test/multi_index_container.test

    mkdir
"../bin/boost/libs/assign/test/multi_index_container.test"

MkDir1
../bin/boost/libs/assign/test/multi_index_container.test/gcc

    mkdir
"../bin/boost/libs/assign/test/multi_index_container.test/gcc"

MkDir1
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug

    mkdir
"../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug"

MkDir1
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64

    mkdir
"../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64"

MkDir1
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power

    mkdir
"../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power"

gcc-C++-action
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.o

    set -e
    "/home/nik/gcc-3.4.4-ppc-install/bin/g++" -m64
-c -Wall -ftemplate-depth-255 -g -O0 -fno-inline
-mcpu=powerpc64 -m64
-I"../bin/boost/libs/assign/test"
-I"/home/nik/boost_1_33_0" -I
"/home/nik/boost_1_33_0" -o
"../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.o"
 "../libs/assign/test/multi_index_container.cpp"
    "/usr/bin/objcopy" --set-section-flags
.debug_str=contents,debug
"../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.o"

gcc-Link-action
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container

    set -e
   
LD_LIBRARY_PATH=/home/nik/gcc-3.4.4-ppc-install/lib64:/home/nik/gcc-3.4.4-ppc-install/lib:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH
 "/home/nik/gcc-3.4.4-ppc-install/bin/g++" -m64 -g
-m64 -o
"../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container"
 -L"/home/nik/gcc-3.4.4-ppc-install/lib64"
-L"../bin/boost/libs/test/build/libboost_unit_test_framework.a/gcc/debug/address-model-64/architecture-power"
 -L"/home/nik/gcc-3.4.4-ppc-install/lib"
"../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.o"

"../bin/boost/libs/test/build/libboost_unit_test_framework.a/gcc/debug/address-model-64/architecture-power/libboost_unit_test_framework.a"

"../bin/boost/libs/test/build/libboost_unit_test_framework.a/gcc/debug/address-model-64/architecture-power/libboost_unit_test_framework.a"
   -Wl,-rpath-link,.

Chmod1
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container

    chmod 711
"../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container"

execute-test
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.run

   
LD_LIBRARY_PATH=/home/nik/gcc-3.4.4-ppc-install/lib64:/home/nik/gcc-3.4.4-ppc-install/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
PATH=/home/nik/gcc-3.4.4-ppc-install/lib64:$PATH
export PATH
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container
>
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.output
 2>&1
    status=$?
    echo >>
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.output
    echo EXIT STATUS: $status >>
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.output
    if test $status -eq 0 ; then
        cp -f
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.output

../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.run
    fi
    verbose=1
 if test $status -ne 0 ; then
        verbose=0
    fi
    if test $verbose -eq 0 ; then
        echo ====== BEGIN OUTPUT ======
        cat
../bin/boost/libs/assign/test/multi_index_container.test/gcc/debug/address-model-64/architecture-power/multi_index_container.output
        echo ====== END OUTPUT ======
    fi
    exit $status

====== BEGIN OUTPUT ======
Running 1 test case...
unknown location(0): fatal error in
"test_multi_index_container": signal: memory access
violation

*** errors detected in test suite "List Test Suite";
see standard output for details

EXIT STATUS: 200
====== END OUTPUT ======
******************************************************

Indeed, trying to execute the 64-bit executable in gdb
gives something like:
Error accessing memory address 0x53e00001b5a6:
Input/output error.

(gdb) where
#0 0x000053e00000d932 in ?? ()
#1 0x0000000000000000 in ?? ()
Previous frame identical to this frame (corrupt
stack?)

I modified slightly the run-tests.sh script and
gcc-tools.jam to regression test in 64-bit.

RUN_TESTS.SH:
diff run_tests.sh.orig run_tests.sh
18c18
< boost_root="$HOME/CVSROOTs/Boost/boost_regression"

---
> boost_root="/home/nik/boost_1_33_0"
134a135
> export
LD_LIBRARY_PATH="/home/nik/gcc-3.4.4-ppc-install/lib64"
136c137
< "$bjam" -sTOOLS=$toolset -sBUILD=release run
---
> "$bjam" -a -d+2 -sTOOLS=$toolset -sBUILD=release run
"-sBUILD=<architecture>power <address-model>64
<library-path>/home/nik/gcc-3.4.4-ppc-install/lib64"
152a154
> export
LD_LIBRARY_PATH="/home/nik/gcc-3.4.4-ppc-install/lib64"
154c156
< "$bjam" -sTOOLS=$tool --dump-tests test 2>&1 | tee
regress.log
---
> "$bjam" -a -d+2 -sTOOLS=$tool 
"-sBUILD=<architecture>power <address-model>64
<library-path>/home/nik/gcc-3.4.4-ppc-install/lib64"
--dump-tests test 2>&1 | tee regress.log
GCC_TOOLS.JAM - added two lines:
> flags gcc CFLAGS
<architecture>power/<address-model>64 : -m64 ;
> flags gcc LINKFLAGS
<architecture>power/<address-model>64 : -m64 ;
What am I missing here? What am I doing wrong? 
Any help would be greatly appreciated.
	
		
__________________________________ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net