Closed Bug 1240313 Opened 10 years ago Closed 8 years ago

building with linux64-cc on try results in a compiler error

Categories

(Testing :: Code Coverage, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: jmaher, Unassigned)

Details

(Whiteboard: [ucosp_codecoverage])

https://treeherder.mozilla.org/#/jobs?repo=try&revision=7a815fe103a1&selectedJob=15542084: -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 12:42:56 INFO - Executing: python2.7 ../../../../sccache/sccache.py ../../../../gcc/bin/g++ -o screentopng -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wtype-limits -Wunreachable-code -Wcast-align -Wno-invalid-offsetof -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -fprofile-arcs -ftest-coverage -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pthread -D_GLIBCXX_USE_CXX11_ABI=0 -pipe -g -freorder-blocks -Os -fno-omit-frame-pointer -Werror /builds/slave/try-l64-cc-0000000000000000000/build/src/obj-firefox/testing/tools/screenshot/tmpLT5xzZ.list -lpthread -fprofile-arcs -ftest-coverage -lgcov -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -L/usr/lib64 -Wl,-rpath-link,/builds/slave/try-l64-cc-0000000000000000000/build/src/obj-firefox/dist/bin -Wl,-rpath-link,/usr/local/lib -ldl -L/builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/obj-firefox/testing/tools/screenshot/tmpLT5xzZ.list: 12:42:56 INFO - INPUT("gdk-screenshot.o") 12:42:56 INFO - INPUT("../../../build/unix/stdc++compat/stdc++compat.o") 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_action_group_action_added' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `cairo_region_intersect' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_settings_get_boolean' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_source_get_time' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_bus_get_sync' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_dbus_proxy_new_finish' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_variant_type_string_is_valid' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_action_group_action_removed' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `cairo_region_translate' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_menu_model_iterate_item_links' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_private_set' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_resources_register' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_variant_iter_init' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_settings_set' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_app_info_get_recommended_for_type' 12:42:56 INFO - /builds/slave/try-l64-cc-0000000000000000000/build/src/gtk3/usr/local/lib/libgtk-3.so: undefined reference to `g_menu_model_get_item_link' ... looks as though we have a link error with gtk libraries. I assume the only different from a regular linux64 build is the -ftest-coverage and -lgcov. I would like to: * confirm the exact compiler line which works for a regular linux64 opt build * figure out if we need the screenshot tool for code coverage builds * determine if there is another library to install * this is probably relate to gtk3- that might be a hint
I am trying to figure out how to build with code coverage locally, and it isn't obvious. :ahal, are there flags or build targets that |mach| could use to do a code coverage build?
Flags: needinfo?(ahalberstadt)
Yeah, you'll want these flags in your mozconfig: https://dxr.mozilla.org/mozilla-central/source/browser/config/mozconfigs/linux64/code-coverage I tried really hard to put that behind a convenient --enable-code-coverage flag in bug 1054275 but couldn't figure out how to get it working. Probably need a build system guru to look at it.
Flags: needinfo?(ahalberstadt)
as a note, we need to have: ---------------------------------------------- cat mozconfig MOZ_CODE_COVERAGE=1 export CFLAGS="-fprofile-arcs -ftest-coverage" export CXXFLAGS="-fprofile-arcs -ftest-coverage" export LDFLAGS="-fprofile-arcs -ftest-coverage -lgcov" ---------------------------------------------- then after a |mach build| you can run the browser, but need: export GCOV_PREFIX=<dir> ./objdir/dist/bin/firefox <do stuff, close browser> ls <dir> and you will see a bunch of directories with .gcda files. I am trying to figure out which mozconfig options are needed for reproducing the problem we see in try/automation.
one thought I had here is that our compilers and toolchains are different locally vs in production. How could we determine that and figure out if it is the cause?
We now have a linux64-ccov build, scheduled to run for every mozilla-central push, which is also easy to build locally.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.