You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2005/08/04 04:19:35 UTC

[jira] Created: (STDCXX-11) IA64 32-bit atomic operations broken

IA64 32-bit atomic operations broken
------------------------------------

         Key: STDCXX-11
         URL: http://issues.apache.org/jira/browse/STDCXX-11
     Project: STDCXX
        Type: Bug
  Components: Build  
    Versions: 4.1.2    
 Environment: IA64, 32-bit
    Reporter: Martin Sebor
    Priority: Critical
     Fix For: 4.1.3


The atomic operations on IA64 are broken in 32-bit mode:

$ cat t.cpp && nice gmake SRCS=t.cpp
#include <iostream>

int main () { }

aCC -c  -D_RWSTDDEBUG   -mt -D_RWSTD_USE_CONFIG -I/build/sebor/aCC-5.57-15s/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include  -AA  -g +d  +w +W392 +W655 +W684 +W818 +W819 +W849  t.cpp 
aCC t.o -o t -AA +nostl -Wl,+s -L/build/sebor/aCC-5.57-15s/lib   -mt -L/build/sebor/aCC-5.57-15s/lib -lstd15s   -lm  
$ gdb -q t
(gdb) r
Starting program: /build/sebor/aCC-5.57-15s/examples/t 

Program received signal SIGSEGV, Segmentation fault
  si_code: 1 - SEGV_MAPERR - Address not mapped to object.
0x4118da0:1 in __rw_atomic_add32+0x1 ()
(gdb) where
#0  0x4118da0:1 in __rw_atomic_add32+0x1 ()
#1  0x4070880:0 in __rw::__rw_atomic_preincrement (__x=@0x4001588c, 
    No.Identifier=false) at /build/sebor/dev/stdlib/include/rw/_mutex.h:1716
#2  0x4151590:0 in __rw::__rw_locale::_C_manage (plocale=0x0, locname=0x0)
    at /build/sebor/dev/stdlib/src/locale_body.cpp:832
#3  0x40703c0:0 in std::locale::locale (this=0x400106f0)
    at /build/sebor/dev/stdlib/src/locale_core.cpp:60
#4  0x407f290:0 in std::basic_streambuf<char,std::char_traits<char> >::std::basic_streambuf<char,std::char_traits<char> > (this=0x40010670, __mode=__rw_in_out)
    at /build/sebor/dev/stdlib/include/streambuf.cc:50
#5  0x4069cc0:0 in std::basic_filebuf<char,std::char_traits<char> >::std::basic_filebuf<char,std::char_traits<char> > (this=0x40010670, __fd=0, 
    __buf=0x40010bf0 "", __bufsz=512)
    at /build/sebor/dev/stdlib/include/fstream:142
#6  0x4067350:0 in std::ios_base::Init::Init (this=0x40010158)
    at /build/sebor/dev/stdlib/src/iostream.cpp:244
#7  0x4066d20:0 in __rw::__sinit_t_cpp_ ()
    at /build/sebor/dev/stdlib/include/iostream:51
#8  0x20000000797b8df0:0 in EM_mark_BOS+0x50 () from /usr/lib/hpux32/dld.so


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Resolved: (STDCXX-11) IA64 32-bit atomic operations broken

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/STDCXX-11?page=all ]
     
Martin Sebor resolved STDCXX-11:
--------------------------------

    Resolution: Fixed

Test case runs successfully to completion. Closed.

> IA64 32-bit atomic operations broken
> ------------------------------------
>
>          Key: STDCXX-11
>          URL: http://issues.apache.org/jira/browse/STDCXX-11
>      Project: STDCXX
>         Type: Bug
>   Components: Build
>     Versions: 4.1.2
>  Environment: IA64, 32-bit
>     Reporter: Martin Sebor
>     Priority: Critical
>      Fix For: 4.1.3

>
> The atomic operations on IA64 are broken in 32-bit mode:
> $ cat t.cpp && nice gmake SRCS=t.cpp
> #include <iostream>
> int main () { }
> aCC -c  -D_RWSTDDEBUG   -mt -D_RWSTD_USE_CONFIG -I/build/sebor/aCC-5.57-15s/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include  -AA  -g +d  +w +W392 +W655 +W684 +W818 +W819 +W849  t.cpp 
> aCC t.o -o t -AA +nostl -Wl,+s -L/build/sebor/aCC-5.57-15s/lib   -mt -L/build/sebor/aCC-5.57-15s/lib -lstd15s   -lm  
> $ gdb -q t
> (gdb) r
> Starting program: /build/sebor/aCC-5.57-15s/examples/t 
> Program received signal SIGSEGV, Segmentation fault
>   si_code: 1 - SEGV_MAPERR - Address not mapped to object.
> 0x4118da0:1 in __rw_atomic_add32+0x1 ()
> (gdb) where
> #0  0x4118da0:1 in __rw_atomic_add32+0x1 ()
> #1  0x4070880:0 in __rw::__rw_atomic_preincrement (__x=@0x4001588c, 
>     No.Identifier=false) at /build/sebor/dev/stdlib/include/rw/_mutex.h:1716
> #2  0x4151590:0 in __rw::__rw_locale::_C_manage (plocale=0x0, locname=0x0)
>     at /build/sebor/dev/stdlib/src/locale_body.cpp:832
> #3  0x40703c0:0 in std::locale::locale (this=0x400106f0)
>     at /build/sebor/dev/stdlib/src/locale_core.cpp:60
> #4  0x407f290:0 in std::basic_streambuf<char,std::char_traits<char> >::std::basic_streambuf<char,std::char_traits<char> > (this=0x40010670, __mode=__rw_in_out)
>     at /build/sebor/dev/stdlib/include/streambuf.cc:50
> #5  0x4069cc0:0 in std::basic_filebuf<char,std::char_traits<char> >::std::basic_filebuf<char,std::char_traits<char> > (this=0x40010670, __fd=0, 
>     __buf=0x40010bf0 "", __bufsz=512)
>     at /build/sebor/dev/stdlib/include/fstream:142
> #6  0x4067350:0 in std::ios_base::Init::Init (this=0x40010158)
>     at /build/sebor/dev/stdlib/src/iostream.cpp:244
> #7  0x4066d20:0 in __rw::__sinit_t_cpp_ ()
>     at /build/sebor/dev/stdlib/include/iostream:51
> #8  0x20000000797b8df0:0 in EM_mark_BOS+0x50 () from /usr/lib/hpux32/dld.so

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Commented: (STDCXX-11) IA64 32-bit atomic operations broken

Posted by "Nicole Willson (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/STDCXX-11?page=comments#action_12317652 ] 

Nicole Willson commented on STDCXX-11:
--------------------------------------

I was able to fix this problem by creating a 32 bit version of the atomic-ia64.s file.  Before dereferencing the 32 bit pointer I added the line "addp4 ri = 0, ro"  where ri is a register for storing the converted pointer and ro is the register the 32bit pointer is stored in.  Also, I added .psr abi32 to the beginning of the file.

> IA64 32-bit atomic operations broken
> ------------------------------------
>
>          Key: STDCXX-11
>          URL: http://issues.apache.org/jira/browse/STDCXX-11
>      Project: STDCXX
>         Type: Bug
>   Components: Build
>     Versions: 4.1.2
>  Environment: IA64, 32-bit
>     Reporter: Martin Sebor
>     Priority: Critical
>      Fix For: 4.1.3

>
> The atomic operations on IA64 are broken in 32-bit mode:
> $ cat t.cpp && nice gmake SRCS=t.cpp
> #include <iostream>
> int main () { }
> aCC -c  -D_RWSTDDEBUG   -mt -D_RWSTD_USE_CONFIG -I/build/sebor/aCC-5.57-15s/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include  -AA  -g +d  +w +W392 +W655 +W684 +W818 +W819 +W849  t.cpp 
> aCC t.o -o t -AA +nostl -Wl,+s -L/build/sebor/aCC-5.57-15s/lib   -mt -L/build/sebor/aCC-5.57-15s/lib -lstd15s   -lm  
> $ gdb -q t
> (gdb) r
> Starting program: /build/sebor/aCC-5.57-15s/examples/t 
> Program received signal SIGSEGV, Segmentation fault
>   si_code: 1 - SEGV_MAPERR - Address not mapped to object.
> 0x4118da0:1 in __rw_atomic_add32+0x1 ()
> (gdb) where
> #0  0x4118da0:1 in __rw_atomic_add32+0x1 ()
> #1  0x4070880:0 in __rw::__rw_atomic_preincrement (__x=@0x4001588c, 
>     No.Identifier=false) at /build/sebor/dev/stdlib/include/rw/_mutex.h:1716
> #2  0x4151590:0 in __rw::__rw_locale::_C_manage (plocale=0x0, locname=0x0)
>     at /build/sebor/dev/stdlib/src/locale_body.cpp:832
> #3  0x40703c0:0 in std::locale::locale (this=0x400106f0)
>     at /build/sebor/dev/stdlib/src/locale_core.cpp:60
> #4  0x407f290:0 in std::basic_streambuf<char,std::char_traits<char> >::std::basic_streambuf<char,std::char_traits<char> > (this=0x40010670, __mode=__rw_in_out)
>     at /build/sebor/dev/stdlib/include/streambuf.cc:50
> #5  0x4069cc0:0 in std::basic_filebuf<char,std::char_traits<char> >::std::basic_filebuf<char,std::char_traits<char> > (this=0x40010670, __fd=0, 
>     __buf=0x40010bf0 "", __bufsz=512)
>     at /build/sebor/dev/stdlib/include/fstream:142
> #6  0x4067350:0 in std::ios_base::Init::Init (this=0x40010158)
>     at /build/sebor/dev/stdlib/src/iostream.cpp:244
> #7  0x4066d20:0 in __rw::__sinit_t_cpp_ ()
>     at /build/sebor/dev/stdlib/include/iostream:51
> #8  0x20000000797b8df0:0 in EM_mark_BOS+0x50 () from /usr/lib/hpux32/dld.so

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


[jira] Closed: (STDCXX-11) IA64 32-bit atomic operations broken

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/STDCXX-11?page=all ]
     
Martin Sebor closed STDCXX-11:
------------------------------


Fix confirmed.

> IA64 32-bit atomic operations broken
> ------------------------------------
>
>          Key: STDCXX-11
>          URL: http://issues.apache.org/jira/browse/STDCXX-11
>      Project: STDCXX
>         Type: Bug
>   Components: Build
>     Versions: 4.1.2
>  Environment: IA64, 32-bit
>     Reporter: Martin Sebor
>     Priority: Critical
>      Fix For: 4.1.3

>
> The atomic operations on IA64 are broken in 32-bit mode:
> $ cat t.cpp && nice gmake SRCS=t.cpp
> #include <iostream>
> int main () { }
> aCC -c  -D_RWSTDDEBUG   -mt -D_RWSTD_USE_CONFIG -I/build/sebor/aCC-5.57-15s/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include  -AA  -g +d  +w +W392 +W655 +W684 +W818 +W819 +W849  t.cpp 
> aCC t.o -o t -AA +nostl -Wl,+s -L/build/sebor/aCC-5.57-15s/lib   -mt -L/build/sebor/aCC-5.57-15s/lib -lstd15s   -lm  
> $ gdb -q t
> (gdb) r
> Starting program: /build/sebor/aCC-5.57-15s/examples/t 
> Program received signal SIGSEGV, Segmentation fault
>   si_code: 1 - SEGV_MAPERR - Address not mapped to object.
> 0x4118da0:1 in __rw_atomic_add32+0x1 ()
> (gdb) where
> #0  0x4118da0:1 in __rw_atomic_add32+0x1 ()
> #1  0x4070880:0 in __rw::__rw_atomic_preincrement (__x=@0x4001588c, 
>     No.Identifier=false) at /build/sebor/dev/stdlib/include/rw/_mutex.h:1716
> #2  0x4151590:0 in __rw::__rw_locale::_C_manage (plocale=0x0, locname=0x0)
>     at /build/sebor/dev/stdlib/src/locale_body.cpp:832
> #3  0x40703c0:0 in std::locale::locale (this=0x400106f0)
>     at /build/sebor/dev/stdlib/src/locale_core.cpp:60
> #4  0x407f290:0 in std::basic_streambuf<char,std::char_traits<char> >::std::basic_streambuf<char,std::char_traits<char> > (this=0x40010670, __mode=__rw_in_out)
>     at /build/sebor/dev/stdlib/include/streambuf.cc:50
> #5  0x4069cc0:0 in std::basic_filebuf<char,std::char_traits<char> >::std::basic_filebuf<char,std::char_traits<char> > (this=0x40010670, __fd=0, 
>     __buf=0x40010bf0 "", __bufsz=512)
>     at /build/sebor/dev/stdlib/include/fstream:142
> #6  0x4067350:0 in std::ios_base::Init::Init (this=0x40010158)
>     at /build/sebor/dev/stdlib/src/iostream.cpp:244
> #7  0x4066d20:0 in __rw::__sinit_t_cpp_ ()
>     at /build/sebor/dev/stdlib/include/iostream:51
> #8  0x20000000797b8df0:0 in EM_mark_BOS+0x50 () from /usr/lib/hpux32/dld.so

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira