Opened 8 hours ago

Last modified 6 hours ago

#71245 new defect

legacysupport does not relink libSystem.B.dylib to libMacportsLegacySystem.B.dylib — at Version 1

Reported by: barracuda156 Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.10.4
Keywords: Cc: fhgwright (Fred Wright), kencu (Ken)
Port: legacy-support

Description (last modified by barracuda156)

It looks like legacysupport is supposed to relink libSystem to its own wrapper:

proc legacysupport::relink_libSystem { exe } {
    global os.major prefix
    if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
        set         sLib /usr/lib/libSystem.B.dylib
        set         lLib ${prefix}/lib/libMacportsLegacySystem.B.dylib
        ui_debug "legacysupport: Relinking ${exe} against ${lLib}"
        system "install_name_tool -change ${sLib} ${lLib} ${exe}"
    }
}

However in practice it does not do that.

For example, I build fastfetch, which sets legacysupport.newest_darwin_requires_legacy 15, on 10.6. And here is what it gets linked to:

36-87% otool -L /opt/local/bin/fastfetch-orig
/opt/local/bin/fastfetch-orig:
	/opt/local/lib/libMacportsLegacySupport.dylib (compatibility version 1.0.0, current version 1.3.99)
	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 14.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 511.1.0)
	/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/PrivateFrameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.5.0)
	/System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 246.0.0)
	/System/Library/PrivateFrameworks/DisplayServices.framework/Versions/A/DisplayServices (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 117.0.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 988.3.0)
	/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 36.0.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 711.1.0)

There is no libMacportsLegacySystem.B.dylib, but there is libSystem.B.dylib.

Change History (1)

comment:1 Changed 8 hours ago by barracuda156

Description: modified (diff)
Note: See TracTickets for help on using tickets.