Bug 1332306 - Review Request: libcxxabi - Low level support for a standard C++ library
Summary: Review Request: libcxxabi - Low level support for a standard C++ library
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Neal Gompa
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1332307
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-05-02 20:44 UTC by Tom "spot" Callaway
Modified: 2017-03-15 18:21 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-03-15 17:52:00 UTC
Type: ---
Embargoed:
ngompa13: fedora-review+


Attachments (Terms of Use)

Description Tom "spot" Callaway 2016-05-02 20:44:42 UTC
Spec URL: https://spot.fedorapeople.org/libcxxabi.spec
SRPM URL: https://spot.fedorapeople.org/libcxxabi-20160502-1.svn268296.fc24.src.rpm
Description: libcxxabi provides low level support for a standard C++ library.
Fedora Account System Username: spot

Note: Upstream has no versioning system that I can see, does no 'releases'. I need this package to support C++11 in R in EPEL. Also note, this package has a bootstrap cycle with libcxxabi.

Comment 2 schlaffi 2016-06-29 21:57:55 UTC
Just some positive feedback. Thanks for bringing libcxx and libcxxabi to fedora. For my use, I sometimes prefer/need to build with clang++ and libcxx. So it is not only the exotic "C++11 in R" case.

I ended here, because I was wondering why there is a libcxx but no libcxxabi. I think in (almost?) all cases libc++.so requires libc++abi.so. I see you added the dependency to libcxx. Looking forward to pull also libcxxabi from fedora updates :)

Comment 3 Mario Blättermann 2016-07-23 16:36:55 UTC
%{_libdir}/libc++abi.a is in the -devel package. Shouldn't this go in a separate -static package?

Comment 4 Tom "spot" Callaway 2016-07-25 16:39:50 UTC
Good catch:

New Spec: https://spot.fedorapeople.org/libcxxabi.spec
New SRPM: https://spot.fedorapeople.org/libcxxabi-3.8.0-2.fc24.src.rpm

Comment 5 Mario Blättermann 2016-07-29 19:51:35 UTC
There's a problem with the armv7hl architecture (x86_64 and i686 are OK so far), see the scratch build for f24:
http://koji.fedoraproject.org/koji/taskinfo?taskID=15063172

From build.log:

/builddir/build/BUILD/libcxxabi-3.8.0.src/src/cxa_exception.cpp:258:21: error: unknown type name '_Unwind_Control_Block'
        static_cast<_Unwind_Control_Block*>(unwind_exception)->barrier_cache.bitpattern[0]);
                    ^
/builddir/build/BUILD/libcxxabi-3.8.0.src/src/cxa_exception.cpp:258:62: error: member reference base type 'void' is not a structure or union
        static_cast<_Unwind_Control_Block*>(unwind_exception)->barrier_cache.bitpattern[0]);
                                            ~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~
/builddir/build/BUILD/libcxxabi-3.8.0.src/src/cxa_exception.cpp:409:71: error: no member named 'barrier_cache' in '_Unwind_Exception'
        return reinterpret_cast<void*>(exception_header->unwindHeader.barrier_cache.bitpattern[0]);
                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
3 errors generated.

Comment 6 Vincent S. Cojot 2017-01-19 22:08:12 UTC
Hi Tom,
I'm using a rebuild of your rpm to install X-Plane 11 on my F24 box. Seems to work fine so far.. :) Before that, I was getting this error an error about missing libc++abi.so.1.
Perhaps this should be included into Fedora as I am sure others will want to run X-Plane on Fedora.
My 2c,
Vincent

Comment 7 Neal Gompa 2017-02-15 12:42:33 UTC
Taking this review...

Comment 8 Jonathan Wakely 2017-02-15 13:05:14 UTC
(In reply to Tom "spot" Callaway from comment #0)
> Note: Upstream has no versioning system that I can see, does no 'releases'.
> I need this package to support C++11 in R in EPEL.

Could that be solved by using a libsupc++ from a newer GCC, which would be compatible with the rest of the OS?

What's the specific feature that is needed? We might be able to backport it to the RHEL libsupc++.

Has libcxxabi even been built on all the architectures Fedora and EPEL support? I seriously doubt it's been tested by upstream on all of them.

Comment 9 Jason Farrell 2017-02-16 22:37:19 UTC
Thanks for the SRPM, spot.

After a quick rpmbuild I was able to get the X-Plane 11 demo installer running.

Comment 11 Neal Gompa 2017-02-22 12:56:43 UTC
Review notes:

+ Package is named appropriately
+ Files are installed according to Fedora FHS
+ License is correctly marked and license file is included in library package
+ Subpackages are named in compliance with guidelines, and files are split appropriately.

PACKAGE APPROVED.

Comment 12 Gwyn Ciesla 2017-02-24 16:36:16 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/libcxxabi

Comment 13 Fedora Update System 2017-03-01 19:18:15 UTC
libcxxabi-3.8.1-2.fc25 libcxx-3.8.1-2.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-10562907fe

Comment 14 Fedora Update System 2017-03-01 19:18:29 UTC
libcxxabi-3.8.0-3.fc24 libcxx-3.8.0-5.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-409bad2fb2

Comment 15 Fedora Update System 2017-03-02 02:22:48 UTC
libcxx-3.8.1-2.fc25, libcxxabi-3.8.1-2.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-10562907fe

Comment 16 Fedora Update System 2017-03-02 02:53:20 UTC
libcxx-3.8.0-5.fc24, libcxxabi-3.8.0-3.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-409bad2fb2

Comment 17 schlaffi 2017-03-02 20:59:24 UTC
I expected a symlink to libc++abi.so. Otherwise, e.g.

$ clang++ -stdlib=c++ -lc++abi foo.cc

does not work for me.

Comment 18 Daniel Seither 2017-03-02 21:51:56 UTC
I get a symlink for libc++abi.so on Fedora 25 (x86_64):

lrwxrwxrwx. 1 root root   14  1. Mär 19:19 /usr/lib64/libc++abi.so -> libc++abi.so.1
lrwxrwxrwx. 1 root root   16  1. Mär 19:19 /usr/lib64/libc++abi.so.1 -> libc++abi.so.1.0
-rwxr-xr-x. 1 root root 270K  1. Mär 19:19 /usr/lib64/libc++abi.so.1.0

However, when using the Fedora-provided clang-3.8.1-1 and installing libcxx-3.8.1-2 and libcxxabi-3.8.1-2 from updates-testing, I need to manually add -lc++abi to my build command (just like schlaffi did). When using a binary build of clang from llvm.org, this is not necessary [0].

In the libcxx docs [1], it is explained that "some libc++ installations require the user manually link libc++abi themselves". Could this requirement be removed from the Fedora builds?

[0] At least as long as the libcxx and libcxxabi Fedora packages are not installed. Somehow clang uses the system-provided libs instead of its own.

[1] http://libcxx.llvm.org/docs/UsingLibcxx.html#using-libc-on-linux

Comment 19 Daniel Seither 2017-03-02 22:06:06 UTC
This seems to boil down to setting LIBCXX_ENABLE_ABI_LINKER_SCRIPT to ON (which is the default, see [0]) so that libc++.so is not a symlink but a text file with the contents "INPUT(libc++.so.1 -lc++abi)".

[0] http://libcxx.llvm.org/docs/BuildingLibcxx.html#cmdoption-arg-libcxx-enable-abi-linker-script

Comment 20 schlaffi 2017-03-03 07:01:09 UTC
Ah sorry, right, libc++abi.so is of course in libcxxabi-devel.

Comment 21 Fedora Update System 2017-03-04 22:39:00 UTC
libcxx-3.8.0-6.fc24 libcxxabi-3.8.0-3.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2017-409bad2fb2

Comment 22 Fedora Update System 2017-03-04 22:40:01 UTC
libcxx-3.8.1-3.fc25 libcxxabi-3.8.1-2.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-10562907fe

Comment 23 Tom "spot" Callaway 2017-03-04 22:42:00 UTC
(In reply to Daniel Seither from comment #19)
> This seems to boil down to setting LIBCXX_ENABLE_ABI_LINKER_SCRIPT to ON
> (which is the default, see [0]) so that libc++.so is not a symlink but a
> text file with the contents "INPUT(libc++.so.1 -lc++abi)".
> 
> [0]
> http://libcxx.llvm.org/docs/BuildingLibcxx.html#cmdoption-arg-libcxx-enable-
> abi-linker-script

Thanks Daniel. I've enabled the linker script in the latest Fedora builds (it is not enabled by default), and adjusted the updates accordingly.

Comment 24 Fedora Update System 2017-03-05 21:50:00 UTC
libcxx-3.8.1-3.fc25, libcxxabi-3.8.1-2.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-10562907fe

Comment 25 Fedora Update System 2017-03-05 21:50:05 UTC
libcxx-3.8.0-6.fc24, libcxxabi-3.8.0-3.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-409bad2fb2

Comment 26 Daniel Seither 2017-03-06 17:17:06 UTC
libcxx 3.8.1-3 works as expected. Thanks a lot! I can now finally retire my manual clang/libc++ installation :)

Comment 27 schlaffi 2017-03-07 17:31:54 UTC
libcxx-3.8.1-3 and libcxxabi-3.8.1-2 + devel work perfect here, too, also for compiling with clang. Also safes me a lot of manual work. Thanks!

Comment 28 Fedora Update System 2017-03-15 17:52:00 UTC
libcxx-3.8.0-6.fc24, libcxxabi-3.8.0-3.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 29 Fedora Update System 2017-03-15 18:21:57 UTC
libcxx-3.8.1-3.fc25, libcxxabi-3.8.1-2.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.