Boost logo

Boost Users :

Subject: Re: [Boost-users] [release] Boost 1.68.0 Beta 1 -> warnings in filesystem, locale, thread, stacktrace, container
From: Frédéric (ufospoke_at_[hidden])
Date: 2018-07-29 07:08:10


Hi,

I have tested 1.68.0 on linux x86_64 with the following compilers:
- g++ 8.2.0,
- clang++ 5.0.2,
- mingw-w64 + g++ 8.2.0 cross compiling to windows 32 bits,
- mingw-w64 + g++ 8.2.0 cross compiling to windows 64 bits,
- clang++ 5.0.2 cross compiliing to OSX 10.9 32 bits,
- clang++ 5.0.2 cross compiliing to OSX 10.9 64 bits.

I did not find any major issue. Just those warnings while building the
libraries:

* filesystem (g++ 8.2.0 and clang++ 5.0.2 on linux x86_64):

libs/filesystem/src/operations.cpp: Dans la fonction « int
{anonymous}::readdir_r_simulator(DIR*, dirent*, dirent**) »:
libs/filesystem/src/operations.cpp:2126:18: warning: « int
readdir_r(DIR*, dirent*, dirent**) » est obsolète
[-Wdeprecated-declarations]
       { return ::readdir_r(dirp, entry, result); }
                  ^~~~~~~~~
In file included from /usr/include/features.h:423,
                 from
/softs/gcc-8.2.0/include/c++/8.2.0/x86_64-pc-linux-gnu/bits/os_defines.h:39,
                 from
/softs/gcc-8.2.0/include/c++/8.2.0/x86_64-pc-linux-gnu/bits/c++config.h:508,
                 from /softs/gcc-8.2.0/include/c++/8.2.0/cstddef:49,
                 from ./boost/config/compiler/gcc.hpp:165,
                 from ./boost/config.hpp:39,
                 from ./boost/filesystem/operations.hpp:18,
                 from libs/filesystem/src/operations.cpp:68:
/usr/include/dirent.h:189:12: note: déclaré ici
 extern int __REDIRECT (readdir_r,
            ^~~~~~~~~~

* locale (many more than that one about deprecated std::auto_ptr):
I wonder when auto_ptr will be removed but it would be nice to change
it to unique_ptr.

In file included from libs/locale/src/util/default_locale.cpp:10:
./boost/locale/util.hpp:180:28: warning: « template<class> class
std::auto_ptr » est obsolète [-Wdeprecated-declarations]
     BOOST_LOCALE_DECL std::auto_ptr<base_converter> create_utf8_converter();
                            ^~~~~~~~
In file included from /softs/gcc-8.2.0/include/c++/8.2.0/bits/locale_conv.h:41,
                 from /softs/gcc-8.2.0/include/c++/8.2.0/locale:43,
                 from ./boost/locale/util.hpp:10,
                 from libs/locale/src/util/default_locale.cpp:10:
/softs/gcc-8.2.0/include/c++/8.2.0/bits/unique_ptr.h:53:28: note: déclaré ici
   template<typename> class auto_ptr;
                            ^~~~~~~~

* thead with mingw w64 cross compiling to windows 32 bits on linux
x86_64 with g++ 8.2.0:
I guess this warning is due to the fact that time_t is 32 bits on
windows 32 bits so this looks dangerous to me.

libs/thread/src/win32/thread_primitives.cpp: Dans la fonction «
boost::detail::win32::ticks_type
boost::detail::win32::{anonymous}::get_tick_count_init() »:
libs/thread/src/win32/thread_primitives.cpp:97:120: warning:
transtypage entre types de fonctions incompatibles de «
boost::winapi::FARPROC_ » {aka « int (__attribute__((stdcall)) *)() »}
vers « boost::detail::win32::detail::gettickcount64_t » {aka « long
long unsigned int (__attribute__((stdcall)) *)() »}
[-Wcast-function-type]
             (boost::detail::win32::detail::gettickcount64_t)boost::winapi::get_proc_address(hKernel32,
"GetTickCount64");

* stacktrace (windows 32 and 64 bits):

In file included from ./boost/winapi/file_management.hpp:17,
                 from ./boost/stacktrace/detail/safe_dump_win.ipp:20,
                 from ./boost/stacktrace/safe_dump_to.hpp:210,
                 from ./boost/stacktrace/frame.hpp:20,
                 from ./boost/stacktrace/detail/frame_unwind.ipp:15,
                 from libs/stacktrace/build/../src/basic.cpp:14:
./boost/winapi/overlapped.hpp:38:9: warning: le C++ ISO interdit les
structures anonymes [-Wpedantic]
         };
         ^

* iostreams (windows 64 bits):

libs/iostreams/src/mapped_file.cpp: Dans la fonction membre « void
boost::iostreams::detail::mapped_file_impl::try_map_file(boost::iostreams::detail::mapped_file_impl::param_type)
»:
libs/iostreams/src/mapped_file.cpp:324:29: warning: comparaison
d'expressions entières de types signés différents: «
boost::iostreams::stream_offset » {aka « long long int »} et «
boost::iostreams::mapped_file_source::size_type » {aka « long long
unsigned int »} [-Wsign-compare]
             (SIZE_T) (size_ != max_length ? size_ : 0),
                       ~~~~~~^~~~~~~~~~~~~
gcc.compile.c++
bin.v2/libs/iostreams/build/gcc-8.2.0/debug/link-static/target-os-windows/threading-multi/gzip.o

* container (OSX 32 and 64 bits, clang 5.0.2):
many locations with this warning:

In file included from libs/container/src/alloc_lib.c:24:
In file included from libs/container/src/dlmalloc_ext_2_8_6.c:36:
libs/container/src/dlmalloc_2_8_6.c:4085:27: warning: 'sbrk' is
deprecated [-Wdeprecated-declarations]
      char* base = (char*)CALL_MORECORE(0);
                          ^
libs/container/src/dlmalloc_2_8_6.c:1714:37: note: expanded from macro
'CALL_MORECORE'
        #define CALL_MORECORE(S) MORECORE_DEFAULT(S)
                                    ^
libs/container/src/dlmalloc_2_8_6.c:666:26: note: expanded from macro
'MORECORE_DEFAULT'
#define MORECORE_DEFAULT sbrk
                         ^
/softs/osxcross-10.9-5.0.2/bin/../SDK/MacOSX10.9.sdk/usr/include/unistd.h:580:1:
note: 'sbrk' has been explicitly marked deprecated here
__deprecated
^
/softs/osxcross-10.9-5.0.2/bin/../SDK/MacOSX10.9.sdk/usr/include/sys/cdefs.h:156:37:
note: expanded from macro '__deprecated'
#define __deprecated __attribute__((deprecated))
                                       ^


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