2016-08-05 10:17:23 |
Giuseppe D'Angelo |
bug |
|
|
added bug |
2016-08-05 10:17:59 |
Giuseppe D'Angelo |
affects |
libc++ (Ubuntu) |
ubuntu |
|
2016-08-05 10:18:25 |
Giuseppe D'Angelo |
affects |
ubuntu |
libc++ (Ubuntu) |
|
2016-09-06 11:39:21 |
Launchpad Janitor |
libc++ (Ubuntu): status |
New |
Confirmed |
|
2016-10-12 11:06:23 |
Pierre Backlund |
bug |
|
|
added subscriber Pierre Backlund |
2017-06-25 08:51:37 |
VestniK |
attachment added |
|
proposed patch to the deb package in xenial https://bugs.launchpad.net/ubuntu/+source/libc++/+bug/1610168/+attachment/4902706/+files/libcxx-debdiff |
|
2017-06-25 13:20:31 |
Ubuntu Foundations Team Bug Bot |
tags |
|
patch |
|
2017-06-25 13:20:55 |
Ubuntu Foundations Team Bug Bot |
bug |
|
|
added subscriber Ubuntu Sponsors Team |
2017-08-30 11:28:05 |
Simon Quigley |
removed subscriber Ubuntu Sponsors Team |
|
|
|
2017-08-30 14:23:33 |
Giuseppe D'Angelo |
description |
This is mirroring Debian bug #808086 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808086
Compiling any source file that includes <string> with clang 3.8 and -std=c++11 -stdlib=libc++ results in a compile error.
While this is a minor bug in Debian (as it doesn't ship 3.8 yet), xenial does, and that's a major problem as it makes libc++ useless.
clang: warning: argument unused during compilation: '-stdlib=libc++'
In file included from test.cpp:1:
In file included from /usr/include/c++/v1/iostream:38:
In file included from /usr/include/c++/v1/ios:216:
In file included from /usr/include/c++/v1/__locale:15:
/usr/include/c++/v1/string:1938:44: error: 'basic_string<_CharT, _Traits, _Allocator>' is missing exception specification 'noexcept(is_nothrow_copy_constructible<allocator_type>::value)'
basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
^
/usr/include/c++/v1/string:1326:76: note: previous declaration is here
__attribute__ ((__visibility__("hidden"), __always_inline__)) explicit basic_string(const allocator_type& __a)
^
1 error generated. |
This is mirroring Debian bug #808086 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808086
Compiling any source file that includes <string> with clang 3.8 and -std=c++11 -stdlib=libc++ results in a compile error.
While this is a minor bug in Debian (as it doesn't ship 3.8 yet), xenial does, and that's a major problem as it makes libc++ useless.
clang: warning: argument unused during compilation: '-stdlib=libc++'
In file included from test.cpp:1:
In file included from /usr/include/c++/v1/iostream:38:
In file included from /usr/include/c++/v1/ios:216:
In file included from /usr/include/c++/v1/__locale:15:
/usr/include/c++/v1/string:1938:44: error: 'basic_string<_CharT, _Traits, _Allocator>' is missing exception specification 'noexcept(is_nothrow_copy_constructible<allocator_type>::value)'
basic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)
^
/usr/include/c++/v1/string:1326:76: note: previous declaration is here
__attribute__ ((__visibility__("hidden"), __always_inline__)) explicit basic_string(const allocator_type& __a)
^
1 error generated.
--
Update (30 Aug 2017): as per https://wiki.ubuntu.com/StableReleaseUpdates :
[Impact]
This bug makes it impossible to compile any C++11 source file that includes <string> with clang 3.8 using libc++. Any non-trivial C++11 codebase is affected, making the whole libc++ package useless.
[Test Case]
See above. Create a C++ file that simply contains #include <string> and compile it with clang++ -std=c++11 -stdlib=libc++ file.cpp.
[Regression Potential]
The current <string> header simply does not work with clang-3.8 under any condition, so there is no regression potential.
The regression potential for GCC is also extremely limited: no package whatsoever uses GCC in combination with libc++, and the fact that GCC 5.4 -- currently in Xenial -- does not detect the error that Clang detects is just showing that GCC is bugged in this regard.
[Other Info]
The patch/workaround fixes the problem. See also the discussion at the linked Debian bug report as well as https://stackoverflow.com/q/37096062 |
|
2017-08-30 14:24:25 |
Giuseppe D'Angelo |
bug |
|
|
added subscriber Ubuntu Bug Control |
2017-08-30 16:07:28 |
Gianfranco Costamagna |
libc++ (Ubuntu): importance |
Undecided |
High |
|
2017-08-30 16:07:38 |
Gianfranco Costamagna |
bug |
|
|
added subscriber LocutusOfBorg |
2017-08-31 06:05:26 |
Mathew Hodson |
bug watch added |
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808086 |
|
2017-08-31 06:05:26 |
Mathew Hodson |
bug task added |
|
libc++ (Debian) |
|
2017-08-31 06:07:48 |
Mathew Hodson |
nominated for series |
|
Ubuntu Xenial |
|
2017-08-31 09:33:50 |
Bug Watch Updater |
libc++ (Debian): status |
Unknown |
Fix Released |
|
2017-08-31 15:41:57 |
Brian Murray |
removed subscriber Ubuntu Bug Control |
|
|
|
2017-08-31 15:42:23 |
Brian Murray |
bug task added |
|
libc++ (Ubuntu Xenial) |
|
2017-09-01 01:58:24 |
Mathew Hodson |
libc++ (Ubuntu Xenial): importance |
Undecided |
High |
|
2017-09-01 01:59:26 |
Mathew Hodson |
bug |
|
|
added subscriber Mathew Hodson |
2017-09-01 14:32:54 |
Gianfranco Costamagna |
libc++ (Ubuntu Xenial): status |
New |
In Progress |
|
2017-09-01 14:33:54 |
Gianfranco Costamagna |
libc++ (Ubuntu): status |
Confirmed |
Fix Released |
|
2017-09-14 18:01:31 |
Brian Murray |
libc++ (Ubuntu Xenial): status |
In Progress |
Fix Committed |
|
2017-09-14 18:01:35 |
Brian Murray |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2017-09-14 18:01:39 |
Brian Murray |
bug |
|
|
added subscriber SRU Verification |
2017-09-14 18:01:45 |
Brian Murray |
tags |
patch |
patch verification-needed verification-needed-xenial |
|
2017-09-15 04:40:28 |
Mathew Hodson |
tags |
patch verification-needed verification-needed-xenial |
patch verification-done-xenial |
|
2017-09-28 16:47:45 |
Launchpad Janitor |
libc++ (Ubuntu Xenial): status |
Fix Committed |
Fix Released |
|
2017-09-28 16:47:49 |
Brian Murray |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|
2017-09-30 06:10:29 |
Mathew Hodson |
removed subscriber Mathew Hodson |
|
|
|