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

Support for Linux aarch64 #287

Open
amiorin opened this issue Aug 2, 2024 · 0 comments
Open

Support for Linux aarch64 #287

amiorin opened this issue Aug 2, 2024 · 0 comments

Comments

@amiorin
Copy link

amiorin commented Aug 2, 2024

I use Emacs inside docker in macos and I get this error (see below). My root cause analysis is that tsc-dyn.so is the wrong architecture. I fixed the problem by recompiling tsc-dyn.so manually.

I was wondering if someone can add support for Linux aarch64.

❯ file /home/vscode/.emacs.d/.local/straight/build-29.4/tsc/tsc-dyn.so
/home/vscode/.emacs.d/.local/straight/build-29.4/tsc/tsc-dyn.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=15ed034f4aff2ead184f525693f576eaa34ab9f6, with debug_info, not stripped
Debugger entered--Lisp error: (module-open-failed "/home/vscode/.emacs.d/.local/straight/build-29.4/tsc/tsc-dyn.so" "/home/vscode/.emacs.d/.local/straight/build-29.4/tsc/tsc-dyn.so: cannot open shared object file: No such file or directory")
  require(tsc-dyn nil :noerror)
  tsc-dyn--try-load()
  tsc-dyn-get-ensure("0.18.0")
  (progn (defconst tsc--dyn-version "0.18.0" "Required version of the dynamic module `tsc-dyn'.") (require 'tsc-dyn-get) (tsc-dyn-get-ensure tsc--dyn-version))
  eval((progn (defconst tsc--dyn-version "0.18.0" "Required version of the dynamic module `tsc-dyn'.") (require 'tsc-dyn-get) (tsc-dyn-get-ensure tsc--dyn-version)) t)
  #f(compiled-function (&rest body) "Like `progn', but evaluates the body at compile time and at load time.\nIn interpreted code, this is entirely equivalent to `progn',\nexcept that the value of the expression may be (but is not\nnecessarily) computed at load time if eager macro expansion is\nenabled." #<bytecode -0x94abcbe32b39d6a>)((defconst tsc--dyn-version "0.18.0" "Required version of the dynamic module `tsc-dyn'.") (require 'tsc-dyn-get) (tsc-dyn-get-ensure tsc--dyn-version))
  macroexpand((eval-and-compile (defconst tsc--dyn-version "0.18.0" "Required version of the dynamic module `tsc-dyn'.") (require 'tsc-dyn-get) (tsc-dyn-get-ensure tsc--dyn-version)))
  internal-macroexpand-for-load((eval-and-compile (defconst tsc--dyn-version "0.18.0" "Required version of the dynamic module `tsc-dyn'.") (require 'tsc-dyn-get) (tsc-dyn-get-ensure tsc--dyn-version)) nil)
  load-with-code-conversion("/home/vscode/.emacs.d/.local/straight/build-29.4/tsc/tsc.el" "/home/vscode/.emacs.d/.local/straight/build-29.4/tsc/tsc.el" nil t)
  require(tsc)
  load-with-code-conversion("/home/vscode/.emacs.d/.local/straight/build-29.4/tree-sitter/tree-sitter.el" "/home/vscode/.emacs.d/.local/straight/build-29.4/tree-sitter/tree-sitter.el" nil t)
  (turn-on-tree-sitter-mode)
  tree-sitter!()
  funcall(tree-sitter!)
  (condition-case e (funcall hook) ((debug error) (signal 'doom-hook-error (list hook e))))
  doom-run-hook(tree-sitter!)
  run-hook-wrapped(doom-run-hook tree-sitter!)
  (let ((doom--hook hook)) (run-hook-wrapped hook #'doom-run-hook))
  (condition-case e (let ((doom--hook hook)) (run-hook-wrapped hook #'doom-run-hook)) ((debug doom-hook-error) (if debug-on-error nil (lwarn hook :error "Error running hook %S because: %s" (if (symbolp (car (cdr e))) (symbol-name (car (cdr e))) (car (cdr e))) (car (cdr (cdr e))))) (signal 'doom-hook-error (cons hook (cdr e)))))
  (let ((hook (car tail))) (condition-case e (let ((doom--hook hook)) (run-hook-wrapped hook #'doom-run-hook)) ((debug doom-hook-error) (if debug-on-error nil (lwarn hook :error "Error running hook %S because: %s" (if (symbolp (car ...)) (symbol-name (car ...)) (car (cdr e))) (car (cdr (cdr e))))) (signal 'doom-hook-error (cons hook (cdr e))))) (setq tail (cdr tail)))
  (while tail (let ((hook (car tail))) (condition-case e (let ((doom--hook hook)) (run-hook-wrapped hook #'doom-run-hook)) ((debug doom-hook-error) (if debug-on-error nil (lwarn hook :error "Error running hook %S because: %s" (if (symbolp ...) (symbol-name ...) (car ...)) (car (cdr ...)))) (signal 'doom-hook-error (cons hook (cdr e))))) (setq tail (cdr tail))))
  (let ((tail hooks)) (while tail (let ((hook (car tail))) (condition-case e (let ((doom--hook hook)) (run-hook-wrapped hook #'doom-run-hook)) ((debug doom-hook-error) (if debug-on-error nil (lwarn hook :error "Error running hook %S because: %s" (if ... ... ...) (car ...))) (signal 'doom-hook-error (cons hook (cdr e))))) (setq tail (cdr tail)))))
  doom-run-hooks(clojure-mode-local-vars-hook)
  (if (or doom-inhibit-local-var-hooks delay-mode-hooks (string-prefix-p " " (buffer-name (or (buffer-base-buffer) (current-buffer))))) nil (set (make-local-variable 'doom-inhibit-local-var-hooks) t) (doom-run-hooks (intern-soft (format "%s-local-vars-hook" major-mode))))
  doom-run-local-var-hooks-h()
  hack-local-variables-apply()
  #<subr hack-local-variables>(no-mode)
  so-long--hack-local-variables(#<subr hack-local-variables> no-mode)
  apply(so-long--hack-local-variables #<subr hack-local-variables> no-mode)
  hack-local-variables(no-mode)
  run-mode-hooks(clojure-mode-hook)
  clojure-mode()
  set-auto-mode-0(clojure-mode nil)
  set-auto-mode--apply-alist((("Procfile\\'" . yaml-mode) ("/bspwmrc\\'" . sh-mode) ("\\.\\(?:zunit\\|env\\)\\'" . sh-mode) ("\\.bats\\'" . sh-mode) ("/Pipfile\\'" . conf-mode) ("[./]flake8\\'" . conf-mode) ("/README\\(?:\\.md\\)?\\'" . gfm-mode) ("\\.Cask\\'" . emacs-lisp-mode) ("/git/ignore\\'" . gitignore-mode) ("/info/exclude\\'" . gitignore-mode) ("/\\.gitignore\\'" . gitignore-mode) ("/etc/gitconfig\\'" . gitconfig-mode) ("/\\.gitmodules\\'" . gitconfig-mode) ("/git/config\\'" . gitconfig-mode) ("/modules/.*/config\\'" . gitconfig-mode) ("/\\.git/config\\'" . gitconfig-mode) ("/\\.gitconfig\\'" . gitconfig-mode) ("/git/attributes\\'" . gitattributes-mode) ("/info/attributes\\'" . gitattributes-mode) ("/\\.gitattributes\\'" . gitattributes-mode) ("\\.dockerfile\\'" . dockerfile-mode) ("[/\\]\\(?:Containerfile\\|Dockerfile\\)\\(?:\\.[^/\\]*\\)?..." . dockerfile-mode) ("\\.tf\\(vars\\)?\\'" . terraform-mode) ("\\.nomad\\'" . hcl-mode) ("\\.hcl\\'" . hcl-mode) ("/git-rebase-todo\\'" . git-rebase-mode) ("\\(?:build\\|profile\\)\\.boot\\'" . clojure-mode) ("\\.cljs\\'" . clojurescript-mode) ("\\.cljc\\'" . clojurec-mode) ("\\.\\(clj\\|cljd\\|dtm\\|edn\\|lpy\\)\\'" . clojure-mode) ("requirements\\.in" . pip-requirements-mode) ("requirements[^z-a]*\\.txt\\'" . pip-requirements-mode) ("\\.pip\\'" . pip-requirements-mode) ("\\.\\(?:md\\|markdown\\|mkd\\|mdown\\|mkdn\\|mdwn\\)\\'" . markdown-mode) ("\\.\\(e?ya?\\|ra\\)ml\\'" . yaml-mode) ("\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'" nil epa-file) ("\\.elc\\'" . elisp-byte-code-mode) ("\\.zst\\'" nil jka-compr) ("\\.dz\\'" nil jka-compr) ("\\.xz\\'" nil jka-compr) ("\\.lzma\\'" nil jka-compr) ("\\.lz\\'" nil jka-compr) ("\\.g?z\\'" nil jka-compr) ("\\.bz2\\'" nil jka-compr) ("\\.Z\\'" nil jka-compr) ("\\.vr[hi]?\\'" . vera-mode) ("\\(?:\\.\\(?:rbw?\\|ru\\|rake\\|thor\\|jbuilder\\|rabl\\|ge..." . ruby-mode) ("\\.re?st\\'" . rst-mode) ("\\.py[iw]?\\'" . python-mode) ("\\.m\\'" . octave-maybe-mode) ...) nil nil)
  #<subr set-auto-mode>()
  apply(#<subr set-auto-mode> nil)
  #f(advice auto-minor-mode-set :after #<subr set-auto-mode>)()
  apply(#f(advice auto-minor-mode-set :after #<subr set-auto-mode>) nil)
  (progn (apply fn args))
  (unwind-protect (progn (apply fn args)) (when (buffer-live-p buf) (with-current-buffer buf (evil-change-state old-state))))
  (let ((evil-state evil-state) (evil-previous-state evil-previous-state) (evil-previous-state-alist (copy-tree evil-previous-state-alist)) (evil-next-state evil-next-state) (old-state evil-state) (inhibit-quit t) (buf (current-buffer))) (unwind-protect (progn (apply fn args)) (when (buffer-live-p buf) (with-current-buffer buf (evil-change-state old-state)))))
  (evil-save-state (apply fn args))
  (if evil-state (evil-save-state (apply fn args)) (apply fn args))
  +evil--persist-state-a(#f(advice auto-minor-mode-set :after #<subr set-auto-mode>))
  apply(+evil--persist-state-a #f(advice auto-minor-mode-set :after #<subr set-auto-mode>) nil)
  #f(advice +evil--persist-state-a :around #f(advice auto-minor-mode-set :after #<subr set-auto-mode>))()
  so-long--set-auto-mode(#f(advice +evil--persist-state-a :around #f(advice auto-minor-mode-set :after #<subr set-auto-mode>)))
  apply(so-long--set-auto-mode #f(advice +evil--persist-state-a :around #f(advice auto-minor-mode-set :after #<subr set-auto-mode>)) nil)
  set-auto-mode()
  normal-mode(t)
  #<subr after-find-file>(nil t nil nil nil)
  apply(#<subr after-find-file> (nil t))
  (progn (fset #'sit-for #'ignore) (apply fn args))
  (unwind-protect (progn (fset #'sit-for #'ignore) (apply fn args)) (fset #'sit-for old))
  (let* ((old (symbol-function #'sit-for))) (unwind-protect (progn (fset #'sit-for #'ignore) (apply fn args)) (fset #'sit-for old)))
  doom--shut-up-autosave-a(#<subr after-find-file> nil t)
  apply(doom--shut-up-autosave-a #<subr after-find-file> (nil t))
  #f(advice doom--shut-up-autosave-a :around #<subr after-find-file>)(nil t)
  apply(#f(advice doom--shut-up-autosave-a :around #<subr after-find-file>) (nil t))
  #f(advice chain-doom-first-buffer-hook-to-find-file-hook-h :before #f(advice doom--shut-up-autosave-a :around #<subr after-find-file>) ((depth . -101)))(nil t)
  apply(#f(advice chain-doom-first-buffer-hook-to-find-file-hook-h :before #f(advice doom--shut-up-autosave-a :around #<subr after-find-file>) ((depth . -101))) (nil t))
  after-find-file(nil t)
  find-file-noselect-1(#<buffer build.clj> "~/workspace/of/cdp-api/build.clj" nil nil "~/workspace/of/cdp-api/build.clj" (48 36))
  find-file-noselect("/home/vscode/workspace/of/cdp-api/build.clj" nil nil nil)
  find-file("/home/vscode/workspace/of/cdp-api/build.clj")
  ranger-find-file()
  funcall-interactively(ranger-find-file)
  command-execute(ranger-find-file)
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

1 participant