Opened 11 years ago
Closed 10 years ago
#42500 closed enhancement (wontfix)
Move libmacho-headers, dyld-headers, libunwind-headers
Reported by: | mfeiri | Owned by: | jeremyhu (Jeremy Huddleston Sequoia) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.2.1 |
Keywords: | Cc: | cooljeanius (Eric Gallager), petrrr, larryv (Lawrence Velázquez) | |
Port: | libmacho-headers, dyld-headers, ld64, libcxxabi |
Description
It turned out that some ports don’t like to find system headers in the regular include path (e.g. #39605). For this reason the xnu-headers, libc-headers, libm-headers ports have been moved to ${prefix}/Developer/SDKs/Darwin${os.major}.sdk (r117043). The other system header ports cctools-headers, dyld-headers, libunwind-headers should follow suit, but the switch needs to be synchronized with the ports that depend on these ports. At this time these are the ld64 and libcxxabi ports.
The process should be straightforward: The *-headers ports install into ${prefix}/Developer/SDKs/Darwin${os.major}.sdk and dependent ports include a "-isysroot" in the cppflags to find the headers there.
In the future we might automate this by using the “platform” variable as an indicator. The “macosx” ports would require a full Xcode SDK while “darwin” platform ports can be compiled with just the open source SDK, if it is available. We already have a comparable SDK selection feature for universal ports.
Change History (11)
comment:1 Changed 11 years ago by cooljeanius (Eric Gallager)
Cc: | egall@… added |
---|
comment:3 Changed 10 years ago by mfeiri
Port: | libunwind-headers removed |
---|
I just moved the destroot of libunwind-headers to DarwinX.sdk in r127042. This might break libcxxabi and ld64 on darwin <=9, but resolves the build conflict indicated in #43869. To fix this issue, add either "-I ${destroot}${prefix}/Developer/SDKs/Darwin${os.major}.sdk/usr/include/
" or "-isysroot ${destroot}${prefix}/Developer/SDKs/Darwin${os.major}.sdk --sysroot /
" to the cflags on darwin <=9.
Please move the remaining cctools-headers and dyld-headers ports to DarwinX.sdk as well. As it turned out, some ports can not handle the presence of system SDK headers in regular include directories.
comment:5 Changed 10 years ago by larryv (Lawrence Velázquez)
Port: | libmacho-headers added; cctools-headers removed |
---|---|
Summary: | Move cctools-headers, dyld-headers, libunwind-headers → Move libmacho-headers, dyld-headers, libunwind-headers |
comment:6 Changed 10 years ago by jeremyhu (Jeremy Huddleston Sequoia)
I think that this is a bad idea. I would prefer to remove xnu-headers and libc-headers. Ports should not depend on them and should use the ones from the host.
libunwind-headers should be moved back to installing into ${prefix}/include, and we should understand why that was causing failure in other ports and fix *those* ports.
libmacho-headers similarly is fine being in ${prefix}/include. Similar to libunwind-headers, they are the headers for the MacPorts-provided libmacho port but can also be used as declarations for the base OS-provided implementation in libSystem. If they cause problems in other ports, those other ports should be fixed.
comment:7 Changed 10 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Status: | new → assigned |
---|---|
Summary: | Move libmacho-headers, dyld-headers, libunwind-headers → Move libunwind-headers back to ${prefix}/include |
https://trac.macports.org/ticket/46521 tracks removal of CarbonHeaders, libc-headers, xnu-headers, and libm-headers.
Re-purposing this bug to revert r127042 when gcc ports are fixed.
comment:8 Changed 10 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:9 Changed 10 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Actually, do this now because of #46521.
comment:10 Changed 10 years ago by mfeiri
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Summary: | Move libunwind-headers back to ${prefix}/include → Move libmacho-headers, dyld-headers, libunwind-headers |
In the future please do not hijack tickets, turning them into their opposite. Instead close a ticket as "wontfix" and, if necessary, create a new ticket. I'll revert the summary and adjust the resolution to avoid confusion and to reflect reality.
I do not understand why you "prefer" to delete a subset of header ports instead of moving them all to a safe place. But as you have more time for macports than I do, I will not object.
comment:11 Changed 10 years ago by mfeiri
Resolution: | → wontfix |
---|---|
Status: | reopened → closed |
Cc Me!