Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failure trying to use in an M1 Mac without Rosetta #135

Open
pablo-abc opened this issue Dec 5, 2022 · 1 comment
Open

Failure trying to use in an M1 Mac without Rosetta #135

pablo-abc opened this issue Dec 5, 2022 · 1 comment

Comments

@pablo-abc
Copy link

pablo-abc commented Dec 5, 2022

Hello! I've been setting up Neovim lately in an M1 MacBook (using both iTerm and Neovide without Rosetta).

I've installed this plugin using Packer. And the installation + build work without any issues. But whenever I try to open a Clojure/Fennel/ClojureScript file, the following error appears:

Error detected while processing BufEnter Autocommands for "<buffer=1>"..function <SNR>43_event[2]..<SNR>43_enter_buffer[8]..<SNR>43_process_buffer:
line   50:
dlerror = "dlopen(/Users/pberganza/.local/share/nvim/site/pack/packer/start/parinfer-rust/target/release/libparinfer_rust.dylib, 0x0001): tried: '/Users/pberganza/.local/share/nvim/site/
pack/packer/start/parinfer-rust/target/release/libparinfer_rust.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexe
s/OS/Users/pberganza/.local/share/nvim/site/pack/packer/start/parinfer-rust/target/release/libparinfer_rust.dylib' (no such file), '/Users/pberganza/.local/share/nvim/site/pack/packer/st
art/parinfer-rust/target/release/libparinfer_rust.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/Users/pberganza/.local/share/nvim/site/pack/p
acker/start/parinfer-rust/target/x86_64-apple-darwin/release/libparinfer_rust.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Pr
eboot/Cryptexes/OS/Users/pberganza/.local/share/nvim/site/pack/packer/start/parinfer-rust/targ
E364: Library call failed for "run_parinfer()"
E474: Attempt to decode a blank string
E474: Failed to parse


Error executing vim.schedule lua callback: Vim(let):dlerror = "dlopen(/Users/pberganza/.local/share/nvim/site/pack/packer/start/parinfer-rust/target/release/libparinfer_rust.dylib, 0x000
1): tried: '/Users/pberganza/.local/share/nvim/site/pack/packer/start/parinfer-rust/target/release/libparinfer_rust.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64
', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/pberganza/.local/share/nvim/site/pack/packer/start/parinfer-rust/target/release/libparinfer_rust.dylib' (no such file), '/U
sers/pberganza/.local/share/nvim/site/pack/packer/start/parinfer-rust/target/release/libparinfer_rust.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64
')), '/Users/pberganza/.local/share/nvim/site/pack/packer/start/parinfer-rust/target/x86_64-apple-darwin/release/libparinfer_rust.dylib' (mach-o file, but is an incompatible architecture
 (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/pberganza/.local/share/nvim/site/pack/packer/start/parinfer-rust/targ
stack traceback:
        [C]: in function 'bufload'
        ...im/site/pack/packer/start/conjure/lua/conjure/buffer.lua:36: in function 'upsert_buf'
        .../nvim/site/pack/packer/start/conjure/lua/conjure/log.lua:329: in function 'append'
        ...tart/conjure/lua/conjure/client/clojure/nrepl/action.lua:107: in function <...tart/conjure/lua/conjure/client/clojure/nrepl/action.lua:54>

I've tried to run cargo build --release --target=x86_64-apple-darwin and to replace the release folder with its output. But the same error is happening. Would love some help!

Info on my system:

❯ arch
arm64

❯ clang --version
Apple clang version 14.0.0 (clang-1400.0.29.202)
Target: arm64-apple-darwin22.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

❯ cargo --version
cargo 1.60.0 (d1fd9fe2c 2022-03-01)

❯ sw_vers
ProductName:		macOS
ProductVersion:		13.0.1
BuildVersion:		22A400
@eraserhd
Copy link
Owner

eraserhd commented Dec 8, 2022

I'm currently on an M1, and although I've installed it differently, it definitely builds for arm64.

Have you tried without the --target arg? It should work and build arm64 binaries that do not need rosetta. I've tested locally on my M1 macbook with a fresh checkout:

[nix-shell:~/src/parinfer-rust]$ cargo build --release
   Compiling proc-macro2 v1.0.24
   Compiling ryu v1.0.5
   Compiling serde v1.0.123
   Compiling syn v1.0.60
   Compiling serde_derive v1.0.123
   Compiling serde_json v1.0.64
   Compiling libc v0.2.87
   Compiling quote v1.0.9
   Compiling parinfer_rust v0.4.3 (/Users/jfelice/src/parinfer-rust)
    Finished release [optimized] target(s) in 9.03s

[nix-shell:~/src/parinfer-rust]$ ls
CHANGELOG.adoc	LICENSE.md   Web.toml	 derivation.nix  extra-docs   package.json  release.nix  src	 tests
Cargo.lock	Makefile     benches	 dist		 nixpkgs.nix  plugin	    script	 static
Cargo.toml	README.adoc  default.nix  doc		 overlay.nix  rc	    shell.nix	 target

[nix-shell:~/src/parinfer-rust]$ ls target/
CACHEDIR.TAG  release

[nix-shell:~/src/parinfer-rust]$ ls target/release/
build  deps  examples  incremental  libparinfer_rust.d	libparinfer_rust.dylib	libparinfer_rust.rlib  parinfer-rust  parinfer-rust.d

[nix-shell:~/src/parinfer-rust]$ ls -l target/release/
total 2352
drwxr-xr-x 16 jfelice 151928526     512 Dec  8 16:54 build
drwxr-xr-x 45 jfelice 151928526    1440 Dec  8 16:55 deps
drwxr-xr-x  2 jfelice 151928526      64 Dec  8 16:54 examples
drwxr-xr-x  2 jfelice 151928526      64 Dec  8 16:54 incremental
-rw-r--r--  1 jfelice 151928526     363 Dec  8 16:55 libparinfer_rust.d
-rwxr-xr-x  1 jfelice 151928526  557232 Dec  8 16:55 libparinfer_rust.dylib
-rw-r--r--  1 jfelice 151928526 1124984 Dec  8 16:55 libparinfer_rust.rlib
-rwxr-xr-x  1 jfelice 151928526  710256 Dec  8 16:55 parinfer-rust
-rw-r--r--  1 jfelice 151928526     500 Dec  8 16:55 parinfer-rust.d

[nix-shell:~/src/parinfer-rust]$ file ./target/release/libparinfer_rust.dylib 
./target/release/libparinfer_rust.dylib: Mach-O 64-bit arm64 dynamically linked shared library, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|NO_REEXPORTED_DYLIBS|HAS_TLV_DESCRIPTORS>

[nix-shell:~/src/parinfer-rust]$ file ./target/release/parinfer-rust
./target/release/parinfer-rust: Mach-O 64-bit arm64 executable, flags:<NOUNDEFS|DYLDLINK|TWOLEVEL|PIE|HAS_TLV_DESCRIPTORS>

[nix-shell:~/src/parinfer-rust]$ 

I also verified the version I use regularly is arm64.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants