JDK-8185804 : rpath is not set properly in OSX build
Type:Bug
Component:javafx
Sub-Component:web
Affected Version:8,9,10
Priority:P3
Status:Resolved
Resolution:Fixed
OS:os_x
CPU:x86
Submitted:2017-08-03
Updated:2020-01-31
Resolved:2017-08-18
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
Analysis of the WebKit binaries shows that libjfxwebkit.dylib has no RPATH information which leads to issues while loading libDumpRenderTree.dylib
We need to fix the CMake config files to build with set(CMAKE_MACOSX_RPATH TRUE).
Comments
changeset: 55ca00559e8a
user: arajkumar
date: Fri Aug 18 14:03:03 2017 +0530
description:
8185804: rpath is not set properly in OSX build
Reviewed-by: ghb, mbilla, kcr
URL: http://hg.openjdk.java.net/openjfx/10-dev/rt/rev/55ca00559e8a
I could see the hardcoded path when I use `otool -l`.
otool -l modules/javafx.web/build/mac/Release/lib/*.dylib | grep LC_RPATH -A2
12-08-2017
Hi [~kcr],
I'm not seeing any hardcoded path, How did you verify that?
Below is a `otool -L` output with after this fix,
@rpath/libjfxwebkit.dylib (compatibility version 0.0.0, current version 0.0.0)
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.9.0)
/usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.26.0)
@rpath/libjvm.dylib (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 20.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.16.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
12-08-2017
This is a NO-GO. When I build it on my OS X system, I see that it puts the absolute PATH of the boot JDK in as RPATH, which is not correct.
11-08-2017
I'll take a look today.
10-08-2017
[~kcr], Do you have any concerns?
10-08-2017
Even jfxmedia uses -install_name with @rpath, below is a otool -L output of libjfxmedia_avf.dylib
build/modular-sdk/modules_libs/javafx.media/libjfxmedia_avf.dylib:
@rpath/libjfxmedia_avf.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 20.0.0)
/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo (compatibility version 1.2.0, current version 1.8.0)
/System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
/System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/MediaToolbox.framework/Versions/A/MediaToolbox (compatibility version 1.0.0, current version 1.0.0)
@rpath/libjfxmedia.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.16.0)