Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 651158

Summary: gnustep-base/libobjc2-1.8.1 : /.../cxxabi_init_exception.h:63:7: error:
Product: Gentoo Linux Reporter: Toralf Förster <toralf>
Component: Current packagesAssignee: Gentoo Gnustep project <gnustep>
Status: RESOLVED FIXED    
Severity: normal CC: alex
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge-info.txt
emerge-history.txt
environment
etc.portage.tbz2
gnustep-base:libobjc2-1.8.1:20180322-081915.log
logs.tbz2
temp.tbz2
libobjc2-1.8.1-r1.ebuild.patch
clang_cxa_allocate_exception.patch

Description Toralf Förster gentoo-dev 2018-03-22 15:45:39 UTC
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/g++-v7/exception:142:
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/g++-v7/bits/exception_ptr.h:38:
/usr/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/g++-v7/bits/cxxabi_init_exception.h:63:7: error: 
      exception specification in declaration does not match previous declaration
      __cxa_allocate_exception(size_t) _GLIBCXX_NOTHROW;
      ^

  -------------------------------------------------------------------

  This is an unstable amd64 chroot image at a tinderbox (==build bot)
  name: 17.0-no-multilib-hardened_20180315-195301

  -------------------------------------------------------------------

gcc-config -l:
 [1] x86_64-pc-linux-gnu-7.3.0 *

Available Python interpreters, in order of preference:
  [1]   python3.5
  [2]   python2.7 (fallback)
Available Ruby profiles:
  [1]   ruby22 (with Rubygems)
  [2]   ruby23 (with Rubygems) *
java-config:
The following VMs are available for generation-2:


emerge -qpv gnustep-base/libobjc2
[ebuild  N    ] gnustep-base/libobjc2-1.8.1  USE="cxx -boehm-gc {-test}" 

!!! The following installed packages are masked:
- app-backup/holland-backup-mysqldump-1.0.10::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Pacho Ramos <pacho@gentoo.org> (18 Mar 2018)
# Forces the usage of obsolete dev-python/mysql-python (#643502). Dead since
# 2013. Removal in a month.

- dev-python/flask-whooshalchemy-0.8::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Pacho Ramos <pacho@gentoo.org> (18 Mar 2018)
# Requires old whoosh (#643690). Removal in a month.

- dev-python/async-0.6.2::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Pacho Ramos <pacho@gentoo.org> (18 Mar 2018)
# No reverse deps, not working properly with python3 (#646718). Removal in a
# month.

- app-backup/holland-backup-mysql-meta-1.0.10::gentoo (masked by: package.mask)
- mail-filter/p3scan-2.3.2-r2::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Pacho Ramos <pacho@gentoo.org> (18 Mar 2018)
# Security vulnerable (#631720), dead since 2008, uses doman with compressed
# man pages (#619952). Removal in a month.

- app-backup/holland-lib-mysql-1.0.10::gentoo (masked by: package.mask)
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.
Comment 1 Toralf Förster gentoo-dev 2018-03-22 15:45:42 UTC
Created attachment 524828 [details]
emerge-info.txt
Comment 2 Toralf Förster gentoo-dev 2018-03-22 15:45:45 UTC
Created attachment 524830 [details]
emerge-history.txt
Comment 3 Toralf Förster gentoo-dev 2018-03-22 15:45:48 UTC
Created attachment 524832 [details]
environment
Comment 4 Toralf Förster gentoo-dev 2018-03-22 15:45:51 UTC
Created attachment 524834 [details]
etc.portage.tbz2
Comment 5 Toralf Förster gentoo-dev 2018-03-22 15:45:54 UTC
Created attachment 524836 [details]
gnustep-base:libobjc2-1.8.1:20180322-081915.log
Comment 6 Toralf Förster gentoo-dev 2018-03-22 15:45:57 UTC
Created attachment 524838 [details]
logs.tbz2
Comment 7 Toralf Förster gentoo-dev 2018-03-22 15:46:00 UTC
Created attachment 524840 [details]
temp.tbz2
Comment 8 Alex Barker 2018-03-24 01:14:34 UTC
Both 1.8 and 1.8.1 fail to build for the same reason.
Comment 9 Alex Barker 2018-04-03 19:28:54 UTC
Created attachment 526486 [details, diff]
libobjc2-1.8.1-r1.ebuild.patch

I have added a 1 line ebuild patch to fix the compile issues.  It looks like clang's default libc does not support __cxa_allocate_exception so it needs to be linked against gcc.  I doubt this is a good fix, but it appears to work around the issue with little effort.

A good portion of the warnings can be addressed by patching a couple of files, it looks like these were applied to the master branch but no release yet.

-./Makefile:CPPFLAGS += -D__OBJC_RUNTIME_INTERNAL__=1 -D_XOPEN_SOURCE=500 -D__BSD_VISIBLE=1 -D_BSD_SOURCE=1
-./CMakeLists.txt:add_definitions( -D_XOPEN_SOURCE=700 -D__BSD_VISIBLE=1 -D_BSD_SOURCE=1)

+./Makefile:CPPFLAGS += -D__OBJC_RUNTIME_INTERNAL__=1 -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE=1
+./CMakeLists.txt:add_definitions( -D_XOPEN_SOURCE=700 -D_DEFAULT_SOURCE=1)
Comment 10 Alex Barker 2018-04-03 20:59:27 UTC
Created attachment 526490 [details, diff]
clang_cxa_allocate_exception.patch

Patch suitable for /etc/portage/patches/gnustep-base/libobjc2 or epatch.  This also fixes a bunch of the warnings.  Last two seem to require a (cast) and are not addressed.
Comment 11 Alex Barker 2018-06-08 06:14:03 UTC
This should be fixed upstream.
Comment 12 Alex Barker 2018-06-08 06:14:25 UTC
https://github.com/gnustep/libobjc2/pull/68
Comment 13 Bernard Cafarelli gentoo-dev 2020-09-03 09:18:29 UTC
I see upstream report marked as merged some time ago, so we can mark this fixed with just released 2.1 (in tree in next sync)