Opened 10 years ago

Closed 9 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 10 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:2 Changed 10 years ago by petrrr

Cc: petr@… added

Cc Me!

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:4 Changed 9 years ago by larryv (Lawrence Velázquez)

Cc: larryv@… added

Cc Me!

comment:5 Changed 9 years ago by larryv (Lawrence Velázquez)

Port: libmacho-headers added; cctools-headers removed
Summary: Move cctools-headers, dyld-headers, libunwind-headersMove libmacho-headers, dyld-headers, libunwind-headers

comment:6 Changed 9 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 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Status: newassigned
Summary: Move libmacho-headers, dyld-headers, libunwind-headersMove 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 9 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: assignedclosed

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

Actually, do this now because of #46521.

comment:10 Changed 9 years ago by mfeiri

Resolution: fixed
Status: closedreopened
Summary: Move libunwind-headers back to ${prefix}/includeMove 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 9 years ago by mfeiri

Resolution: wontfix
Status: reopenedclosed
Note: See TracTickets for help on using tickets.