Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.
/ druntime Public archive

Bionic: Add x64 declarations, switch to single TLS function, and define __USE_GNU#2325

Merged
dlang-bot merged 3 commits intodlang:masterfrom
joakim-noah:android
Nov 9, 2018
Merged

Bionic: Add x64 declarations, switch to single TLS function, and define __USE_GNU#2325
dlang-bot merged 3 commits intodlang:masterfrom
joakim-noah:android

Conversation

@joakim-noah
Copy link
Contributor

@joakim-noah joakim-noah commented Oct 10, 2018

This is a WIP pull is ready, as I'm going to add another commit (Update: in a later pull) that reworks how druntime initializes TLS data on Android before passing it to the GC, based on a suggestion of Martin from the ldc team.

This first commit adding Bionic/x64 declarations and consolidating where possible is pretty much done, so putting it up for review. All druntime tests for Android/x86 and x64 pass when cross-compiled from linux/x64 to Termux running in an Anbox Android/x64 container.

Pretty much the same Phobos tests pass as other Android platforms, ie only some math-related modules like std.math or std.internal.math.gammafunction assert, with the only difference that std.random asserts or segfaults in the massive last test block on both x86/x64 and std.variant segfaults in various tests on Android/x64. I'll look into those more and update this pull if needed.

@dlang-bot
Copy link
Contributor

Thanks for your pull request, @joakim-noah!

Bugzilla references

Your PR doesn't reference any Bugzilla issue.

If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog.

Testing this PR locally

If you don't have a local development environment setup, you can use Digger to test this PR:

dub fetch digger
dub run digger -- build "master + druntime#2325"

alias uint mode_t;
alias uint nlink_t;
}
else version (MIPS32)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Android NDK 17, released earlier this year, dropped support for MIPS, allowing this simplification. Nobody was using Android/MIPS anyway.

The x64 mode_t declaration above was wrong.

{
enum _JBLEN = 32;
}
else version( X86_64 )
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong style.

@joakim-noah joakim-noah changed the title Bionic: Add x64 declarations and remove TLS section delimiters Bionic: Add x64 declarations, remove TLS section delimiters, and other tweaks Oct 31, 2018
@thewilsonator
Copy link
Contributor

@joakim-noah whats the status of this?

@joakim-noah
Copy link
Contributor Author

Still working on removing those TLS section delimiters, switched over to trying to use @kinke's #2330, why?

@thewilsonator
Copy link
Contributor

This was green, thats all.

@joakim-noah
Copy link
Contributor Author

OK, yeah, go ahead and merge, I'll get that last TLS commit in separately.

@joakim-noah joakim-noah changed the title Bionic: Add x64 declarations, remove TLS section delimiters, and other tweaks Bionic: Add x64 declarations, switch to single TLS function, and define __USE_GNU Nov 9, 2018
@joakim-noah
Copy link
Contributor Author

I think it needs an approved review first, merge won't go through otherwise.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants