Software > Coding

Cross-compile GCC für ARM64?

<< < (2/4) > >>

goetz @ 3rz:

--- Zitat von: Thorsten Otto am Sa 04.02.2023, 17:55:01 ---Hab jetzt tatsächlich mal versucht macOS Monterey unter VirtualBox zum laufen zu bekommen. Hat auch weitgehend funktioniert. Allerdings ist alles extrem zäh. Dann wollte ich die commandline-tools installieren. Resultat siehe Bild. Da habe ich es drann dran gegeben ;)

--- Ende Zitat ---

Ich hab die passende Hardware, aber mangelnde Kenntnisse. Ich habe dein binutils-Zweig mit git clone --recursive in ein Verzeichnis kopiert, das binutils-2.39-20220911-build.sh Script in ein Verzeichnis darüber, dann das durch git neu entstandene Verzeichnis binutils mit einem Synlink binutils-2.39 ergänzt, da das Script wohl danach sucht:


--- Code: ---% bash binutils-2.39-20220911-build.sh
binutils-2.39: no such directory

--- Ende Code ---

Mit dem Symlink war der Fehler weg, nun fehlen noch die Patches. Also die gezogen und …


--- Code: ---% patch patches/binutils/*
patching file 'patches/binutils/binutils-2.39-mint-20220911.patch'
1 out of 1 hunks failed--saving rejects to 'patches/binutils/binutils-2.39-mint-20220911.patch.rej'

--- Ende Code ---

… mit …


--- Code: ---@@ -30,7 +30,7 @@
                     const bfd_arch_info_type *b);

 #define N(name, print,d,next)  \
-{  32, 32, 8, bfd_arch_m68k, name, "m68k",print,2,d,bfd_m68k_compatible, \
+{  32, 32, 8, bfd_arch_m68k, name, "m68k",print,1,d,bfd_m68k_compatible, \
    bfd_default_scan, bfd_arch_default_fill, next, 0 }

 static const bfd_arch_info_type arch_info_struct[] =

--- Ende Code ---

Was mache ich falsch?

Meine Umgebung:


--- Code: ---% clang -v
Apple clang version 14.0.0 (clang-1400.0.29.202)
Target: arm64-apple-darwin22.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

--- Ende Code ---


--- Code: ---% sw_vers
ProductName: macOS
ProductVersion: 13.2
BuildVersion: 22D49

--- Ende Code ---

Thorsten Otto:

--- Zitat von: gh-baden am Sa 04.02.2023, 20:07:31 ---Was mache ich falsch?

--- Ende Zitat ---

Wie Du an der Meldung

--- Zitat ---patching file 'patches/binutils/binutils-2.39-mint-20220911.patch'

--- Ende Zitat ---
siehst, versuchst du gerade den patch zu patchen ;)

Allerdings: wenn du das Directory mit git gecloned hast, brauchst du den patch nicht. Du musst dann allerdings auch den richtigen branch auschecken:


--- Code: ---$ cd <pfad-zu>/binutils
$ git checkout binutils-2_39-mint

--- Ende Code ---

Dann wieder in das Verzeichnis wo das script ist, und du die Sachen bauen willst (kann auch ganz woanders sein), und dort ein


--- Code: ---$ touch .patched-binutils-2.39

--- Ende Code ---

damit er weiss daß er nicht mehr patchen muss.

Dann sollte es hoffentlich gehen.

Entsprechendes gilt auch später für gcc:

--- Code: ---$ cd <pfad-wo-gcc-gecloned ist>
$ git checkout mint/gcc-4.6
$ cd <pfad-zu-build-directory>
$ touch .patched-gcc-4.6.4
$ ./gcc-4.6.4-20200502-build.sh

--- Ende Code ---

PS: ja, ich weiss, da sollten im script ein paar mehr Kommentare stehen ;)

Thorsten Otto:
Wenn mans nicht selber bauen kann, lässt man halt bauen ;) (in dem Fall von github)

Kannst du mal http://tho-otto.de/snapshots/crossmint/macos/binutils/binutils-2.39-mint-20220911-bin-macos.tar.xz testen?

Hatte erst ein paar Probleme. Obwohl da monterey läuft behauptet er steif und fest, das wäre ein x64-64 System. Was liefert bei dir

--- Code: ---$ uname -m
$ clang --print-target-triple

--- Ende Code ---

gcc muss ich noch schauen. Könnte etwas schwieriger werden, vor allem bei den zusätzlichen libraries (gmp, mpfr, und mpc). Sind die bei dir schon universal? (bzw überhaupt vorhanden als *.dylib)? Ansonsten muss ich schauen daß die statisch gebaut werden, allerdings sind die eigentlich per target angepasst.



czietz:

--- Zitat von: Thorsten Otto am So 05.02.2023, 12:56:58 ---Hatte erst ein paar Probleme. Obwohl da monterey läuft behauptet er steif und fest, das wäre ein x64-64 System.

--- Ende Zitat ---

Das dürfte daran liegen, dass es eben ein x86-64-System ist! MacOS-Runner auf ARM64 hat GitHub für das dritten Quartal 2023 auf der Roadmap: https://github.com/orgs/github/projects/4247/views/1?filterQuery=status%3A%22Q3+2023+%E2%80%93+Jul-Sep%22.

goetz @ 3rz:

--- Zitat von: Thorsten Otto am So 05.02.2023, 12:56:58 ---Wenn mans nicht selber bauen kann, lässt man halt bauen ;) (in dem Fall von github)

--- Ende Zitat ---

Bist schneller als ich   :o

Sieht gut aus:

--- Code: ---% file […]cross-mint/bin/m68k-atari-mint-as
cross-mint/bin/m68k-atari-mint-as: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64]
cross-mint/bin/m68k-atari-mint-as (for architecture x86_64): Mach-O 64-bit executable x86_64
cross-mint/bin/m68k-atari-mint-as (for architecture arm64): Mach-O 64-bit executable arm64

--- Ende Code ---

d.h. das ist ein modernes Universal2-Binary mit x86_64 und arm64 Code-Zweigen.


--- Zitat von: Thorsten Otto am So 05.02.2023, 12:56:58 ---Hatte erst ein paar Probleme. Obwohl da monterey läuft behauptet er steif und fest, das wäre ein x64-64 System. Was liefert bei dir

--- Code: ---$ uname -m
$ clang --print-target-triple

--- Ende Code ---

--- Ende Zitat ---


--- Code: ---% uname -m
arm64
goetz@Wintermute2 ~ % clang --print-target-triple
arm64-apple-darwin22.3.0
--- Ende Code ---


--- Zitat von: Thorsten Otto am So 05.02.2023, 12:56:58 ---gcc muss ich noch schauen. Könnte etwas schwieriger werden, vor allem bei den zusätzlichen libraries (gmp, mpfr, und mpc). Sind die bei dir schon universal?

--- Ende Zitat ---

Die gibt’s alle drei (nativ für arm64) bei Homebrew, daher: ja.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln