Open Bug 1669739 Opened 4 years ago Updated 6 months ago

webrender build error - missing __stack_chk_fail and __stack_chk_guard as required by glsl_parser_extras.o

Categories

(Core :: Graphics: WebRender, defect, P5)

Desktop
Other
defect

Tracking

()

UNCONFIRMED

People

(Reporter: petr.sumbera, Unassigned)

References

(Blocks 1 open bug)

Details

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0

Steps to reproduce:

While building latest Firefox source I got following linking error on Solaris (I'm able to build ESR version without this issue):

15:21.32 error: linking with `/builds/psumbera/FIREFOX/build/cargo-linker` failed: exit code: 1
15:21.32   |
15:21.32   = note: "/builds/psumbera/FIREFOX/build/cargo-linker" "-m64" "-L" "/usr/lib/rustlib/x86_64-sun-solaris/lib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.1354vtucij9mybnm.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.1648645v9czqm2yt.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.1b0niv6zfekqvvip.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.1bay8zlomw3ynisx.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.1c42w5wzarq0hv1c.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.1hn52pf030fkl3nh.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.1sl93vh9x9fon34n.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.1uvxw7gjvqftz4fa.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.22abo68wtngxm85h.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.22r8vajqdorte1lf.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.252vqxiziwjtijq0.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.256rsvdcqppghbya.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.276567a3d03gplsy.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.2edibepkbwcttq2v.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.2lxo8lzoj72xm78t.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.2qcwdc04m6lc9mxt.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.2tqdv7e1qk9qhnau.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.2x5owns6bzhmkp93.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.2xrdhipaprxoyeqk.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.304xl4w6q9y9setb.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.34z0juxw9bv7nr8r.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.37uftvj9w8arl63g.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.3gxkprt1xf9n43t8.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.3sjmhatvxgdv8wtq.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.41i99rfgm92rcnyt.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.459had672q84ulkz.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.45ej7i42crq5plu7.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.49gtkq2egq51hux8.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.4ahxui35u7aqfybo.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.4fudc5k8bc774ic1.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.4v9mf5ozr2hahagw.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.50qx1unx5dlplrev.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.51fuv0mlanwwveta.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.526i2kv4ztqixh1p.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.52dc5mkhgys0eqky.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.55wlbdma3v8pyp5f.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.5eq74s4cz4xo5m3.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.axxs0r109bfspb5.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.j8gya01cf8yn88f.rcgu.o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.vu59blpoa6yd6ul.rcgu.o" "-o" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/webrender-30ba4052de7ea98f/build_script_build-30ba4052de7ea98f.6mvyq4d7r8gf39w.rcgu.o" "-Wl,-zignore" "-nodefaultlibs" "-L" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps" "-L" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/glslopt-ddc0f83cfc6ed73d/out" "-L" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/glslopt-ddc0f83cfc6ed73d/out" "-L" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/build/glslopt-ddc0f83cfc6ed73d/out" "-L" "/usr/lib/rustlib/x86_64-sun-solaris/lib" "-Wl,-Bstatic" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libglslopt-3086c0a732dc3baf.rlib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libbuild_parallel-72216608f66343a1.rlib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libnum_cpus-7de8f47936750bbb.rlib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libjobserver-8238120afa632c7a.rlib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/liblibc-53e6ef4a04fe5c82.rlib"  "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libcrossbeam_utils-ecf42fa67441a1e9.rlib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libcfg_if-8092b54a61c90ad6.rlib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libwebrender_build-033144b4fac2c752.rlib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libserde-7d2efffca5ceeef4.rlib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/liblazy_static-5a1a6ddfc5457fb2.rlib" "/builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libbitflags-af29ccfb0b309978.rlib" "-Wl,--start-group" "/usr/lib/rustlib/x86_64-sun-solaris/lib/libstd-560fc60f1e090eba.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/libpanic_unwind-48afa1865d4c30c6.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/libhashbrown-a8fbb8f6c8dcce7f.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/librustc_std_workspace_alloc-9908849755d2bd8d.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/libbacktrace-e45e1fb5ea3a365a.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/libbacktrace_sys-7472f7cc1eea31de.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/librustc_demangle-87adf056cd71232c.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/libunwind-1ac3274954e7b4ea.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/libcfg_if-c8f60f0675029d00.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/liblibc-d772930abe325a46.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/liballoc-2ddceaedc519429d.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/librustc_std_workspace_core-0170a5ad846ee930.rlib" "/usr/lib/rustlib/x86_64-sun-solaris/lib/libcore-c23865a137cb58ef.rlib" "-Wl,--end-group" "/usr/lib/rustlib/x86_64-sun-solaris/lib/libcompiler_builtins-58482b64c093fb19.rlib" "-Wl,-Bdynamic" "-lstdc++" "-lsocket" "-lposix4" "-lpthread" "-lresolv" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread"
15:21.32   = note: Undefined            first referenced
15:21.32            symbol                  in file
15:21.32           __stack_chk_fail                    /builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libglslopt-3086c0a732dc3baf.rlib(glsl_parser_extras.o)
15:21.32           __stack_chk_guard                   /builds/psumbera/FIREFOX/obj-x86_64-pc-solaris2.11/debug/deps/libglslopt-3086c0a732dc3baf.rlib(glsl_parser_extras.o)
15:21.32           ld: fatal: symbol referencing errors
15:21.32           collect2: error: ld returned 1 exit status
15:21.32 error: aborting due to previous error
15:21.42 error: could not compile `webrender`.
Component: Untriaged → Graphics: WebRender
OS: Unspecified → Other
Product: Firefox → Core
Hardware: Unspecified → Desktop
Severity: -- → S3
Flags: needinfo?(dmalyshau)
Priority: -- → P3

As workaround I can disable GCC stack protector (those missing functions are defined in GCC libssp.so):

diff -r 5131adb5f84f third_party/rust/glslopt/build.rs
--- a/third_party/rust/glslopt/build.rs Fri Jan 24 16:32:58 2020 +0100
+++ b/third_party/rust/glslopt/build.rs Mon Oct 12 10:56:31 2020 +0200
@@ -4,6 +4,7 @@
 /// target platform.
 fn configure(build: &mut cc::Build) -> &mut cc::Build {
     build.define("__STDC_FORMAT_MACROS", None);
+    build.flag("-fno-stack-protector");
     if cfg!(target_os = "linux") {
         build.define("_GNU_SOURCE", None);
         build.define("HAVE_ENDIAN_H", None);

I wonder whether this is issue also on Linux when Firefox is build using GCC?

Looks to be close to (or dupe of?) bug 1533133. The solution there was to disable the stack protector on GCC - https://phabricator.services.mozilla.com/D22730
Jamie, since you maintain our glslopt, would you want to make that fix?

Flags: needinfo?(dmalyshau) → needinfo?(jnicol)
Blocks: wr-todos
Flags: needinfo?(jnicol)
Priority: P3 → P5
You need to log in before you can comment on or make changes to this bug.