Skip to content

ARM Glibc 2.11 and Dart VM #25256

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

Closed
azenla opened this issue Dec 14, 2015 · 8 comments
Closed

ARM Glibc 2.11 and Dart VM #25256

azenla opened this issue Dec 14, 2015 · 8 comments
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. closed-obsolete Closed as the reported issue is no longer relevant

Comments

@azenla
Copy link
Contributor

azenla commented Dec 14, 2015

How would I build a Dart VM for ARMv5TE (Dreamplug) which has a glibc version of 2.11?

Static builds of the Dart VM no longer work under different glibc versions due to BoringSSL due to uses of getaddrinfo() and other such symbols.

@azenla azenla changed the title GLibC 2.11 and Dart VM ARM Glibc 2.11 and Dart VM Dec 14, 2015
@azenla
Copy link
Contributor Author

azenla commented Dec 15, 2015

@whesse
Copy link
Contributor

whesse commented Dec 15, 2015

It should be easy to disable BoringSSL compilation in the by setting variables in the .gyp files. This is what we do when we build Dartium.

Setting 'dart_io_secure_socket%': 1 instead of 0 in runtime/tools/gyp/runtime-configurations.gypi should stop the compilation and linking of the boringssl code.

After making the change, you need to do gclient runhooks again, to run gyp, to make new build files.

@azenla
Copy link
Contributor Author

azenla commented Dec 15, 2015

@whesse Thanks. Is there a solution that will allow me to keep BoringSSL and compile under glibc 2.11? I have tried multiple solutions:

  • Ubuntu 14.04 and compiled glibc 2.11 and tell compiler to use it
  • Ubuntu 10.04 with already installed glibc 2.11 (Issue here seems to be no ARMv5TE cross compiler toolchains that have glibc 2.11)
  • Compiling directly on the device (Slow, old GCC 4.2 or GCC 4.4 compiler doesn't seem to work with Dart)
  • Statically linking glibc into the binary (no longer works after BoringSSL)
  • Building a custom glibc with --enable-static-nss, installing on Ubuntu 14.04, and compiling with -static

@whesse
Copy link
Contributor

whesse commented Dec 15, 2015

It sounds as if you know as much about this as I do, so I can only suggest trying to build BoringSSL, directly, and see if it can run with that libc. I think that BoringSSL may only support recent libc and OSs, since one of its goals is to be simpler and cleaner by removing older support code. Only those platforms needed for chromium and android are actively supported by its maintainers. See the repository at https://boringssl.googlesource.com/boringssl/+/master and file issues at chromium.org.

This is a pretty old architecture, and libc version, so I don't see us being able to do much to support it.

@zanderso
Copy link
Member

@iposva-google

@azenla
Copy link
Contributor Author

azenla commented Dec 15, 2015

@whesse Ok, thanks. Is one possible alternative to compile with OpenSSL instead? I'm not sure how drop-in OpenSSL is for BoringSSL, but I do know it's a fork. Thanks in advance :)

@whesse
Copy link
Contributor

whesse commented Dec 15, 2015

You could try building a version of Dart from before version 1.13, since those versions have OpenSSL, not BoringSSL. Those aren't that old yet. But new features and bug fixes will not get ported back to them.

@kevmoo kevmoo added the area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. label Dec 29, 2015
@mraleph
Copy link
Member

mraleph commented Apr 24, 2018

Assuming stale. Please reopen if it still matters.

@mraleph mraleph closed this as completed Apr 24, 2018
@mraleph mraleph added the closed-obsolete Closed as the reported issue is no longer relevant label Apr 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. closed-obsolete Closed as the reported issue is no longer relevant
Projects
None yet
Development

No branches or pull requests

5 participants