Oh, you meant x86_64 explicitly instead of any 64bit architecture that fulfills Google's requirements? Well, we won't add that in the next 2 weeks as there is no x86_64 support for ESR 60. aarch64 is sufficient here.
Trac: Resolution: N/Ato wontfix Status: reopened to closed
Have you read the link?
"The Google Play Store will require all apps that include native code to include 64-bit builds (ARM64 and x86_64) by August 2019".
Hrm. That's been helpful and seems indeed to indicate that we need both if we ship Tor Browser for armv7 and x86 architectures. That's unfortunate but we won't be able to ship x86_64 support by August 2019. We should come up with a plan, though, to solve this problem if it indeed turns out to throw x86 users under the bus.
I have a patch that may be a temporary workaround (because we won't get full x86_64 support within the next few days). During the final packaging stage of the x86 build, the patch simply copies the x86 binaries into /lib/x86_64, as well.
This patch is not tested yet. I pushed the branch to my repo, bug31192_0.
I have a patch that may be a temporary workaround (because we won't get full x86_64 support within the next few days). During the final packaging stage of the x86 build, the patch simply copies the x86 binaries into /lib/x86_64, as well.
This patch is not tested yet. I pushed the branch to my repo, bug31192_0.
No joy here. When the binaries for x86 are in lib/x86_64, then we get "is 32-bit instead of 64-bit":
07-30 19:07:30.341 3092 3092 E GeckoLoader: Couldn't load /data/app/org.torproject.torbrowser_nightly-92QS53uVSnXKDmxyMEWv5Q==/lib/x86_64/libmozglue.so: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/org.torproject.torbrowser_nightly-92QS53uVSnXKDmxyMEWv5Q==/lib/x86_64/libmozglue.so" is 32-bit instead of 64-bit07-30 19:07:30.342 3092 3092 E GeckoLoader: Library exists but couldn't load!07-30 19:07:30.343 3092 3092 E GeckoLoader: Couldn't load /data/user/0/org.torproject.torbrowser_nightly/lib/libmozglue.so: java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/user/0/org.torproject.torbrowser_nightly/lib/libmozglue.so" not found07-30 19:07:30.344 3092 3092 E GeckoLoader: Couldn't load /data/app-lib/org.torproject.torbrowser_nightly/libmozglue.so: java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/app-lib/org.torproject.torbrowser_nightly/libmozglue.so" not found07-30 19:07:30.349 3092 3092 E GeckoLoader: Couldn't load /data/data/org.torproject.torbrowser_nightly/lib/libmozglue.so: java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/data/org.torproject.torbrowser_nightly/lib/libmozglue.so" not found07-30 19:07:30.351 3092 3092 D GeckoLoader: Copying lib/x86_64/libmozglue.so to /data/user/0/org.torproject.torbrowser_nightly/files/lib/libmozglue.so07-30 19:07:30.394 3092 3092 D GeckoLoader: Marking /data/user/0/org.torproject.torbrowser_nightly/files/lib/libmozglue.so as executable.07-30 19:07:30.394 3092 3092 E GeckoLoader: Couldn't load /data/user/0/org.torproject.torbrowser_nightly/files/lib/libmozglue.so: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/org.torproject.torbrowser_nightly/files/lib/libmozglue.so" is 32-bit instead of 64-bit
If we don't copy libmozglue and libplugin-container into x86_64, then the loader does fallback to loading them from x86, but we still get the same error.
07-30 19:44:23.224 3548 3548 E GeckoLoader: Library doesn't exist when it should. 07-30 19:44:23.225 3548 3548 E GeckoLoader: Couldn't load /data/user/0/org.torproject.torbrowser_nightly/lib/libmozglue.so: java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/user/0/org.torproject.torbrowser_nightly/lib/libmozglue.so" not found 07-30 19:44:23.226 3548 3568 D GeckoSharedPrefs: Migrating to version = 2 07-30 19:44:23.226 3548 3568 D GeckoSharedPrefs: Migrating crash reporter settings 07-30 19:44:23.226 3548 3568 D GeckoSharedPrefs: All keys have been migrated 07-30 19:44:23.227 3548 3548 E GeckoLoader: Couldn't load /data/app-lib/org.torproject.torbrowser_nightly/libmozglue.so: java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/app-lib/org.torproject.torbrowser_nightly/libmozglue.so" not found 07-30 19:44:23.228 3548 3548 E GeckoLoader: Couldn't load /data/data/org.torproject.torbrowser_nightly/lib/libmozglue.so: java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/data/org.torproject.torbrowser_nightly/lib/libmozglue.so" not found 07-30 19:44:23.231 3548 3548 W GeckoLoader: lib/x86_64/libmozglue.so not found in APK /data/app/org.torproject.torbrowser_nightly-JHl-JoS_-TuA7SFpqkYH5Q==/base.apk 07-30 19:44:23.231 3548 3548 D GeckoLoader: Copying lib/x86/libmozglue.so to /data/user/0/org.torproject.torbrowser_nightly/files/lib/libmozglue.so07-30 19:44:23.262 3548 3548 D GeckoLoader: Marking /data/user/0/org.torproject.torbrowser_nightly/files/lib/libmozglue.so as executable. 07-30 19:44:23.263 3548 3548 E GeckoLoader: Couldn't load /data/user/0/org.torproject.torbrowser_nightly/files/lib/libmozglue.so: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/org.torproject.torbrowser_nightly/files/lib/libmozglue.so" is 32-bit instead of 64-bit 07-30 19:44:23.264 3548 3548 E GeckoLoader: Load diagnostics: LOAD mozglue: ABI: x86-gcc3, x86_64: Data: /data/user/0/org.torproject.torbrowser_nightly, ax=false, ddx=false, -1x=false, -2x=false, nativeLib: /data/app/org.torproject.torbrowser_nightly-JHl-JoS_-TuA7SFpqkYH5Q==/lib/x86_64, dirx=true, libx=false
FYI, I think this is relevant, I got 64-bit builds going in @n8fr8's tor-android which is used to provide Tor binaries for Orbot: https://gitlab.com/eighthave/tor-android I'm working on finalizing that, and getting merged there.
I'm giving bug31192_05 a try. It only adds the necessary android-x86_64 parts into the different config and build files (plus a new mozconfig). I expect it will fail somewhere during the build process (or earlier).
There is a change to tor-android-service project which updates the tor libraries to the latest (I'll open another bug for that). This is referenced off of my branch in the projects/tor-android-service/config file.
There is a change to tor-android-service project which updates the tor libraries to the latest (I'll open another bug for that). This is referenced off of my branch in the projects/tor-android-service/config file.
Thanks. We need at least take care of #30380 (moved), too, when switching to 0.4.1.5.
Okay, new branch for review: bug31192_08 in my repo. The HEAD commit will need to be modified for when our tor-android-service repo is updated with the new libraries.
Looks mostly good, but don't you want to get a review from the tbb-team?
Good point.
{{{
+ac_add_options --with-android-version=21
}}}
is not needed.
True, but we have this in the other mozconfigs, and I'd like consistency between them. We should clean them up after this esr transition is complete.
{{{
+export MOZ_LTO=1
}}}
is needed.
Hrm. Is it? I found https://bugzilla.mozilla.org/show_bug.cgi?id=1480006 which suggests it is a good idea and provides significant improvements, but it isn't needed. I'd prefer letting a change like this bake in nightly and alpha for a few releases after 9.0 becomes stable, unless this really is needed.
This is more complicated than it seemed, unfortunately. common/torrc (as mentioned in #30380 (moved)) is only temporary. That file is overwritten when Tor is started and the content of the file is defined at runtime. I'm building a branch now that may work.
The tor-browser-build branch is bug31192_08
The tor-android-service branch is bug31192_00
Looks mostly good, but don't you want to get a review from the tbb-team?
Good point.
{{{
+ac_add_options --with-android-version=21
}}}
is not needed.
True, but we have this in the other mozconfigs, and I'd like consistency between them. We should clean them up after this esr transition is complete.
{{{
+export MOZ_LTO=1
}}}
is needed.
Hrm. Is it? I found https://bugzilla.mozilla.org/show_bug.cgi?id=1480006 which suggests it is a good idea and provides significant improvements, but it isn't needed. I'd prefer letting a change like this bake in nightly and alpha for a few releases after 9.0 becomes stable, unless this really is needed.
I agree with that. Enabling LTO is a big change which we should test thoroughly. That's part of the plan to get closer to ship what Mozilla is actually shipping. I am not exactly sure whether Mozilla is actually shipping release builds for Android with LTO enabled, I only found nightly and beta mozconfigs saying so after a cursory search, but e.g. macOS release builds have this enabled. I created a parent ticket (#31860 (moved)) where we can use child tickets for the platforms we want to enable LTO for.
GeKo merged (tor-android-service) branch bug31192_00 into our tor-android-service repo. Now my branch bug31192_09 of tor-browser-build contains a commit for using the new tor-android-service commit (plus it is rebased on top of tor-browser-build master).
Alright, the patches look good to me. We followed cypherpunk's suggestion of cleaning the mozconfig files a bit up (thanks!) and we good here now. tor-browser-build's master branch has all the changes:
f89da2a9b03b70e1ec2e99248b86a96f989d3bed where the x86_64 arch gets added
2d3807e3a2b072f7d3d9bb24419e0b0e6688b26a where the tor-android-service commit used gets bumped
e30f06ac6c40a32354fe01a2613fb3c2a63e630c necessary TOPL changes and
cb97c6e9fd52e4a3871c8a1c2f77a00911f7d0ac with the mozconfig clean-up.
Trac: Resolution: N/Ato fixed Status: needs_revision to closed