Как создать набор инструментов xtensa-esp32-elf, способный работать на Android aarch64-linux-android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как создать набор инструментов xtensa-esp32-elf, способный работать на Android aarch64-linux-android?

Сообщение Anonymous »

Я использовал crosstool-ng для создания цепочки инструментов, которая может компилироваться для xtensa-esp32 (цель) и запускаться на 64-битном устройстве Android (aarch64-linux-gnu). Однако он скомпилирован с пакетом -gnu gcc, а не с Android NDK. Он работает, но исполняемый файл слишком велик (cc1 занимает около 25 МБ и он удален), так как он статически связан с libc.
Если я использую Android NDK (с символической привязкой отсутствующих исполняемых файлов к файлам NDK) для динамического связывания, происходит сбой с какой-то странной ошибкой, что заставляет меня думать, что либо Crosstool-ng не поддерживает Android NDK, либо я делаю что-то странное:

Код: Выделить всё

g++: error: unrecognized command-line option '-Qunused-arguments'

Символические ссылки:

Код: Выделить всё

ls -l /home/anton/tools/android-ndk-r29-arm64-23/bin
total 1610116
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android21-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android21-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android22-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android22-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android23-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android23-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android24-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android24-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android25-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android25-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android26-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android26-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android27-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android27-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android28-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android28-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android29-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android29-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android30-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android30-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android31-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android31-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android32-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android32-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android33-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android33-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android34-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android34-clang++
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 aarch64-linux-android35-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 aarch64-linux-android35-clang++
lrwxrwxrwx 1 anton anton         7 окт 14 15:31 aarch64-linux-android-ar -> llvm-ar
lrwxrwxrwx 1 anton anton         7 окт 14 15:31 aarch64-linux-android-as -> llvm-as
-rwxrwxr-x 1 anton anton       210 окт 13 18:07 aarch64-linux-android-clang
-rwxrwxr-x 1 anton anton       214 окт 13 18:07 aarch64-linux-android-clang++
-rwxrwxr-x 1 anton anton       214 окт 13 18:07 aarch64-linux-android-g++
-rwxrwxr-x 1 anton anton       210 окт 13 18:07 aarch64-linux-android-gcc
lrwxrwxrwx 1 anton anton         2 окт 14 15:31 aarch64-linux-android-ld -> ld
lrwxrwxrwx 1 anton anton         7 окт 14 15:31 aarch64-linux-android-nm -> llvm-nm
lrwxrwxrwx 1 anton anton        12 окт 14 15:50 aarch64-linux-android-objcopy -> llvm-objcopy
lrwxrwxrwx 1 anton anton        12 окт 14 15:32 aarch64-linux-android-objdump -> llvm-objdump
lrwxrwxrwx 1 anton anton        11 окт 14 15:32 aarch64-linux-android-ranlib -> llvm-ranlib
lrwxrwxrwx 1 anton anton        12 окт 14 15:31 aarch64-linux-android-readelf -> llvm-readelf
lrwxrwxrwx 1 anton anton         9 окт 14 15:31 aarch64-linux-android-size -> llvm-size
lrwxrwxrwx 1 anton anton        10 окт 14 15:31 aarch64-linux-android-strip ->  llvm-strip
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi21-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi21-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi22-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi22-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi23-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi23-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi24-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi24-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi25-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi25-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi26-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi26-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi27-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi27-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi28-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi28-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi29-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi29-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi30-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi30-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi31-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi31-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi32-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi32-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi33-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi33-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi34-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi34-clang++
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 armv7a-linux-androideabi35-clang
-rwxr-xr-x 1 anton anton       208 окт  3 01:46 armv7a-linux-androideabi35-clang++
-rw-r--r--  1   a n t o n   a n t o n           1 0 4 5 0   с е н     3   0 3 : 0 6   b i s e c t _ d r i v e r . p y < b r   / > - r w x r w x r - x   1   a n t o n   a n t o n               2 1 0   о к т   1 3   1 8 : 0 7   c l a n g < b r   / > - r w x r w x r - x   1   a n t o n   a n t o n               2 1 4   о к т   1 3   1 8 : 0 7   c l a n g + + < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n   1 4 5 0 9 5 0 7 2   с е н     3   0 3 : 0 6   c l a n g - 2 1 < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n   1 4 5 0 9 5 0 7 2   с е н     3   0 3 : 0 6   c l a n g 2 1 0 < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n   1 4 5 0 9 5 0 7 2   с е н     3   0 3 : 0 6   c l a n g 2 1 0 + + < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n     8 3 9 2 0 4 9 6   о к т     3   0 1 : 4 5   c l a n g - c h e c k < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n     9 3 3 2 1 5 9 2   о к т     3   0 1 : 4 5   c l a n g d < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n       3 9 7 3 1 2 8   о к т     3   0 1 : 4 5   c l a n g - f o r m a t < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n     7 9 4 1 6 0 8 0   о к т     3   0 1 : 4 5   c l a n g - s c a n - d e p s < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n     5 7 8 1 7 7 2 8   о к т     3   0 1 : 4 5   c l a n g - t i d y < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n             3 5 7 9   с е н     3   0 3 : 0 6   c l a n g - t i d y . s h < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n     4 7 5 0 0 3 6 0   о к т     3   0 1 : 4 5   d s y m u t i l < b r   / > - r w x r - x r - x   1   a n t o n   a n t o n           2 8 4 8 8   с е н     3   0 3 : 0 6   g i t - c l a n g - f ormat
-rwxr-xr-x 1 anton anton       213 окт  3 01:46 i686-linux-android21-clang
-rwxr-xr-x 1 anton anton       217 окт  3 01:46 i686-linux-android21-clang++
-rwxr-xr-x 1 anton anton       213 окт  3 01:46 i686-linux-android22-clang
-rwxr-xr-x 1 anton anton       217 окт  3 01:46 i686-linux-android22-clang++
-rwxr-xr-x 1 anton anton       213 окт  3 01:46 i686-linux-android23-clang
-rwxr-xr-x 1 anton anton       217 окт  3 01:46 i686-linux-android23-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android24-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android24-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android25-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android25-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android26-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android26-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android27-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android27-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android28-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android28-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android29-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android29-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android30-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android30-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android31-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android31-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android32-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android32-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android33-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android33-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android34-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android34-clang++
-rwxr-xr-x 1 anton anton       198 окт  3 01:46 i686-linux-android35-clang
-rwxr-xr-x 1 anton anton       202 окт  3 01:46 i686-linux-android35-clang++
-rwxr-xr-x 1 anton anton  68882200 окт  3 01:46 ld
-rwxr-xr-x 1 anton anton  68882200 окт  3 01:46 ld64.lld
-rwxr-xr-x 1 anton anton  68882200 окт  3 01:46 ld.lld
-rwxr-xr-x 1 anton anton  68882200 окт  3 01:46 lld
-rwxr-xr-x 1 anton anton    541712 окт  3 01:45 lldb
-rwxr-xr-x 1 anton anton    287648 окт  3 01:45 lldb-argdumper
-rwxr-xr-x 1 anton anton       174 сен  3 03:06 lldb.sh
-rwxr-xr-x 1 anton anton  68882200 окт  3 01:46 lld-link
-rwxr-xr-x 1 anton anton   5587176 окт  3 01:45 llvm-addr2line
-rwxr-xr-x 1 anton anton  16383416 сен  3 03:06 llvm-ar
-rwxr-xr-x 1 anton anton   4105480 окт  3 01:45 llvm-as
-rwxr-xr-x 1 anton anton  60065888 окт  3 01:45 llvm-bolt
-rwxr-xr-x 1 anton anton  24179520 окт  3 01:45 llvm-cfi-verify
-rwxr-xr-x 1 anton anton    557296 окт  3 01:45 llvm-config
-rwxr-xr-x 1 anton anton   4898792 окт  3 01:45 llvm-cov
-rwxr-xr-x 1 anton anton    790320 окт  3 01:45 llvm-cxxfilt
-rwxr-xr-x 1 anton anton   2939728 окт  3 01:45 llvm-dis
-rwxr-xr-x 1 anton anton  16383416 сен  3 03:06 llvm-dlltool
-rwxr-xr-x 1 anton anton  14023632 окт  3 01:45 llvm-dwarfdump
-rwxr-xr-x 1 anton anton  46253608 окт  3 01:45 llvm-dwp
-rwxr-xr-x 1 anton anton   4268072 окт  3 01:45 llvm-ifs
-rwxr-xr-x 1 anton anton  16383416 сен  3 03:06 llvm-lib
-rwxr-xr-x 1 anton anton   4683000 окт  3 01:45 llvm-link
-rwxr-xr-x 1 anton anton  20856696 окт  3 01:45 llvm-ml
-rwxr-xr-x 1 anton anton   3810680 окт  3 01:45 llvm-modextract
-rwxr-xr-x 1 anton anton  17351088 окт  3 01:45 llvm-nm
-rwxr-xr-x 1 anton anton   5424496 сен  3 03:06 llvm-objcopy
-rwxr-xr-x 1 anton anton  21932736 окт  3 01:45 llvm-objdump
-rwxr-xr-x 1 anton anton   5986592 окт  3 01:45 llvm-profdata
-rwxr-xr-x 1 anton anton  16383416 сен  3 03:06 llvm-ranlib
-rwxr-xr-x 1 anton anton    836064 сен  3 03:06 llvm-rc
-rwxr-xr-x 1 anton anton   6800192 окт  3 01:45 llvm-readelf
-rwxr-xr-x 1 anton anton   6800192 окт  3 01:45 llvm-readobj
-rwxr-xr-x 1 anton anton   4103288 окт  3 01:45 llvm-size
-rwxr-xr-x 1 anton anton    567848 окт  3 01:45 llvm-strings
-rwxr-xr-x 1 anton anton   5424496 сен  3 03:06 llvm-strip
-rwxr-xr-x 1 anton anton   5587176 окт  3 01:45 llvm-symbolizer
-rwxr-xr-x 1 anton anton    836064 сен  3 03:06 llvm-windres
-rwxr-xr-x 1 anton anton    966728 окт  3 01:45 merge-fdata
-rwxr-xr-x 1 anton anton  60065888 окт  3 01:45 perf2bolt
-rw-r--r--  1 anton anton       234 сен  3 03:06 remote_toolchain_inputs
-rwxr-xr-x 1 anton anton       201 окт  3 01:46 riscv64-linux-android35-clang
-rwxr-xr-x 1 anton anton       205 окт  3 01:46 riscv64-linux-android35-clang++
-rwxr-xr-x 1 anton anton  21089136 окт  3 01:45 sancov
-rwxr-xr-x 1 anton anton   5436216 окт  3 01:45 sanstats
-rwxr-xr-x 1 anton anton     57287 сен  3 03:06 scan-build
-rwxr-xr-x 1 anton anton      4691 сен  3 03:06 scan-view
-rwxr-xr-x 1 anton anton  68882200 окт  3 01:46 wasm-ld
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android21-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android21-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android22-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android22-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android23-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android23-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android24-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android24-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android25-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android25-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android26-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android26-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android27-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android27-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android28-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android28-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android29-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android29-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android30-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android30-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android31-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android31-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android32-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android32-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android33-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android33-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android34-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android34-clang++
-rwxr-xr-x 1 anton anton       200 окт  3 01:46 x86_64-linux-android35-clang
-rwxr-xr-x 1 anton anton       204 окт  3 01:46 x86_64-linux-android35-clang++
-rwxr-xr-x 1 anton anton    894208 окт  3 01:45 yasm
Я подумывал вместо этого использовать набор инструментов Linaro, но ожидаю много проблем из-за использования glibc, а не бионического.
Подробности конфигурации Crosstool-ng:

Код: Выделить всё

CT_TOOLCHAIN_TYPE="canadian"
CT_CANADIAN=y
CT_HOST="aarch64-linux-android"
CT_STATIC_TOOLCHAIN=y # try static linking for the beginning
newlib исправлен, как предложено в https://github.com/espressif/crosstool-NG/issues/80.
Я разместил заявку, но, может быть, это просто я делаю что-то не так?

Подробнее здесь: https://stackoverflow.com/questions/798 ... id-aarch64
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»