Closed Bug 1224286 Opened 9 years ago Closed 2 years ago

Set Android ABI switches in configure.in when using --disable-compile-environment

Categories

(Firefox Build System :: Android Studio and Gradle Integration, defect)

All
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: sebastian, Unassigned)

References

Details

Currently the values for MOZ_APP_ABI and TARGET_XPCOM_ABI are hard coded for builds with --disable-compile-environment:

> if not CONFIG['COMPILE_ENVIRONMENT']:
>     # These should really come from the included binaries, but that's not easy.
>     DEFINES['MOZ_APP_ABI'] = 'arm-eabi-gcc3' # Observe quote differences here ...
>     DEFINES['TARGET_XPCOM_ABI'] = '"arm-eabi-gcc3"' # ... and here.

https://dxr.mozilla.org/mozilla-central/rev/a8ed7dd831d1969a5a1a8636e63bd93d6aeaf94a/mobile/android/base/moz.build#901-903

After bug 1222925 lands Fennec will quit if the build ABI and device ABI do not match. As a consequence x86 builds, created with --disable-compile-environment, won't start.

From IRC:
> <nalexander> sebastian: you could do this in configure.in, around https://dxr.mozilla.org/mozilla-central/source/configure.in#327
Looks like we should just replace MOZ_APP_ABI with TARGET_XPCOM_ABI: see https://dxr.mozilla.org/mozilla-central/search?tree=mozilla-central&q=MOZ_APP_ABI&redirect=true

rnewman, do you have context on what difference there once was?
Flags: needinfo?(rnewman)
Digging further, TARGET_XPCOM_ABI is set here: https://dxr.mozilla.org/mozilla-central/source/configure.in#3152

It's awfully specific to the toolchain.  Sebastian, can you use something else in Bug 1222925?  It's hard to imagine the *compiler* (gcc) being relevant.  More the arch/endianness/bit size.
(In reply to Nick Alexander :nalexander from comment #2)
> It's awfully specific to the toolchain.  Sebastian, can you use something
> else in Bug 1222925?  It's hard to imagine the *compiler* (gcc) being
> relevant.  More the arch/endianness/bit size.

Yeah, that's why I'm only looking at the prefix (arm-*, x86-*). I basically just looked at what is already available in AppConstants. Do you know what other identifier I could use to determine whether the current build targets the ARM or x86 platform?
(In reply to Sebastian Kaspari (:sebastian) from comment #3)
> (In reply to Nick Alexander :nalexander from comment #2)
> > It's awfully specific to the toolchain.  Sebastian, can you use something
> > else in Bug 1222925?  It's hard to imagine the *compiler* (gcc) being
> > relevant.  More the arch/endianness/bit size.
> 
> Yeah, that's why I'm only looking at the prefix (arm-*, x86-*). I basically
> just looked at what is already available in AppConstants. Do you know what
> other identifier I could use to determine whether the current build targets
> the ARM or x86 platform?

Why don't we use ANDROID_CPU_ARCH: https://dxr.mozilla.org/mozilla-central/source/build/autoconf/android.m4#192?  Expose it in AppConstants?
(In reply to Nick Alexander :nalexander from comment #4)
> Why don't we use ANDROID_CPU_ARCH:
> https://dxr.mozilla.org/mozilla-central/source/build/autoconf/android.
> m4#192?  Expose it in AppConstants?

Sounds good! Thanks. I'll refactor and WONTFIX this if everything works out - or do you want to fix this eventually?
Flags: needinfo?(rnewman)
(In reply to Sebastian Kaspari (:sebastian) from comment #5)
> (In reply to Nick Alexander :nalexander from comment #4)
> > Why don't we use ANDROID_CPU_ARCH:
> > https://dxr.mozilla.org/mozilla-central/source/build/autoconf/android.
> > m4#192?  Expose it in AppConstants?
> 
> Sounds good! Thanks. I'll refactor and WONTFIX this if everything works out
> - or do you want to fix this eventually?

I think we should do this in configure.in, so let's mutate this ticket.
Summary: Set MOZ_APP_ABI when using --disable-compile-environment → Set Android ABI switches in configure.in when using --disable-compile-environment
Bug 1222925 now uses ANDROID_CPU_ARCH. Unlinking bugs.
No longer blocks: 1222925
Product: Firefox for Android → Firefox Build System

Nothing like this is happening any longer.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.