egl: Skip closing drivers when building with AddressSanitizer.
authorEric Anholt <eric@anholt.net>
Wed, 18 Nov 2020 00:50:36 +0000 (16:50 -0800)
committerMarge Bot <eric+marge@anholt.net>
Wed, 2 Dec 2020 20:43:33 +0000 (20:43 +0000)
commit661b29283425c568d1fa403be703775e02c50d08
tree369e169aef80bae7c63412a024f8b4ec550f0429
parent9cc8fc7bbc4a4d7fe4d3635be207daf2a6672662
egl: Skip closing drivers when building with AddressSanitizer.

If you dlclose your driver, the leak reports look like:

    #0 0xffff9c7e5e7c in malloc (/lib/aarch64-linux-gnu/libasan.so.6+0x9ee7c)
    #1 0xffff94aaaa48  (<unknown module>)
    #2 0xffff94aa5ff4  (<unknown module>)
    #3 0xffff94d1867c  (<unknown module>)
    #4 0xffff94d184f0  (<unknown module>)
    #5 0xffff94c9a990  (<unknown module>)
    #6 0xffff94c92e30  (<unknown module>)
    #7 0xffff94c91d48  (<unknown module>)
    #8 0xffff946eb800  (/home/anholt/src/mesa/build-aarch64-asan/src/egl/libEGL.so.1.0.0+0xfe800)
    #9 0xffff94c72874  (<unknown module>)
    #10 0xffff946ede68  (/home/anholt/src/mesa/build-aarch64-asan/src/egl/libEGL.so.1.0.0+0x100e68)
    #11 0xffff94bf7134  (<unknown module>)
    #12 0xffff9c686450 in dri2_create_screen ../src/egl/drivers/dri2/egl_dri2.c:1079

which is not terribly useful.  Probe if we're building with asan and just
skip closing the driver in the happy path (which seems to be the standard
practice for loadable modules with this tool).

Acked-by: Michel Dänzer <mdaenzer@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7695>
meson.build
src/egl/drivers/dri2/egl_dri2.c
src/egl/meson.build