dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.19k stars 1.56k forks source link

Build sdk for ARMv6: is still supported? #33055

Closed manhluong closed 6 years ago

manhluong commented 6 years ago

Hi, I can build dart sdk to ARMv6 using the release 1.24.3 and running the commands:

git clone https://github.com/dart-lang/sdk.git -b 1.24.3

gclient config --name=sdk --unmanaged git@github.com:dart-lang/sdk.git 
gclient sync

cd sdk
./tools/gn.py -m release -a armv6 -t armv6=/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- --arm-float-abi hard --no-goma
./tools/build.py -m release -a armv6 create_sdk

However if I try to run everything to the latest version that I can find on github which is 2.0.0-dev.53.0, I get the following error:

[88/2832] CXX obj/runtime/vm/libdart_vm_jit/source_report.o
FAILED: obj/runtime/vm/libdart_vm_jit/source_report.o 
../../buildtools/linux-x64/clang/bin/clang++ -MMD -MF obj/runtime/vm/libdart_vm_jit/source_report.o.d -DTOOLCHAIN_VERSION=fe9a2eb683127f4874267e0349933ccc2ff46bd5 -DNDEBUG -DTARGET_ARCH_ARM -DTARGET_ARCH_ARM_6 -DNDEBUG -DDART_USE_TCMALLOC -DTARGET_OS_LINUX -I../../runtime -I../.. -Igen -I../../third_party/tcmalloc/gperftools/src -march=armv6 -mfloat-abi=hard -fno-exceptions -fPIC -pthread --target=arm-linux-gnueabihf -fcolor-diagnostics -mfpu=vfp -Wall -Wextra -Werror -Wendif-labels -Wno-missing-field-initializers -Wno-unused-parameter -Wno-tautological-constant-compare --sysroot=../../build/linux/debian_wheezy_arm-sysroot -Wheader-hygiene -Wstring-conversion -O3 -fno-ident -fdata-sections -ffunction-sections -g3 -ggdb3 -Werror -Wall -Wextra -Wno-unused-parameter -Wnon-virtual-dtor -Wvla -Wno-conversion-null -Woverloaded-virtual -g3 -ggdb3 -fno-rtti -fno-exceptions -O3 -fvisibility-inlines-hidden -fno-omit-frame-pointer -std=c++14 -fno-rtti -fno-exceptions -c ../../runtime/vm/source_report.cc -o obj/runtime/vm/libdart_vm_jit/source_report.o
In file included from ../../runtime/vm/source_report.cc:5:
In file included from ../../runtime/vm/source_report.h:12:
In file included from ../../runtime/vm/profiler_service.h:14:
In file included from ../../runtime/vm/thread_interrupter.h:10:
../../runtime/vm/signal_handler.h:103:5: error: non-ASM statement in naked function is not supported
    register int arg0 asm("r0") = signal;
    ^
../../runtime/vm/signal_handler.h:92:25: note: attribute is here
  static __attribute__((naked)) void SignalHandlerTrampoline(int signal,
                        ^
1 error generated.
[89/2832] CXX obj/runtime/bin/libdart_builtin/crypto_fuchsia.o
[90/2832] CXX obj/runtime/vm/libdart_vm_jit/stack_frame.o
ninja: build stopped: subcommand failed.
ninja -C out/ReleaseXARMV6 create_sdk
BUILD FAILED

What I am doing wrong?

Thanks!

anders-sandholm commented 6 years ago

@a-siva, area-vm?

a-siva commented 6 years ago

It appears that we are using the clang toolchain instead of the custom toolchain specified with the '-t' option.

manhluong commented 6 years ago

Hi @anders-sandholm and @a-siva , I have created a PR for this issue: https://dart-review.googlesource.com/c/sdk/+/54904

Thanks!

a-siva commented 6 years ago

Thanks for the PR @manhluong, will have @zanderso review it and merge.

manhluong commented 6 years ago

Hi @a-siva I read the answer from @zanderso here: https://dart-review.googlesource.com/c/sdk/+/54904#message-7485637f9e8bb6403e356302e79c642f9fac440f

Thank you for getting back to me! :)

I managed to build the sdk for armv6 without committing to the sdk itself: https://luongbui.com/building-dart-2-sdk-for-armv6-using-docker-and-circleci/

Since there are no plans to support toolchain for now, I will then close this issue :)