Boost logo

Boost :

Subject: Re: [boost] [timer] conflict between tools/inspect and libs/timer
From: Peter A. Bigot (pab_at_[hidden])
Date: 2013-12-26 18:16:55


On 12/26/2013 05:07 PM, Beman Dawes wrote:
> On Thu, Dec 26, 2013 at 4:17 PM, Peter A. Bigot <pab_at_[hidden]> wrote:
>
>> On 12/26/2013 09:20 AM, Peter A. Bigot wrote:
>>> A recent merge to master libs/timer includes support for inspect in the
>>> test suite, but the invocation requires support for a search-root
>>> argument in inspect. That support is not present in tools/inspect's
>>> master branch, causing the libs/timer tests to fail.
>> FWIW, b2 in libs/timer/test master works when tools/inspect and
>> libs/filesystem are both on their develop branch. If only tools/inspect
>> is on develop, inspect segfaults in boost::filesystem::initial_path()
>> during static initialization.
>>
> I haven't been able to reproduce that on Windows. What OS are you testing
> on?

Linux. Here's what I get:

llc[53]$
../../../bin.v2/tools/inspect/build/gcc-4.6/release/link-static/inspect
/opt/boost/libs/timer -text -brief
Segmentation fault (core dumped)
llc[54]$ printenv | grep LOCAL
XTERM_LOCALE=en_US.UTF-8
llc[55]$ unset XTERM_LOCALE
llc[56]$ printenv | grep LOCAL
llc[57]$
../../../bin.v2/tools/inspect/build/gcc-4.6/release/link-static/inspect
/opt/boost/libs/timer -text -brief
Segmentation fault (core dumped)
llc[58]$ gdb
../../../bin.v2/tools/inspect/build/gcc-4.6/release/link-static/inspect
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from
/opt/boost/bin.v2/tools/inspect/build/gcc-4.6/release/link-static/inspect...(no
debugging symbols found)...done.
(gdb) run /opt/boost/libs/timer -text -brief
Starting program:
/opt/boost/bin.v2/tools/inspect/build/gcc-4.6/release/link-static/inspect /opt/boost/libs/timer
-text -brief

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b3e495 in std::locale::locale(std::locale const&) () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) where
#0 0x00007ffff7b3e495 in std::locale::locale(std::locale const&) ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#1 0x000000000045257c in boost::filesystem::path::codecvt() ()
#2 0x000000000044b3c8 in
boost::filesystem::detail::current_path(boost::system::error_code*) ()
#3 0x000000000044b7a3 in
boost::filesystem::detail::initial_path(boost::system::error_code*) ()
#4 0x0000000000407b62 in _GLOBAL__sub_I_boost_no_inspect ()
#5 0x000000000045486d in __libc_csu_init ()
#6 0x00007ffff7525700 in __libc_start_main (main=0x4050e0 <main>,
argc=4, ubp_av=0x7fffffffde68, init=0x454810 <__libc_csu_init>,
fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7fffffffde58) at libc-start.c:185
#7 0x000000000040822d in _start ()
(gdb)

> Once tools/inspect was merged and fixed, inspect worked fine.

The above was after just pulling and updating the submodules.

After again checking out develop in libs/filesystem and re-invoking b2
it works:

llc[60]$
../../../bin.v2/tools/inspect/build/gcc-4.6/release/link-static/inspect
/opt/boost/libs/timer -text -brief
Boost Inspection Report
Run Date: 23:15:28 UTC, Thursday 26 December 2013

Totals:
   27 files scanned
   14 directories scanned (including root)
   21 problems reported

[other output elided]

So on Linux at least there seems to be another dependency.

Peter


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk