You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Yingchun Lai (Jira)" <ji...@apache.org> on 2023/07/04 15:36:00 UTC
[jira] [Comment Edited] (KUDU-3436) build_mini_cluster_binaries.sh doesn't work on Mac 13.0.1
[ https://issues.apache.org/jira/browse/KUDU-3436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17739953#comment-17739953 ]
Yingchun Lai edited comment on KUDU-3436 at 7/4/23 3:35 PM:
------------------------------------------------------------
{quote} * New in macOS Big Sur 11.0.1, the system ships with a built-in dynamic linker cache of all system-provided libraries. As part of this change, copies of dynamic libraries are no longer present on the filesystem. Code that attempts to check for dynamic library presence by looking for a file at a path or enumerating a directory will fail. Instead, check for library presence by attempting to {{dlopen()}} the path, which will correctly check for the library in the cache. (62986286){quote}
[https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11_0_1-release-notes#Kernel]
It seems we can't copy /usr/lib/libc+abi.dylib to the kudu-binary JAR artifact, except build the binaries on macOS 10.13 (the oldest version macOS Kudu support) ~ 10.15?
was (Author: laiyingchun):
{quote} * New in macOS Big Sur 11.0.1, the system ships with a built-in dynamic linker cache of all system-provided libraries. As part of this change, copies of dynamic libraries are no longer present on the filesystem. Code that attempts to check for dynamic library presence by looking for a file at a path or enumerating a directory will fail. Instead, check for library presence by attempting to {{dlopen()}} the path, which will correctly check for the library in the cache. (62986286)
{quote}
[https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11_0_1-release-notes#Kernel]
It seems we can't copy /usr/lib/libc+abi.dylib to the kudu-binary JAR artifact, except build the binaries on macOS 10.13 (the oldest version macOS Kudu support)?
> build_mini_cluster_binaries.sh doesn't work on Mac 13.0.1
> ---------------------------------------------------------
>
> Key: KUDU-3436
> URL: https://issues.apache.org/jira/browse/KUDU-3436
> Project: Kudu
> Issue Type: Bug
> Reporter: Bakai Ádám
> Priority: Major
>
>
> {code:java}
> build_mini_cluster_binaries.sh {code}
> returns the following error:
> {code:java}
> Traceback (most recent call last):
> File "/Users/adambakai/CLionProjects/kudu/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py", line 503, in <module>
> main()
> File "/Users/adambakai/CLionProjects/kudu/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py", line 500, in main
> relocate_deps(target_src, target_dst, config)
> File "/Users/adambakai/CLionProjects/kudu/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py", line 408, in relocate_deps
> return relocate_deps_macos(target_src, target_dst, config)
> File "/Users/adambakai/CLionProjects/kudu/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py", line 398, in relocate_deps_macos
> relocate_deps_macos(dep_src, dep_dst, config)
> File "/Users/adambakai/CLionProjects/kudu/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py", line 398, in relocate_deps_macos
> relocate_deps_macos(dep_src, dep_dst, config)
> File "/Users/adambakai/CLionProjects/kudu/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py", line 398, in relocate_deps_macos
> relocate_deps_macos(dep_src, dep_dst, config)
> File "/Users/adambakai/CLionProjects/kudu/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py", line 398, in relocate_deps_macos
> relocate_deps_macos(dep_src, dep_dst, config)
> File "/Users/adambakai/CLionProjects/kudu/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py", line 397, in relocate_deps_macos
> copy_file(dep_src, dep_dst)
> File "/Users/adambakai/CLionProjects/kudu/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py", line 287, in copy_file
> shutil.copyfile(src, dest)
> File "/opt/homebrew/Cellar/python@2/2.7.18/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 96, in copyfile
> with open(src, 'rb') as fsrc:
> IOError: [Errno 2] No such file or directory: u'/usr/lib/libc++abi.dylib' {code}
> After further investigation, it looks like libc+{+}abi.dylib is in the uninstrumented lib, but otool -L always gives back a path for /usr/lib/libc{+}+abi.dylib . Simply adding the dylib into the PAT_MACOS_LIB_EXCLUDE list doesn't work: it creates a jar file, but the binaries can not be started.
> It is probably due to the changes in how dynamic linking works in newer MacOS: [https://stackoverflow.com/questions/70581876/macos-dynamic-linker-reports-it-loaded-library-which-doesnt-exist]
> It happens both on ARM64 and X86
--
This message was sent by Atlassian Jira
(v8.20.10#820010)