Files
haskell.nix/overlays/android.nix
Moritz Angermann eb7e669d63 Enable aarch64 builds (#1316)
* Adds small address space logic

* no numa on android

* Update comp-builder.nix

* Adds android.nix

* host And target.

* Make android remote-iserv static

* Add back mmap_next

* Create rts-android-jemalloc-qemu.patch

* Update bootstrap.nix

* Some android modifications to ghc

* Some modifications to the android overlay.

* disable more hardening flags on android

* Adds stack-protector-symbols.patch

* Adds libraries-prim-os-android.patch

* Adds support for CONDBR relocations

* Adds undef+weak symbol support.

* calloc takes 3 not 2 args :-(

* Adds getauxval

* Needs enable static now

* Fix android cross
2022-01-09 11:36:53 +13:00

29 lines
1.3 KiB
Nix

final: prev: prev.lib.optionalAttrs prev.stdenv.hostPlatform.isAndroid ({
# we really only want the static one.
libiconv = (prev.libiconv.override { enableStatic = true; enableShared = false; }).overrideAttrs(_: {
hardeningDisable = [ "fortify" "stackprotector" "format" ];
# For some reason building libiconv with nixpgks android setup produces
# LANGINFO_CODESET to be found, which is not compatible with android sdk 23;
# so we'll patch up iconv to not include that.
postConfigure = ''
echo "#undef HAVE_LANGINFO_CODESET" >> libcharset/config.h
echo "#undef HAVE_LANGINFO_CODESET" >> lib/config.h
'';
# my current thinking is that this is due to the android toolchain using r23, api30.
});
libffi = prev.libffi.overrideAttrs (_: {
dontDisableStatic = true;
hardeningDisable = [ "fortify" "stackprotector" "format" ];
# see libiconv. We want to target a lower minsdk
postConfigure = ''
echo "#undef HAVE_MEMFD_CREATE" >> aarch64-unknown-linux-android/fficonfig.h
'';
});
gmp6 = (prev.gmp6.override { withStatic = true; }).overrideAttrs(_: {
hardeningDisable = [ "fortify" "stackprotector" "format" ];
});
}) // prev.lib.optionalAttrs prev.stdenv.targetPlatform.isAndroid ({
bionic = prev.bionic.override { enableStatic = true; };
})