[MacPorts] #55709: libcxx @5.0.1_1 build fails with gcc

MacPorts noreply at macports.org
Sat Jan 20 09:51:44 UTC 2018


#55709: libcxx @5.0.1_1 build fails with gcc
---------------------+-------------------------------
  Reporter:  potmj   |      Owner:  jeremyhu
      Type:  defect  |     Status:  assigned
  Priority:  Normal  |  Milestone:
 Component:  ports   |    Version:  2.4.2
Resolution:          |   Keywords:  leopard universal
      Port:  libcxx  |
---------------------+-------------------------------

Comment (by potmj):

 Many thanks for everyones good thoughts on all this.

 From a macports user view, 5.0.1_0 compiled libc++ (& libc++abi)
 +universal with gcc 4.2, and 5.0.1_1 fails under some conditions, when
 they upgrade outdated.

 On 10.5, I think macports.conf  universal_arches defaults to "i386 ppc".
 It seems 10.5.8  executes ppc, i386, and x86_64, - at least for simple
 hello world tests.  I was testing [wiki:LibcxxOnOlderSystems] and had got
 all the way to a clang-3.7 that would build simple universals, with the
 exception of a broken libclang_rt.osx.a with ppc, until the bump to
 5.0.1_1.

 Being able to build libc++ with a convinent gcc in all cases, will remove
 dependencies and is helpful to bootstrap clang in a simple way (and those
 trying to cross compile for 10.4, etc).  Rebuilding libc++ later on with
 better optimization and/or additional arches, is always an option, at the
 cost of adding an extra step to the clang bootstrap.   I notice lots of
 the apple libraries are universal with 4 arches, so I guess that helps
 avoid having a missing arch at the bottom of a dependency chain.

 Even though libc++abi & libc++ are built with gcc, otool shows they are
 not dependent on libstdc.dylib

 Setting universal_arches to "i386 x86_64", as a temporary work around does
 get 5.0.1_1 built with gcc.

 I worry about upgrading ports, as the web of dependencies goes forever.
 With many old things installed +universal, upgrade often breaks, so having
 a tool chain with the same code generation ability as the old Xcode seems
 a good clang bootstrap goal. I agree with RJVB that you end up with
 +universal dependencies easily.  Even though they might be big, that would
 be OK, if they worked.  Hence a focus on having good +universal libraries.

 Thanks for pointing out the EXTRA_FLAGS variable.  My portfile skills are
 probably not up to working out why that line is now invoked in the wrong
 way for ppc code generation on intel.

 I noticed this WARNING flash past, so maybe this has further implications
 for the port....
 {{{
 buildit is no longer supported and will be removed in the next week!
 }}}
 This might be a problem, perhaps requiring the suggested move to a cmake
 that can be built with Xcode, or something.  I am sure Jeremy has a better
 understanding on the significance of this, I have no clue.

 Many thanks
 Michael

--
Ticket URL: <https://trac.macports.org/ticket/55709#comment:11>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list