Skip to content
New issue

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

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

Already on GitHub? Sign in 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

1 participant