[tbb-bugs] #30321 [Applications/Tor Browser]: Adapt Linux toolchain for Firefox 68 ESR

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Jun 14 10:05:44 UTC 2019


#30321: Adapt Linux toolchain for Firefox 68 ESR
--------------------------------------+--------------------------
 Reporter:  gk                        |          Owner:  tbb-team
     Type:  task                      |         Status:  new
 Priority:  Medium                    |      Milestone:
Component:  Applications/Tor Browser  |        Version:
 Severity:  Normal                    |     Resolution:
 Keywords:  tbb-rbm, ff68-esr         |  Actual Points:
Parent ID:  #30320                    |         Points:
 Reviewer:                            |        Sponsor:
--------------------------------------+--------------------------

Comment (by gk):

 Compiling our 32bits were failing, too. The first show-stopper was a
 failure related to us setting `host` and `target` to `i686-linux-gnu`:
 {{{
  0:08.82 ERROR: The rust compiler host (x86_64-unknown-linux-gnu) is not
 suitable for the configure host (i686-pc-linux-gnu/i686-unknown-linux-
 gnu).
 }}}
 That gets solved by just keeping `ac_add_options --target=i686-linux-gnu`.

 Then gold is breaking when linking `libxul.so`
 {{{
 41:17.86 /var/tmp/dist/binutils/bin/ld.gold.real: internal error in
 relocate_section, at i386.cc:3684
 41:18.04 clang-8: error: linker command failed with exit code 1 (use -v to
 see invocation)
 }}}
 It seems we hit `gold_assert(sh_type == elfcpp::SHT_REL);` and others
 might have encountered the same, see:
 https://patchwork.openembedded.org/patch/155471/

 I tried to figure out whether a GCC/binutils toolchain fares better but
 that breaks already early with an ICE:
 {{{
 25:09.35 /var/tmp/build/firefox-
 a194f586c005/gfx/skia/skia/third_party/skcms/src/Transform_inl.h:640:13:
 internal compiler error: in convert_move, at expr.c:218
 25:09.35  static void exec_ops(const Op* ops, const void** args,
 25:09.35              ^~~~~~~~
 25:10.21 0x596b7a convert_move(rtx_def*, rtx_def*, int)
 25:10.21        ../.././gcc/expr.c:218
 25:10.21 0x8a06c2 convert_modes(machine_mode, machine_mode, rtx_def*, int)
 25:10.22        ../.././gcc/expr.c:709
 25:10.22 0xbc32f2 emit_partition_copy
 25:10.22        ../.././gcc/tree-outof-ssa.c:220
 25:10.22 0xbc32f2 insert_part_to_rtx_on_edge
 25:10.22        ../.././gcc/tree-outof-ssa.c:389
 25:10.22 0xbc32f2 elim_create
 25:10.22        ../.././gcc/tree-outof-ssa.c:675
 25:10.22 0xbc32f2 eliminate_phi
 25:10.22        ../.././gcc/tree-outof-ssa.c:733
 25:10.22 0xbc32f2 expand_phi_nodes(ssaexpand*)
 25:10.22        ../.././gcc/tree-outof-ssa.c:909
 25:10.23 0x7b23be execute
 25:10.23        ../.././gcc/cfgexpand.c:6416
 }}}

 Using `bfd` with `ac_add_options --enable-linker=bff` works and I can
 successfully compile and link the browser. Using `lld` fails, too:
 {{{
 41:04.50 ld.lld: error: dwarf.c:(.debug_info+0x20DE295A): has non-ABS
 relocation R_386_GOTOFF against symbol '.LC25'
 41:08.83 clang-8: error: linker command failed with exit code 1 (use -v to
 see invocation)
 }}}
 Might be worth figuring out at least why `gold` is not happy here.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/30321#comment:8>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tbb-bugs mailing list