Opened 4 years ago
Closed 18 months ago
#61717 closed defect (fixed)
sbcl: wrong reinplace on Xcode versions other than 8.0
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | easye |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.4 |
Keywords: | Cc: | jwhowarth | |
Port: | sbcl |
Description
In [05b517c9376ce4dbecc03cc089beb09615c49dab/macports-ports] (see #51733) this code was added to the sbcl port:
# <https://trac.macports.org/attachment/ticket/51733/> # This change is required as the Xcode 8 linker now defaults to # PIE binaries regardless of the deployment target so an explicit # '-Wl,-no_pie' is now required. The rbcl program is incompatible # with ASLR and the previous upstream hack of setting the # deployment target to less than 10.7 doesn't prevent the PIE # executables from being created against the Xcode 8 # linker. Tested on 10.11 with Xcode 8 beta. if {[vercmp "8.0" ${xcodeversion}] >= 0} { reinplace "s|0x100000|0x100000 -Wl,-no_pie|g" ${worksrcpath}/src/runtime/Config.x86-64-darwin }
It sounds like this change was made to fix a problem observed starting in Xcode 8.0 beta, with the intention that the change would be made in all Xcode versions 8.0 and greater, but the vercmp
invocation is wrong, so it actually applies to all Xcode versions 8.0 and earlier. The correct statement would be:
if {[vercmp ${xcodeversion} 8.0] >= 0} {
The change was made 4 years ago and apparently nobody has noticed, so maybe the change isn't actually needed on all Xcode versions greater than 8.0. You may need to investigate to find what the correct fix is.
Change History (1)
comment:1 Changed 18 months ago by catap (Kirill A. Korinsky)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
In a3cf7fd3e526e62a9437521c1b34228447249293/macports-ports (master):