upgrade to NDK r11b on builders to pull in a newer libc++

RESOLVED FIXED

Status

Release Engineering
Platform Support
RESOLVED FIXED
a year ago
a year ago

People

(Reporter: froydnj, Assigned: froydnj)

Tracking

unspecified
Dependency tree / graph

Firefox Tracking Flags

(firefox48 fixed)

Details

Attachments

(1 attachment)

(Assignee)

Description

a year ago
Doing this will enable switching over to libc++ on Android, one step closer to having a C++11 standard library everywhere.
WOOO
(Assignee)

Updated

a year ago
Depends on: 1259218
(Assignee)

Comment 2

a year ago
Created attachment 8734711 [details] [diff] [review]
update to Android NDK r11b

Same version of GCC in r10e and r11b, so theoretically we should not have any
regressions or anything silly like that.  Try is green:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=8a89c4ca9257

The script I used to generate the repacked NDK is below.  It is deliberately
minimalistic (i.e. not including all of $NDK/sources, which is enormous).


set -e

PLATFORM=android-9
ARCHITECTURES=(arm x86)
GCC_VERSION=4.9
TOOLCHAIN_TRIPLES=(arm-linux-androideabi x86)
NDK_VERSION=r11b


NDK_DIRECTORY=android-ndk-${NDK_VERSION}

if [ ! -d ${NDK_DIRECTORY} ]; then
    echo Cannot find ndk directory ${NDK_DIRECTORY}
    exit 1
fi


included_paths=(
    build/
    ndk-build
    ndk-depends
    ndk-gdb
    ndk-stack
    ndk-which
)

function push_included_path()
{
    included_paths[${#included_paths[@]}]="$1"
}

for f in ${TOOLCHAIN_TRIPLES[@]}; do
    gcc_toolchain_path=toolchains/${f}-${GCC_VERSION}/prebuilt/linux-x86_64/
    push_included_path "$gcc_toolchain_path"
done

for a in ${ARCHITECTURES[@]}; do
    android_platform_path=platforms/${PLATFORM}/arch-${a}/
    push_included_path "$android_platform_path"
done

cxx_stl_directories=(system llvm-libc++ llvm-libc++abi)
for d in ${cxx_stl_directories[@]}; do
    cxx_stl_path=sources/cxx-stl/${d}
    push_included_path "$cxx_stl_path"
done

push_included_path "sources/android/cpufeatures/"

for p in ${included_paths[@]}; do
    internal_ndk_path="${NDK_DIRECTORY}/${p}"
    if [ ! -e "${internal_ndk_path}" ]; then
	echo Cannot find ${internal_ndk_path}
	exit 1
    fi
done

tar jcf android-ndk-${NDK_VERSION}-packaged.tar.bz2 -C ${NDK_DIRECTORY} \
    --transform="s#^#android-ndk/#" \
    "${included_paths[@]}"
Attachment #8734711 - Flags: review?(nalexander)
Comment on attachment 8734711 [details] [diff] [review]
update to Android NDK r11b

I'm fine with this, but it's you, snorp, jchen, etc who will actually deal with fallout, so one of the others should be okay with this too :)

I would like to see the script completed (i.e., include the file download) and landed in `build`.  Python is better than shell, but shell is better than nothing.  I could live with a follow-up ticket if you really don't want to invest the time.
Attachment #8734711 - Flags: review?(nalexander) → review?(snorp)
Comment on attachment 8734711 [details] [diff] [review]
update to Android NDK r11b

Review of attachment 8734711 [details] [diff] [review]:
-----------------------------------------------------------------

Hooray!
Attachment #8734711 - Flags: review?(snorp) → review+

Comment 5

a year ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/e7b4afa0a2ca
(Assignee)

Updated

a year ago
Blocks: 1260208

Comment 6

a year ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/e7b4afa0a2ca
Status: NEW → RESOLVED
Last Resolved: a year ago
status-firefox48: --- → fixed
Resolution: --- → FIXED
It looks like this change decreased the size of Android's libxul.so by almost 100K - the single biggest decrease in libxul this quarter. Thank you!

https://treeherder.mozilla.org/perf.html#/graphs?timerange=7776000&series=[mozilla-inbound,7517209843c92900e48c1a8f72252b633110a8f1,1]&zoom=1459078277502.994,1459343554000,24810356.046945777,25135947.80117162&selected=[mozilla-inbound,7517209843c92900e48c1a8f72252b633110a8f1,29235,24748588]
(Assignee)

Comment 8

a year ago
(In reply to Geoff Brown [:gbrown] from comment #7)
> It looks like this change decreased the size of Android's libxul.so by
> almost 100K - the single biggest decrease in libxul this quarter. Thank you!
> 
> https://treeherder.mozilla.org/perf.html#/
> graphs?timerange=7776000&series=[mozilla-inbound,
> 7517209843c92900e48c1a8f72252b633110a8f1,1]&zoom=1459078277502.994,
> 1459343554000,24810356.046945777,25135947.80117162&selected=[mozilla-inbound,
> 7517209843c92900e48c1a8f72252b633110a8f1,29235,24748588]

You're welcome!  I didn't know this was coming, but that's great news!

This graph is uninspiring, though; there have been a number of patches landing lately that were intended to reduce the size of libxul and they're hardly visible on that graph. :(  Bug 1255425, for instance, is a barely noticeable blip. :(
You need to log in before you can comment on or make changes to this bug.