Chromium build failing for Android on Ubuntu 12.04; assembler error?

1,216 views
Skip to first unread message

Jonathan Lipps

unread,
Jul 11, 2013, 6:41:48 PM7/11/13
to chromi...@chromium.org
Hi all, I just posted this as a bug then found this discussion group and thought it might be a better place to get help. Anyone have any ideas?

I followed all the steps on the wiki to configure and build Chromium on Android. I'm on Ubuntu 12.04. I ran the following commands after all the setup and gclient syncing etc:

. build/android/envsetup.sh --target-arch=x86
android_gyp
ninja -C out/Release -j10 content_shell_apk

Chrome was compiling fine until this error:

[376/9607] CXX obj/v8/src/v8_base.ia32.hydrogen.o
FAILED: /mnt/chromebuild/src/third_party/android_tools/ndk//toolchains/x86-4.6/prebuilt/linux-x86_64/bin/i686-linux-android-g++ -MMD -MF obj/v8/src/v8_base.ia32.hydrogen.o.d -DANGLE_DX11 -D_FILE_OFFSET_BITS=64 -DUSE_LINUX_BREAKPAD -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DUSE_LIBJPEG_TURBO=1 -DENABLE_WEBRTC=1 -DUSE_PROPRIETARY_CODECS -DENABLE_GPU=1 -DUSE_OPENSSL=1 -DENABLE_EGLIMAGE=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_LANGUAGE_DETECTION=1 -DV8_TARGET_ARCH_IA32 -DENABLE_DEBUGGER_SUPPORT -DCAN_USE_VFP_INSTRUCTIONS -DANDROID -D__GNU_SOURCE=1 -DUSE_STLPORT=1 -D_STLP_USE_PTR_SPECIALIZATIONS=1 '-DCHROME_BUILD_ID=""' -DHAVE_SYS_UIO_H -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../../v8/src --param=ssp-buffer-size=4 -fno-exceptions -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-format -m32 -mmmx -march=pentium4 -msse2 -mfpmath=sse -fuse-ld=gold -ffunction-sections -funwind-tables -g -fno-short-enums -finline-limit=64 -Wa,--noexecstack --sysroot=/mnt/chromebuild/src/third_party/android_tools/ndk//platforms/android-14/arch-x86 -I/mnt/chromebuild/src/third_party/android_tools/ndk//sources/cxx-stl/stlport/stlport -fno-stack-protector -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables -fdata-sections -ffunction-sections -O2 -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wno-deprecated  -c ../../v8/src/hydrogen.cc -o obj/v8/src/v8_base.ia32.hydrogen.o
{standard input}: Assembler messages:
{standard input}:80537: Warning: end of file not at end of a line; newline inserted
{standard input}:81120: Error: unknown pseudo-op: `.cfi_d'
{standard input}:81120: Error: open CFI at the end of file; missing .cfi_endproc directive
i686-linux-android-g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://source.android.com/source/report-bugs.html> for instructions.

I'm not sure how to attach the preprocessed source.

David Turner

unread,
Jul 11, 2013, 7:15:52 PM7/11/13
to jli...@gmail.com, chromium-dev
Puzzling, I can't reproduce this.

I'm on Ubuntu 12.04 x86_64 and rebuilt from an upstream tree with the same setup instructions you gave here.

Are you sure the content of your third_party/tools/android/ndk is clean?


--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
 
 
 

Jonathan Lipps

unread,
Jul 11, 2013, 7:40:44 PM7/11/13
to David Turner, chromium-dev
I'm not sure--is there a way to be sure? Here is the system setup script I cobbled together from the 6 or 7 relevant wiki pages:

chromium-setup.sh
----------------------------
# instructions for setting up system in order to build chrome on 

chromebase=/mnt/chromebuild

sudo adduser chromebuild
# give normal password
sudo adduser chromebuild sudo

sudo mkdir -p $chromebase
sudo chown chromebuild $chromebase

sudo -iu chromebuild
cd $chromebase

echo "export PATH=$chromebase/depot_tools:\$PATH" >> ~/.bashrc
. ~/.bashrc

# get code
fetch chromium --nosvn=True
echo "\ntarget_os = ['android']" >> $chromebase/.gclient
# fix missing deps
cd $chromebase/src
./build/install-build-deps.sh
./build/install-build-deps-android.sh
gclient sync --nohooks
. ./build/android/envsetup.sh --target-arch=x86
gclient runhooks

# finish fetch
#fetch android --nosvn=True # not needed? doesn't seem to do anything

# configure java
cd $HOME
# need to SCP a jdk-6u45-linux-x64.bin file over since oracle sucks
cd /usr/lib/jvm && sudo /bin/sh $HOME/jdk-6u45-linux-x64.bin -noregister
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 50000
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 50000
sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_45/bin/javaws 50000
sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.6.0_45/bin/javap 50000
sudo update-alternatives --config javac
sudo update-alternatives --config java
sudo update-alternatives --config javaws
sudo update-alternatives --config javap

David Turner

unread,
Jul 11, 2013, 10:18:21 PM7/11/13
to Jonathan Lipps, chromium-dev
Your script looks ok. Still weird :) Ok, can you have a look at the generated assembly file, and see why the assembler is complaining at line 80537

I.e. first run:

/mnt/chromebuild/src/third_party/android_tools/ndk//toolchains/x86-4.6/prebuilt/linux-x86_64/bin/i686-linux-android-g++ -MMD -MF obj/v8/src/v8_base.ia32.hydrogen.o.d -DANGLE_DX11 -D_FILE_OFFSET_BITS=64 -DUSE_LINUX_BREAKPAD -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DUSE_LIBJPEG_TURBO=1 -DENABLE_WEBRTC=1 -DUSE_PROPRIETARY_CODECS -DENABLE_GPU=1 -DUSE_OPENSSL=1 -DENABLE_EGLIMAGE=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_LANGUAGE_DETECTION=1 -DV8_TARGET_ARCH_IA32 -DENABLE_DEBUGGER_SUPPORT -DCAN_USE_VFP_INSTRUCTIONS -DANDROID -D__GNU_SOURCE=1 -DUSE_STLPORT=1 -D_STLP_USE_PTR_SPECIALIZATIONS=1 '-DCHROME_BUILD_ID=""' -DHAVE_SYS_UIO_H -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../../v8/src --param=ssp-buffer-size=4 -fno-exceptions -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-format -m32 -mmmx -march=pentium4 -msse2 -mfpmath=sse -fuse-ld=gold -ffunction-sections -funwind-tables -g -fno-short-enums -finline-limit=64 -Wa,--noexecstack --sysroot=/mnt/chromebuild/src/third_party/android_tools/ndk//platforms/android-14/arch-x86 -I/mnt/chromebuild/src/third_party/android_tools/ndk//sources/cxx-stl/stlport/stlport -fno-stack-protector -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables -fdata-sections -ffunction-sections -O2 -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wno-deprecated  -S ../../v8/src/hydrogen.cc -o obj/v8/src/v8_base.ia32.hydrogen.s

Then look at the content of obj/v8/src/v8_base.ia32.hydrogen.s
(for the record, this is your original command, with '-c' changed to '-S' and '..../hydrogen.o' changed to '...../hydrogen.s')
By the way, are you sure you have enough disk space to build Chromium? There are plenty of weird errors that pop up when trying to build on a full disk.

Jonathan Lipps

unread,
Jul 12, 2013, 11:27:22 AM7/12/13
to David Turner, chromium-dev
This is :80537 and context:

.LVL6101:
.LBE70620:
.LBE70619:
        .loc 3 332 0
        addl    $44, %esp          <--- 80537
        .cfi_remember_state
.LCFI3260:
        .cfi_def_cfa_offset 20
        popl    %ebx
.LCFI3261:
        .cfi_def_cfa_offset 16
        .cfi_restore 3
        popl    %esi

I'm not an assembler so I have no clue what's going on here :-)

This is :81120 (where previously it complained about proc .cfi_d:

.LCFI3294:
        .cfi_def_cfa_offset 16   <---- 81120
        .cfi_restore 3
        popl    %esi

Clearly this is what it was complaining about, but not sure why.

This is assembler version (if I'm looking at the binary ninja uses):

chromebuild@mantis:/mnt/chromebuild/src/v8$ as --version
GNU assembler (GNU Binutils for Ubuntu) 2.22
Copyright 2011 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-linux-gnu'.

Interestingly, rerunning the command that failed during the build by hand worked. At least, I didn't get any assembler errors running with -c

I'll try another ninja build… maybe it was a random system flake somehow. Let you know in a few hours :-)

Jonathan Lipps

unread,
Jul 12, 2013, 11:41:50 AM7/12/13
to David Turner, chromium-dev
Already made it past task 376 (which is what failed before), so looks like this was a false alarm.

No clue what would have made it work this time; I ran zero commands in between the failure and then investigating following your instructions.

Weird! Thanks for your help, David.

Jonathan Lipps

unread,
Jul 12, 2013, 12:19:09 PM7/12/13
to David Turner, chromium-dev
Actually I can think of a difference. Initially, when I got the error, I was running under a byobu session. Without it, things go OK. I tried again under a byobu session and get random failures at different points in the compile process. Can you think of any reason running under byobu would cause this? I made sure to set my android env using the provided script…

David Turner

unread,
Jul 12, 2013, 12:50:36 PM7/12/13
to Jonathan Lipps, chromium-dev
On Fri, Jul 12, 2013 at 9:19 AM, Jonathan Lipps <jli...@gmail.com> wrote:
Actually I can think of a difference. Initially, when I got the error, I was running under a byobu session. Without it, things go OK. I tried again under a byobu session and get random failures at different points in the compile process. Can you think of any reason running under byobu would cause this? I made sure to set my android env using the provided script…

It's the first time I ever heard about this tool :) And no, I don't see a reason why this would affect your build.

Jonathan Lipps

unread,
Jul 12, 2013, 12:55:28 PM7/12/13
to David Turner, chromium-dev
Beginning to think it might be something else. Started to get errors outside of byobu as well. The kinds of errors I was getting led me to believe maybe I didn't have some 32-bit support. So I ran:

sudo apt-get install libc6-dev-i386

And am re-running the build. Will report back. I'm stumped as to why this would cause failures at different steps in the build process; sometimes I'd make it to step 500, sometimes to step 12. Build tasks aren't executed in non-deterministic order are they?

Jonathan Lipps

unread,
Jul 12, 2013, 2:12:26 PM7/12/13
to Jonathan Lipps, David Turner, chromium-dev
Things remain weird. I've made it quite a bit further. I keep getting errors, but then I'm usually able to re-run the command by hand without failure, then restart the build process. Now I'm getting python errors:

[1446/8274] ACTION Creating jsr_305_javalib jar
FAILED: cd ../../third_party/jsr-305; python ../../build/android/gyp/jar.py "--classes-dir=../../out/Release/gen/jsr_305_javalib/classes" "--jar-path=../../out/Release/lib.java/jsr_305_javalib.jar" "--excluded-classes=\"*/R.class\" \"*/R##*.class\"" "--ignore=7fbb7b6355a1674ecbd3ec9de91caea4  -"
Traceback (most recent call last):
  File "../../build/android/gyp/jar.py", line 61, in <module>
    sys.exit(main(sys.argv))
  File "../../build/android/gyp/jar.py", line 54, in main
    DoJar(options)
  File "../../build/android/gyp/jar.py", line 36, in DoJar
    input_strings=jar_cmd)
  File "/mnt/chromebuild/src/build/android/gyp/util/md5_check.py", line 25, in CallAndRecordIfStale
    function()
  File "../../build/android/gyp/jar.py", line 33, in <lambda>
    lambda: build_utils.CheckCallDie(jar_cmd, cwd=jar_cwd),
  File "/mnt/chromebuild/src/build/android/gyp/util/build_utils.py", line 91, in CheckCallDie
    stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=cwd)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
[1446/8274] ACTION make_derived_sources: CalendarPicker_ba8310bf1e05050066db7a2e78a9e96f
ninja: build stopped: subcommand failed.

After looking through all the traceback points, I noticed this:

jar_cmd = ['jar', 'cf0', jar_path] + class_files_rel

and unfortunately `which jar` on my system returned nothing. So I ran this:

sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 50000

And then I was able to re-run the failed build command by hand successfully. We might want to add this to the list of java configuration commands on the wiki!

Off to keep running ninja...

Victor Khimenko

unread,
Jul 12, 2013, 3:33:00 PM7/12/13
to jli...@gmail.com, David Turner, chromium-dev
On Fri, Jul 12, 2013 at 10:12 PM, Jonathan Lipps <jli...@gmail.com> wrote:
Things remain weird. I've made it quite a bit further. I keep getting errors, but then I'm usually able to re-run the command by hand without failure, then restart the build process.

Time to check your hardware, I think. Thermal paste on CPU, cooling, etc.

Christian Biesinger

unread,
Jul 12, 2013, 4:20:55 PM7/12/13
to jli...@gmail.com, David Turner, chromium-dev
So the steps are deterministic (afaik), but only things that didn't
finish last time are added to the list of steps. So after a partial
build, the numbers will change...

-christian

Jonathan Lipps

unread,
Jul 12, 2013, 5:26:29 PM7/12/13
to Christian Biesinger, David Turner, chromium-dev
That makes sense.

I resolved some of the earlier issues by installing ia32-libs and libc6-dev-i386.

However I'm still failing, I think because of 32-bit vs 64-bit issues, with errors like this:

[12/5685] LINK mksnapshot.ia32
FAILED: /usr/bin/g++ -Wl,-z,now -Wl,-z,relro -pthread -fPIC -m32 -Wl,--fatal-warnings -Wl,--warn-shared-textrel -o mksnapshot.ia32 -Wl,--start-group obj.host/v8/src/mksnapshot.ia32.mksnapshot.o obj.host/v8/tools/gyp/libv8_base.ia32.a obj.host/v8/tools/gyp/libv8_nosnapshot.ia32.a -Wl,--end-group
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status

I tried exporting CFLAGS et al to include -m32, but it seems -m32 is already included with the g++ command so as expected that didn't help. Looks like /usr/lib/gcc has these different variants:

chromebuild@mantis:/mnt/chromebuild/src/out/Release$ ls /usr/lib/gcc
i686-linux-gnu x86_64-linux-gnu

Do I just need to switch which one is used by ninja somehow?

Victor Khimenko

unread,
Jul 12, 2013, 5:40:11 PM7/12/13
to jli...@gmail.com, Christian Biesinger, David Turner, chromium-dev
On Sat, Jul 13, 2013 at 1:26 AM, Jonathan Lipps <jli...@gmail.com> wrote:
That makes sense.

I resolved some of the earlier issues by installing ia32-libs and libc6-dev-i386.

However I'm still failing, I think because of 32-bit vs 64-bit issues, with errors like this:

[12/5685] LINK mksnapshot.ia32
FAILED: /usr/bin/g++ -Wl,-z,now -Wl,-z,relro -pthread -fPIC -m32 -Wl,--fatal-warnings -Wl,--warn-shared-textrel -o mksnapshot.ia32 -Wl,--start-group obj.host/v8/src/mksnapshot.ia32.mksnapshot.o obj.host/v8/tools/gyp/libv8_base.ia32.a obj.host/v8/tools/gyp/libv8_nosnapshot.ia32.a  -Wl,--end-group
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status

Hmm... Do you have g++-multilib package installed?

Jonathan Lipps

unread,
Jul 12, 2013, 5:45:06 PM7/12/13
to Victor Khimenko, Christian Biesinger, David Turner, chromium-dev
Nope! Installing it enabled linking to succeed in this case.

On to the next level of this really awesome video game, thanks for the cheatz guys

David Turner

unread,
Jul 12, 2013, 5:57:32 PM7/12/13
to Jonathan Lipps, chromium-dev
On Fri, Jul 12, 2013 at 8:27 AM, Jonathan Lipps <jli...@gmail.com> wrote:
This is :80537 and context:

.LVL6101:
.LBE70620:
.LBE70619:
        .loc 3 332 0
        addl    $44, %esp          <--- 80537
        .cfi_remember_state
.LCFI3260:
        .cfi_def_cfa_offset 20
        popl    %ebx
.LCFI3261:
        .cfi_def_cfa_offset 16
        .cfi_restore 3
        popl    %esi

I'm not an assembler so I have no clue what's going on here :-)

This is :81120 (where previously it complained about proc .cfi_d:

.LCFI3294:
        .cfi_def_cfa_offset 16   <---- 81120
        .cfi_restore 3
        popl    %esi

Clearly this is what it was complaining about, but not sure why.


The assembly above is completely ok. However, the error messages that you showed earlier, i.e.:

{standard input}: Assembler messages:
{standard input}:80537: Warning: end of file not at end of a line; newline inserted
{standard input}:81120: Error: unknown pseudo-op: `.cfi_d'
{standard input}:81120: Error: open CFI at the end of file; missing .cfi_endproc directive
i686-linux-android-g++: internal compiler error: Killed (program cc1plus)
 Seem to suggest that the assembler didn't see the same input. It's as if some parts of the generated were truncated. This is not the kind of issue that appears when you don't have g++multilibs installed :)

If you still experience similar build issues, please consider checking your hardware as suggested by Viktor. There may be something with your CPU / memory / disk which creates these spurious errors.

Hopefully this is not the case and you'll keep going though :-)

Jonathan Lipps

unread,
Jul 12, 2013, 6:30:22 PM7/12/13
to David Turner, chromium-dev
 Seem to suggest that the assembler didn't see the same input. It's as if some parts of the generated were truncated. This is not the kind of issue that appears when you don't have g++multilibs installed :)

If you still experience similar build issues, please consider checking your hardware as suggested by Viktor. There may be something with your CPU / memory / disk which creates these spurious errors.

As this is an EC2 box my duct tape will do little good :-( I'll keep that in mind though, thanks

Jonathan Lipps

unread,
Jul 15, 2013, 10:58:33 PM7/15/13
to David Turner, chromium-dev
By the way, to follow up on this issue, I think I've narrowed it down to it being a parallel execution issue. After a while it would start failing reliably every X times, where X was what I passed to ninja with -j. I'm running it now without any parallelization at all and it seems to be going ok.

Is it possible -j10 was just too much for my EC2 box? Seems like a bunch of weird errors even so.

David Turner

unread,
Jul 16, 2013, 1:21:15 AM7/16/13
to Jonathan Lipps, chromium-dev
On Mon, Jul 15, 2013 at 7:58 PM, Jonathan Lipps <jli...@gmail.com> wrote:
By the way, to follow up on this issue, I think I've narrowed it down to it being a parallel execution issue. After a while it would start failing reliably every X times, where X was what I passed to ninja with -j. I'm running it now without any parallelization at all and it seems to be going ok.

Is it possible -j10 was just too much for my EC2 box? Seems like a bunch of weird errors even so.

Fwiw, I routinely build with a bigger count (on a workstation with 16 cores).

The -l option might be of interest to you, e.g. "ninja -j100 -l20" tries to run 100 tasks in parallel as long as this doesn't make the load exceed 20, this is useful if you're i/o bound due to a slow disk. Not sure how this would work on an EC2 box. though.

Jonathan Lipps

unread,
Jul 17, 2013, 9:58:46 AM7/17/13
to David Turner, chromium-dev
OK guys, I'm getting really close!

FWIW, anytime I had -jX > 1, I ran into the errors I described, even when limiting load. So I've tried a few times to run a clean build with -j = 1, and inevitably it fails very close to the end with this message. Looks like a shell script fails. I'm not sure how to troubleshoot this; can't see anything that looks obviously wrong or makes me think I have a package missing. Any ideas? Thanks for the feedback so far!

[9313/9328] SOLINK lib/libcontent_shell_content_view.so
FAILED: if [ ! -e lib/libcontent_shell_content_view.so -o ! -e lib/libcontent_shell_content_view.so.TOC ]; then /mnt/chromebuild/src/third_party/android_tools/ndk//toolchains/x86-4.6/prebuilt/linux-x86_64/bin/i686-linux-android-g++ -shared -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -fPIC -m32 -fuse-ld=gold -nostdlib -Wl,--no-undefined -Wl,--exclude-libs=ALL --sysroot=/mnt/chromebuild/src/third_party/android_tools/ndk//platforms/android-14/arch-x86 -L/mnt/chromebuild/src/third_party/android_tools/ndk//sources/cxx-stl/stlport/libs/x86 -Wl,-shared,-Bsymbolic /mnt/chromebuild/src/third_party/android_tools/ndk//platforms/android-14/arch-x86/usr/lib/crtbegin_so.o -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,--fatal-warnings -Wl,--warn-shared-textrel -o lib/libcontent_shell_content_view.so -Wl,-soname=libcontent_shell_content_view.so -Wl,--whole-archive obj/content/shell/android/libcontent_shell_content_view.shell_library_loader.o libzip.a libv8_base.ia32.a libgmock.a libaudio_processing.a libwebp_enc.a libplayer_android.a libwebcore_test_support.a libgles2_cmd_helper.a libphonenumber_without_metadata.a libwebcore_svg.a libsrtp.a libwebkit_compositor_bindings.a libwebkit_common.a libG711.a libglue_child.a libppapi_shared.a libsdch.a libv8-i18n.a libG722.a libpaced_sender.a libwebkit_support.a libmedia.a libplugins.a libnet_test_support.a libwebkit_media.a libgtest.a libaudio_processing_sse2.a libcc.a libshared_memory_support.a libwebkit_renderer.a libwebp_dsp.a libwebcore_rendering.a libjingle_webrtc.a libjingle_webrtc_common.a libtranslator_glsl.a libvideo_render_module.a libwebkit_gpu.a libprotobuf_lite.a libbitrate_controller.a libtranslator_common.a libvideo_processing.a libshared_memory_support_sse.a libvoice_engine.a libPCM16B.a libopus.a libwebcore_platform_geometry.a libhyphen.a libipc.a libwebkit_storage_common.a libnative_theme.a libplugins_common.a libsystem_wrappers.a libminizip.a libwebkit.a libaudio_device.a libbase.a libcommand_buffer_service.a libgles2_c_lib.a libwtf.a libspeech_proto.a libcommand_buffer_client.a libsql.a liblzma_sdk.a libwebcore_html.a libtest_support_ipc.a libglue.a libtest_support_content.a libgpu_config.a libui.a libglue_common.a libsqlite3.a libmedia_asm.a libwebkit_support_gfx.a libiLBC.a libaudio_coding_module.a libicudata.a libiccjpeg.a libcontent_shell_lib.a libwebrtc_opus.a libdisk_cache_proto.a libgles2_implementation.a libcontent_worker.a libsurface.a libwebkit_test_support.a libwebkit_storage_renderer.a libcommon_video.a libcommon_audio.a libjingle_p2p_constants.a libevent.a libsnappy.a libvpx.a libmodules.a libjingle.a libiSACFix.a libshell_dialogs.a libTestRunner.a libppapi_proxy.a libcontent_browser.a libwebrtc_utility.a libuser_agent.a libwebp_demux.a libwebcore_platform.a libcontent_gpu.a librtp_rtcp.a libwebcore_remaining.a libremote_bitrate_estimator.a libyuv.a libwebkit_support_common.a libcommand_buffer_common.a libjingle_glue.a libvpx_asm_offsets_vp8.a libwebp_utils.a libwebcore_dom.a libgpu_ipc.a libre2.a libnet_with_v8.a libxslt.a libblink_common.a libwebrtc_vp8.a libseccomp_bpf.a libots.a libchrome_zlib.a libmedia_sse.a libbase_static.a libpeerconnection.a libiSAC.a libmodp_b64.a libcontent_renderer.a libaudioproc_debug_proto.a libjpeg_turbo.a libcontent_common.a libcrcrypto.a libwebcore_derived.a libxml2.a libmedia_mmx.a libwebrtc_i420.a libppapi_ipc.a libvideo_capture_module.a libtld_cleanup_util.a libexpat.a libpreprocessor.a libwebrtc_video_coding.a libcontent_app.a libmedia_file.a libppapi_host.a libui_test_support.a libvideo_processing_sse2.a libdynamic_annotations.a libskia.a libgl_wrapper.a libCNG.a libcpu_features_android.a libhttp_server.a libqcms.a libppapi_unittest_shared.a libvpx_intrinsics_sse2.a libtest_support_base.a liburl_lib.a libbase_i18n.a libnet.a libopenssl.a libleveldatabase.a libv8_snapshot.a libphonenumber.a libcityhash.a libskia_opts.a libwebp_dec.a libashmem.a libNetEq.a libprinting.a libvideo_coding_utility.a libicui18n.a libwebkit_compositor_support.a libcontent_utility.a libsnapshot.a libvpx_intrinsics_mmx.a libicuuc.a libft2.a libharfbuzz-ng.a libpng.a libvideo_engine_core.a libcontent_child.a libtracing.a libcpu_features.a libvpx_intrinsics_ssse3.a libcommon_audio_sse2.a libsandbox_services.a libmedia_sse2.a libgoogle_apis.a libaudio_conference_mixer.a libgles2_utils.a libwebkit_storage_browser.a libweborigin.a liballocator_extension_thunks.a  -Wl,--no-whole-archive -landroid -llog -lOpenSLES -ljnigraphics -lstlport_static /mnt/chromebuild/src/third_party/android_tools/ndk/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.6/libgcc.a -lc -ldl -lstdc++ -lm /mnt/chromebuild/src/third_party/android_tools/ndk//platforms/android-14/arch-x86/usr/lib/crtend_so.o && { readelf -d lib/libcontent_shell_content_view.so | grep SONAME ; nm -gD -f p lib/libcontent_shell_content_view.so | cut -f1-2 -d' '; } > lib/libcontent_shell_content_view.so.TOC; else /mnt/chromebuild/src/third_party/android_tools/ndk//toolchains/x86-4.6/prebuilt/linux-x86_64/bin/i686-linux-android-g++ -shared -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -fPIC -m32 -fuse-ld=gold -nostdlib -Wl,--no-undefined -Wl,--exclude-libs=ALL --sysroot=/mnt/chromebuild/src/third_party/android_tools/ndk//platforms/android-14/arch-x86 -L/mnt/chromebuild/src/third_party/android_tools/ndk//sources/cxx-stl/stlport/libs/x86 -Wl,-shared,-Bsymbolic /mnt/chromebuild/src/third_party/android_tools/ndk//platforms/android-14/arch-x86/usr/lib/crtbegin_so.o -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,--fatal-warnings -Wl,--warn-shared-textrel -o lib/libcontent_shell_content_view.so -Wl,-soname=libcontent_shell_content_view.so -Wl,--whole-archive obj/content/shell/android/libcontent_shell_content_view.shell_library_loader.o libzip.a libv8_base.ia32.a libgmock.a libaudio_processing.a libwebp_enc.a libplayer_android.a libwebcore_test_support.a libgles2_cmd_helper.a libphonenumber_without_metadata.a libwebcore_svg.a libsrtp.a libwebkit_compositor_bindings.a libwebkit_common.a libG711.a libglue_child.a libppapi_shared.a libsdch.a libv8-i18n.a libG722.a libpaced_sender.a libwebkit_support.a libmedia.a libplugins.a libnet_test_support.a libwebkit_media.a libgtest.a libaudio_processing_sse2.a libcc.a libshared_memory_support.a libwebkit_renderer.a libwebp_dsp.a libwebcore_rendering.a libjingle_webrtc.a libjingle_webrtc_common.a libtranslator_glsl.a libvideo_render_module.a libwebkit_gpu.a libprotobuf_lite.a libbitrate_controller.a libtranslator_common.a libvideo_processing.a libshared_memory_support_sse.a libvoice_engine.a libPCM16B.a libopus.a libwebcore_platform_geometry.a libhyphen.a libipc.a libwebkit_storage_common.a libnative_theme.a libplugins_common.a libsystem_wrappers.a libminizip.a libwebkit.a libaudio_device.a libbase.a libcommand_buffer_service.a libgles2_c_lib.a libwtf.a libspeech_proto.a libcommand_buffer_client.a libsql.a liblzma_sdk.a libwebcore_html.a libtest_support_ipc.a libglue.a libtest_support_content.a libgpu_config.a libui.a libglue_common.a libsqlite3.a libmedia_asm.a libwebkit_support_gfx.a libiLBC.a libaudio_coding_module.a libicudata.a libiccjpeg.a libcontent_shell_lib.a libwebrtc_opus.a libdisk_cache_proto.a libgles2_implementation.a libcontent_worker.a libsurface.a libwebkit_test_support.a libwebkit_storage_renderer.a libcommon_video.a libcommon_audio.a libjingle_p2p_constants.a libevent.a libsnappy.a libvpx.a libmodules.a libjingle.a libiSACFix.a libshell_dialogs.a libTestRunner.a libppapi_proxy.a libcontent_browser.a libwebrtc_utility.a libuser_agent.a libwebp_demux.a libwebcore_platform.a libcontent_gpu.a librtp_rtcp.a libwebcore_remaining.a libremote_bitrate_estimator.a libyuv.a libwebkit_support_common.a libcommand_buffer_common.a libjingle_glue.a libvpx_asm_offsets_vp8.a libwebp_utils.a libwebcore_dom.a libgpu_ipc.a libre2.a libnet_with_v8.a libxslt.a libblink_common.a libwebrtc_vp8.a libseccomp_bpf.a libots.a libchrome_zlib.a libmedia_sse.a libbase_static.a libpeerconnection.a libiSAC.a libmodp_b64.a libcontent_renderer.a libaudioproc_debug_proto.a libjpeg_turbo.a libcontent_common.a libcrcrypto.a libwebcore_derived.a libxml2.a libmedia_mmx.a libwebrtc_i420.a libppapi_ipc.a libvideo_capture_module.a libtld_cleanup_util.a libexpat.a libpreprocessor.a libwebrtc_video_coding.a libcontent_app.a libmedia_file.a libppapi_host.a libui_test_support.a libvideo_processing_sse2.a libdynamic_annotations.a libskia.a libgl_wrapper.a libCNG.a libcpu_features_android.a libhttp_server.a libqcms.a libppapi_unittest_shared.a libvpx_intrinsics_sse2.a libtest_support_base.a liburl_lib.a libbase_i18n.a libnet.a libopenssl.a libleveldatabase.a libv8_snapshot.a libphonenumber.a libcityhash.a libskia_opts.a libwebp_dec.a libashmem.a libNetEq.a libprinting.a libvideo_coding_utility.a libicui18n.a libwebkit_compositor_support.a libcontent_utility.a libsnapshot.a libvpx_intrinsics_mmx.a libicuuc.a libft2.a libharfbuzz-ng.a libpng.a libvideo_engine_core.a libcontent_child.a libtracing.a libcpu_features.a libvpx_intrinsics_ssse3.a libcommon_audio_sse2.a libsandbox_services.a libmedia_sse2.a libgoogle_apis.a libaudio_conference_mixer.a libgles2_utils.a libwebkit_storage_browser.a libweborigin.a liballocator_extension_thunks.a  -Wl,--no-whole-archive -landroid -llog -lOpenSLES -ljnigraphics -lstlport_static /mnt/chromebuild/src/third_party/android_tools/ndk/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.6/libgcc.a -lc -ldl -lstdc++ -lm /mnt/chromebuild/src/third_party/android_tools/ndk//platforms/android-14/arch-x86/usr/lib/crtend_so.o && { readelf -d lib/libcontent_shell_content_view.so | grep SONAME ; nm -gD -f p lib/libcontent_shell_content_view.so | cut -f1-2 -d' '; } > lib/libcontent_shell_content_view.so.tmp && if ! cmp -s lib/libcontent_shell_content_view.so.tmp lib/libcontent_shell_content_view.so.TOC; then mv lib/libcontent_shell_content_view.so.tmp lib/libcontent_shell_content_view.so.TOC ; fi; fi
collect2: ld terminated with signal 9 [Killed]
ninja: build stopped: subcommand failed.

Torne (Richard Coles)

unread,
Jul 17, 2013, 10:02:59 AM7/17/13
to jli...@gmail.com, David Turner, chromium-dev
That's not a shell script, that's the linker. Do you have enough memory? Is there a message in your kernel log about the kernel OOM killer sending the process a signal? This would also explain why you can't build with -jN :)

You said you were building on EC2 - I hope you're using a really expensive instance, because you probably need at least 8GB of memory to be able to build this with no issues :p

Jonathan Lipps

unread,
Jul 17, 2013, 10:04:27 AM7/17/13
to Torne (Richard Coles), chromium-dev
Right you are:

Jul 17 11:32:10 mantis kernel: [28447824.627002] [ 6211]  1016  6211  1465167   368812   0       0             0 ld.gold
Jul 17 11:32:10 mantis kernel: [28447824.627006] Out of memory: Kill process 6211 (ld.gold) score 759 or sacrifice child
Jul 17 11:32:10 mantis kernel: [28447824.627023] Killed process 6211 (ld.gold) total-vm:5860668kB, anon-rss:1475248kB, file-rss:0kB

Thanks for that. Looks like I need to get more memory for this EC2 box.

On Jul 17, 2013, at 10:00 AM, "Torne (Richard Coles)" <to...@chromium.org> wrote:

That's not a shell script, that's the linker. Do you have enough memory? Is there a message in your kernel log about the kernel OOM killer sending the process a signal?
On 17 July 2013 14:58, Jonathan Lipps <jli...@gmail.com> wrote:

Torne (Richard Coles)

unread,
Jul 17, 2013, 10:08:56 AM7/17/13
to Jonathan Lipps, chromium-dev
8GB is probably the minimum you should consider; if you want to build fast with a reasonable -j you will likely need more. Our work machines typically have 24/32/64GB depending on age :)

Jonathan Lipps

unread,
Jul 17, 2013, 11:06:59 AM7/17/13
to Torne (Richard Coles), chromium-dev
OK, I've got a beefier box (15GB, and 8 cores instead of 1) and am re-cloning etc. We'll see how it goes

Jonathan Lipps

unread,
Jul 19, 2013, 11:49:48 AM7/19/13
to Torne (Richard Coles), chromium-dev
I wanted to report back that after upgrading my hardware the build ran fine. Awesome!

Thanks for the help everyone.

(Oh, another thing to add to the Android setup wiki: jarsigner needs to be on path as well)
Reply all
Reply to author
Forward
0 new messages