Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[WIP] MemorySanitizer and UndefinedSanitizer builds #29

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

mosra
Copy link
Owner

@mosra mosra commented Nov 25, 2016

Things to do:

Original (most probably obsolete) TODO below:

  • The MemorySanitizer needs libc++, which is impossible to get on Travis:
    • It is in the whitelist for Precise, but just adding libc++-dev to package list on Precise gets just ignored, because there's no such package the default repos and apt-get treats not found packages as regular expressions, which then matches libc6-dev or about anything else. So the installation succeeds, but silently doesn't install the package at all, failing during compilation with can't find -lc++. Whoever thought this is a good idea for a package manager?!!
    • It is not in the whitelist for Trusty.
    • The only PPA that has libc++-dev for Precise is debian-sid. Just enabling that PPA makes all hell break loose and apt-get install fails on some file conflict much later.
  • The UndefinedSanitizer reports weird errors about mismatched class inheritance (false positive?) and apparently UBSan itself leaks, as it triggers a error from ASan on exit. There are also a bunch of other reports that need an investigation. See the build output for details.

@mosra mosra force-pushed the travis-sanitizers branch from 494f911 to 436d26e Compare November 26, 2016 00:05
@mosra mosra mentioned this pull request Nov 26, 2016
26 tasks
@mosra
Copy link
Owner Author

mosra commented Jun 3, 2018

Totally by accident I found some info on the UBSan false positives related to vptr with dlopen(): https://whatofhow.wordpress.com/2015/03/17/odr-rtti-dso/

It references these commits, which look like they export polymorphic classes and load the dynamic objects using RTLD_GLOBAL:

But I am already doing all of that? Another thing is using -fvisibility=ms-compat instead of -fvisibility=hidden, so maybe that's the key.

Repository owner deleted a comment from coveralls Dec 13, 2020
Repository owner deleted a comment from coveralls Dec 13, 2020
Repository owner deleted a comment from coveralls Dec 13, 2020
Repository owner deleted a comment from coveralls Dec 13, 2020
Repository owner deleted a comment from coveralls Dec 13, 2020
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

1 participant