Opened 3 years ago

Last modified 3 years ago

#55442 new defect

libunwind @3.9.1: UNREACHABLE executed!

Reported by: ryandesign (Ryan Schmidt) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version:
Keywords: leopard Cc:
Port: libunwind

Description

libunwind, a dependency of libcxxabi on Leopard, fails to build with the chosen compiler, clang-3.4, saying UNREACHABLE executed!

Attachments (1)

libunwind-main.log (60.2 KB) - added by ryandesign (Ryan Schmidt) 3 years ago.

Download all attachments as: .zip

Change History (8)

Changed 3 years ago by ryandesign (Ryan Schmidt)

Attachment: libunwind-main.log added

comment:1 Changed 3 years ago by kencu (Ken)

building any kind of PPC code with clang-3.4 does not work reliably.

To generate PPC code, you can use gcc (any version) or clang-3.8 (my special version, but without c++ exceptions). No other compiler is very useful. You can get something out of clang-3.7, but not much.

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:2 Changed 3 years ago by kencu (Ken)

I did build libunwind as universal with intel code:

libunwind @3.9.1_0+universal (active) platform='darwin 9' archs='i386 x86_64' date='2017-06-20T20:17:59-0700'

comment:3 Changed 3 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Yeah, that's a known issue with clang-3.4 building for ppc.

Leopard/libtstdc++ won't get you very far. As Ken mentioned, clang-3.7 is much better at darwin/ppc, but it's still got some issues that I never got around to addressing. I know BSD and Linux folks were pushing on ppc support, so it's possible some of that has since been addressed, but I haven't looked into it for about 2 years.

comment:4 Changed 3 years ago by ryandesign (Ryan Schmidt)

This was on an Intel Mac, but I didn't consider that it was forcing a universal build which would try to build ppc code.

Given this situation, I'm becoming convinced we should forget libc++ on Leopard i386 and use the working gcc6 solution in the cxx11-1.1 portgroup; see comment:ticket:55382:42.

comment:5 Changed 3 years ago by jeremyhu (Jeremy Huddleston Sequoia)

libc++ works perfectly fine with i386. It's just ppc that clang has difficulty building because (frankly) nobody uses it any more.

comment:6 Changed 3 years ago by kencu (Ken)

libc++ works on ppc too; you just can't build it with clang 3.4, which generates unreliable ppc code, as you know well. But there is no interest, to be sure.

Last edited 3 years ago by kencu (Ken) (previous) (diff)

comment:7 Changed 3 years ago by ryandesign (Ryan Schmidt)

In 05b30256b14009357ea9c9b94511bfa00e727571/macports-ports:

cxx11-1.1.tcl: Use gcc6 on Leopard and earlier

PowerPC machines were already doing so, but Intel machines need to as
well because libcxx and related ports enforce the universal variant,
and the default universal_archs on Leopard and earlier include ppc.

See #55382
See #55442

Note: See TracTickets for help on using tickets.