public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++
@ 2013-01-08 17:05 philip.copeland at oracle dot com
  2013-01-08 17:24 ` [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++ paolo.carlini at oracle dot com
                   ` (43 more replies)
  0 siblings, 44 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-08 17:05 UTC (permalink / raw)
  To: gcc-bugs


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

             Bug #: 55909
           Summary: libtool test exposes what I think is some alignment
                    issue in libstd++
    Classification: Unclassified
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: philip.copeland@oracle.com


Created attachment 29107
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29107
Original libtool cpp file

While debugging libtool breakage on sparc64 (64bit Big Endian)

gcc-4.7.2-8.fc18.sparc64
glibc-2.16-28.fc18.sparc64

[mockbuild@localhost 104]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/sparc64-redhat-linux/4.7.2/lto-wrapper
Target: sparc64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
--enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --disable-build-with-cxx
--disable-build-poststage1-with-cxx --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--enable-linker-build-id --with-linker-hash-style=gnu
--enable-languages=c,c++,objc,obj-c++,java,fortran,lto --enable-plugin
--enable-initfini-array --enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--disable-libjava-multilib --with-ppl --with-cloog --with-long-double-128
--with-cpu=ultrasparc --disable-multilib --build=sparc64-redhat-linux
Thread model: posix
gcc version 4.7.2 20121109 (Red Hat 4.7.2-8) (GCC) 

-------------------------------------------------------------------------------

++ at_fn_check_prepare_dynamic 'if /builddir/build/BUILD/libtool-2.4.2/libtool
--mode=execute -dlopen m/module.la "./main" ; then :; else lt_status=0;        
    test "Xsparc64-redhat-linux-gnu" != "Xsparc64-redhat-linux-gnu" && test -x
"./main" && exit 77;         exit ; fi' exceptions.at:385
++ case $1 in
++ at_fn_check_prepare_trace exceptions.at:385
++ printf '%s\n' exceptions.at:385
++ at_check_trace=:
++ at_check_filter=:
++ :
++ :
++ at_status=139
++ at_failed=false
++ :
++ echo stderr:
stderr:
++ cat
/builddir/build/BUILD/libtool-2.4.2/tests/testsuite.dir/at-groups/104/stderr
++ :
++ /builddir/build/BUILD/libtool-2.4.2/libtool --mode=execute -dlopen
m/module.la ./main
exceptions_in_prog
/builddir/build/BUILD/libtool-2.4.2/tests/testsuite.dir/at-groups/104/test-source:
line 565: 61893 Segmentation fault      (core dumped) $LIBTOOL --mode=execute
-dlopen m/module.la "$lt_exe"
++ lt_status=139

------------------------------------------------------------------------------

This eventually boils down to
[mockbuild@localhost 104]$  /builddir/build/BUILD/libtool-2.4.2/libtool
--verbose --mode=execute -dlopen m/module.la ./.libs/lt-main
exceptions_in_prog
Segmentation fault (core dumped)


[mockbuild@localhost 104]$ gdb ./.libs/lt-main
(gdb) set environment LD_LIBRARY_PATH=m
(gdb) run
exceptions_in_prog

Program received signal SIGSEGV, Segmentation fault.
0xfffff8010061a558 in __frame_dummy_init_array_entry () from
/lib64/libstdc++.so.6
(gdb) where
#0  0xfffff8010061a558 in __frame_dummy_init_array_entry () from
/lib64/libstdc++.so.6
#1  0xfffff80100490988 in __cxxabiv1::__cxa_get_globals ()
    at ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
#2  0xfffff801004907cc in std::uncaught_exception ()
    at ../../../../libstdc++-v3/libsupc++/eh_catch.cc:136
#3  0xfffff801004ccbe4 in ~sentry (this=0x7fefffff1b0, __in_chrg=<optimized
out>)
    at
/usr/src/debug/gcc-4.7.2-20121109/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/include/ostream:429
#4  std::__ostream_insert<char, std::char_traits<char> > (__out=...,
__s=<optimized out>, 
    __n=<optimized out>)
    at
/usr/src/debug/gcc-4.7.2-20121109/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/include/bits/ostream_insert.h:112
#5  0x000000000010321c in operator<< <std::char_traits<char> > (
    __s=0x1085f8 "exceptions_in_prog\n", __out=...)
    at
/usr/lib/gcc/sparc64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/ostream:533
#6  exceptions_in_prog () at main.cpp:30
#7  0x0000000000102e78 in main () at main.cpp:120

-------------------------------------------------------------------------------
Lets read that in order with some program text around it that might make some
better sense:

#7  0x0000000000102e78 in main () at main.cpp:120
(gdb) list
115     int main (void)
116     {
117
118       LTDL_SET_PRELOADED_SYMBOLS();
119
120       if (exceptions_in_prog ())
121         return 1;
122       if (exceptions_in_lib ())
123         return 1;
124       if (exceptions_in_module ())

#6  exceptions_in_prog () at main.cpp:30
(gdb) list
25        return 0;
26      }
27
28      int exceptions_in_prog (void)
29      {
30        std::cerr << "exceptions_in_prog\n";
31        try {
32          foo ();
33        }
34        catch (exc e) {

#5  0x000000000010321c in operator<< <std::char_traits<char> > (
    __s=0x1085f8 "exceptions_in_prog\n", __out=...)
    at
/usr/lib/gcc/sparc64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/ostream:533
533             __ostream_insert(__out, __s,
(gdb) list
528         operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
529         {
530           if (!__s)
531             __out.setstate(ios_base::badbit);
532           else
533             __ostream_insert(__out, __s,
534                             
static_cast<streamsize>(_Traits::length(__s)));
535           return __out;
536         }
537

(gdb) down
#4  std::__ostream_insert<char, std::char_traits<char> > (__out=...,
__s=<optimized out>,
    __n=<optimized out>)
    at
/usr/src/debug/gcc-4.7.2-20121109/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/include/bits/ostream_insert.h:112
112           return __out;
(gdb) list
107                   __throw_exception_again;
108                 }
109               __catch(...)
110                 { __out._M_setstate(__ios_base::badbit); }
111             }
112           return __out;
113         }
114
115       // Inhibit implicit instantiations for required instantiations,
116       // which are defined via explicit instantiations elsewhere.

#3  0xfffff801004ccbe4 in ~sentry (this=0x7fefffff1b0, __in_chrg=<optimized
out>)
    at
/usr/src/debug/gcc-4.7.2-20121109/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/include/ostream:429
429             if (bool(_M_os.flags() & ios_base::unitbuf) &&
!uncaught_exception())
(gdb) list
424            *  @c flush() on the output stream.
425           */
426           ~sentry()
427           {
428             // XXX MT
429             if (bool(_M_os.flags() & ios_base::unitbuf) &&
!uncaught_exception())
430               {
431                 // Can't call flush directly or else will get into
recursive lock.
432                 if (_M_os.rdbuf() && _M_os.rdbuf()->pubsync() == -1)
433                   _M_os.setstate(ios_base::badbit);

#2  0xfffff801004907cc in std::uncaught_exception ()
    at ../../../../libstdc++-v3/libsupc++/eh_catch.cc:136
136       __cxa_eh_globals *globals = __cxa_get_globals ();
(gdb) list
131
132
133     bool
134     std::uncaught_exception() throw()
135     {
136       __cxa_eh_globals *globals = __cxa_get_globals ();
137       return globals->uncaughtExceptions != 0;
138     }

#1  0xfffff80100490988 in __cxxabiv1::__cxa_get_globals ()
    at ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
63      { return get_global(); }
(gdb) list
58      __cxxabiv1::__cxa_get_globals_fast() _GLIBCXX_NOTHROW
59      { return get_global(); }
60
61      extern "C" __cxa_eh_globals*
62      __cxxabiv1::__cxa_get_globals() _GLIBCXX_NOTHROW
63      { return get_global(); }
64
65
66      #else
67

#0  0xfffff8010061a558 in __frame_dummy_init_array_entry () from
/lib64/libstdc++.so.6
(gdb) list
68      // Single-threaded fallback buffer.
69      static __cxa_eh_globals eh_globals;
70
71      #if __GTHREADS
72
73      static void
74      eh_globals_dtor(void* ptr)
75      {
76        if (ptr)
77          {

-------------------------------------------------------------------------------

I suspect this may be an endian/alignment bug as the same g++ program will run
correctly on an x86_64 system, however my c++ foo is somewhat weak when it
comes to the lower levels. The above is about as far as I can debug this.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
@ 2013-01-08 17:24 ` paolo.carlini at oracle dot com
  2013-01-08 17:59 ` philip.copeland at oracle dot com
                   ` (42 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-01-08 17:24 UTC (permalink / raw)
  To: gcc-bugs


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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2013-01-08
            Summary|libtool test exposes what I |libtool test exposes what I
                   |think is some alignment     |think is some alignment
                   |issue in libstd++           |issue in libstdc++
     Ever Confirmed|0                           |1

--- Comment #1 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-08 17:23:34 UTC ---
Whatever it is, I don't think it's a libstdc++ issue: for example, very, very
little happens in terms of alignment vs exceptions in libsupc++. Maybe libgcc?
As far as you can see, is there something wrong in crtstuff.c in terms of
alignments of the various static arrays? Endianness too should not be an
issue...

In any case, we also need a self contained *.ii file to proceed, per the Bug
Reporting instructions.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
  2013-01-08 17:24 ` [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++ paolo.carlini at oracle dot com
@ 2013-01-08 17:59 ` philip.copeland at oracle dot com
  2013-01-08 18:45 ` paolo.carlini at oracle dot com
                   ` (41 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-08 17:59 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #2 from philip.copeland at oracle dot com 2013-01-08 17:59:14 UTC ---
Created attachment 29110
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29110
compressed tarball of .ii files

Adding .ii files as a compressed tarball

[mockbuild@localhost 104]$ ls -l *.ii
-rw-rw-r--. 1 mockbuild mockbuild 277580 Jan  8 12:48 common.ii
-rw-rw-r--. 1 mockbuild mockbuild 475863 Jan  8 12:48 lib.ii
-rw-rw-r--. 1 mockbuild mockbuild 515859 Jan  8 12:48 main.ii
-rw-rw-r--. 1 mockbuild mockbuild 475991 Jan  8 12:48 module.ii


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
  2013-01-08 17:24 ` [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++ paolo.carlini at oracle dot com
  2013-01-08 17:59 ` philip.copeland at oracle dot com
@ 2013-01-08 18:45 ` paolo.carlini at oracle dot com
  2013-01-08 19:01 ` philip.copeland at oracle dot com
                   ` (40 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-01-08 18:45 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #3 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-08 18:45:14 UTC ---
Per the bug submitting instructions we need a *single* self-contained *.ii


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (2 preceding siblings ...)
  2013-01-08 18:45 ` paolo.carlini at oracle dot com
@ 2013-01-08 19:01 ` philip.copeland at oracle dot com
  2013-01-09  1:01 ` pinskia at gcc dot gnu.org
                   ` (39 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-08 19:01 UTC (permalink / raw)
  To: gcc-bugs


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

philip.copeland at oracle dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #29110|0                           |1
        is obsolete|                            |

--- Comment #4 from philip.copeland at oracle dot com 2013-01-08 19:00:54 UTC ---
Created attachment 29112
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29112
main.ii

SINGLE .ii
I originally provided all the .ii's produced by the libtool compilation as I
thought it may have been relevant


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (3 preceding siblings ...)
  2013-01-08 19:01 ` philip.copeland at oracle dot com
@ 2013-01-09  1:01 ` pinskia at gcc dot gnu.org
  2013-01-09  1:07 ` pinskia at gcc dot gnu.org
                   ` (38 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: pinskia at gcc dot gnu.org @ 2013-01-09  1:01 UTC (permalink / raw)
  To: gcc-bugs


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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |sparc64-redhat-linux

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> 2013-01-09 01:00:41 UTC ---
>0xfffff8010061a558 in __frame_dummy_init_array_entry () from

What is the assembly instruction here?


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (4 preceding siblings ...)
  2013-01-09  1:01 ` pinskia at gcc dot gnu.org
@ 2013-01-09  1:07 ` pinskia at gcc dot gnu.org
  2013-01-09  1:33 ` philip.copeland at oracle dot com
                   ` (37 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: pinskia at gcc dot gnu.org @ 2013-01-09  1:07 UTC (permalink / raw)
  To: gcc-bugs


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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|                            |DUPLICATE

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> 2013-01-09 01:06:18 UTC ---


*** This bug has been marked as a duplicate of bug 53218 ***


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (5 preceding siblings ...)
  2013-01-09  1:07 ` pinskia at gcc dot gnu.org
@ 2013-01-09  1:33 ` philip.copeland at oracle dot com
  2013-01-09  2:24 ` paolo.carlini at oracle dot com
                   ` (36 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09  1:33 UTC (permalink / raw)
  To: gcc-bugs


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

philip.copeland at oracle dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |WAITING
         Resolution|DUPLICATE                   |

--- Comment #7 from philip.copeland at oracle dot com 2013-01-09 01:33:03 UTC ---
Lets see for frame 0 that would be:

[root@localhost ~]# chroot /var/lib/mock/fc18-5/root/
bash-4.2# su - mockbuild
[mockbuild@localhost ~]$ cd  /builddir/build/BUILD/libtool-2.4.2/
[mockbuild@localhost libtool-2.4.2]$ cd tests/testsuite.dir/104/
(gdb) set environment LD_LIBRARY_PATH=m
(gdb) run
Starting program:
/builddir/build/BUILD/libtool-2.4.2/tests/testsuite.dir/104/.libs/lt-main 
exceptions_in_prog

Program received signal SIGSEGV, Segmentation fault.
0xfffff8010061a558 in __frame_dummy_init_array_entry ()
   from /lib64/libstdc++.so.6
(gdb) disassemble 0xfffff8010061a558
Dump of assembler code for function __frame_dummy_init_array_entry:
   0xfffff8010061a558:  unknown
   0xfffff8010061a55c:  bn  %icc, 0xfffff8010065175c <__ieee754_lgamma_r+2268>
   0xfffff8010061a560:  unknown
   0xfffff8010061a564:  bn  %icc, 0xfffff8010064f264 <__ieee754_j0+612>
   0xfffff8010061a568:  unknown
   0xfffff8010061a56c:  bn  %icc, 0xfffff8010064f36c <__ieee754_j0+876>
   0xfffff8010061a570:  unknown
   0xfffff8010061a574:  bn  %icc, 0xfffff8010064f474 <__ieee754_y0+20>
   0xfffff8010061a578:  unknown
   0xfffff8010061a57c:  bn  %icc, 0xfffff8010064fb7c <qone+92>
   0xfffff8010061a580:  unknown
   0xfffff8010061a584:  bn  %icc, 0xfffff80100650304 <__ieee754_y1+484>
   0xfffff8010061a588:  unknown
   0xfffff8010061a58c:  bn  %icc, 0xfffff80100650a8c <__ieee754_jn+1132>
   0xfffff8010061a590:  unknown
   0xfffff8010061a594:  bn  %icc, 0xfffff80100651014 <__ieee754_lgamma_r+404>
End of assembler dump.

dont think it is a function
(gdb) disassemble __frame_dummy_init_array_entry 
No function contains specified address.
(gdb) whatis __frame_dummy_init_array_entry
type = <data variable, no debug info>
(gdb) print &__frame_dummy_init_array_entry 
$1 = (<data variable, no debug info> *) 0xfffff8010097c150
(gdb) info var __frame_dummy_init_array_entry 
All variables matching regular expression "__frame_dummy_init_array_entry":

Non-debugging symbols:
0x000000000020bd20  __frame_dummy_init_array_entry
0xfffff80100225d78  __frame_dummy_init_array_entry
0xfffff80100329dc0  __frame_dummy_init_array_entry
0xfffff8010042fd80  __frame_dummy_init_array_entry
0xfffff8010061a558  __frame_dummy_init_array_entry
0xfffff80100867d90  __frame_dummy_init_array_entry
0xfffff8010097c150  __frame_dummy_init_array_entry

What does the memory there actually look like?: (assume 8 byte width)
(gdb) x/1xg 0xfffff8010061a558
0xfffff8010061a558:     0xfffff8010048dc80

Ok, since thats a pointer address, where does it lead to? (frame_dummy)
(gdb) disassemble 0xfffff8010048dc80
Dump of assembler code for function frame_dummy:
   0xfffff8010048dc80 <+0>:     save  %sp, -176, %sp
   0xfffff8010048dc84 <+4>:     sethi  %hi(0x5800), %o0
   0xfffff8010048dc88 <+8>:     sethi  %hi(0x192000), %l7
   0xfffff8010048dc8c <+12>:    call  0xfffff8010048dce0
<__sparc_get_pc_thunk.l7>
   0xfffff8010048dc90 <+16>:    add  %l7, 0x374, %l7    ! 0x192374
   0xfffff8010048dc94 <+20>:    xor  %o0, -608, %o0
   0xfffff8010048dc98 <+24>:    add  %l7, %o0, %o0
   0xfffff8010048dc9c <+28>:    ldx  [ %o0 ], %g1
   0xfffff8010048dca0 <+32>:    brz,pn   %g1, 0xfffff8010048dcc0
<frame_dummy+64>
   0xfffff8010048dca4 <+36>:    sethi  %hi(0x800), %g1
   0xfffff8010048dca8 <+40>:    xor  %g1, 0x1a8, %g1
   0xfffff8010048dcac <+44>:    ldx  [ %l7 + %g1 ], %g1
   0xfffff8010048dcb0 <+48>:    brz,pn   %g1, 0xfffff8010048dcc0
<frame_dummy+64>
   0xfffff8010048dcb4 <+52>:    nop 
   0xfffff8010048dcb8 <+56>:    call  %g1
   0xfffff8010048dcbc <+60>:    nop 
   0xfffff8010048dcc0 <+64>:    b  %xcc, 0xfffff8010048dba0
<register_tm_clones>
   0xfffff8010048dcc4 <+68>:    restore 
---Type <return> to continue, or q <return> to quit---
   0xfffff8010048dcc8 <+72>:    b,a   %xcc, 0xfffff8010048dce0
<__sparc_get_pc_thunk.l7>
   0xfffff8010048dccc <+76>:    nop 
   0xfffff8010048dcd0 <+80>:    nop 
   0xfffff8010048dcd4 <+84>:    nop 
   0xfffff8010048dcd8 <+88>:    nop 
   0xfffff8010048dcdc <+92>:    nop 
End of assembler dump.
(gdb) list frame_dummy
No line number known for frame_dummy.


let me try from the #1 frame above and step forward, see where that is going
(gdb) up
#1  0xfffff80100490988 in __cxxabiv1::__cxa_get_globals ()
    at ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
63      { return get_global(); }
(gdb) disassemble
Dump of assembler code for function __cxxabiv1::__cxa_get_globals():
   0xfffff80100490960 <+0>:     save  %sp, -176, %sp
   0xfffff80100490964 <+4>:     sethi  %hi(0), %o0
   0xfffff80100490968 <+8>:     sethi  %hi(0), %i0
   0xfffff8010049096c <+12>:    sethi  %hi(0x18f400), %l7
   0xfffff80100490970 <+16>:    call  0xfffff8010048dce0
<__sparc_get_pc_thunk.l7>
   0xfffff80100490974 <+20>:    add  %l7, 0x290, %l7    ! 0x18f690
   0xfffff80100490978 <+24>:    add  %o0, 8, %o0
   0xfffff8010049097c <+28>:    xor  %i0, 0, %i0
   0xfffff80100490980 <+32>:    call  0xfffff8010061a558
   0xfffff80100490984 <+36>:    add  %l7, %o0, %o0
=> 0xfffff80100490988 <+40>:    add  %o0, %i0, %i0
   0xfffff8010049098c <+44>:    rett  %i7 + 8
   0xfffff80100490990 <+48>:    nop 
End of assembler dump.

-------------------------------------------------------------------------------

Oh you closed this as a dupe? This was rebuilt using gcc-4.7.2-8 recompiled
with itself at the same level.. and looks like the bug you point to is orphaned
by the reporter. Since Tom's report is for a *32* bit problem and mine is for
64 bit It would seem, on balance, likely an endian issue /may/ have creeped in
(sparc is big endian) that or it's something way different. Just thinking out
loud of possibilities

gcc-4.7.2-8.fc18.sparc64
glibc-2.16-28.fc18.sparc64
binutils-2.23.51.0.1-3.fc18.sparc64


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (6 preceding siblings ...)
  2013-01-09  1:33 ` philip.copeland at oracle dot com
@ 2013-01-09  2:24 ` paolo.carlini at oracle dot com
  2013-01-09  2:32 ` philip.copeland at oracle dot com
                   ` (35 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-01-09  2:24 UTC (permalink / raw)
  To: gcc-bugs


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

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ebotcazou at gcc dot
                   |                            |gnu.org

--- Comment #8 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-09 02:24:04 UTC ---
At least now we know that the issue is well known. And in fact it doesn't seem
64-bit specific, FWIW. Let's add Eric in CC for this one too, we are already
providing quite a bit of additional information (beyond PR53218) and we are
available to provide much more.

We should really figure out a much more reduced testcase triggering the
problem... I'm still finding weird that these endianness or alignment issues
affecting exception handling show up only with libtool (or source-highlight):
the usage of exceptions seems pretty basic in such cases, there is more in the
tests but apparently not much about exceptions. Thus I still believe we should
confirm whether the standard GCC C++ testsuite (which includes of course many
exception related testcases) passes smoothly, I don't think people have been
posting anything on gcc-testresults lately.

Eric, any hints?


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (7 preceding siblings ...)
  2013-01-09  2:24 ` paolo.carlini at oracle dot com
@ 2013-01-09  2:32 ` philip.copeland at oracle dot com
  2013-01-09  6:10 ` philip.copeland at oracle dot com
                   ` (34 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09  2:32 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #9 from philip.copeland at oracle dot com 2013-01-09 02:32:26 UTC ---
Ooooooo..... <suck breath time>
GCC C++ testsuite,... umm well a quick summary is this,.. it's horrible.

                === g++ Summary ===

# of expected passes            926
# of unexpected failures        38498
# of unexpected successes       75
# of expected failures          190
# of unresolved testcases       6218
# of unsupported tests          1023

Course this has all scrolled WAAAAY back beyond my terminal history so I'll
rerun the whole suite again, tee off the dialog and pin it here as an
attachment.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (8 preceding siblings ...)
  2013-01-09  2:32 ` philip.copeland at oracle dot com
@ 2013-01-09  6:10 ` philip.copeland at oracle dot com
  2013-01-09  6:26 ` pinskia at gcc dot gnu.org
                   ` (33 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09  6:10 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #10 from philip.copeland at oracle dot com 2013-01-09 06:09:54 UTC ---
Created attachment 29116
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29116
the gcc 4.7.2-8 srpm mangles the environment a bit but these are the testsuite
results

the Fedora gcc-4.7.2-8 src.rpm mangles the make check environment a bit with a
number of sed re-writes.

In summary the results are better than just casually running make check-c++
from the command line:


                === libstdc++ Summary for unix/ ===
# of expected passes            8434
# of unexpected failures        301
# of expected failures          43
# of unsupported tests          166

                === libstdc++ Summary for unix//-fstack-protector ===
# of expected passes            8434
# of unexpected failures        301
# of expected failures          43
# of unsupported tests          166

                === libstdc++ Summary ===
# of expected passes            16868
# of unexpected failures        602
# of expected failures          86
# of unsupported tests          332

[Note the attachment libstdc++.log.tar.bz2 is 401K but will expand to 51M]


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (9 preceding siblings ...)
  2013-01-09  6:10 ` philip.copeland at oracle dot com
@ 2013-01-09  6:26 ` pinskia at gcc dot gnu.org
  2013-01-09  6:27 ` [Bug target/55909] " philip.copeland at oracle dot com
                   ` (32 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: pinskia at gcc dot gnu.org @ 2013-01-09  6:26 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> 2013-01-09 06:25:41 UTC ---
(In reply to comment #0)
> I suspect this may be an endian/alignment bug as the same g++ program will run
> correctly on an x86_64 system, however my c++ foo is somewhat weak when it
> comes to the lower levels. The above is about as far as I can debug this.


Note I doubt this is an endian/alignment issue as this works correctly on
big-endian MIPS64 without any issues and also PPC64 (were alignment is not an
issue but is big-endian).


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (10 preceding siblings ...)
  2013-01-09  6:26 ` pinskia at gcc dot gnu.org
@ 2013-01-09  6:27 ` philip.copeland at oracle dot com
  2013-01-09  6:28 ` philip.copeland at oracle dot com
                   ` (31 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09  6:27 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #12 from philip.copeland at oracle dot com 2013-01-09 06:27:32 UTC ---
Created attachment 29117
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29117
g++.log.tar.bz2 (part1)

                === g++ Summary for unix/ ===

# of expected passes            41197
# of unexpected failures        353
# of expected failures          278
# of unsupported tests          475
                === g++ Summary for unix//-fstack-protector ===

# of expected passes            41197
# of unexpected failures        353
# of expected failures          278
# of unsupported tests          475

                === g++ Summary ===

# of expected passes            82394
# of unexpected failures        706
# of expected failures          556
# of unsupported tests          950

[Note the g++.log.tar.bz2 is 1.3M which is too large for bugzilla so I've split
it into two attachments that can be catted together (g++-split-aa g++-split-ab
>
g++.log)]


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (11 preceding siblings ...)
  2013-01-09  6:27 ` [Bug target/55909] " philip.copeland at oracle dot com
@ 2013-01-09  6:28 ` philip.copeland at oracle dot com
  2013-01-09  8:27 ` philip.copeland at oracle dot com
                   ` (30 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09  6:28 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #13 from philip.copeland at oracle dot com 2013-01-09 06:28:26 UTC ---
Created attachment 29118
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29118
g++.log (part 2)


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (12 preceding siblings ...)
  2013-01-09  6:28 ` philip.copeland at oracle dot com
@ 2013-01-09  8:27 ` philip.copeland at oracle dot com
  2013-01-09  9:07 ` philip.copeland at oracle dot com
                   ` (29 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09  8:27 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #14 from philip.copeland at oracle dot com 2013-01-09 08:27:19 UTC ---
Smallest test case program

#include <iostream>
int main()
{
    std::cerr << "we are able to write to stderr\n";
}

bash-4.2# g++ test.c
bash-4.2# ./a.out
we are able to write to stderr
Segmentation fault (core dumped)



#0  0xfffff8010030a558 in __frame_dummy_init_array_entry ()
   from /lib64/libstdc++.so.6
#1  0xfffff80100180988 in __cxxabiv1::__cxa_get_globals ()
    at ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
#2  0xfffff801001807cc in std::uncaught_exception ()
    at ../../../../libstdc++-v3/libsupc++/eh_catch.cc:136
#3  0xfffff801001bcbe4 in ~sentry (this=0x7fefffff0b0, 
    __in_chrg=<optimized out>)
    at
/usr/src/debug/gcc-4.7.2-20121109/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/include/ostream:429
#4  std::__ostream_insert<char, std::char_traits<char> > (__out=..., 
    __s=__s@entry=0x100a00 "we are able to write to stderr\n", 
    __n=<optimized out>)
    at
/usr/src/debug/gcc-4.7.2-20121109/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/include/bits/ostream_insert.h:112
#5  0xfffff801001bcfc4 in std::operator<< <std::char_traits<char> > (
    __out=..., __s=0x100a00 "we are able to write to stderr\n")
    at
/usr/src/debug/gcc-4.7.2-20121109/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/include/ostream:533
#6  0x000000000010087c in main ()


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (13 preceding siblings ...)
  2013-01-09  8:27 ` philip.copeland at oracle dot com
@ 2013-01-09  9:07 ` philip.copeland at oracle dot com
  2013-01-09 10:13 ` mikpe at it dot uu.se
                   ` (28 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09  9:07 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #15 from philip.copeland at oracle dot com 2013-01-09 09:06:38 UTC ---
I've a fc17 x86_64 box in the backroom here that I'm going to generate a
comparison trace with

[root@ZenV tmp]# gdb a.out
(gdb) break ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
No symbol table is loaded.  Use the "file" command.
Make breakpoint pending on future shared library load? (y or [n]) y

Breakpoint 1 (../../../../libstdc++-v3/libsupc++/eh_globals.cc:63) pending.
(gdb) run
Starting program: /tmp/a.out 
we are able to write to stderr

Breakpoint 1, __cxxabiv1::__cxa_get_globals ()
    at ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
63      { return get_global(); }
(gdb) where
#0  __cxxabiv1::__cxa_get_globals ()
    at ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
#1  0x000000354f25e0d9 in std::uncaught_exception ()
    at ../../../../libstdc++-v3/libsupc++/eh_catch.cc:136
#2  0x000000354f295a12 in ~sentry (this=0x7fffffffe360, 
    __in_chrg=<optimized out>)
    at
/usr/src/debug/gcc-4.7.2-20120921/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/ostream:429
#3  std::__ostream_insert<char, std::char_traits<char> > (__out=..., 
    __s=__s@entry=0x400870 "we are able to write to stderr\n", __n=31)
    at
/usr/src/debug/gcc-4.7.2-20120921/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/ostream_insert.h:112
#4  0x000000354f295d8f in std::operator<< <std::char_traits<char> > (
    __out=..., __s=0x400870 "we are able to write to stderr\n")
    at
/usr/src/debug/gcc-4.7.2-20120921/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/ostream:533
#5  0x000000000040075f in main ()

(gdb) step
std::uncaught_exception ()
    at ../../../../libstdc++-v3/libsupc++/eh_catch.cc:137
137       return globals->uncaughtExceptions != 0;
(gdb) list
132
133     bool
134     std::uncaught_exception() throw()
135     {
136       __cxa_eh_globals *globals = __cxa_get_globals ();
137       return globals->uncaughtExceptions != 0;
138     }


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (14 preceding siblings ...)
  2013-01-09  9:07 ` philip.copeland at oracle dot com
@ 2013-01-09 10:13 ` mikpe at it dot uu.se
  2013-01-09 10:19 ` paolo.carlini at oracle dot com
                   ` (27 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: mikpe at it dot uu.se @ 2013-01-09 10:13 UTC (permalink / raw)
  To: gcc-bugs


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

Mikael Pettersson <mikpe at it dot uu.se> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mikpe at it dot uu.se

--- Comment #16 from Mikael Pettersson <mikpe at it dot uu.se> 2013-01-09 10:13:02 UTC ---
Something is seriously broken in Philip's environment or his gcc-4.7 build.  I
get fairly clean g++/libstdc++ test suite results with vanilla 4.7 on Fedora
15/sparc64 + kernel 3.8-rc2, see e.g.
<http://gcc.gnu.org/ml/gcc-testresults/2013-01/msg00571.html>.

One thing that differs is that my gcc is configured for 32-bit code by default
with the ability to generate 64-bit code when requested
(--target=sparc-unknown-linux --with-cpu=ultrasparc --enable-targets=all),
whereas I assume that Philip's sparc64 rpms are 64-bit binaries generating
64-bit code by default.

I could do a pure 64-bit bootstrap + regtest in a day or two, just to check.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (15 preceding siblings ...)
  2013-01-09 10:13 ` mikpe at it dot uu.se
@ 2013-01-09 10:19 ` paolo.carlini at oracle dot com
  2013-01-09 10:32 ` mikpe at it dot uu.se
                   ` (26 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-01-09 10:19 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #17 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-09 10:18:34 UTC ---
Thanks Mikael. Thus I suppose the minimized snippet in Comment #14 also runs
fine for you? Indeed, it would be nice if you could try to reproduce the exact
problem Philip is seeing in a pure 64-bit setup.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (16 preceding siblings ...)
  2013-01-09 10:19 ` paolo.carlini at oracle dot com
@ 2013-01-09 10:32 ` mikpe at it dot uu.se
  2013-01-09 10:37 ` philip.copeland at oracle dot com
                   ` (25 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: mikpe at it dot uu.se @ 2013-01-09 10:32 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #18 from Mikael Pettersson <mikpe at it dot uu.se> 2013-01-09 10:32:35 UTC ---
Yes, the snippet in Comment #14 works fine for me, with both -m32 and -m64.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (17 preceding siblings ...)
  2013-01-09 10:32 ` mikpe at it dot uu.se
@ 2013-01-09 10:37 ` philip.copeland at oracle dot com
  2013-01-09 10:50 ` paolo.carlini at oracle dot com
                   ` (24 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09 10:37 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #19 from philip.copeland at oracle dot com 2013-01-09 10:37:38 UTC ---
Mikael, could you compare against the versions of packages that I'm using?

gcc requires the following according to fedora)
cloog-ppl-0.15.11-4.fc18.1.sparc64
cpp-4.7.2-8.fc18.sparc64
libmpc-0.9-3.fc18.2.sparc64
mpfr-3.0.0-4.fc18.sparc64
gmp-5.0.5-3.fc18.sparc64
binutils-2.23.51.0.1-3.fc18.sparc64
gcc-4.7.2-8.fc18.sparc64
glibc-2.16-28.fc18.sparc64
elfutils-0.155-2.fc18.sparc64 * modified as per
https://bugzilla.redhat.com/attachment.cgi?id=672431&action=diff *

Hurm,.. your build of gcc-4.7.?, was that unmodified or with the slew of RHT
patches that the fc* packages normally gets added, applied?

Thanks


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (18 preceding siblings ...)
  2013-01-09 10:37 ` philip.copeland at oracle dot com
@ 2013-01-09 10:50 ` paolo.carlini at oracle dot com
  2013-01-09 10:52 ` paolo.carlini at oracle dot com
                   ` (23 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-01-09 10:50 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #20 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-09 10:49:44 UTC ---
Thanks Mikael. Having the testresults for -m32 and -m64 is also nice, by the
way. And they indeed look very good!

Philip's latest testsuite results look decent but worse. Some of those
fails are definitely more convenient than Comment #14, because they don't
include anything.  We should figure out whether Philip is seeing something like
an individual miscompilation in a determinant place, like in crtstuff.c, or
many different problems.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (19 preceding siblings ...)
  2013-01-09 10:50 ` paolo.carlini at oracle dot com
@ 2013-01-09 10:52 ` paolo.carlini at oracle dot com
  2013-01-09 10:59 ` philip.copeland at oracle dot com
                   ` (22 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-01-09 10:52 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #21 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-09 10:52:07 UTC ---
Philip, from http://gcc.gnu.org/ml/gcc-testresults/2013-01/msg00571.html seems
obvious that Mikael is simply fetching with subversion and building.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (20 preceding siblings ...)
  2013-01-09 10:52 ` paolo.carlini at oracle dot com
@ 2013-01-09 10:59 ` philip.copeland at oracle dot com
  2013-01-09 11:07 ` paolo.carlini at oracle dot com
                   ` (21 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09 10:59 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #22 from philip.copeland at oracle dot com 2013-01-09 10:59:13 UTC ---
Ok so he's using 4.7.3 not 4.7.2-(butched by fedora folk) (there's about 24
patchs they apply)

ugh,.. what would you like me to do here then? pull over 4.7.3.svn and give
that a spin?

Phil
=--=


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (21 preceding siblings ...)
  2013-01-09 10:59 ` philip.copeland at oracle dot com
@ 2013-01-09 11:07 ` paolo.carlini at oracle dot com
  2013-01-09 11:51 ` ebotcazou at gcc dot gnu.org
                   ` (20 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-01-09 11:07 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #23 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-09 11:07:10 UTC ---
Oh well, testing the current vanilla 4_7-branch is always a good idea, if you
ask me. That said, it seems very unlikely that back in the 4.7.2 times
something such basic as your reduced Comment #14 could not work (it's the C++
"Hello World!", literally!). Well, we could also bootstrap vanilla 4.7.2 and
see what happens.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (22 preceding siblings ...)
  2013-01-09 11:07 ` paolo.carlini at oracle dot com
@ 2013-01-09 11:51 ` ebotcazou at gcc dot gnu.org
  2013-01-09 12:21 ` philip.copeland at oracle dot com
                   ` (19 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2013-01-09 11:51 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #24 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2013-01-09 11:51:22 UTC ---
> #1  0xfffff80100490988 in __cxxabiv1::__cxa_get_globals ()
>     at ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
> 63      { return get_global(); }
> (gdb) disassemble
> Dump of assembler code for function __cxxabiv1::__cxa_get_globals():
>    0xfffff80100490960 <+0>:     save  %sp, -176, %sp
>    0xfffff80100490964 <+4>:     sethi  %hi(0), %o0
>    0xfffff80100490968 <+8>:     sethi  %hi(0), %i0
>    0xfffff8010049096c <+12>:    sethi  %hi(0x18f400), %l7
>    0xfffff80100490970 <+16>:    call  0xfffff8010048dce0
> <__sparc_get_pc_thunk.l7>
>    0xfffff80100490974 <+20>:    add  %l7, 0x290, %l7    ! 0x18f690
>    0xfffff80100490978 <+24>:    add  %o0, 8, %o0
>    0xfffff8010049097c <+28>:    xor  %i0, 0, %i0
>    0xfffff80100490980 <+32>:    call  0xfffff8010061a558
>    0xfffff80100490984 <+36>:    add  %l7, %o0, %o0
> => 0xfffff80100490988 <+40>:    add  %o0, %i0, %i0
>    0xfffff8010049098c <+44>:    rett  %i7 + 8
>    0xfffff80100490990 <+48>:    nop 

Here's the disassembly for a working version of the compiler:

Dump of assembler code for function __cxxabiv1::__cxa_get_globals():
   0xfffff801001ea7a0 <+0>:     save  %sp, -176, %sp
   0xfffff801001ea7a4 <+4>:     sethi  %hi(0xc00), %o0
   0xfffff801001ea7a8 <+8>:     sethi  %hi(0), %i0
   0xfffff801001ea7ac <+12>:    sethi  %hi(0x129800), %l7
   0xfffff801001ea7b0 <+16>:    call  0xfffff80100182e60
<__sparc_get_pc_thunk.l7>
   0xfffff801001ea7b4 <+20>:    add  %l7, 0x50, %l7     ! 0x129850
=> 0xfffff801001ea7b8 <+24>:    add  %o0, 0x140, %o0
   0xfffff801001ea7bc <+28>:    xor  %i0, 0x10, %i0
   0xfffff801001ea7c0 <+32>:    call  0xfffff80100317c20 <__tls_get_addr@plt>
   0xfffff801001ea7c4 <+36>:    add  %l7, %o0, %o0
   0xfffff801001ea7c8 <+40>:    add  %o0, %i0, %i0
   0xfffff801001ea7cc <+44>:    rett  %i7 + 8
   0xfffff801001ea7d0 <+48>:    nop 

So it looks like the dynamic linker screwed up the PLT on your system.  I think
that you should rebuild the compiler without --enable-initfini-array.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (23 preceding siblings ...)
  2013-01-09 11:51 ` ebotcazou at gcc dot gnu.org
@ 2013-01-09 12:21 ` philip.copeland at oracle dot com
  2013-01-09 12:42 ` mikpe at it dot uu.se
                   ` (18 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09 12:21 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #25 from philip.copeland at oracle dot com 2013-01-09 12:21:19 UTC ---
Mmm yes I did notice the x86_64 trace I did  bounced off into the tls/PLT area
Breakpoint 1, __cxxabiv1::__cxa_get_globals ()
    at ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
63      { return get_global(); }
(gdb) stepi
0x000000354f25e1a7      63      { return get_global(); }
(gdb) stepi
0x000000354f25a3f0 in __tls_get_addr@plt () from /lib64/libstdc++.so.6
(gdb) stepi
0x000000354f25a3f6 in __tls_get_addr@plt () from /lib64/libstdc++.so.6
(gdb) stepi
0x000000354f25a3fb in __tls_get_addr@plt () from /lib64/libstdc++.so.6
(gdb) stepi
0x000000354f258ff0 in ?? () from /lib64/libstdc++.so.6


where as the sparc went pretty much nowhere 8/

Ok,.. I was mid compiling 4.7.3  but it's a little more convenient to quickly
change 4.7.2-8 as you suggest and give that a quick check,.. should take a few
hours to get that far. I'll update in mm ~3-4 hours I guess

Thanks

Mikael, as reference was your version of 4.7.3 compiled without
--enable-initfini-array ?


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (24 preceding siblings ...)
  2013-01-09 12:21 ` philip.copeland at oracle dot com
@ 2013-01-09 12:42 ` mikpe at it dot uu.se
  2013-01-09 12:46 ` mikpe at it dot uu.se
                   ` (17 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: mikpe at it dot uu.se @ 2013-01-09 12:42 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #26 from Mikael Pettersson <mikpe at it dot uu.se> 2013-01-09 12:42:13 UTC ---
(In reply to comment #19)
> Mikael, could you compare against the versions of packages that I'm using?

Well, my environment is Fedora 15 so all system components are older.  glibc is
2.13.90-4.1 for instance.  The other things that matter for gcc are newer and
compiled and installed privately by myself: gmp-5.0.5, mpfr-3.1.1, mpc-1.0.1,
binutils-2.22, all compiled by my own gcc-4.6.3.

> Hurm,.. your build of gcc-4.7.?, was that unmodified or with the slew of RHT
> patches that the fc* packages normally gets added, applied?

That was with unmodified FSF sources (a weekly svn snapshot tarball).

Note that RH's gcc src rpms are usually (always?) based on RH's own gcc
branches
(see http://gcc.gnu.org/viewcvs/branches/redhat/) rather than vanilla upstream
releases or snapshots, so the amount of modifications are much larger than what
the explicit set of patches indicate.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (25 preceding siblings ...)
  2013-01-09 12:42 ` mikpe at it dot uu.se
@ 2013-01-09 12:46 ` mikpe at it dot uu.se
  2013-01-09 14:50 ` paolo.carlini at oracle dot com
                   ` (16 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: mikpe at it dot uu.se @ 2013-01-09 12:46 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #27 from Mikael Pettersson <mikpe at it dot uu.se> 2013-01-09 12:46:11 UTC ---
(In reply to comment #25)
> Mikael, as reference was your version of 4.7.3 compiled without
> --enable-initfini-array ?

Yes.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (26 preceding siblings ...)
  2013-01-09 12:46 ` mikpe at it dot uu.se
@ 2013-01-09 14:50 ` paolo.carlini at oracle dot com
  2013-01-09 15:29 ` philip.copeland at oracle dot com
                   ` (15 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-01-09 14:50 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #28 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-09 14:50:16 UTC ---
Thanks Eric for following this.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (27 preceding siblings ...)
  2013-01-09 14:50 ` paolo.carlini at oracle dot com
@ 2013-01-09 15:29 ` philip.copeland at oracle dot com
  2013-01-09 15:46 ` ebotcazou at gcc dot gnu.org
                   ` (14 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09 15:29 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #29 from philip.copeland at oracle dot com 2013-01-09 15:29:26 UTC ---
Rebuilt fedoras 4.7.2-8 gcc without --enable-initfini-array reinstalled in a
chroot and rebuilt the test program

bash-4.2# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/sparc64-redhat-linux/4.7.2/lto-wrapper
Target: sparc64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
--enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --disable-build-with-cxx
--disable-build-poststage1-with-cxx --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--enable-linker-build-id --with-linker-hash-style=gnu
--enable-languages=c,c++,objc,obj-c++,java,fortran,lto --enable-plugin
--enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--disable-libjava-multilib --with-ppl --with-cloog --with-long-double-128
--with-cpu=ultrasparc --disable-multilib --build=sparc64-redhat-linux
Thread model: posix
gcc version 4.7.2 20121109 (Red Hat 4.7.2-8) (GCC) 

bash-4.2# ./a.out
we are able to write to stderr
Segmentation fault (core dumped)

Breakpoint 1, __cxxabiv1::__cxa_get_globals ()
    at ../../../../libstdc++-v3/libsupc++/eh_globals.cc:63
63      { return get_global(); }
(gdb) disassemble
Dump of assembler code for function __cxxabiv1::__cxa_get_globals():
   0xfffff80100180960 <+0>:     save  %sp, -176, %sp
   0xfffff80100180964 <+4>:     sethi  %hi(0), %o0
   0xfffff80100180968 <+8>:     sethi  %hi(0), %i0
   0xfffff8010018096c <+12>:    sethi  %hi(0x18f400), %l7
   0xfffff80100180970 <+16>:    call  0xfffff8010017db40
<__sparc_get_pc_thunk.l7>
   0xfffff80100180974 <+20>:    add  %l7, 0x290, %l7    ! 0x18f690
=> 0xfffff80100180978 <+24>:    add  %o0, 8, %o0
   0xfffff8010018097c <+28>:    xor  %i0, 0, %i0
   0xfffff80100180980 <+32>:    call  0xfffff8010030a558
   0xfffff80100180984 <+36>:    add  %l7, %o0, %o0
   0xfffff80100180988 <+40>:    add  %o0, %i0, %i0
   0xfffff8010018098c <+44>:    rett  %i7 + 8
   0xfffff80100180990 <+48>:    nop 
End of assembler dump.
(gdb) stepi
0xfffff8010018097c      63      { return get_global(); }
(gdb) 
0xfffff80100180980      63      { return get_global(); }
(gdb) 
0xfffff80100180984      63      { return get_global(); }
(gdb) 
0xfffff8010030a558 in __frame_dummy_init_array_entry ()
   from /lib64/libstdc++.so.6
(gdb) 

Program received signal SIGSEGV, Segmentation fault.
0xfffff8010030a558 in __frame_dummy_init_array_entry ()
   from /lib64/libstdc++.so.6

again, no thread level support address actions.
Moving on to rebuild of gcc-trunk (4.7.3?)


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (28 preceding siblings ...)
  2013-01-09 15:29 ` philip.copeland at oracle dot com
@ 2013-01-09 15:46 ` ebotcazou at gcc dot gnu.org
  2013-01-09 16:01 ` philip.copeland at oracle dot com
                   ` (13 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2013-01-09 15:46 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #30 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2013-01-09 15:45:35 UTC ---
> Program received signal SIGSEGV, Segmentation fault.
> 0xfffff8010030a558 in __frame_dummy_init_array_entry ()
>    from /lib64/libstdc++.so.6

Is /lib64/libstdc++.so.6 really the rebuilt library?  Can you verify by running
readelf -S on it that it doesn't contain .init_array and .fini_array sections?


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (29 preceding siblings ...)
  2013-01-09 15:46 ` ebotcazou at gcc dot gnu.org
@ 2013-01-09 16:01 ` philip.copeland at oracle dot com
  2013-01-09 16:07 ` paolo.carlini at oracle dot com
                   ` (12 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09 16:01 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #31 from philip.copeland at oracle dot com 2013-01-09 16:00:56 UTC ---
Hurm,...

bash-4.2# cd  /tmp
bash-4.2# mkdir expand
bash-4.2# cd  expand/
bash-4.2# rpm2cpio /builddir/build/RPMS/libstdc++-4.7.2-8.fc18.sparc64.rpm  |
cpio -id
bash-4.2# md5sum /tmp/expand/usr/lib64/libstdc++.so.6.0.17
/lib64/libstdc++.so.6
2b5b38c3e80e9739b1599df7e6ae84da  /tmp/expand/usr/lib64/libstdc++.so.6.0.17
2b5b38c3e80e9739b1599df7e6ae84da  /lib64/libstdc++.so.6

Well,.. it's definitely the rebuilt library and --enable-initfini-array is not
part of the passed options anymore, however readelf -S shows that those
sections still exist

  [18] .init_array       INIT_ARRAY       00000000001e6558  000e6558
       0000000000000040  0000000000000000  WA       0     0     8
  [19] .fini_array       FINI_ARRAY       00000000001e6598  000e6598
       0000000000000008  0000000000000000  WA       0     0     8
...
  [24] .plt              PROGBITS         00000000001ecc00  000ecc00
       0000000000005820  0000000000000020 WAX       0     0     256

are there any of the options that I used that would reenable initfini-array?


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (30 preceding siblings ...)
  2013-01-09 16:01 ` philip.copeland at oracle dot com
@ 2013-01-09 16:07 ` paolo.carlini at oracle dot com
  2013-01-09 17:27 ` philip.copeland at oracle dot com
                   ` (11 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-01-09 16:07 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #32 from Paolo Carlini <paolo.carlini at oracle dot com> 2013-01-09 16:07:19 UTC ---
Well, if you don't pass anything an autoconf test tries to figure out:

--enable-initfini-array
    Force the use of sections .init_array and .fini_array (instead of .init and
.fini) for constructors and destructors. Option --disable-initfini-array has
the opposite effect. If neither option is specified, the configure script will
try to guess whether the .init_array and .fini_array sections are supported
and, if they are, use them.

I would quickly test passing an explicit --disable-initfini-array


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (31 preceding siblings ...)
  2013-01-09 16:07 ` paolo.carlini at oracle dot com
@ 2013-01-09 17:27 ` philip.copeland at oracle dot com
  2013-01-09 19:17 ` ebotcazou at gcc dot gnu.org
                   ` (10 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-09 17:27 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #33 from philip.copeland at oracle dot com 2013-01-09 17:27:18 UTC ---
Ok,. thats 4.8.0 (gcc-trunk) rebuilt and tested.. fails

bash-4.2# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/sparc64-redhat-linux/4.8.0/lto-wrapper
Target: sparc64-redhat-linux
Configured with: ./configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
--enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --disable-build-with-cxx
--disable-build-poststage1-with-cxx --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--enable-linker-build-id --with-linker-hash-style=gnu
--enable-languages=c,c++,objc,obj-c++ --enable-plugin --with-ppl --with-cloog
--with-long-double-128 --with-cpu=ultrasparc --disable-multilib
--build=sparc64-redhat-linux --disable-initfini-array
Thread model: posix


Breakpoint 1, __cxxabiv1::__cxa_get_globals ()
    at ../../.././libstdc++-v3/libsupc++/eh_globals.cc:63
63      { return get_global(); }
(gdb) stepi
0xfffff801001811fc      63      { return get_global(); }
(gdb) 
0xfffff80100181200      63      { return get_global(); }
(gdb) 
0xfffff80100181204      63      { return get_global(); }
(gdb) 
0xfffff8010030e510 in ?? () from /lib64/libstdc++.so.6

(gdb) disassemble
No function contains program counter for selected frame.
(gdb) x/1xg 0xfffff8010030e510
0xfffff8010030e510:     0xfffff8010017dce0
(gdb) disassemble 0xfffff8010017dce0
Dump of assembler code for function
_GLOBAL__sub_I_compatibility_thread_c__0x.cc(void):
   0xfffff8010017dce0 <+0>:     save  %sp, -176, %sp
   0xfffff8010017dce4 <+4>:     sethi  %hi(0x196000), %l7
   0xfffff8010017dce8 <+8>:     call  0xfffff8010017e4e0
<__sparc_get_pc_thunk.l7>
   0xfffff8010017dcec <+12>:    add  %l7, 0x318, %l7    ! 0x196318
   0xfffff8010017dcf0 <+16>:    call  0xfffff80100316300
<_ZSt15future_categoryv@plt>
   0xfffff8010017dcf4 <+20>:    nop 
   0xfffff8010017dcf8 <+24>:    sethi  %hi(0x800), %g1
   0xfffff8010017dcfc <+28>:    xor  %g1, 0x50, %g1
   0xfffff8010017dd00 <+32>:    ldx  [ %l7 + %g1 ], %g1
   0xfffff8010017dd04 <+36>:    stx  %o0, [ %g1 ]
   0xfffff8010017dd08 <+40>:    rett  %i7 + 8
   0xfffff8010017dd0c <+44>:    nop 
End of assembler dump.
-------------------------------------------------------------------------------
readelf -S /lib64/libstdc++.so.6

There are 41 section headers, starting at offset 0x584f70:

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .note.gnu.build-i NOTE             0000000000000200  00000200
       0000000000000024  0000000000000000   A       0     0     4
  [ 2] .gnu.hash         GNU_HASH         0000000000000228  00000228
       0000000000005a1c  0000000000000000   A       3     0     8
  [ 3] .dynsym           DYNSYM           0000000000005c48  00005c48
       0000000000016a58  0000000000000018   A       4     4     8
  [ 4] .dynstr           STRTAB           000000000001c6a0  0001c6a0
       00000000000278e1  0000000000000000   A       0     0     1
  [ 5] .gnu.version      VERSYM           0000000000043f82  00043f82
       0000000000001e32  0000000000000002   A       3     0     2
  [ 6] .gnu.version_d    VERDEF           0000000000045db8  00045db8
       00000000000003f4  0000000000000000   A       4    29     8
  [ 7] .gnu.version_r    VERNEED          00000000000461b0  000461b0
       00000000000000a0  0000000000000000   A       4     3     8
  [ 8] .rela.dyn         RELA             0000000000046250  00046250
       000000000000fc18  0000000000000018   A       3     0     8
  [ 9] .rela.plt         RELA             0000000000055e68  00055e68
       0000000000003e28  0000000000000018   A       3    25     8
  [10] .init             PROGBITS         0000000000059c90  00059c90
       0000000000000048  0000000000000000  AX       0     0     4
  [11] .text             PROGBITS         0000000000059ce0  00059ce0
       00000000000711e0  0000000000000000  AX       0     0     32
  [12] .fini             PROGBITS         00000000000caec0  000caec0
       0000000000000014  0000000000000000  AX       0     0     4
  [13] .rodata           PROGBITS         00000000000caee0  000caee0
       0000000000005e20  0000000000000000   A       0     0     16
  [14] .eh_frame_hdr     PROGBITS         00000000000d0d00  000d0d00
       00000000000048f4  0000000000000000   A       0     0     4
  [15] .eh_frame         PROGBITS         00000000000d55f8  000d55f8
       000000000000eab4  0000000000000000   A       0     0     8
  [16] .gcc_except_table PROGBITS         00000000000e40ac  000e40ac
       00000000000046ba  0000000000000000   A       0     0     4
  [17] .tbss             NOBITS           00000000001ea510  000ea510
       0000000000000020  0000000000000000 WAT       0     0     8
  [18] .init_array       INIT_ARRAY       00000000001ea510  000ea510
       0000000000000038  0000000000000000  WA       0     0     8
  [19] .ctors            PROGBITS         00000000001ea548  000ea548
       0000000000000010  0000000000000000  WA       0     0     8
  [20] .dtors            PROGBITS         00000000001ea558  000ea558
       0000000000000010  0000000000000000  WA       0     0     8
  [21] .jcr              PROGBITS         00000000001ea568  000ea568
       0000000000000008  0000000000000000  WA       0     0     8
  [22] .data.rel.ro      PROGBITS         00000000001ea570  000ea570
       0000000000005870  0000000000000000  WA       0     0     8
  [23] .dynamic          DYNAMIC          00000000001efde0  000efde0
       0000000000000220  0000000000000010  WA       4     0     8
  [24] .got              PROGBITS         00000000001f0000  000f0000
       0000000000000c00  0000000000000008  WA       0     0     8
  [25] .plt              PROGBITS         00000000001f0c00  000f0c00
       0000000000005360  0000000000000020 WAX       0     0     256
  [26] .data             PROGBITS         00000000001f5f60  000f5f60
       00000000000002d0  0000000000000000  WA       0     0     8
  [27] .bss              NOBITS           00000000001f6230  000f6230
       0000000000014910  0000000000000000  WA       0     0     16
  [28] .comment          PROGBITS         0000000000000000  000f6230
       0000000000000055  0000000000000001  MS       0     0     1
  [29] .debug_aranges    PROGBITS         0000000000000000  000f6285
       000000000000b060  0000000000000000           0     0     1
  [30] .debug_info       PROGBITS         0000000000000000  001012e5
       0000000000219760  0000000000000000           0     0     1
  [31] .debug_abbrev     PROGBITS         0000000000000000  0031aa45
       00000000000264a7  0000000000000000           0     0     1
  [32] .debug_line       PROGBITS         0000000000000000  00340eec
       0000000000043052  0000000000000000           0     0     1
  [33] .debug_frame      PROGBITS         0000000000000000  00383f40
       0000000000000510  0000000000000000           0     0     8
  [34] .debug_str        PROGBITS         0000000000000000  00384450
       000000000005829b  0000000000000001  MS       0     0     1
  [35] .debug_loc        PROGBITS         0000000000000000  003dc6eb
       000000000013a849  0000000000000000           0     0     1
  [36] .debug_ranges     PROGBITS         0000000000000000  00516f34
       000000000006de80  0000000000000000           0     0     1
  [37] .gnu.attributes   LOOS+ffffff5     0000000000000000  00584db4
       0000000000000020  0000000000000000   E       0     0     1
  [38] .shstrtab         STRTAB           0000000000000000  00584dd4
       0000000000000195  0000000000000000           0     0     1
  [39] .symtab           SYMTAB           0000000000000000  005859b0
       000000000001ace8  0000000000000018          40   714     8
  [40] .strtab           STRTAB           0000000000000000  005a0698
       000000000002e401  0000000000000000           0     0     1


so
  [10] .init             PROGBITS         0000000000059c90  00059c90
  [12] .fini             PROGBITS         00000000000caec0  000caec0
  [18] .init_array       INIT_ARRAY       00000000001ea510  000ea510
  [25] .plt              PROGBITS         00000000001f0c00  000f0c00
exist and .fini_array has vanished (or been renamed)

Let me ask, is it g++ itself that assembles the header or is it passed off to
elfutils or similar? Meanwhile I'll rebuild 4.7.2-8 with
--disable-initfini-array explicitly set though  I don't think I'm going to see
much difference.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (32 preceding siblings ...)
  2013-01-09 17:27 ` philip.copeland at oracle dot com
@ 2013-01-09 19:17 ` ebotcazou at gcc dot gnu.org
  2013-01-11 17:19 ` philip.copeland at oracle dot com
                   ` (9 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2013-01-09 19:17 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #34 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2013-01-09 19:17:00 UTC ---
> so
>   [10] .init             PROGBITS         0000000000059c90  00059c90
>   [12] .fini             PROGBITS         00000000000caec0  000caec0
>   [18] .init_array       INIT_ARRAY       00000000001ea510  000ea510
>   [25] .plt              PROGBITS         00000000001f0c00  000f0c00
> exist and .fini_array has vanished (or been renamed)
> 
> Let me ask, is it g++ itself that assembles the header or is it passed off to
> elfutils or similar? Meanwhile I'll rebuild 4.7.2-8 with
> --disable-initfini-array explicitly set though  I don't think I'm going to see
> much difference.

The (static) linker creates executables or shared libraries from the object
files generated by the compiler and from the system startup files.

What's the system compiler on your machine?  Is there an earlier C++ compiler
that you can install and test?


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (33 preceding siblings ...)
  2013-01-09 19:17 ` ebotcazou at gcc dot gnu.org
@ 2013-01-11 17:19 ` philip.copeland at oracle dot com
  2013-01-11 17:21 ` philip.copeland at oracle dot com
                   ` (8 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-11 17:19 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #35 from philip.copeland at oracle dot com 2013-01-11 17:19:06 UTC ---
(Sorry for the delay in getting back to you)
I've multipass recompiled all the affected packages associated with gcc/glibc
over the last day which has taken quite some time, to try and be sure that none
of the support packages are deficient.

Paolo directed me to wade through the test-suites to look for anything odd
about the TLS results,.. and nothing seemed to be untoward until he mentioned
that he didn't see any thread_local tests

A bit of headscratching, initially the thought was that
   // { dg-require-effective-target tls }  was false,

however { dg-require-effective-target tls } can't be just false, because the
diag-1.C etc tests from the TLS testsuite were run (successfully).  I need to
understand what triggers the tls support. It can't be that tls isn't supported
because the base compiler I used

gcc-4.4.6-3
glibc-2.12

can compile up the test program with tls and complete successfully.

The only immediate code difference I see which probably has no impact is that
the older 4.4.6 code uses
61      extern "C" __cxa_eh_globals*
62      __cxxabiv1::__cxa_get_globals() throw()
63      { return get_global(); }

whereas the newer 4.7.2 codebase uses
62      __cxxabiv1::__cxa_get_globals() _GLIBCXX_NOTHROW

(can't immediately tell what _GLIBCXX_NOTHROW expands to or comes from, but
I'll work it out)

This is the test program disassembled at the same point when compiled with
older gcc 4.4.6
(gdb) disassemble
Dump of assembler code for function __cxxabiv1::__cxa_get_globals():
   0xfffff801001ee760 <+0>:     save  %sp, -176, %sp
   0xfffff801001ee764 <+4>:     sethi  %hi(0xc00), %o0
   0xfffff801001ee768 <+8>:     sethi  %hi(0), %i0
   0xfffff801001ee76c <+12>:    sethi  %hi(0x12d800), %l7
   0xfffff801001ee770 <+16>:    call  0xfffff801001ee700
   0xfffff801001ee774 <+20>:    add  %l7, 0x90, %l7     ! 0x12d890
=> 0xfffff801001ee778 <+24>:    add  %o0, 0x80, %o0
   0xfffff801001ee77c <+28>:    xor  %i0, 0x10, %i0
   0xfffff801001ee780 <+32>:    call  0xfffff8010031fce0 <__tls_get_addr@plt>
   0xfffff801001ee784 <+36>:    add  %l7, %o0, %o0
   0xfffff801001ee788 <+40>:    add  %o0, %i0, %i0
   0xfffff801001ee78c <+44>:    rett  %i7 + 8
   0xfffff801001ee790 <+48>:    nop 
End of assembler dump.

So tls DID exist and was being used. I think I can assume that tls support
didn't go away for sparc64 in later gcc releases. (I also threw the binary
against readelf -S
[root@localhost ~]# readelf -S /tmp/test | egrep "init|fini|array"
  [11] .init             PROGBITS         0000000000100608  00000608
  [13] .fini             PROGBITS         0000000000100980  00000980

so the older fedora 4.4.6 gcc didn't use initfini-array (if it was even an
available option back then)

So this leaves me in the situation of not understanding what nudges gcc into
supporting tls thread_local etc.It's like it's only partially implemented.

(adding testcase snippet attachment)


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (34 preceding siblings ...)
  2013-01-11 17:19 ` philip.copeland at oracle dot com
@ 2013-01-11 17:21 ` philip.copeland at oracle dot com
  2013-01-11 17:56 ` ebotcazou at gcc dot gnu.org
                   ` (7 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-11 17:21 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #36 from philip.copeland at oracle dot com 2013-01-11 17:20:35 UTC ---
Created attachment 29149
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29149
g++/gcc testsuite results

g++/gcc testsuite results


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (35 preceding siblings ...)
  2013-01-11 17:21 ` philip.copeland at oracle dot com
@ 2013-01-11 17:56 ` ebotcazou at gcc dot gnu.org
  2013-01-12 14:11 ` philip.copeland at oracle dot com
                   ` (6 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2013-01-11 17:56 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #37 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2013-01-11 17:55:38 UTC ---
> So tls DID exist and was being used. I think I can assume that tls support
> didn't go away for sparc64 in later gcc releases. (I also threw the binary
> against readelf -S
> [root@localhost ~]# readelf -S /tmp/test | egrep "init|fini|array"
>   [11] .init             PROGBITS         0000000000100608  00000608
>   [13] .fini             PROGBITS         0000000000100980  00000980
> 
> so the older fedora 4.4.6 gcc didn't use initfini-array (if it was even an
> available option back then)

My gut feeling is that --enable-initfini-array is completely broken.  You need
to find out where the .init_array section comes from for your recompiled
libstdc++.
This could be from the glibc, in which case you need to replace it.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (36 preceding siblings ...)
  2013-01-11 17:56 ` ebotcazou at gcc dot gnu.org
@ 2013-01-12 14:11 ` philip.copeland at oracle dot com
  2013-01-13  9:07 ` ebotcazou at gcc dot gnu.org
                   ` (5 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-12 14:11 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #38 from philip.copeland at oracle dot com 2013-01-12 14:10:52 UTC ---
Ugh,...
well, the good news is that I can now compile this successfully. I didn't even
need to rebuild gcc. (although I will just to follow through on Eric's
suggestion since I didn't find anything terrifically useful as a test for the
initfini-array elf header sections)

Fedora's glibc does not specifically pass --with-tls, and it is assumed that
this is automatically picked up by the configure script (it isn't but I need to
examine that as to why a bit later)

By forcing --with-tls through the configure script and reinstalling the glibc,
g++ seems to notice glibc supporting tls and generates the code necessary for
it.

The rebuilt gcc-4.7.2-8 without initfini-array support produces the same
testsuite results as previously mentioned in #c10 and #c12


+ CC=/builddir/build/BUILD/gcc-4.7.2-20121109/obj-sparc64-redhat-linux/gcc64
+ CFLAGS='-O2 -g -Wall -fexceptions -fstack-protector --param=ssp-buffer-size=4
-mcpu=ultrasparc'
++ echo -O2 -g -Wall -fexceptions -fstack-protector --param=ssp-buffer-size=4
-mcpu=ultrasparc
++ sed 's/ -Wall / /g'
+ CXXFLAGS='-O2 -g -fexceptions -fstack-protector --param=ssp-buffer-size=4
-mcpu=ultrasparc'
+ XCFLAGS='-O2 -g -Wall -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -mcpu=ultrasparc
'
+ TCFLAGS='-O2 -g -Wall -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -mcpu=ultrasparc
'
+ GCJFLAGS='-O2 -g -Wall -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -mcpu=ultraspar
c'
+ ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap
--enable-shared --enable-threads=posix --enable-checking=release
--disable-build-with-cxx --disable-build-poststage1-with-cxx --with-system-zlib
--enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object
--enable-linker-build-id --with-linker-hash-style=gnu
--enable-languages=c,c++,objc,obj-c++,java,fortran,lto --enable-plugin
--enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--disable-libjava-multilib --with-ppl --with-cloog --with-long-double-128
--with-cpu=ultrasparc --disable-multilib --disable-initfini-array
--build=sparc64-redhat-linux

<just in case there was some discrepancy with what was passed into configure
and what got built..>

<mock-chroot>[root@localhost ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/sparc64-redhat-linux/4.7.2/lto-wrapper
Target: sparc64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
--enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --disable-build-with-cxx
--disable-build-poststage1-with-cxx --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--enable-linker-build-id --with-linker-hash-style=gnu
--enable-languages=c,c++,objc,obj-c++,java,fortran,lto --enable-plugin
--enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--disable-libjava-multilib --with-ppl --with-cloog --with-long-double-128
--with-cpu=ultrasparc --disable-multilib --disable-initfini-array
--build=sparc64-redhat-linux
Thread model: posix
gcc version 4.7.2 20121109 (Red Hat 4.7.2-8) (GCC) 


<mock-chroot>[root@localhost tmp]# g++ test.c -o test
<mock-chroot>[root@localhost tmp]# ./test
we are able to write to stderr
<mock-chroot>[root@localhost tmp]#

also works
however,..

<mock-chroot>[root@localhost tmp]# readelf -S  ./test | egrep "init|fini|array"
  [11] .init             PROGBITS         0000000000100628  00000628
  [13] .fini             PROGBITS         0000000000100b60  00000b60
  [17] .init_array       INIT_ARRAY       0000000000200c78  00000c78

.init_array somehow crept into binary despite being specifically disabled. I
dunno if that was supposed to happen but it hasn't shown any ill effect as yet


So my last thoughts are, what exactly do we loose by not supporting
initfini_array on sparc?
--------------------------------------------------------------------------------
(From various googled sources and the gnu install.texi file):
.init_array
    An array of function pointers that contributes to a single initialization
array for the executable or shared object containing the section.

.fini_array
    An array of function pointers that contribute to a single termination array
for the executable or shared object containing the section."

--enable-initfini-array
Force the use of sections {.init_array} and {.fini_array}
(instead of {.init} and {.fini}) for constructors and
destructors.  Option {--disable-initfini-array} has the
opposite effect.  If neither option is specified, the configure script
will try to guess whether the {.init_array} and
{.fini_array} sections are supported and, if they are, use them.
--------------------------------------------------------------------------------

My reading of this is that .fini and .init will do just fine but only support
one function whereas the *_array sections can store numerous functions. I'm
guessing this is a load efficiency saver for the linker but wouldn't affect
normal program execution speed?


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (37 preceding siblings ...)
  2013-01-12 14:11 ` philip.copeland at oracle dot com
@ 2013-01-13  9:07 ` ebotcazou at gcc dot gnu.org
  2013-01-13  9:18 ` philip.copeland at oracle dot com
                   ` (4 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2013-01-13  9:07 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #39 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2013-01-13 09:07:24 UTC ---
> By forcing --with-tls through the configure script and reinstalling the glibc,
> g++ seems to notice glibc supporting tls and generates the code necessary for
> it.

So, in the end, it's glibc not being correctly configured with TLS support?

> My reading of this is that .fini and .init will do just fine but only support
> one function whereas the *_array sections can store numerous functions. I'm
> guessing this is a load efficiency saver for the linker but wouldn't affect
> normal program execution speed?

Yes, this is supposed to improve startup performances.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (38 preceding siblings ...)
  2013-01-13  9:07 ` ebotcazou at gcc dot gnu.org
@ 2013-01-13  9:18 ` philip.copeland at oracle dot com
  2013-01-13  9:47 ` ebotcazou at gcc dot gnu.org
                   ` (3 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: philip.copeland at oracle dot com @ 2013-01-13  9:18 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #40 from philip.copeland at oracle dot com 2013-01-13 09:18:16 UTC ---
Seems that way 8/
I do apologise for consuming so much of everyone's time. My only defence being
it wasn't terribly obvious without the comparison of assembler in #24, and an
over reliance on the configure scripts filling in the blanks.

Not sure if that is a deficiency that can be tested for/warned against between
glibc/gcc


Phil
=--=


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (39 preceding siblings ...)
  2013-01-13  9:18 ` philip.copeland at oracle dot com
@ 2013-01-13  9:47 ` ebotcazou at gcc dot gnu.org
  2013-01-13 11:32 ` jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  43 siblings, 0 replies; 45+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2013-01-13  9:47 UTC (permalink / raw)
  To: gcc-bugs


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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|                            |INVALID

--- Comment #41 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2013-01-13 09:47:29 UTC ---
> I do apologise for consuming so much of everyone's time. My only defence being
> it wasn't terribly obvious without the comparison of assembler in #24, and an
> over reliance on the configure scripts filling in the blanks.

No need for any apology here.  And you did all the real work...

> Not sure if that is a deficiency that can be tested for/warned against between
> glibc/gcc

Clearly something went wrong on the Fedora side, as I don't understand how they
can ship a glibc without TLS support in 2012.  That's worth reporting to them
(if not already done).  Maybe the TLS detection mechanism could be improved on
the compiler side, but that's not easy when you're not compiling in native
mode.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (40 preceding siblings ...)
  2013-01-13  9:47 ` ebotcazou at gcc dot gnu.org
@ 2013-01-13 11:32 ` jakub at gcc dot gnu.org
  2013-01-30  9:42 ` ebotcazou at gcc dot gnu.org
  2013-03-27 10:22 ` ebotcazou at gcc dot gnu.org
  43 siblings, 0 replies; 45+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-01-13 11:32 UTC (permalink / raw)
  To: gcc-bugs


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #42 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-13 11:31:35 UTC ---
TLS is supported in Fedora glibc obviously, the issue is likely with the sorry
state of the Fedora/SPARC port, which is essentially unmaintained.  So it must
be something SPARC specific.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (41 preceding siblings ...)
  2013-01-13 11:32 ` jakub at gcc dot gnu.org
@ 2013-01-30  9:42 ` ebotcazou at gcc dot gnu.org
  2013-03-27 10:22 ` ebotcazou at gcc dot gnu.org
  43 siblings, 0 replies; 45+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2013-01-30  9:42 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #43 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2013-01-30 09:41:52 UTC ---
> TLS is supported in Fedora glibc obviously, the issue is likely with the sorry
> state of the Fedora/SPARC port, which is essentially unmaintained.  So it must
> be something SPARC specific.

This might be related to PR binutils/15056:
  http://sourceware.org/bugzilla/show_bug.cgi?id=15056
which reports that TLS is broken for the SPARC in the latest binutils release.


^ permalink raw reply	[flat|nested] 45+ messages in thread

* [Bug target/55909] libtool test exposes what I think is some alignment issue in libstdc++
  2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
                   ` (42 preceding siblings ...)
  2013-01-30  9:42 ` ebotcazou at gcc dot gnu.org
@ 2013-03-27 10:22 ` ebotcazou at gcc dot gnu.org
  43 siblings, 0 replies; 45+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2013-03-27 10:22 UTC (permalink / raw)
  To: gcc-bugs


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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |marc.girod at gmail dot com

--- Comment #44 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2013-03-27 10:22:44 UTC ---
*** Bug 56734 has been marked as a duplicate of this bug. ***


^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2013-03-27 10:22 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-08 17:05 [Bug libstdc++/55909] New: libtool test exposes what I think is some alignment issue in libstd++ philip.copeland at oracle dot com
2013-01-08 17:24 ` [Bug libstdc++/55909] libtool test exposes what I think is some alignment issue in libstdc++ paolo.carlini at oracle dot com
2013-01-08 17:59 ` philip.copeland at oracle dot com
2013-01-08 18:45 ` paolo.carlini at oracle dot com
2013-01-08 19:01 ` philip.copeland at oracle dot com
2013-01-09  1:01 ` pinskia at gcc dot gnu.org
2013-01-09  1:07 ` pinskia at gcc dot gnu.org
2013-01-09  1:33 ` philip.copeland at oracle dot com
2013-01-09  2:24 ` paolo.carlini at oracle dot com
2013-01-09  2:32 ` philip.copeland at oracle dot com
2013-01-09  6:10 ` philip.copeland at oracle dot com
2013-01-09  6:26 ` pinskia at gcc dot gnu.org
2013-01-09  6:27 ` [Bug target/55909] " philip.copeland at oracle dot com
2013-01-09  6:28 ` philip.copeland at oracle dot com
2013-01-09  8:27 ` philip.copeland at oracle dot com
2013-01-09  9:07 ` philip.copeland at oracle dot com
2013-01-09 10:13 ` mikpe at it dot uu.se
2013-01-09 10:19 ` paolo.carlini at oracle dot com
2013-01-09 10:32 ` mikpe at it dot uu.se
2013-01-09 10:37 ` philip.copeland at oracle dot com
2013-01-09 10:50 ` paolo.carlini at oracle dot com
2013-01-09 10:52 ` paolo.carlini at oracle dot com
2013-01-09 10:59 ` philip.copeland at oracle dot com
2013-01-09 11:07 ` paolo.carlini at oracle dot com
2013-01-09 11:51 ` ebotcazou at gcc dot gnu.org
2013-01-09 12:21 ` philip.copeland at oracle dot com
2013-01-09 12:42 ` mikpe at it dot uu.se
2013-01-09 12:46 ` mikpe at it dot uu.se
2013-01-09 14:50 ` paolo.carlini at oracle dot com
2013-01-09 15:29 ` philip.copeland at oracle dot com
2013-01-09 15:46 ` ebotcazou at gcc dot gnu.org
2013-01-09 16:01 ` philip.copeland at oracle dot com
2013-01-09 16:07 ` paolo.carlini at oracle dot com
2013-01-09 17:27 ` philip.copeland at oracle dot com
2013-01-09 19:17 ` ebotcazou at gcc dot gnu.org
2013-01-11 17:19 ` philip.copeland at oracle dot com
2013-01-11 17:21 ` philip.copeland at oracle dot com
2013-01-11 17:56 ` ebotcazou at gcc dot gnu.org
2013-01-12 14:11 ` philip.copeland at oracle dot com
2013-01-13  9:07 ` ebotcazou at gcc dot gnu.org
2013-01-13  9:18 ` philip.copeland at oracle dot com
2013-01-13  9:47 ` ebotcazou at gcc dot gnu.org
2013-01-13 11:32 ` jakub at gcc dot gnu.org
2013-01-30  9:42 ` ebotcazou at gcc dot gnu.org
2013-03-27 10:22 ` ebotcazou at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).