[Bug default/19097] New: ABI identity problem insufficient data stored for _M_buf_locale type

woodard at redhat dot com sourceware-bugzilla@sourceware.org
Thu Jan 1 00:00:00 GMT 2015


https://sourceware.org/bugzilla/show_bug.cgi?id=19097

            Bug ID: 19097
           Summary: ABI identity problem insufficient data stored for
                    _M_buf_locale type
           Product: libabigail
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: default
          Assignee: dodji at redhat dot com
          Reporter: woodard at redhat dot com
                CC: libabigail at sourceware dot org
  Target Milestone: ---

Created attachment 8692
  --> https://sourceware.org/bugzilla/attachment.cgi?id=8692&action=edit
File that reproduces the problem

It looks like some important detail about _M_buf_locale is being lost and that
creates a huge number of false positives regarding changes to the ABI in
libstdc++

ype260@ben:~/bin/abidw --abidiff
/collab/usr/global/tools/order/spack/opt/chaos_5_x86_64_ib/gcc@4.4.7/gcc@4.7.4-93774c82/lib64/libstdc++.so.6.0.17
2>&1 | head -40
Functions changes summary: 0 Removed, 119 Changed, 0 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

119 functions with some indirect sub-type change:

  [C]'method virtual std::basic_filebuf<char, std::char_traits<char>
>::__streambuf_type* std::basic_filebuf<char, std::char_traits<char>
>::setbuf(std::basic_filebuf<char, std::char_traits<char> >::char_type*,
std::streamsize)' has some indirect sub-type changes:
    return type changed:
      in pointed to type 'typedef std::basic_filebuf<char,
std::char_traits<char> >::__streambuf_type':
        underlying type 'class std::basic_streambuf<char,
std::char_traits<char> >' changed:
          1 data member change:
           type of 'std::locale std::basic_streambuf<char,
std::char_traits<char> >::_M_buf_locale' changed:

  [C]'method std::basic_filebuf<wchar_t, std::char_traits<wchar_t>
>::__filebuf_type* std::basic_filebuf<wchar_t, std::char_traits<wchar_t>
>::close()' has some indirect sub-type changes:
    return type changed:
      in pointed to type 'typedef std::basic_filebuf<wchar_t,
std::char_traits<wchar_t> >::__filebuf_type':
        underlying type 'class std::basic_filebuf<wchar_t,
std::char_traits<wchar_t> >' changed:
          1 base class change:
            'class std::basic_streambuf<wchar_t, std::char_traits<wchar_t> >'
changed:
              1 data member change:
               type of 'std::locale std::basic_streambuf<wchar_t,
std::char_traits<wchar_t> >::_M_buf_locale' changed:
                 details were reported earlier


          1 member function change:
            'method virtual std::basic_filebuf<wchar_t,
std::char_traits<wchar_t> >::__streambuf_type* std::basic_filebuf<wchar_t,
std::char_traits<wchar_t> >::setbuf(std::basic_filebuf<wchar_t,
std::char_traits<wchar_t> >::char_type*, std::streamsize)' has some sub-type
changes:
              return type changed:
                in pointed to type 'typedef std::basic_filebuf<wchar_t,
std::char_traits<wchar_t> >::__streambuf_type':
                  underlying type 'class std::basic_streambuf<wchar_t,
std::char_traits<wchar_t> >' changed, as reported earlier


  [C]'method std::basic_filebuf<wchar_t, std::char_traits<wchar_t>
>::__filebuf_type* std::basic_filebuf<wchar_t, std::char_traits<wchar_t>
>::open(const char*, std::ios_base::openmode)' has some indirect sub-type
changes:
    return type changed:
      in pointed to type 'typedef std::basic_filebuf<wchar_t,
std::char_traits<wchar_t> >::__filebuf_type':
        underlying type 'class std::basic_filebuf<wchar_t,
std::char_traits<wchar_t> >' changed, as reported earlier

...

It is not clear from the message what abidw thinks changed in the
__M_buf_locale it just says that it changed. I also believe that in cases like
this it might be helpful to print what aspect about the change in type actually
changed.

this was done with the dodji/fixes branch

-- 
You are receiving this mail because:
You are on the CC list for the bug.



More information about the Libabigail mailing list