Issue 127646 in chromium: Segmentation fault on start

236 views
Skip to first unread message

chro...@googlecode.com

unread,
May 10, 2012, 5:03:46 PM5/10/12
to chromi...@chromium.org
Status: Unconfirmed
Owner: ----
Labels: OS-Linux Area-Undefined Type-Bug Pri-2

New issue 127646 by chrome.m...@gmail.com: Segmentation fault on start
http://code.google.com/p/chromium/issues/detail?id=127646

Chrome Version : <Copy from: 'about:version'>
OS Version: Ubuntu Linaro 11.10 for arm
URLs (if applicable) :
Other browsers tested:
Add OK or FAIL after other browsers where you have tested this issue:
Safari 5:
Firefox 4.x:
IE 7/8/9:

What steps will reproduce the problem?
1. download source code; code SVN revision r135761
2. cross-compiled the source code for arm; the cross-compiled instructions
are recipe 3 from http://code.google.com/p/chromium/wiki/LinuxChromiumArm
3. launch the browser; the browser window did not show up and the
segmentation fault observed.

What is the expected result?
The browser window shows up


What happens instead?
The segmentation fault occurs and the browser cannot be launched.


The GYP_DINFES are

readonly GYP_DEFINES="\
target_arch=arm \
armv7=1 \
sysroot=${SYSROOT} \
remoting=0 \
linux_breakpad=0 \
disable_nacl_untrusted=1 \
linux_use_tcmalloc=0
"


Please provide any additional information below. Attach a screenshot if
possible.

=========================================
For the save source code, if we first build a chromiumOS and then build the
chrome browser inside chroot environment, the chrome browser can be
launched with aura_root window. This time GYP defines are

* system_libdir=lib
* pkg-config=pkg-config-arm-generic
* use_xi2_mt=2
* swig_defines=-DOS_CHROMEOS
* chromeos=1
* use_ibus=1
* target_arch=arm
* armv7=1
* v8_can_use_unaligned_accesses=true
* remoting=1
* remove_webcore_debug_symbols=1
*
order_text_section=/var/cache/distfiles/target/chrome-src/pgo/section-ordering-files/orderfile
* strip_tests=1
* use_aura=1
* linux_use_tcmalloc=0
* use_cras=1
* internal_pdf=0
* release_extra_cflags='-g'
=====================================

We need a chromium browser with use_aura=0 and chromeos=0. If we
cross-compile the code, then the segmentation faults occurs and the browser
window does not show up.

If we set use_aura=0/chromeos=0 insde chrome, build/gyp_chromium fails.

Any suggestion on how to resolve this issue will be greatly appreciated.





chro...@googlecode.com

unread,
Jun 7, 2012, 12:16:35 AM6/7/12
to chromi...@chromium.org

Comment #1 on issue 127646 by kuii.zh...@gmail.com: Segmentation fault on
start
http://code.google.com/p/chromium/issues/detail?id=127646

Hi, what's the status of this bug? On SVN revision 140494, Chromium still
failed to start up due to "Segmentation fault". platform: Ubuntu Linaro
11.10 for arm (Pandaboard). Thanks

chro...@googlecode.com

unread,
Jul 25, 2012, 2:07:47 AM7/25/12
to chromi...@chromium.org

Comment #3 on issue 127646 by nap.zhou...@gmail.com: Segmentation fault on
start
http://code.google.com/p/chromium/issues/detail?id=127646

I traced this problem. It seems to crash before entering main().

(gdb) r
Starting program:
/home/joeyu/lin001/src/arm/chromium.r147179/src/out/Debug/chrome
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0x00634018 in ?? ()
(gdb) where
#0 0x00634018 in ?? ()

#1 0x4616ae5a in __libc_csu_init ()
#2 0x49461bf8 in __libc_start_main (main=0x40638aa8 <main(int, char
const**)>, argc=1, ubp_av=0xbefff334, init=0x4616ae45 <__libc_csu_init+1>,
fini=0x4616ae89 <__libc_csu_fini+1>, rtld_fini=0x48c3bb59,
stack_end=0xbefff334) at libc-start.c:185
#3 0x40638a1a in _start ()
(gdb) x 0x00634018
0x634018: Cannot access memory at address 0x634018
(gdb) disassemble 0x00634018
No function contains specified address.
(gdb) list
8 // windows, this does nothing but load chrome.dll and invoke its entry
point in
9 // order to make it easy to update the app from GoogleUpdate. We don't
need
10 // that extra layer with on linux.
11
12 extern "C" {
13 int ChromeMain(int argc, const char** argv);
14 }
15
16 int main(int argc, const char** argv) {
17 return ChromeMain(argc, argv);
(gdb) disassemble 0x4616ae5a
Dump of assembler code for function __libc_csu_init:
0x4616ae44 <+0>: stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
0x4616ae48 <+4>: mov r6, r0
0x4616ae4a <+6>: ldr.w r9, [pc, #52] ; 0x4616ae80 <__libc_csu_init+60>
0x4616ae4e <+10>: mov r7, r1
0x4616ae50 <+12>: ldr r5, [pc, #48] ; (0x4616ae84 <__libc_csu_init+64>)
0x4616ae52 <+14>: mov r8, r2
0x4616ae54 <+16>: add r9, pc
0x4616ae56 <+18>: blx 0x4616b668
0x4616ae5a <+22>: add r5, pc
0x4616ae5c <+24>: rsb r9, r5, r9
0x4616ae60 <+28>: movs.w r9, r9, asr #2
0x4616ae64 <+32>: beq.n 0x4616ae7a <__libc_csu_init+54>
0x4616ae66 <+34>: movs r4, #0
0x4616ae68 <+36>: ldr.w r3, [r5], #4
0x4616ae6c <+40>: mov r0, r6
0x4616ae6e <+42>: mov r1, r7
0x4616ae70 <+44>: mov r2, r8
0x4616ae72 <+46>: adds r4, #1
0x4616ae74 <+48>: blx r3
0x4616ae76 <+50>: cmp r4, r9
0x4616ae78 <+52>: bne.n 0x4616ae68 <__libc_csu_init+36>
0x4616ae7a <+54>: ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
0x4616ae7e <+58>: nop
0x4616ae80 <+60>: rsbseq r0, r3, #-1073741814 ; 0xc000000a
0x4616ae84 <+64>: rsbseq r0, r3, #-2147483637 ; 0x8000000b
End of assembler dump.
(gdb) (gdb) info register
r0 0x1 1
r1 0xbefff334 3204444980
r2 0xbefff33c 3204444988
r3 0x49529b80 1230150528
r4 0x4616ae45 1175891525
r5 0x273012e 41091374
r6 0x1 1
r7 0xbefff334 3204444980
r8 0xbefff33c 3204444988
r9 0x4889b104 1216983300
r10 0x48bf93f4 1220514804
r11 0x0 0
r12 0x0 0
sp 0xbefff1c8 0xbefff1c8
lr 0x4616ae5b 1175891547
pc 0x634018 0x634018
cpsr 0x600f0130 1611596080



chro...@googlecode.com

unread,
Aug 7, 2012, 5:24:08 AM8/7/12
to chromi...@chromium.org

Comment #4 on issue 127646 by nap.zhou...@gmail.com: Segmentation fault on
start
http://code.google.com/p/chromium/issues/detail?id=127646

Eventually found the root causes:

1) buggy gold linker. Gold linker, which located in src/third_party/gold,
is invoked by default, but it has problem with arm architecture. You should
disable this buggy gold linker by passing
`GYP_DEFINES="linux_use_gold_binary=0 linux_use_gold_flags=0"' to
`chrome_gyp'.

2) wrongly invoking `libgcrypt-config'. src/build/linux/system.gyp invokes
`libgcrypt-config --libs' to get link flags for `libgcrypt'. The problem is
it is always the host version of `libgcrypt-config' that is invoked and
returns `-L/lib/x86_64-linux-gnu -lgcrypt', which causes linking failure
for cross-compilation. To fix this issue, invoking `libgcrypt-config'
should be disabled for cross-compilation.

chro...@googlecode.com

unread,
Aug 10, 2012, 4:00:07 PM8/10/12
to chromi...@chromium.org

Comment #6 on issue 127646 by chrome.m...@gmail.com: Segmentation fault on
start
http://code.google.com/p/chromium/issues/detail?id=127646

If I don't use golden linker for the arm, I ran into following two issues:
1. linker error when linking libwebkit.so lib.
unresolvable R_ARM_THM_CALL relocation against symbol `malloc'
This error has been reported at
https://android-review.googlesource.com/#/c/39644.

2. cannot use --sysroot,
### this linker was not configured to use sysroots

how to resolve the above issue?

Thank you.

chro...@googlecode.com

unread,
Nov 15, 2012, 7:30:58 PM11/15/12
to chromi...@chromium.org

Comment #8 on issue 127646 by bugdro...@chromium.org: Segmentation fault on
start
http://code.google.com/p/chromium/issues/detail?id=127646#c8

The following revision refers to this bug:
http://src.chromium.org/viewvc/chrome?view=rev&revision=168091

------------------------------------------------------------------------
r168091 | tha...@chromium.org | 2012-11-16T00:16:50.881926Z

Changed paths:
M
http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/gold/README.chromium?r1=168091&r2=168090&pathrev=168091

Update README.chromium for gold linker.

The binaries for gold were already committed in a
previous CL.

BUG=127646
Review URL: https://codereview.chromium.org/11363231/
Patch from Sam Clegg <s...@chromium.org>!
------------------------------------------------------------------------

chro...@googlecode.com

unread,
Nov 19, 2012, 2:41:01 PM11/19/12
to chromi...@chromium.org

Comment #9 on issue 127646 by bugdro...@chromium.org: Segmentation fault on
start
http://code.google.com/p/chromium/issues/detail?id=127646#c9

The following revision refers to this bug:
http://src.chromium.org/viewvc/chrome?view=rev&revision=168568

------------------------------------------------------------------------
r168568 | s...@chromium.org | 2012-11-19T19:29:40.530127Z

Changed paths:
M
http://src.chromium.org/viewvc/chrome/trunk/src/DEPS?r1=168568&r2=168567&pathrev=168568

Roll gold linker binaries 149858 -> 168091.

This brings in gold from binutils 23.1 which fixes and
arm crash on startup issue.

BUG=127646

Review URL: https://chromiumcodereview.appspot.com/11348097
------------------------------------------------------------------------

chro...@googlecode.com

unread,
Nov 19, 2012, 10:06:12 PM11/19/12
to chromi...@chromium.org

Comment #10 on issue 127646 by bugdro...@chromium.org: Segmentation fault
on start
http://code.google.com/p/chromium/issues/detail?id=127646#c10

The following revision refers to this bug:
http://src.chromium.org/viewvc/chrome?view=rev&revision=168699

------------------------------------------------------------------------
r168699 | the...@chromium.org | 2012-11-20T02:07:34.156807Z

Changed paths:
M
http://src.chromium.org/viewvc/chrome/trunk/src/DEPS?r1=168699&r2=168698&pathrev=168699

Revert 168568 - Roll gold linker binaries 149858 -> 168091.

This brings in gold from binutils 23.1 which fixes and
arm crash on startup issue.

BUG=127646,161942

Review URL: https://chromiumcodereview.appspot.com/11348097

TBR=s...@chromium.org
Review URL: https://codereview.chromium.org/11413079
------------------------------------------------------------------------

chro...@googlecode.com

unread,
Apr 2, 2014, 4:42:03 AM4/2/14
to chromi...@chromium.org
Updates:
Status: WontFix

Comment #13 on issue 127646 by the...@chromium.org: Segmentation fault on
start
http://code.google.com/p/chromium/issues/detail?id=127646

It's been a year with no feedback. Closing. Our Linux ARM Cross Compile bot
continues to work.

--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
Reply all
Reply to author
Forward
0 new messages