-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Android Build Needs To Be Updated - Doc And Termex #66562
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Tagging subscribers to this area: @hoyosjs Issue DetailsDescriptionThe documentation and script for cross-compiling Android seems to be out of date. Reproduction Steps$ NDK_DIR="<path_to>/23.1.7779620/" \ Expected behaviorBuild on Arch Linux Actual behaviorTarget API level: 31 Regression?No response Known WorkaroundsNo response Configurationx64 Other information
cross/build-android-rootfs.sh
Is this not part of ndk (23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/lldb)? If this is the same kind of lldb, then I think it should just reference this if NDK_DIR is set.
https://termux.net/dists/stable/main/binary-aarch64/Packages results in {"code":"PAGE_NOT_FOUND","message":"Page not found"} If the only packages that are needed are:
... is there any reason why the sources can't be downloaded and just built along with the rest of it? What does Termex end up offering instead?
With dpkg , I'm guessing the script isn't meant for Arch Linux users. It would be good to have a "check" at the start of the script to determine if it should even continue.
EDIT0:
I also commented out this line since I set the environment variable for it (IF it's supposed to work like that). I'm now going to go about manually doing the sysroot stuff, and then run the build.sh that the script shows at the bottom.
EDIT1: EDIT2:
seem to counter with
cross vs .tools In addition to
where it looks like it should be echo . //Note the space.
|
@vindicatorr the Android rootfs generation and runtime build was a best effort thing at a time in the past. It is neither maintained nor supported in any way. The android package URLs has been changing a lot in the past, so it keeps breaking from time to time. But fixes from the community are welcome. Also, in general, the script is meant to be used on Ubuntu or Debian only. |
Tagging subscribers to this area: @directhex Issue DetailsDescriptionThe documentation and script for cross-compiling Android seems to be out of date. Reproduction Steps$ NDK_DIR="<path_to>/23.1.7779620/" \ Expected behaviorBuild on Arch Linux Actual behaviorTarget API level: 31 Regression?No response Known WorkaroundsNo response Configurationx64 Other information
cross/build-android-rootfs.sh
Is this not part of ndk (23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/lldb)? If this is the same kind of lldb, then I think it should just reference this if NDK_DIR is set.
https://termux.net/dists/stable/main/binary-aarch64/Packages results in {"code":"PAGE_NOT_FOUND","message":"Page not found"} If the only packages that are needed are:
... is there any reason why the sources can't be downloaded and just built along with the rest of it? What does Termex end up offering instead?
With dpkg , I'm guessing the script isn't meant for Arch Linux users. It would be good to have a "check" at the start of the script to determine if it should even continue.
EDIT0:
I also commented out this line since I set the environment variable for it (IF it's supposed to work like that). I'm now going to go about manually doing the sysroot stuff, and then run the build.sh that the script shows at the bottom.
EDIT1: EDIT2:
seem to counter with
cross vs .tools In addition to
where it looks like it should be echo . //Note the space.
|
Okay, this is an older community effort to produce a CoreCLR JIT on Android. I think @am11 may have views on it, but I don't know much about it. |
@directhex this was not just JIT, but the whole runtime running on Android under Termux. As I've mentioned above, it was brought to functional state for both arm and arm64 long time ago (long time before mono was in the runtime repo) by several community members with my help. But it has never been officially supported. Things mostly just worked due to the fact that the Termux basically mostly behaves like a regular Linux. The problem with the Termux has always been that the native libraries package URLs format / subpath change occasionally. So the rootfs building script |
The setup in It would be nice to consolidate these two parallel setups for Android. My personal preference is to update |
Tagging subscribers to this area: @hoyosjs Issue DetailsDescriptionThe documentation and script for cross-compiling Android seems to be out of date. Reproduction Steps$ NDK_DIR="<path_to>/23.1.7779620/" \ Expected behaviorBuild on Arch Linux Actual behaviorTarget API level: 31 Regression?No response Known WorkaroundsNo response Configurationx64 Other information
cross/build-android-rootfs.sh
Is this not part of ndk (23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/lldb)? If this is the same kind of lldb, then I think it should just reference this if NDK_DIR is set.
https://termux.net/dists/stable/main/binary-aarch64/Packages results in {"code":"PAGE_NOT_FOUND","message":"Page not found"} If the only packages that are needed are:
... is there any reason why the sources can't be downloaded and just built along with the rest of it? What does Termex end up offering instead?
With dpkg , I'm guessing the script isn't meant for Arch Linux users. It would be good to have a "check" at the start of the script to determine if it should even continue.
EDIT0:
I also commented out this line since I set the environment variable for it (IF it's supposed to work like that). I'm now going to go about manually doing the sysroot stuff, and then run the build.sh that the script shows at the bottom.
EDIT1: EDIT2:
seem to counter with
cross vs .tools In addition to
where it looks like it should be echo . //Note the space.
|
Build and runtime pack for linux-bionic (Android without the Java part). I tried not to regress the existing CoreCLR Android build that is based on a crossrootfs (dotnet#56622) - the if's basically deal with that. Note that it's likely broken anyway (dotnet#66562).
Description
The documentation and script for cross-compiling Android seems to be out of date.
Reproduction Steps
$ NDK_DIR="<path_to>/23.1.7779620/" \
__lldb_Dir="<path_to>/23.1.7779620/toolchains/llvm" \
PATH="<path_to>/23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/python3/bin/python3.9:$PATH" \
./eng/common/cross/build-android-rootfs.sh arm64 31
Expected behavior
Build on Arch Linux
Actual behavior
Target API level: 31
Target architecture: arm64
NDK location: <path_to>/23.1.7779620/
Target Toolchain location: <path_to>/runtime/.tools/android-rootfs/android-ndk-r21
Download dependencies...
cp: cannot stat '<path_to>/runtime/.tools/android-rootfs/tmp/arm64//data/data/com.termux/files/usr/*': No such file or directory
Regression?
No response
Known Workarounds
No response
Configuration
x64
Arch Linux
Other information
runtime/docs/workflow/building/coreclr/android.md
Line 17 in 51b90cc
cross/build-android-rootfs.sh
runtime/eng/common/cross/build-android-rootfs.sh
Line 68 in 51b90cc
Is this not part of ndk (23.1.7779620/toolchains/llvm/prebuilt/linux-x86_64/bin/lldb)?
If this is the same kind of lldb, then I think it should just reference this if
NDK_DIR
is set.runtime/eng/common/cross/build-android-rootfs.sh
Line 110 in 51b90cc
https://termux.net/dists/stable/main/binary-aarch64/Packages
results in{"code":"PAGE_NOT_FOUND","message":"Page not found"}
If the only packages that are needed are:
... is there any reason why the sources can't be downloaded and just built along with the rest of it? What does Termex end up offering instead?
runtime/eng/common/cross/build-android-rootfs.sh
Line 115 in 51b90cc
With
dpkg
, I'm guessing the script isn't meant for Arch Linux users. It would be good to have a "check" at the start of the script to determine if it should even continue.EDIT0:
runtime/eng/common/cross/build-android-rootfs.sh
Line 68 in 51b90cc
I also commented out this line since I set the environment variable for it (IF it's supposed to work like that). I'm now going to go about manually doing the
sysroot
stuff, and then run thebuild.sh
that the script shows at the bottom.EDIT1:
https://github.com/termux/termux-packages/wiki/Package-Management
So maybe
https://packages.termux.org/apt/termux-main/dists/stable/main/binary-aarch64/Packages
now?EDIT2:
I'm seeing
runtime/eng/common/cross/build-android-rootfs.sh
Line 17 in 51b90cc
seem to counter with
runtime/eng/common/cross/build-android-rootfs.sh
Line 58 in 51b90cc
cross
vs.tools
In addition to
runtime/eng/common/cross/build-android-rootfs.sh
Line 8 in 51b90cc
where it looks like it should be
echo .
//Note the space.The text was updated successfully, but these errors were encountered: