洪兔雜記

Apple silicon

aarch64-apple-darwin

表記(표기)

그나저나 Apple silicon의 公式(공식) 表記(표기)는 맨 처음의 A는 大文字(대문자)로 쓰지만 silicon의 s는 반드시 大文字(대문자)로 쓰는 건 아닌 것 같다. 다만, 單語(단어)의 첫 글()를 모두 大文字(대문자)로 쓰는 타입세팅에서는 ((): 헤드라인) Apple Silicon처럼 쓰기도 하는 듯.

https://developer.apple.com/documentation/apple-silicon

아직 Intel支援(지원)해서 못 깐 앱들

Haskell

아래처럼 해봤지만 cross compilation 안 됨.

	CFLAGS="-target arm64-apple-darwin" CXXFLAGS="-target arm64-apple-darwin" stack build --ghc-options "-fvia-C -Wno-deprecated-flags"

GHC

GHC 9.0.2에서 fatal error: 'ffitarget_arm64.h' file not found 같은 메시지와 함께 빌드 失敗(실패). 아마도 ffitarget_arm64.h 헤더는 XCode Command Line Tools에 들어있는 것 같은데, 어떤 理由(이유)에서인지 macOS內藏(내장)GHC/Clang 컴파일러가 아닌 Homebrew로 따로 깐 컴파일러에서는 이 헤더를 못 찾는 것 같음. 一旦(일단)C_INCLUDE_PATH="$(xcrun --show-sdk-path)/usr/include/ffi" 같이 헤더 經路(경로)environment variable로 줘서 헤더를 찾을 수 있게 해주면 되긴 함. https://gitlab.haskell.org/ghc/ghc/-/issues/20592#note_391266

network

config.sub arm64-apple-darwin21.1.0 failed 같은 메시지와 함께 빌드 失敗(실패). 이건 알고보니 macOS에 빌트인 된 unameHomebrew로 따로 設置(설치)GNU coreutilsuname -p出力(출력)이 달라서 생긴 問題(문제). GNU Autoconfconfig.sub 스크립트는 前者(전자)出力(출력)arm만 알아듣는다 (後者(후자)arm64라고 出力(출력); 찾아보니 Python에서도 os.uname()하면 arm64 나옴). 아무튼 이 問題(문제)臨時(임시)로 GNU coreutils의 經路(경로)PATH에서 後順位(후순위)로 미룬 채로 빌드하는 걸로 迂廻(우회) 可能(가능).

.NET

omnisharp-vscode

OmniSharp2022-02-10 現在(현재) Windows 以外(이외)에서는 아직 Mono 위에서 돌아가고 있어서, 아직 Apple Silicon 支援(지원) 안 하는 MonoRosetta 위에서 돌려야 함. 그렇지만 最近(최근) OmniSharp.NET 6 테스트 버전을 내고 있어서, 이걸 쓸 수 있다.

Visual Studio Code에서 "omnisharp.useModernNet": true 옵션 키면 됨. https://github.com/OmniSharp/omnisharp-vscode/issues/4348#issuecomment-1004147509