Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T Tor Browser
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,274
    • Issues 1,274
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 6
    • Merge requests 6
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Applications
  • Tor Browser
  • Issues
  • #17508

Closed
Open
Created Nov 02, 2015 by Georg Koppen@gkDeveloper

Using FORTIFY_SOURCE breaks inlining of memcpy when comiling Tor Browser with ASan

While it is a known thing that ASan is not working particularly well with FORTIFY_SOURCE (legacy/trac#14821 (moved) and https://code.google.com/p/address-sanitizer/issues/detail?id=247) this combination is breaking Tor Browser compilation directly:

In file included from ../../dist/system_wrappers/sys/cdefs.h:3:0,
                 from /usr/include/features.h:346,
                 from ../../dist/system_wrappers/features.h:3,
                 from /home/ubuntu/install/gcc/include/c++/5.1.0/x86_64-unknown-linux-gnu/bits/os_defines.h:39,
                 from /home/ubuntu/install/gcc/include/c++/5.1.0/x86_64-unknown-linux-gnu/bits/c++config.h:482,
                 from /home/ubuntu/install/gcc/include/c++/5.1.0/cstddef:44,
                 from ../../dist/system_wrappers/cstddef:3,
                 from ../../dist/include/mozilla/Compiler.h:46,
                 from ../../dist/include/mozilla/Attributes.h:12,
                 from ../../dist/include/mozilla/Assertions.h:16,
                 from ../../dist/include/mozilla/ArrayUtils.h:14,
                 from /home/ubuntu/build/tor-browser/xpcom/threads/BackgroundHangMonitor.cpp:7,
                 from /home/ubuntu/build/tor-browser/obj-x86_64-unknown-linux-gnu/xpcom/threads/Unified_cpp_xpcom_threads0.cpp:2:
/usr/include/bits/string3.h: In member function 'void mozilla::ThreadStackHelper::FillThreadContext(void*)':
/usr/include/bits/string3.h:49:1: error: inlining failed in call to always_inline 'void* memcpy(void*, const void*, size_t) throw ()': function attribute mismatch
 __NTH (memcpy (void *__restrict __dest, __const void *__restrict __src,
 ^
In file included from /home/ubuntu/build/tor-browser/obj-x86_64-unknown-linux-gnu/xpcom/threads/Unified_cpp_xpcom_threads0.cpp:29:0:
/home/ubuntu/build/tor-browser/xpcom/threads/ThreadStackHelper.cpp:730:66: error: called from here
          &context.uc_mcontext.gregs[REG_R8], 8 * sizeof(int64_t));
                                                                  ^
make[5]: Leaving directory `/home/ubuntu/build/tor-browser/obj-x86_64-unknown-linux-gnu/xpcom/threads'
make[5]: *** [Unified_cpp_xpcom_threads0.o] Error 1

It is not clear why this is happening right now. We only workaround this problem by backporting

https://hg.mozilla.org/mozilla-central/rev/5e86358d4ec2 https://hg.mozilla.org/mozilla-central/rev/33e89c9a4172

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking