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

Build does not work on Apple M1 Chip #409

Closed
autolisis opened this issue Dec 14, 2020 · 48 comments
Closed

Build does not work on Apple M1 Chip #409

autolisis opened this issue Dec 14, 2020 · 48 comments
Labels
bug Something isn't working upstream Related to a library used in neovide

Comments

@autolisis
Copy link

$ rustup show                                                                                                                                        Mon Dec 14 13:02:49 2020
Default host: aarch64-apple-darwin
rustup home:  /Users/g/.local/share/rustup

nightly-aarch64-apple-darwin (default)
rustc 1.50.0-nightly (1700ca07c 2020-12-08)

When building with cargo build --release, I get the following error

   Compiling skia-bindings v0.34.2
   Compiling skia-safe v0.34.2
   Compiling skulpin-renderer v0.4.0 (https://github.com/aclysma/skulpin#347daae9)
   Compiling skulpin-renderer-sdl2 v0.4.0 (https://github.com/aclysma/skulpin#347daae9)
   Compiling skulpin v0.10.0 (https://github.com/aclysma/skulpin#347daae9)
   Compiling neovide v0.6.0 (/Users/g/neovide)
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-arch" "arm64" "-L" "/Users/g/.local/share/rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/Users/g/neovide/target/release/deps/neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o" "-o" "/Users/g/neovide/target/release/deps/neovide" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/g/neovide/target/release/deps" "-L" "/Users/g/neovide/target/release/build/harfbuzz-sys-6740cb702669a401/out" "-L" "/Users/g/neovide/target/release/build/skia-bindings-b4381d3fc062ccc6/out/skia" "-L" "/Users/g/neovide/target/release/build/sdl2-sys-215791b062d72ca6/out/lib" "-L" "/Users/g/.local/share/rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/var/folders/3h/p5h05fh16x76jpnqjndgm2sw0000gn/T/rustcnerlt9/libharfbuzz_sys-ad7b54075ff14934.rlib" "/var/folders/3h/p5h05fh16x76jpnqjndgm2sw0000gn/T/rustcnerlt9/libsdl2_sys-4aaa3c7283d1ca75.rlib" "/var/folders/3h/p5h05fh16x76jpnqjndgm2sw0000gn/T/rustcnerlt9/libskia_bindings-46f2a31423287d9f.rlib" "/Users/g/.local/share/rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcompiler_builtins-34e8335177269121.rlib" "-lc++" "-framework" "CoreText" "-framework" "CoreText" "-framework" "CoreText" "-framework" "CoreText" "-framework" "CoreText" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreFoundation" "-framework" "AppKit" "-framework" "AppKit" "-framework" "Foundation" "-framework" "Foundation" "-framework" "QuartzCore" "-lSystem" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreGraphics" "-framework" "CoreFoundation" "-lobjc" "-framework" "Cocoa" "-framework" "IOKit" "-framework" "Carbon" "-framework" "ForceFeedback" "-framework" "CoreVideo" "-framework" "CoreAudio" "-framework" "AudioToolbox" "-liconv" "-lc++" "-framework" "ApplicationServices" "-lSystem" "-lresolv" "-lc" "-lm"
  = note: ld: warning: ignoring file /var/folders/3h/p5h05fh16x76jpnqjndgm2sw0000gn/T/rustcnerlt9/libskia_bindings-46f2a31423287d9f.rlib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
          Undefined symbols for architecture arm64:
            "_C_SkSurface_MakeRenderTarget", referenced from:
                _OUTLINED_FUNCTION_1529 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkMatrix::setRectToRect(SkRect const&, SkRect const&, SkMatrix::ScaleToFit)", referenced from:
                skulpin_renderer::CoordinateSystemHelper::use_visible_range::h61874ea8c331dd3a in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::setMatrix(SkMatrix const&)", referenced from:
                skulpin_renderer::CoordinateSystemHelper::use_visible_range::h61874ea8c331dd3a in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::scale(float, float)", referenced from:
                skulpin_renderer::CoordinateSystemHelper::use_logical_coordinates::h827b6c819628c722 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                skulpin_renderer::CoordinateSystemHelper::use_visible_range::h61874ea8c331dd3a in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "GrBackendTexture::getVkImageInfo(GrVkImageInfo*) const", referenced from:
                skulpin_renderer::skia_support::VkSkiaSurface::get_image_from_skia_texture::he835d21a285fd592 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkImageInfo_Make", referenced from:
                skulpin_renderer::skia_renderpass::VkSkiaRenderPass::new::he0a94ebade9575fc in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_GrBackendTexture_Construct", referenced from:
                skulpin_renderer::skia_renderpass::VkSkiaRenderPass::new::he0a94ebade9575fc in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_GrBackendTexture_CopyConstruct", referenced from:
                skulpin_renderer::skia_renderpass::VkSkiaRenderPass::new::he0a94ebade9575fc in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_GrBackendTexture_destruct", referenced from:
                skulpin_renderer::skia_renderpass::VkSkiaRenderPass::new::he0a94ebade9575fc in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::he2f5b27c392aea4a in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::ha827148f23bf0b56 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::hb0e9c1804d12f38c in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::ha827148f23bf0b56 (.13414) in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::he2f5b27c392aea4a (.13607) in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::ha827148f23bf0b56 (.13608) in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                ...
            "_C_SkTextBlob_unref", referenced from:
                core::ptr::drop_in_place::heb14f16e54518d4a in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::hf8b7777b7b62e84f in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPath::lineTo(float, float)", referenced from:
                skia_safe::core::path::_$LT$impl$u20$skia_safe..prelude..Handle$LT$skia_bindings..bindings..SkPath$GT$$GT$::line_to::h6e0535a6b7429041 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPoint::Length(float, float)", referenced from:
                _$LT$neovide..renderer..cursor_renderer..cursor_vfx..ParticleTrail$u20$as$u20$neovide..renderer..cursor_renderer..cursor_vfx..CursorVfx$GT$::update::hc7dbdc06699259fb in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPaint::setColor(unsigned int)", referenced from:
                _$LT$neovide..renderer..cursor_renderer..cursor_vfx..PointHighlight$u20$as$u20$neovide..renderer..cursor_renderer..cursor_vfx..CursorVfx$GT$::render::h63cf497c89efb555 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _$LT$neovide..renderer..cursor_renderer..cursor_vfx..ParticleTrail$u20$as$u20$neovide..renderer..cursor_renderer..cursor_vfx..CursorVfx$GT$::render::h98fad8028057e01b in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _OUTLINED_FUNCTION_1351 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _OUTLINED_FUNCTION_3312 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::resetMatrix()", referenced from:
                neovide::window::window_wrapper::ui_loop::h0723425ccd7c2cf4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                skulpin_renderer::CoordinateSystemHelper::use_logical_coordinates::h827b6c819628c722 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::drawImageRect(SkImage const*, SkRect const&, SkPaint const*)", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkRefCntBase_ref", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkImageInfo_destruct", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::he7c8dab0d29b657d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::hf8605cdf6003de61 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _OUTLINED_FUNCTION_2654 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkCanvas_imageInfo", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkSurface::getCanvas()", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                neovide::window::window_wrapper::ui_loop::h0723425ccd7c2cf4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::clipRect(SkRect const&, SkClipOp, bool)", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkImageInfo_Construct", referenced from:
                skia_safe::core::image_info::_$LT$impl$u20$core..default..Default$u20$for$u20$skia_safe..prelude..Handle$LT$skia_bindings..bindings..SkImageInfo$GT$$GT$::default::h953a9c1214493b59 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_GrContext_MakeVulkan", referenced from:
                neovide::window::window_wrapper::ui_loop::h0723425ccd7c2cf4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPaint::setStrokeWidth(float)", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _$LT$neovide..renderer..cursor_renderer..cursor_vfx..ParticleTrail$u20$as$u20$neovide..renderer..cursor_renderer..cursor_vfx..CursorVfx$GT$::render::h98fad8028057e01b in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _OUTLINED_FUNCTION_2493 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkDashPathEffect_Make", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::flush()", referenced from:
                neovide::window::window_wrapper::ui_loop::h0723425ccd7c2cf4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkPaint_setPathEffect", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPoint::normalize()", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _$LT$neovide..renderer..cursor_renderer..cursor_vfx..ParticleTrail$u20$as$u20$neovide..renderer..cursor_renderer..cursor_vfx..CursorVfx$GT$::update::hc7dbdc06699259fb in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                neovide::renderer::cursor_renderer::cursor_vfx::RngState::rand_dir_normalized::hc86bb791049b9964 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkRefCntBase_unref", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::h52b7cef17dd64e10 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::hcbc4457d548134b2 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                skulpin_renderer::skia_renderpass::VkSkiaRenderPass::new::he0a94ebade9575fc in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _$LT$skulpin_renderer..renderer..Renderer$u20$as$u20$core..ops..drop..Drop$GT$::drop::h08992a84520b3a82 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _OUTLINED_FUNCTION_1958 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPath::moveTo(float, float)", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPaint::SkPaint(SkRGBA4f<(SkAlphaType)3> const&, SkColorSpace*)", referenced from:
                skia_safe::core::paint::_$LT$impl$u20$skia_safe..prelude..Handle$LT$skia_bindings..bindings..SkPaint$GT$$GT$::new::h9549f1fc3076a2ed in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPath::SkPath()", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::clipPath(SkPath const&, SkClipOp, bool)", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPaint::setStyle(SkPaint::Style)", referenced from:
                skia_safe::core::paint::_$LT$impl$u20$skia_safe..prelude..Handle$LT$skia_bindings..bindings..SkPaint$GT$$GT$::set_style::h96ad90c0a7d332d7 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::drawTextBlob(SkTextBlob const*, float, float, SkPaint const&)", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkPath::close()", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkPaint_destruct", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::h52b7cef17dd64e10 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::h9744f3fca99391a7 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _$LT$neovide..renderer..cursor_renderer..cursor_vfx..PointHighlight$u20$as$u20$neovide..renderer..cursor_renderer..cursor_vfx..CursorVfx$GT$::render::h63cf497c89efb555 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _$LT$neovide..renderer..cursor_renderer..cursor_vfx..ParticleTrail$u20$as$u20$neovide..renderer..cursor_renderer..cursor_vfx..CursorVfx$GT$::render::h98fad8028057e01b in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::restore()", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkPath_destruct", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::h96b97bdff75650fa in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkSurface_getBackendTexture", referenced from:
                skulpin_renderer::skia_renderpass::VkSkiaRenderPass::new::he0a94ebade9575fc in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_GrVkBackendContext_New", referenced from:
                neovide::window::window_wrapper::ui_loop::h0723425ccd7c2cf4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_GrVkBackendContext_Delete", referenced from:
                neovide::window::window_wrapper::ui_loop::h0723425ccd7c2cf4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                _$LT$skia_safe..gpu..vk..backend_context..BackendContext$u20$as$u20$core..ops..drop..Drop$GT$::drop::h87f25181ba60646d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkTextBlobBuilder::allocRunPosH(SkFont const&, int, float, SkRect const*)", referenced from:
                neovide::renderer::caching_shaper::CachingShaper::shape_cached::hc93731d255358855 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::drawLine(float, float, float, float, SkPaint const&)", referenced from:
                skia_safe::core::canvas::Canvas::draw_line::hb8c3942cca76bf75 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::drawRect(SkRect const&, SkPaint const&)", referenced from:
                skia_safe::core::canvas::Canvas::draw_rect::hb619a5e2cb94343d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkFont_destruct", referenced from:
                core::ptr::drop_in_place::h430d968faf086794 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                lru::LruCache$LT$K$C$V$C$S$GT$::put::hba2f00194a443e97 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::h1f1a2eead459b09e in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::h8dfdabb07ff35eb2 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::save()", referenced from:
                skia_safe::core::canvas::Canvas::save::h9747fa8ca49f7c60 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkSurface_makeImageSnapshot", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkData_MakeWithCopy", referenced from:
                neovide::renderer::caching_shaper::CachingShaper::shape_cached::hc93731d255358855 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkTypeface_MakeFromData", referenced from:
                neovide::renderer::caching_shaper::CachingShaper::shape_cached::hc93731d255358855 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkCanvas_getGrContext", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkFont_ConstructFromTypefaceWithSize", referenced from:
                neovide::renderer::caching_shaper::CachingShaper::shape_cached::hc93731d255358855 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkTextBlobBuilder::SkTextBlobBuilder()", referenced from:
                neovide::renderer::caching_shaper::CachingShaper::shape_cached::hc93731d255358855 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::drawOval(SkRect const&, SkPaint const&)", referenced from:
                skia_safe::core::canvas::Canvas::draw_oval::hc782e7215df39d6a in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::drawColor(SkRGBA4f<(SkAlphaType)3> const&, SkBlendMode)", referenced from:
                neovide::renderer::Renderer::draw::h1567538a18eec8c4 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkTextBlobBuilder_make", referenced from:
                neovide::renderer::caching_shaper::CachingShaper::shape_cached::hc93731d255358855 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "_C_SkTextBlobBuilder_destruct", referenced from:
                neovide::renderer::caching_shaper::CachingShaper::shape_cached::hc93731d255358855 in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
                core::ptr::drop_in_place::h472f8641bb5f3b8b in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
            "SkCanvas::drawPath(SkPath const&, SkPaint const&)", referenced from:
                neovide::renderer::cursor_renderer::CursorRenderer::draw::he2185615de20910d in neovide.which-1222bc449302eff1.which.buhtp8ow-cgu.0.rcgu.o.rcgu.o
          ld: symbol(s) not found for architecture arm64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: aborting due to previous error

error: could not compile `neovide`
@Kethku
Copy link
Member

Kethku commented Dec 17, 2020

I raised an upstream issue

@Kethku Kethku added upstream Related to a library used in neovide bug Something isn't working labels Dec 17, 2020
@Kethku
Copy link
Member

Kethku commented Dec 17, 2020

@reisub0 could you try compiling and running the skulpin examples and see if you run into the same issue?

@autolisis
Copy link
Author

Hey @Kethku.

I tried to run the physics example for skulpin with cargo run --example physics, and it failed while compiling winit. I'm not sure if it should be raised with the authors of winit now. Looks like a game of telephone where it is going more and more upstream.

Please let me know I should run some specific example or commands.

   Compiling raw-window-metal v0.1.1
   Compiling winit v0.22.2
error[E0308]: mismatched types
   --> /Users/g/.local/share/cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/macos/util/async.rs:170:55
    |
170 |                 ns_window.setFrame_display_(new_rect, 0);
    |                                                       ^ expected `bool`, found integer

error[E0308]: mismatched types
   --> /Users/g/.local/share/cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/macos/view.rs:391:9
    |
386 | extern "C" fn has_marked_text(this: &Object, _sel: Sel) -> BOOL {
    |                                                            ---- expected `bool` because of return type
...
391 |         (marked_text.length() > 0) as i8
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `bool`, found `i8`

error[E0308]: mismatched types
   --> /Users/g/.local/share/cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/macos/window.rs:631:22
    |
631 |         is_zoomed != 0
    |                      ^ expected `bool`, found integer

   Compiling time-macros-impl v0.1.1
error[E0308]: mismatched types
    --> /Users/g/.local/share/cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/macos/window.rs:1119:48
     |
1119 |         window.setFrame_display_(current_rect, 0)
     |                                                ^ expected `bool`, found integer

error[E0308]: mismatched types
    --> /Users/g/.local/share/cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/macos/window.rs:1126:48
     |
1126 |         window.setFrame_display_(current_rect, 0)
     |                                                ^ expected `bool`, found integer

error[E0308]: mismatched types
    --> /Users/g/.local/share/cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/macos/window.rs:1143:48
     |
1143 |         window.setFrame_display_(current_rect, 0)
     |                                                ^ expected `bool`, found integer

   Compiling ash-window v0.5.0
error[E0308]: mismatched types
    --> /Users/g/.local/share/cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/macos/window.rs:1150:48
     |
1150 |         window.setFrame_display_(current_rect, 0)
     |                                                ^ expected `bool`, found integer

error: aborting due to 7 previous errors

For more information about this error, try `rustc --explain E0308`.
error: could not compile `winit`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed

@pragmatrix
Copy link

pragmatrix commented Dec 22, 2020

Hi, I think we do have a branch of skia-bindings and skia-safe that builds on an aarch64-apple-darwin host (Cross compiling fails at the linking step, which I've to investigate why).

So to anyone interested, check out the m88 branch and try build it on your new Mac. If that succeeds, we can work our way up to porting Skulpin and then Neovide to the Skia M88 API surface and hopefully release matching Skia binaries soon.

@Kethku
Copy link
Member

Kethku commented Dec 23, 2020

@pragmatrix thanks so much for pointer! I'm hoping to have access to an M1 mac in the not too distant future so I can start debugging this as well

@shaunsingh
Copy link
Collaborator

What files would I need to change in order to use the m88 branch of rust-skia?

@pragmatrix
Copy link

pragmatrix commented Apr 23, 2021

An update here regarding rust-skia: The current release (m90) of rust-skia builds on M1 macs and cross-compiles and links successfully with --target aarch64-apple-darwin on Big Sur Intel platforms. If an older milestone is used for Skulpin or Neovide, consider backporting this PR.

@shaunsingh
Copy link
Collaborator

running cargo build --release --target aarch64-apple-darwin gives me the following error, any idea what could be the issue?:

error: failed to run custom build command for `skia-bindings v0.38.3`

Caused by:
  process didn't exit successfully: `/Users/shauryasingh/neovide/target/release/build/skia-bindings-9b6f0f84b3b010e6/build-script-build` (exit code: 101)
  --- stdout
  cargo:rerun-if-env-changed=SKIA_DEBUG
  HOST: aarch64-apple-darwin
  cargo:rerun-if-env-changed=OPT_LEVEL
  cargo:rerun-if-env-changed=CC
  cargo:rerun-if-env-changed=CXX
  cargo:rerun-if-env-changed=SKIA_SOURCE_DIR
  cargo:rerun-if-env-changed=FORCE_SKIA_BUILD
  cargo:rerun-if-env-changed=FORCE_SKIA_BINARIES_DOWNLOAD
  TRYING TO DOWNLOAD AND INSTALL SKIA BINARIES: 0.38.3/ad75361dea4e64031f64-aarch64-apple-darwin-gl
  cargo:rerun-if-env-changed=SKIA_BINARIES_URL
    FROM: https://github.com/rust-skia/skia-binaries/releases/download/0.38.3/skia-binaries-ad75361dea4e64031f64-aarch64-apple-darwin-gl.tar.gz
  DOWNLOAD AND INSTALL FAILED: https://github.com/rust-skia/skia-binaries/releases/download/0.38.3/skia-binaries-ad75361dea4e64031f64-aarch64-apple-darwin-gl.tar.gz: status code 404
  STARTING A FULL BUILD
  cargo:rerun-if-env-changed=SKIA_USE_SYSTEM_LIBRARIES
  cargo:rerun-if-env-changed=SDKROOT
  cargo:rerun-if-env-changed=SKIA_NINJA_COMMAND
  cargo:rerun-if-env-changed=SKIA_GN_COMMAND
  Probing 'python'
  Python 2 found: "python"
  Synchronizing Skia dependencies
  Skipping "../src".
  skia/third_party/externals/d3d12a... @ 169895d529dfce00390a20e69c2f516066fe7a3b
  skia/third_party/externals/freetype  @ 40c5681ab92e7db1298273ccf3c816e6a1498260
  skia/third_party/externals/libgif... @ e13b82fac077383d9f93631a177573509be44f38
  skia/third_party/externals/libjpe... @ 64fc43d52351ed52143208ce6a656c03db56462b
  skia/third_party/externals/libwebp   @ 55a080e50af655d1fbe0a5c22954835cdd59ff92
  skia/third_party/externals/piex      @ bb217acdca1cc0c16b704669dd6f91a1b509c406
  skia/third_party/externals/icu       @ dbd3825b31041d782c5b504c59dcfb5ac7dda08c
  skia/third_party/externals/expat     @ e976867fb57a0cd87e3b0fe05d59e0ed63c6febb
  skia/third_party/externals/spirv-... @ bdbef7b1f3982fe99a62d076043036abe6dd6d80
  skia/third_party/externals/harfbuzz  @ 3a74ee528255cc027d84b204a87b5c25e47bff79
  skia/third_party/externals/libpng    @ 386707c6d19b974ca2e3db7f5c61873813c6fe44
  skia/third_party/externals/zlib      @ eaf99a4e2009b0e5759e6070ad1760ac1dd75461
  Skia args: is_official_build=true is_debug=false skia_enable_gpu=true skia_use_gl=true skia_use_egl=false skia_use_x11=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_libwebp_encode=false skia_use_libwebp_decode=false skia_use_system_zlib=false skia_use_xps=false skia_use_dng_sdk=false cc="clang" cxx="clang++" skia_use_icu=false target_os="mac" target_cpu="arm64" skia_use_expat=true skia_use_system_expat=false extra_cflags=["--target=aarch64-apple-darwin","-O3"] extra_asmflags=["--target=aarch64-apple-darwin"]
  Done. Made 74 targets from 25 files in 282ms
  ninja: Entering directory `/Users/shauryasingh/neovide/target/aarch64-apple-darwin/release/build/skia-bindings-f53012a6b34f1795/out/skia'
  [1/984] stamp obj/heif.stamp
  [2/984] stamp obj/hsw.stamp
  [3/984] stamp obj/modules.stamp
  [4/984] stamp obj/ndk_images.stamp
  [5/984] stamp obj/none.stamp
  [6/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/images/SkJPEGWriteUtility.cpp
  FAILED: obj/src/images/jpeg_encode.SkJPEGWriteUtility.o
  clang++ -MD -MF obj/src/images/jpeg_encode.SkJPEGWriteUtility.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -DSK_ENCODE_JPEG -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/libjpeg-turbo -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/externals/libjpeg-turbo -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/images/SkJPEGWriteUtility.cpp -o obj/src/images/jpeg_encode.SkJPEGWriteUtility.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  [7/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkDLineIntersection.cpp
  FAILED: obj/src/pathops/libpathkit.SkDLineIntersection.o
  clang++ -MD -MF obj/src/pathops/libpathkit.SkDLineIntersection.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkDLineIntersection.cpp -o obj/src/pathops/libpathkit.SkDLineIntersection.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  [8/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/codec/SkJpegDecoderMgr.cpp
  FAILED: obj/src/codec/jpeg_decode.SkJpegDecoderMgr.o
  clang++ -MD -MF obj/src/codec/jpeg_decode.SkJpegDecoderMgr.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -DSK_CODEC_DECODES_JPEG -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/libjpeg-turbo -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/externals/libjpeg-turbo -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/codec/SkJpegDecoderMgr.cpp -o obj/src/codec/jpeg_decode.SkJpegDecoderMgr.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  [9/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkDCubicToQuads.cpp
  FAILED: obj/src/pathops/libpathkit.SkDCubicToQuads.o
  clang++ -MD -MF obj/src/pathops/libpathkit.SkDCubicToQuads.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkDCubicToQuads.cpp -o obj/src/pathops/libpathkit.SkDCubicToQuads.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  [10/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkAddIntersections.cpp
  FAILED: obj/src/pathops/libpathkit.SkAddIntersections.o
  clang++ -MD -MF obj/src/pathops/libpathkit.SkAddIntersections.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkAddIntersections.cpp -o obj/src/pathops/libpathkit.SkAddIntersections.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  [11/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/codec/SkJpegCodec.cpp
  FAILED: obj/src/codec/jpeg_decode.SkJpegCodec.o
  clang++ -MD -MF obj/src/codec/jpeg_decode.SkJpegCodec.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -DSK_CODEC_DECODES_JPEG -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/libjpeg-turbo -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/externals/libjpeg-turbo -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/codec/SkJpegCodec.cpp -o obj/src/codec/jpeg_decode.SkJpegCodec.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  [12/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkDConicLineIntersection.cpp
  FAILED: obj/src/pathops/libpathkit.SkDConicLineIntersection.o
  clang++ -MD -MF obj/src/pathops/libpathkit.SkDConicLineIntersection.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkDConicLineIntersection.cpp -o obj/src/pathops/libpathkit.SkDConicLineIntersection.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  [13/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/images/SkJpegEncoder.cpp
  FAILED: obj/src/images/jpeg_encode.SkJpegEncoder.o
  clang++ -MD -MF obj/src/images/jpeg_encode.SkJpegEncoder.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -DSK_ENCODE_JPEG -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/libjpeg-turbo -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/externals/libjpeg-turbo -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/images/SkJpegEncoder.cpp -o obj/src/images/jpeg_encode.SkJpegEncoder.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  [14/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkDCubicLineIntersection.cpp
  FAILED: obj/src/pathops/libpathkit.SkDCubicLineIntersection.o
  clang++ -MD -MF obj/src/pathops/libpathkit.SkDCubicLineIntersection.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/pathops/SkDCubicLineIntersection.cpp -o obj/src/pathops/libpathkit.SkDCubicLineIntersection.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  [15/984] compile ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/codec/SkJpegUtility.cpp
  FAILED: obj/src/codec/jpeg_decode.SkJpegUtility.o
  clang++ -MD -MF obj/src/codec/jpeg_decode.SkJpegUtility.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -DSK_CODEC_DECODES_JPEG -I../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -target arm64-apple-macos11 -O3 -Wno-sign-conversion -Wno-unused-parameter --target=aarch64-apple-darwin -O3 -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/libjpeg-turbo -isystem /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/third_party/externals/libjpeg-turbo -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../../../../../../../.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/skia/src/codec/SkJpegUtility.cpp -o obj/src/codec/jpeg_decode.SkJpegUtility.o
  error: unknown target triple 'unknown-apple-macosx11.0.0', please use -triple or -arch
  ninja: build stopped: subcommand failed.

  --- stderr
  thread 'main' panicked at '`ninja` returned an error, please check the output for details.', /Users/shauryasingh/.cargo/registry/src/github.com-1ecc6299db9ec823/skia-bindings-0.38.3/build_support/skia.rs:688:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

@shaunsingh
Copy link
Collaborator

Never mind, upgrading skis-safe to v0.39.1 worked. In case anyone else needs it, here is the .app file generated using the openGL branch:

https://drive.google.com/file/d/1ASziUDhskTqAfrADDnS-dBTnRNQDJaTO/view?usp=sharing

(you only need the .app file, not sure why it uploaded like that)

@shaunsingh
Copy link
Collaborator

I apologize for the permissions issue. You should be able to view and download the build without having to request now.

@Kethku
Copy link
Member

Kethku commented May 3, 2021

@shaunsingh so are current builds in the github pipeline working properly? If not does this issue need to change to track adding support for m1 macs to the pipeline? What work is remaining here?

@shaunsingh
Copy link
Collaborator

@Kethku At the moment cloning the repo and building the repo manually will work fine, however it won't work in GitHub actions, since CI support for macOS 11 is still in beta.

For now if you want to build the app for apple silicon you would have to do it manually. There isn't any work remaining, and it should be plug and play once Github updates their CI infrastructure in June/July of this year.

You can close the issue if you would like, I can manually provide builds when needed for now

@diocletiann
Copy link

I'm still getting winit-0.22.2 errors. One example:

   --> /Users/[redacted]/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.22.2/src/platform_impl/macos/util/async.rs:170:55
    |
170 |                 ns_window.setFrame_display_(new_rect, 0);
    |                                                       ^ expected `bool`, found integer```

@Kethku
Copy link
Member

Kethku commented May 20, 2021

That feels like either an upstream or rust version issue.

@shaunsingh
Copy link
Collaborator

@restfuladi Are you building the openGL or Vulkan build? I built the OpenGL one this morning

I just uploaded it here: https://drive.google.com/file/d/1ASziUDhskTqAfrADDnS-dBTnRNQDJaTO/view?usp=sharing

@j4qfrost
Copy link
Collaborator

j4qfrost commented May 20, 2021 via email

@shaunsingh
Copy link
Collaborator

However, I built it myself just this morning. I can assure you there are no viruses

@Kethku
Copy link
Member

Kethku commented May 20, 2021

I think its reasonable to post a test binary. But @j4qfrost is right, downloading and running it does incur some risk.

The ideal solution would be to automatically build these via the ci system, but as mentioned above, m1 builds aren't supported currently. @restfuladi download and run at your own risk

@j4qfrost
Copy link
Collaborator

@shaunsingh sorry didn't mean to be accusatory. Also I messed up my grammar. It is a good practice to share builds created by the CI, because it is backed with more trust. If we make a habit of sharing binaries from sources that we can't validate, then a malicious person could come in and since everyone has become comfortable downloading binaries from anyone, they will run one without question. This is especially true of newcomers to the project.

@shaunsingh
Copy link
Collaborator

I definitely agree. Sadly GitHub Cl for Big Sur is delayed, but once it comes it would be a much better solution.

Another thing I've been wondering about, is it possible to build a universal build using rust? Right now if you run it on an arm machine, it will produce an arm build, but can you do an intel build from arm and vice versa?

I'm not sure whether the new Cl is arm or intel based, but that would be a big issue

@diocletiann
Copy link

diocletiann commented May 20, 2021

@restfuladi Are you building the openGL or Vulkan build? I built the OpenGL one this morning

I just uploaded it here: https://drive.google.com/file/d/1ASziUDhskTqAfrADDnS-dBTnRNQDJaTO/view?usp=sharing

Vulkan, with latest SDK installed. OpenGL builds successfully.

@shaunsingh
Copy link
Collaborator

I would recommend sticking to openGL regardless. It seems to perform much better and doesn't have the HiDPI scaling issue

@j4qfrost
Copy link
Collaborator

@shaunsingh it should be possible with a docker solution, but there will be headaches trying to get everything working. Not sure if something like M1 builds on docker would be hardware dependent.

@shaunsingh
Copy link
Collaborator

rust-lang/cargo#8875, looks like its in progress right now. Doesn't seem like there is an easy way to do it, its going to be a headache for sure

@Kethku
Copy link
Member

Kethku commented May 20, 2021

I'm hoping to eventually get enough sponsors to purchase an m1 device for the project. So if an upstream solution doesn't arrive, that might work instead longer term. (note: I will probably purchase one eventually regardless, but I've been setting aside the money from kofi and now the github sponsors for this purpose so that we can have a solution for M1 binaries as well as just better support for the platform in general)

@j4qfrost
Copy link
Collaborator

j4qfrost commented May 20, 2021 via email

@shaunsingh
Copy link
Collaborator

shaunsingh commented Jun 4, 2021

actions/runner-images#2486 (comment), looks like GitHub is starting to roll the macOS 11 machines out.

@j4qfrost
Copy link
Collaborator

j4qfrost commented Jun 4, 2021

@shaunsingh I don't see where this is the case in that issue. Looks like they're just upgrading the macoa version.

@shaunsingh
Copy link
Collaborator

Yup, I just reread the issue looks like its just an OS upgrade. Regardless, its what we need for automated M1 builds (with GitHub CI at least)

The only other decision to make is do we want to provide a fat (universal) binary or individual builds for intel and arm? I believe you can produce the two binaries and link them together with . xcframeworks. This would also require fixing the macOS .app builds which currently fails to launch normally (opening the binary manually works as expected).

@Kethku
Copy link
Member

Kethku commented Jun 4, 2021

@j4qfrost what are the chances we could get something like this: https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners working on the m1?

@Kethku
Copy link
Member

Kethku commented Jun 4, 2021

image
Looks like there may be a limitation, but at the very least this is probably how it will work eventually

@Kethku
Copy link
Member

Kethku commented Jun 4, 2021

actions/runner#805 (comment) I guess theres a work around 👀

@Kethku
Copy link
Member

Kethku commented Jun 4, 2021

@j4qfrost
Copy link
Collaborator

j4qfrost commented Jun 4, 2021

actions/runner#805 (comment) I guess theres a work around 👀

I had a look at this. Will get to work this weekend to see if we can get this on the M1.

@shaunsingh
Copy link
Collaborator

Does anyone have an m1 machine they can use for the actions though? From what I understand you would need a machine dedicated to running actions

@Kethku
Copy link
Member

Kethku commented Jun 4, 2021

We recently acquired some M1 hardware :)

@j4qfrost
Copy link
Collaborator

j4qfrost commented Jun 8, 2021

A lot of the hard work was already done on rust's side, I just had to set things up. #711

@pragmatrix let me know if you want to set up a self-hosted M1 machine for your Azure pipeline.

@pragmatrix
Copy link

@j4qfrost Thank you a lot for the offer. But if this does not block Neovide (or someone else cries out loud), I'd prefer to cross-compile rust-skia binaries from Big Sur Intel images as soon they are available.

@j4qfrost
Copy link
Collaborator

M1 runner is now live and building an arm64 binary uploaded as Neovide-m1.dmg. I think that should close out this ticket.

@hopezh
Copy link

hopezh commented Dec 10, 2022

May I ask where to find this Neovide-m1.dmg?

@autolisis
Copy link
Author

The current release neovide.dmg here is a universal binary (which means that it is optimized for both M1 and Intel Macs)

@hopezh
Copy link

hopezh commented Dec 13, 2022

I installed neovide using the link suggested: open the dmg file and drag the neovide app to Application.

However, nothing showed up after I run the app by double clicking it.

Have I missed anything important here? Such as, installing Rust related stuff?

@autolisis
Copy link
Author

That's a bit strange. You do not need to install anything extra. It's a package.

The only possibility I can think of is that you may need to add an exception for it with macOS' Gatekeeper

@hopezh
Copy link

hopezh commented Dec 14, 2022

Thanks. However, I'm still unable to get neovide running after allow it to "run anyway" as suggested.

I also tried the instruction to install neovide through Homebrew, i.e. brew install --cask neovide, and it still didn't work although neovide was shown to be in the folder /homebrew/bin/neovide.

I then tried to follow the instruction to build neovide from the source. However, I go the following errors after running cargo install path . from the neovide folder cloned from github:

error: linking with cc failed: exit status: 1

= note: xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

error: could not compile crossbeam-utils due to previous error

error: could not compile libc due to previous error
error: failed to compile cargo-bundle v0.6.0, intermediate artifacts can be found at /var/folders/_9/wy9bbsdd5f78tljj_9nfncyr0000gn/T/cargo-installXeae4f

...

I don't know Rust and Cargo at all. So, hope expert here can advise me what important steps I have missed.

Thanks.

@autolisis
Copy link
Author

Trying to build may not necessarily help, it's going to output the same release file that you're anyway not able to run (either through brew or just through the package).

Can you take a look at the console logs by opening console.app and see if there are any crash reports for neovide in there?

@hopezh
Copy link

hopezh commented Dec 14, 2022

Thanks. There is no crash report in the console.app.

I'm attaching the screenshots of the steps I went through below.

Screen Shot 2022-12-14 at 22 11 08 PM

Screen Shot 2022-12-14 at 22 11 28 PM

Screen Shot 2022-12-14 at 22 13 13 PM

Screen Shot 2022-12-14 at 22 13 42 PM

@autolisis
Copy link
Author

Another thing to look at would be to look at the streaming logs on console.app and see if you can find any clues there.

I think it might be best if you open a new issue for this. After allowing it through Gatekeeper, the build (and the Cask) works completely fine on my MacBook Pro M1, so it doesn't seem to be an issue with the build itself, and seems to be idiosyncratic to your environment.

@hopezh
Copy link

hopezh commented Dec 15, 2022

Noted. I'll open a new issue if I can't find a solution.

Btw, I like NeoVide very much which is running perfectly on my Windows computer.

Thanks to the NeoVide dev team.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working upstream Related to a library used in neovide
Projects
None yet
Development

No branches or pull requests

7 participants