Bug 197576 - [arm] lang/libobjc2 on ARM does not build the correct exception code.
Summary: [arm] lang/libobjc2 on ARM does not build the correct exception code.
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: arm Any
: --- Affects Some People
Assignee: David Chisnall
URL: http://chips.ysv.freebsd.org/data/11a...
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-12 18:16 UTC by Sean Bruno
Modified: 2015-05-02 19:16 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (theraven)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sean Bruno freebsd_committer freebsd_triage 2015-02-12 18:16:58 UTC
I'm a bit confused what the actual error in configure is in the buildlog keeping this from building.  I've linked to the log in the URL.

#define HAVE_OBJC_ROOT_CLASS_ATTRIBUTE 1

configure: exit 1
(end of "config.log")
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/gnustep-base
====>> Cleaning up wrkdir
===>  Cleaning for gnustep-base-1.24.6_6
Comment 1 Bugzilla Automation freebsd_committer freebsd_triage 2015-02-12 18:16:58 UTC
Auto-assigned to maintainer theraven@FreeBSD.org
Comment 2 David Chisnall freebsd_committer freebsd_triage 2015-02-16 10:42:44 UTC
The real error is here:

/usr/local/lib/libobjc.so: undefined reference to `_Unwind_SetIP'
/usr/local/lib/libobjc.so: undefined reference to `_Unwind_SetGR'

This is a bit odd, as both of these are inline functions, which wrap ARM-specific things, in unwind-arm.h in libobjc2:

http://svn.gna.org/viewcvs/*checkout*/gnustep/libs/libobjc2/trunk/unwind-arm.h?revision=37753

I can only imagine getting this if somehow the compiler is not defining __arm__ in the libobjc2 build.
Comment 3 Andrew Turner freebsd_committer freebsd_triage 2015-02-16 11:03:16 UTC
I updated libgcc_s.so to make these functions in r278023, previously they were macros.

https://svnweb.freebsd.org/base?view=revision&revision=278023

There may be issues depending on which header whichever part of libobjc.so that is complaining used. We expect it to be a function, other places think it should be a macro.
Comment 4 David Chisnall freebsd_committer freebsd_triage 2015-02-16 11:15:35 UTC
libobjc2 provides its own version of these, as it has to work on platforms where the generic unwinder only does what the ARM EHABI spec says it does.  They're in the unwind-arm.h header.  One possibility is that we're accidentally including some system unwind.h instead of the correct one when building libobjc2?
Comment 5 Sean Bruno freebsd_committer freebsd_triage 2015-05-02 19:16:14 UTC
http://chips.ysv.freebsd.org/data/11armv6-default/2015-04-26_21h50m34s/logs/libobjc2-1.7_1.log

Builds fine now on armv6 via qemu-bsd-user emulation.