View Issue Details

IDProjectCategoryView StatusLast Update
0012735CentOS-7mesa-private-llvmpublic2017-01-30 15:36
Reporterguilherme Assigned To 
PrioritynormalSeveritycrashReproducibilityalways
Status newResolutionopen 
Product Version7.3.1611 
Summary0012735: invalid pointer running GLX program with llvmpipe
DescriptionWhen running a GLX program using Mesa's llvmpipe renderer and a newer libstdc++.so.6, it crashes with *** Error in `./quad': free(): invalid pointer: 0x.... *** (full output attached)

Steps To Reproduce1 - Compile a newer gcc (5.2.0 up to 6.2.0 presented the same behaviour)
2 - Compile quad.c program with gcc quad.c -o quad -lX11 -lGL -lGLU
3 - Run the program with LIBGL_ALWAYS_SOFTWARE=1 LD_LIBRARY_PATH=<PATH_TO_NEWER_LIBSTDC++> ./quad
Additional InformationThe crash does not happen on CentOS 6, Ubuntu 16.04/16.10, SUSE11. A very suspicious difference between CentOS 7 and those distributions is that on CentOS7 the mesa-private-llvm package is built using the -static-libstdc++ flag.

After rebuilding mesa-private-llvm package and removing -static-libstdc++ from llvm.spec the crash stops happening.

Also the crash does not happens on CentOS 7 if using accelerated OpenGL (unset LIBGL_ALWAYS_SOFTWARE).
TagsNo tags attached.
abrt_hash
URL

Activities

guilherme

guilherme

2017-01-27 17:49

reporter  

crash_output.txt (20,604 bytes)   
Press any key to continue


	visual 0x31d selected
GL_VENDOR: VMware, Inc.
GL_RENDERER: Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits)
GL_VERSION: 2.1 Mesa 11.2.2
GL_SHADING_LANGUAGE_VERSION: 1.30
GL_EXTENSIONS: 1.30
*** Error in `./quad': free(): invalid pointer: 0x00007f178e8e0f60 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7c503)[0x7f1793547503]
/home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6(_ZNSs9_M_mutateEmmm+0x1c4)[0x7f179418b534]
/home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6(_ZNSs15_M_replace_safeEmmPKcm+0x1e)[0x7f179418b9ee]
/home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6(_ZNSs7replaceEmmPKcm+0x6f)[0x7f179418cb3f]
/usr/lib64/dri/swrast_dri.so(+0x3e7642)[0x7f178f4fc642]
/usr/lib64/dri/swrast_dri.so(+0x3e55a4)[0x7f178f4fa5a4]
/usr/lib64/dri/swrast_dri.so(+0x67cd0e)[0x7f178f791d0e]
/usr/lib64/dri/swrast_dri.so(+0x675240)[0x7f178f78a240]
/usr/lib64/dri/swrast_dri.so(+0x6608d6)[0x7f178f7758d6]
/usr/lib64/dri/swrast_dri.so(+0x20e675)[0x7f178f323675]
/usr/lib64/dri/swrast_dri.so(+0x1d7023)[0x7f178f2ec023]
/usr/lib64/dri/swrast_dri.so(+0x1c260f)[0x7f178f2d760f]
/usr/lib64/dri/swrast_dri.so(+0x1d40c6)[0x7f178f2e90c6]
/usr/lib64/dri/swrast_dri.so(+0xbc4d2)[0x7f178f1d14d2]
/lib64/libGL.so.1(+0x40cf7)[0x7f1793b4ccf7]
./quad[0x401580]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f17934ecb35]
./quad[0x400f99]
======= Memory map: ========
00400000-00402000 r-xp 00000000 08:15 10293085                           /home/guilherme/Projects/misc/cpp/quad
00601000-00602000 r--p 00001000 08:15 10293085                           /home/guilherme/Projects/misc/cpp/quad
00602000-00603000 rw-p 00002000 08:15 10293085                           /home/guilherme/Projects/misc/cpp/quad
02441000-02689000 rw-p 00000000 00:00 0                                  [heap]
7f1784000000-7f1784021000 rw-p 00000000 00:00 0 
7f1784021000-7f1788000000 ---p 00000000 00:00 0 
7f1788869000-7f178886a000 ---p 00000000 00:00 0 
7f178886a000-7f178906a000 rw-p 00000000 00:00 0 
7f178906a000-7f178906b000 ---p 00000000 00:00 0 
7f178906b000-7f178986b000 rw-p 00000000 00:00 0 
7f178986b000-7f178986c000 ---p 00000000 00:00 0 
7f178986c000-7f178a06c000 rw-p 00000000 00:00 0 
7f178a06c000-7f178a06d000 ---p 00000000 00:00 0 
7f178a06d000-7f178a86d000 rw-p 00000000 00:00 0 
7f178a86d000-7f178a86e000 ---p 00000000 00:00 0 
7f178a86e000-7f178b06e000 rw-p 00000000 00:00 0 
7f178b06e000-7f178b06f000 ---p 00000000 00:00 0 
7f178b06f000-7f178b86f000 rw-p 00000000 00:00 0 
7f178b86f000-7f178b870000 ---p 00000000 00:00 0 
7f178b870000-7f178c070000 rw-p 00000000 00:00 0 
7f178c070000-7f178c071000 ---p 00000000 00:00 0 
7f178c071000-7f178c871000 rw-p 00000000 00:00 0 
7f178c871000-7f178c878000 r-xp 00000000 08:15 11843857                   /usr/lib64/librt-2.17.so
7f178c878000-7f178ca77000 ---p 00007000 08:15 11843857                   /usr/lib64/librt-2.17.so
7f178ca77000-7f178ca78000 r--p 00006000 08:15 11843857                   /usr/lib64/librt-2.17.so
7f178ca78000-7f178ca79000 rw-p 00007000 08:15 11843857                   /usr/lib64/librt-2.17.so
7f178ca79000-7f178ca8e000 r-xp 00000000 08:15 11844301                   /usr/lib64/libz.so.1.2.7
7f178ca8e000-7f178cc8d000 ---p 00015000 08:15 11844301                   /usr/lib64/libz.so.1.2.7
7f178cc8d000-7f178cc8e000 r--p 00014000 08:15 11844301                   /usr/lib64/libz.so.1.2.7
7f178cc8e000-7f178cc8f000 rw-p 00015000 08:15 11844301                   /usr/lib64/libz.so.1.2.7
7f178cc8f000-7f178e53b000 r-xp 00000000 08:15 11857925                   /usr/lib64/libLLVM-3.8-mesa.so
7f178e53b000-7f178e73b000 ---p 018ac000 08:15 11857925                   /usr/lib64/libLLVM-3.8-mesa.so
7f178e73b000-7f178e8b6000 r--p 018ac000 08:15 11857925                   /usr/lib64/libLLVM-3.8-mesa.so
7f178e8b6000-7f178e8b8000 rw-p 01a27000 08:15 11857925                   /usr/lib64/libLLVM-3.8-mesa.so
7f178e8b8000-7f178e8e1000 rw-p 00000000 00:00 0 
7f178e8e1000-7f178e8f8000 r-xp 00000000 08:15 11843786                   /usr/lib64/libelf-0.166.so
7f178e8f8000-7f178eaf7000 ---p 00017000 08:15 11843786                   /usr/lib64/libelf-0.166.so
7f178eaf7000-7f178eaf8000 r--p 00016000 08:15 11843786                   /usr/lib64/libelf-0.166.so
7f178eaf8000-7f178eaf9000 rw-p 00017000 08:15 11843786                   /usr/lib64/libelf-0.166.so
7f178eaf9000-7f178eb00000 r-xp 00000000 08:15 11845253                   /usr/lib64/libdrm_amdgpu.so.1.0.0
7f178eb00000-7f178ecff000 ---p 00007000 08:15 11845253                   /usr/lib64/libdrm_amdgpu.so.1.0.0
7f178ecff000-7f178ed00000 r--p 00006000 08:15 11845253                   /usr/lib64/libdrm_amdgpu.so.1.0.0
7f178ed00000-7f178ed01000 rw-p 00007000 08:15 11845253                   /usr/lib64/libdrm_amdgpu.so.1.0.0
7f178ed01000-7f178ed0c000 r-xp 00000000 08:15 11845259                   /usr/lib64/libdrm_radeon.so.1.0.1
7f178ed0c000-7f178ef0b000 ---p 0000b000 08:15 11845259                   /usr/lib64/libdrm_radeon.so.1.0.1
7f178ef0b000-7f178ef0c000 r--p 0000a000 08:15 11845259                   /usr/lib64/libdrm_radeon.so.1.0.1
7f178ef0c000-7f178ef0d000 rw-p 0000b000 08:15 11845259                   /usr/lib64/libdrm_radeon.so.1.0.1
7f178ef0d000-7f178ef14000 r-xp 00000000 08:15 11845257                   /usr/lib64/libdrm_nouveau.so.2.0.0
7f178ef14000-7f178f113000 ---p 00007000 08:15 11845257                   /usr/lib64/libdrm_nouveau.so.2.0.0
7f178f113000-7f178f114000 r--p 00006000 08:15 11845257                   /usr/lib64/libdrm_nouveau.so.2.0.0
7f178f114000-7f178f115000 rw-p 00007000 08:15 11845257                   /usr/lib64/libdrm_nouveau.so.2.0.0
7f178f115000-7f178f98f000 r-xp 00000000 08:15 11844321                   /usr/lib64/dri/swrast_dri.so
7f178f98f000-7f178fb8f000 ---p 0087a000 08:15 11844321                   /usr/lib64/dri/swrast_dri.so
7f178fb8f000-7f178fc02000 r--p 0087a000 08:15 11844321                   /usr/lib64/dri/swrast_dri.so
7f178fc02000-7f178fc11000 rw-p 008ed000 08:15 11844321                   /usr/lib64/dri/swrast_dri.so
7f178fc11000-7f178fe07000 rw-p 00000000 00:00 0 
7f178fe07000-7f178fe67000 r-xp 00000000 08:15 11844109                   /usr/lib64/libpcre.so.1.2.0
7f178fe67000-7f1790066000 ---p 00060000 08:15 11844109                   /usr/lib64/libpcre.so.1.2.0
7f1790066000-7f1790067000 r--p 0005f000 08:15 11844109                   /usr/lib64/libpcre.so.1.2.0
7f1790067000-7f1790068000 rw-p 00060000 08:15 11844109                   /usr/lib64/libpcre.so.1.2.0
7f1790068000-7f179006a000 r-xp 00000000 08:15 11844681                   /usr/lib64/libXau.so.6.0.0
7f179006a000-7f179026a000 ---p 00002000 08:15 11844681                   /usr/lib64/libXau.so.6.0.0
7f179026a000-7f179026b000 r--p 00002000 08:15 11844681                   /usr/lib64/libXau.so.6.0.0
7f179026b000-7f179026c000 rw-p 00003000 08:15 11844681                   /usr/lib64/libXau.so.6.0.0
7f179026c000-7f1790283000 r-xp 00000000 08:15 11843853                   /usr/lib64/libpthread-2.17.so
7f1790283000-7f1790482000 ---p 00017000 08:15 11843853                   /usr/lib64/libpthread-2.17.so
7f1790482000-7f1790483000 r--p 00016000 08:15 11843853                   /usr/lib64/libpthread-2.17.so
7f1790483000-7f1790484000 rw-p 00017000 08:15 11843853                   /usr/lib64/libpthread-2.17.so
7f1790484000-7f1790488000 rw-p 00000000 00:00 0 
7f1790488000-7f1790496000 r-xp 00000000 08:15 11845251                   /usr/lib64/libdrm.so.2.4.0
7f1790496000-7f1790695000 ---p 0000e000 08:15 11845251                   /usr/lib64/libdrm.so.2.4.0
7f1790695000-7f1790696000 r--p 0000d000 08:15 11845251                   /usr/lib64/libdrm.so.2.4.0
7f1790696000-7f1790697000 rw-p 0000e000 08:15 11845251                   /usr/lib64/libdrm.so.2.4.0
7f1790697000-7f179069c000 r-xp 00000000 08:15 11845481                   /usr/lib64/libXxf86vm.so.1.0.0
7f179069c000-7f179089b000 ---p 00005000 08:15 11845481                   /usr/lib64/libXxf86vm.so.1.0.0
7f179089b000-7f179089c000 r--p 00004000 08:15 11845481                   /usr/lib64/libXxf86vm.so.1.0.0
7f179089c000-7f179089d000 rw-p 00005000 08:15 11845481                   /usr/lib64/libXxf86vm.so.1.0.0
7f179089d000-7f17908a1000 r-xp 00000000 08:15 11844690                   /usr/lib64/libxcb-dri2.so.0.0.0
7f17908a1000-7f1790aa0000 ---p 00004000 08:15 11844690                   /usr/lib64/libxcb-dri2.so.0.0.0
7f1790aa0000-7f1790aa1000 r--p 00003000 08:15 11844690                   /usr/lib64/libxcb-dri2.so.0.0.0
7f1790aa1000-7f1790aa2000 rw-p 00004000 08:15 11844690                   /usr/lib64/libxcb-dri2.so.0.0.0
7f1790aa2000-7f1790ab9000 r-xp 00000000 08:15 11844694                   /usr/lib64/libxcb-glx.so.0.0.0
7f1790ab9000-7f1790cb9000 ---p 00017000 08:15 11844694                   /usr/lib64/libxcb-glx.so.0.0.0
7f1790cb9000-7f1790cbb000 r--p 00017000 08:15 11844694                   /usr/lib64/libxcb-glx.so.0.0.0
7f1790cbb000-7f1790cbc000 rw-p 00019000 08:15 11844694                   /usr/lib64/libxcb-glx.so.0.0.0
7f1790cbc000-7f1790cbd000 r-xp 00000000 08:15 11845432                   /usr/lib64/libX11-xcb.so.1.0.0
7f1790cbd000-7f1790ebc000 ---p 00001000 08:15 11845432                   /usr/lib64/libX11-xcb.so.1.0.0
7f1790ebc000-7f1790ebd000 r--p 00000000 08:15 11845432                   /usr/lib64/libX11-xcb.so.1.0.0
7f1790ebd000-7f1790ebe000 rw-p 00001000 08:15 11845432                   /usr/lib64/libX11-xcb.so.1.0.0
7f1790ebe000-7f1790ec3000 r-xp 00000000 08:15 11845456                   /usr/lib64/libXfixes.so.3.1.0
7f1790ec3000-7f17910c2000 ---p 00005000 08:15 11845456                   /usr/lib64/libXfixes.so.3.1.0
7f17910c2000-7f17910c3000 r--p 00004000 08:15 11845456                   /usr/lib64/libXfixes.so.3.1.0
7f17910c3000-7f17910c4000 rw-p 00005000 08:15 11845456                   /usr/lib64/libXfixes.so.3.1.0
7f17910c4000-7f17910c6000 r-xp 00000000 08:15 11845462                   /usr/lib64/libXdamage.so.1.1.0
7f17910c6000-7f17912c5000 ---p 00002000 08:15 11845462                   /usr/lib64/libXdamage.so.1.1.0
7f17912c5000-7f17912c6000 r--p 00001000 08:15 11845462                   /usr/lib64/libXdamage.so.1.1.0
7f17912c6000-7f17912c7000 rw-p 00002000 08:15 11845462                   /usr/lib64/libXdamage.so.1.1.0
7f17912c7000-7f17912d8000 r-xp 00000000 08:15 11845436                   /usr/lib64/libXext.so.6.4.0
7f17912d8000-7f17914d7000 ---p 00011000 08:15 11845436                   /usr/lib64/libXext.so.6.4.0
7f17914d7000-7f17914d8000 r--p 00010000 08:15 11845436                   /usr/lib64/libXext.so.6.4.0
7f17914d8000-7f17914d9000 rw-p 00011000 08:15 11845436                   /usr/lib64/libXext.so.6.4.0
7f17914d9000-7f17914fd000 r-xp 00000000 08:15 11843978                   /usr/lib64/libselinux.so.1
7f17914fd000-7f17916fc000 ---p 00024000 08:15 11843978                   /usr/lib64/libselinux.so.1
7f17916fc000-7f17916fd000 r--p 00023000 08:15 11843978                   /usr/lib64/libselinux.so.1
7f17916fd000-7f17916fe000 rw-p 00024000 08:15 11843978                   /usr/lib64/libselinux.so.1
7f17916fe000-7f1791700000 rw-p 00000000 00:00 0 
7f1791700000-7f1791729000 r-xp 00000000 08:15 11844654                   /usr/lib64/libglapi.so.0.0.0
7f1791729000-7f1791929000 ---p 00029000 08:15 11844654                   /usr/lib64/libglapi.so.0.0.0
7f1791929000-7f179192d000 r--p 00029000 08:15 11844654                   /usr/lib64/libglapi.so.0.0.0
7f179192d000-7f179192e000 rw-p 0002d000 08:15 11844654                   /usr/lib64/libglapi.so.0.0.0
7f179192e000-7f179192f000 rw-p 00000000 00:00 0 
7f179192f000-7f1791930000 r-xp 00000000 08:15 11844751                   /usr/lib64/libxshmfence.so.1.0.0
7f1791930000-7f1791b30000 ---p 00001000 08:15 11844751                   /usr/lib64/libxshmfence.so.1.0.0
7f1791b30000-7f1791b31000 r--p 00001000 08:15 11844751                   /usr/lib64/libxshmfence.so.1.0.0
7f1791b31000-7f1791b32000 rw-p 00002000 08:15 11844751                   /usr/lib64/libxshmfence.so.1.0.0
7f1791b32000-7f1791b37000 r-xp 00000000 08:15 11844712                   /usr/lib64/libxcb-sync.so.1.0.0
7f1791b37000-7f1791d37000 ---p 00005000 08:15 11844712                   /usr/lib64/libxcb-sync.so.1.0.0
7f1791d37000-7f1791d38000 r--p 00005000 08:15 11844712                   /usr/lib64/libxcb-sync.so.1.0.0
7f1791d38000-7f1791d39000 rw-p 00006000 08:15 11844712                   /usr/lib64/libxcb-sync.so.1.0.0
7f1791d39000-7f1791d3c000 r-xp 00000000 08:15 11844708                   /usr/lib64/libxcb-shape.so.0.0.0
7f1791d3c000-7f1791f3b000 ---p 00003000 08:15 11844708                   /usr/lib64/libxcb-shape.so.0.0.0
7f1791f3b000-7f1791f3c000 r--p 00002000 08:15 11844708                   /usr/lib64/libxcb-shape.so.0.0.0
7f1791f3c000-7f1791f3d000 rw-p 00003000 08:15 11844708                   /usr/lib64/libxcb-shape.so.0.0.0
7f1791f3d000-7f1791f46000 r-xp 00000000 08:15 11844702                   /usr/lib64/libxcb-render.so.0.0.0
7f1791f46000-7f1792145000 ---p 00009000 08:15 11844702                   /usr/lib64/libxcb-render.so.0.0.0
7f1792145000-7f1792146000 r--p 00008000 08:15 11844702                   /usr/lib64/libxcb-render.so.0.0.0
7f1792146000-7f1792147000 rw-p 00009000 08:15 11844702                   /usr/lib64/libxcb-render.so.0.0.0
7f1792147000-7f179214d000 r-xp 00000000 08:15 11844718                   /usr/lib64/libxcb-xfixes.so.0.0.0
7f179214d000-7f179234d000 ---p 00006000 08:15 11844718                   /usr/lib64/libxcb-xfixes.so.0.0.0
7f179234d000-7f179234e000 r--p 00006000 08:15 11844718                   /usr/lib64/libxcb-xfixes.so.0.0.0
7f179234e000-7f179234f000 rw-p 00007000 08:15 11844718                   /usr/lib64/libxcb-xfixes.so.0.0.0
7f179234f000-7f179235b000 r-xp 00000000 08:15 11844698                   /usr/lib64/libxcb-randr.so.0.1.0
7f179235b000-7f179255b000 ---p 0000c000 08:15 11844698                   /usr/lib64/libxcb-randr.so.0.1.0
7f179255b000-7f179255c000 r--p 0000c000 08:15 11844698                   /usr/lib64/libxcb-randr.so.0.1.0
7f179255c000-7f179255d000 rw-p 0000d000 08:15 11844698                   /usr/lib64/libxcb-randr.so.0.1.0
7f179255d000-7f179255f000 r-xp 00000000 08:15 11844696                   /usr/lib64/libxcb-present.so.0.0.0
7f179255f000-7f179275e000 ---p 00002000 08:15 11844696                   /usr/lib64/libxcb-present.so.0.0.0
7f179275e000-7f179275f000 r--p 00001000 08:15 11844696                   /usr/lib64/libxcb-present.so.0.0.0
7f179275f000-7f1792760000 rw-p 00002000 08:15 11844696                   /usr/lib64/libxcb-present.so.0.0.0
7f1792760000-7f1792762000 r-xp 00000000 08:15 11844692                   /usr/lib64/libxcb-dri3.so.0.0.0
7f1792762000-7f1792961000 ---p 00002000 08:15 11844692                   /usr/lib64/libxcb-dri3.so.0.0.0
7f1792961000-7f1792962000 r--p 00001000 08:15 11844692                   /usr/lib64/libxcb-dri3.so.0.0.0
7f1792962000-7f1792963000 rw-p 00002000 08:15 11844692                   /usr/lib64/libxcb-dri3.so.0.0.0
7f1792963000-7f179298a000 r-xp 00000000 08:15 11843789                   /usr/lib64/libexpat.so.1.6.0
7f179298a000-7f1792b8a000 ---p 00027000 08:15 11843789                   /usr/lib64/libexpat.so.1.6.0
7f1792b8a000-7f1792b8c000 r--p 00027000 08:15 11843789                   /usr/lib64/libexpat.so.1.6.0
7f1792b8c000-7f1792b8d000 rw-p 00029000 08:15 11843789                   /usr/lib64/libexpat.so.1.6.0
7f1792b8d000-7f1792b8f000 r-xp 00000000 08:15 11843833                   /usr/lib64/libdl-2.17.so
7f1792b8f000-7f1792d8f000 ---p 00002000 08:15 11843833                   /usr/lib64/libdl-2.17.so
7f1792d8f000-7f1792d90000 r--p 00002000 08:15 11843833                   /usr/lib64/libdl-2.17.so
7f1792d90000-7f1792d91000 rw-p 00003000 08:15 11843833                   /usr/lib64/libdl-2.17.so
7f1792d91000-7f1792db2000 r-xp 00000000 08:15 11844734                   /usr/lib64/libxcb.so.1.1.0
7f1792db2000-7f1792fb1000 ---p 00021000 08:15 11844734                   /usr/lib64/libxcb.so.1.1.0
7f1792fb1000-7f1792fb2000 r--p 00020000 08:15 11844734                   /usr/lib64/libxcb.so.1.1.0
7f1792fb2000-7f1792fb3000 rw-p 00021000 08:15 11844734                   /usr/lib64/libxcb.so.1.1.0
7f1792fb3000-7f1792fc8000 r-xp 00000000 08:15 11843968                   /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f1792fc8000-7f17931c7000 ---p 00015000 08:15 11843968                   /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f17931c7000-7f17931c8000 r--p 00014000 08:15 11843968                   /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f17931c8000-7f17931c9000 rw-p 00015000 08:15 11843968                   /usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f17931c9000-7f17932c9000 r-xp 00000000 08:15 11843835                   /usr/lib64/libm-2.17.so
7f17932c9000-7f17934c9000 ---p 00100000 08:15 11843835                   /usr/lib64/libm-2.17.so
7f17934c9000-7f17934ca000 r--p 00100000 08:15 11843835                   /usr/lib64/libm-2.17.so
7f17934ca000-7f17934cb000 rw-p 00101000 08:15 11843835                   /usr/lib64/libm-2.17.so
7f17934cb000-7f1793681000 r-xp 00000000 08:15 11843827                   /usr/lib64/libc-2.17.so
7f1793681000-7f1793881000 ---p 001b6000 08:15 11843827                   /usr/lib64/libc-2.17.so
7f1793881000-7f1793885000 r--p 001b6000 08:15 11843827                   /usr/lib64/libc-2.17.so
7f1793885000-7f1793887000 rw-p 001ba000 08:15 11843827                   /usr/lib64/libc-2.17.so
7f1793887000-7f179388c000 rw-p 00000000 00:00 0 
7f179388c000-7f179390a000 r-xp 00000000 08:15 11845485                   /usr/lib64/libGLU.so.1.3.1
7f179390a000-7f1793b0a000 ---p 0007e000 08:15 11845485                   /usr/lib64/libGLU.so.1.3.1
7f1793b0a000-7f1793b0b000 r--p 0007e000 08:15 11845485                   /usr/lib64/libGLU.so.1.3.1
7f1793b0b000-7f1793b0c000 rw-p 0007f000 08:15 11845485                   /usr/lib64/libGLU.so.1.3.1
7f1793b0c000-7f1793b78000 r-xp 00000000 08:15 11845483                   /usr/lib64/libGL.so.1.2.0
7f1793b78000-7f1793d77000 ---p 0006c000 08:15 11845483                   /usr/lib64/libGL.so.1.2.0
7f1793d77000-7f1793d7a000 r--p 0006b000 08:15 11845483                   /usr/lib64/libGL.so.1.2.0
7f1793d7a000-7f1793d7b000 rw-p 0006e000 08:15 11845483                   /usr/lib64/libGL.so.1.2.0
7f1793d7b000-7f1793d7c000 rw-p 00000000 00:00 0 
7f1793d7c000-7f1793eb4000 r-xp 00000000 08:15 11845434                   /usr/lib64/libX11.so.6.3.0
7f1793eb4000-7f17940b4000 ---p 00138000 08:15 11845434                   /usr/lib64/libX11.so.6.3.0
7f17940b4000-7f17940b5000 r--p 00138000 08:15 11845434                   /usr/lib64/libX11.so.6.3.0
7f17940b5000-7f17940ba000 rw-p 00139000 08:15 11845434                   /usr/lib64/libX11.so.6.3.0
7f17940ba000-7f1794238000 r-xp 00000000 08:15 11496284                   /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21
7f1794238000-7f1794438000 ---p 0017e000 08:15 11496284                   /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21
7f1794438000-7f1794442000 r--p 0017e000 08:15 11496284                   /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21
7f1794442000-7f1794444000 rw-p 00188000 08:15 11496284                   /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21
7f1794444000-7f1794448000 rw-p 00000000 00:00 0 
7f1794448000-7f1794468000 r-xp 00000000 08:15 11843880                   /usr/lib64/ld-2.17.so
7f179451d000-7f179465e000 rw-p 00000000 00:00 0 
7f1794663000-7f1794667000 rw-p 00000000 00:00 0 
7f1794667000-7f1794668000 r--p 0001f000 08:15 11843880                   /usr/lib64/ld-2.17.so
7f1794668000-7f1794669000 rw-p 00020000 08:15 11843880                   /usr/lib64/ld-2.17.so
7f1794669000-7f179466a000 rw-p 00000000 00:00 0 
7fff46d4b000-7fff46d6c000 rw-p 00000000 00:00 0                          [stack]
7fff46d8c000-7fff46d8e000 r--p 00000000 00:00 0                          [vvar]
7fff46d8e000-7fff46d90000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Aborted (core dumped)

crash_output.txt (20,604 bytes)   
guilherme

guilherme

2017-01-27 17:56

reporter   ~0028498

valgrind output shows a few "Invalid free() / delete / delete[] / realloc()"
valgrind_output.txt (6,788 bytes)   
==26746== Memcheck, a memory error detector
==26746== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==26746== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==26746== Command: ./quad
==26746== 
Press any key to continue


	visual 0x31d selected
GL_VENDOR: VMware, Inc.
GL_RENDERER: Gallium 0.4 on llvmpipe (LLVM 3.8, 256 bits)
GL_VERSION: 2.1 Mesa 11.2.2
GL_SHADING_LANGUAGE_VERSION: 1.30
GL_EXTENSIONS: 1.30
==26746== Invalid free() / delete / delete[] / realloc()
==26746==    at 0x4C2918D: operator delete(void*) (vg_replace_malloc.c:576)
==26746==    by 0x4F04533: _M_dispose (basic_string.h:2646)
==26746==    by 0x4F04533: std::string::_M_mutate(unsigned long, unsigned long, unsigned long) (basic_string.tcc:931)
==26746==    by 0x4F049ED: std::string::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long) (basic_string.tcc:1128)
==26746==    by 0x4F05B3E: std::string::replace(unsigned long, unsigned long, char const*, unsigned long) (basic_string.tcc:867)
==26746==    by 0x9C5B641: UnknownInlinedFun (basic_string.h:1653)
==26746==    by 0x9C5B641: UnknownInlinedFun (basic_string.h:1158)
==26746==    by 0x9C5B641: setMCPU (ExecutionEngine.h:604)
==26746==    by 0x9C5B641: lp_build_create_jit_compiler_for_module (lp_bld_misc.cpp:596)
==26746==    by 0x9C595A3: UnknownInlinedFun (lp_bld_init.c:245)
==26746==    by 0x9C595A3: gallivm_compile_module (lp_bld_init.c:590)
==26746==    by 0x9EF0D0D: generate_variant (lp_state_fs.c:2632)
==26746==    by 0x9EF0D0D: llvmpipe_update_fs (lp_state_fs.c:3171)
==26746==    by 0x9EE923F: llvmpipe_update_derived (lp_state_derived.c:209)
==26746==    by 0x9ED48D5: llvmpipe_draw_vbo (lp_draw_arrays.c:70)
==26746==    by 0x9A82674: st_draw_vbo (st_draw.c:288)
==26746==    by 0x9A4B022: vbo_exec_vtx_flush (vbo_exec_draw.c:422)
==26746==    by 0x9A3660E: vbo_exec_FlushVertices_internal (vbo_exec_api.c:624)
==26746==  Address 0xc9ebf60 is in the BSS segment of /usr/lib64/libLLVM-3.8-mesa.so
==26746== 
==26746== Invalid free() / delete / delete[] / realloc()
==26746==    at 0x4C2918D: operator delete(void*) (vg_replace_malloc.c:576)
==26746==    by 0x9C5BC09: UnknownInlinedFun (basic_string.h:249)
==26746==    by 0x9C5BC09: UnknownInlinedFun (basic_string.h:539)
==26746==    by 0x9C5BC09: ~MCTargetOptions (MCTargetOptions.h:19)
==26746==    by 0x9C5BC09: ~TargetOptions (TargetOptions.h:93)
==26746==    by 0x9C5BC09: lp_build_create_jit_compiler_for_module (lp_bld_misc.cpp:488)
==26746==    by 0x9C595A3: UnknownInlinedFun (lp_bld_init.c:245)
==26746==    by 0x9C595A3: gallivm_compile_module (lp_bld_init.c:590)
==26746==    by 0x9EF0D0D: generate_variant (lp_state_fs.c:2632)
==26746==    by 0x9EF0D0D: llvmpipe_update_fs (lp_state_fs.c:3171)
==26746==    by 0x9EE923F: llvmpipe_update_derived (lp_state_derived.c:209)
==26746==    by 0x9ED48D5: llvmpipe_draw_vbo (lp_draw_arrays.c:70)
==26746==    by 0x9A82674: st_draw_vbo (st_draw.c:288)
==26746==    by 0x9A4B022: vbo_exec_vtx_flush (vbo_exec_draw.c:422)
==26746==    by 0x9A3660E: vbo_exec_FlushVertices_internal (vbo_exec_api.c:624)
==26746==    by 0x9A480C5: vbo_exec_FlushVertices (vbo_exec_api.c:1261)
==26746==    by 0x99304D1: _mesa_flush (context.c:1871)
==26746==    by 0x553FCF6: driswSwapBuffers (drisw_glx.c:558)
==26746==  Address 0xc9ebf60 is in the BSS segment of /usr/lib64/libLLVM-3.8-mesa.so
==26746== 
==26746== Invalid free() / delete / delete[] / realloc()
==26746==    at 0x4C2918D: operator delete(void*) (vg_replace_malloc.c:576)
==26746==    by 0x9C5BC09: UnknownInlinedFun (basic_string.h:249)
==26746==    by 0x9C5BC09: UnknownInlinedFun (basic_string.h:539)
==26746==    by 0x9C5BC09: ~MCTargetOptions (MCTargetOptions.h:19)
==26746==    by 0x9C5BC09: ~TargetOptions (TargetOptions.h:93)
==26746==    by 0x9C5BC09: lp_build_create_jit_compiler_for_module (lp_bld_misc.cpp:488)
==26746==    by 0x9C595A3: UnknownInlinedFun (lp_bld_init.c:245)
==26746==    by 0x9C595A3: gallivm_compile_module (lp_bld_init.c:590)
==26746==    by 0x9EF3340: generate_setup_variant.isra.7 (lp_state_setup.c:802)
==26746==    by 0x9EF3A2A: llvmpipe_update_setup (lp_state_setup.c:965)
==26746==    by 0x9EE9537: llvmpipe_update_derived (lp_state_derived.c:222)
==26746==    by 0x9ED48D5: llvmpipe_draw_vbo (lp_draw_arrays.c:70)
==26746==    by 0x9A82674: st_draw_vbo (st_draw.c:288)
==26746==    by 0x9A4B022: vbo_exec_vtx_flush (vbo_exec_draw.c:422)
==26746==    by 0x9A3660E: vbo_exec_FlushVertices_internal (vbo_exec_api.c:624)
==26746==    by 0x9A480C5: vbo_exec_FlushVertices (vbo_exec_api.c:1261)
==26746==    by 0x99304D1: _mesa_flush (context.c:1871)
==26746==  Address 0xc9ebf60 is in the BSS segment of /usr/lib64/libLLVM-3.8-mesa.so
==26746== 
==26746== Invalid free() / delete / delete[] / realloc()
==26746==    at 0x4C2918D: operator delete(void*) (vg_replace_malloc.c:576)
==26746==    by 0x9C5BC09: UnknownInlinedFun (basic_string.h:249)
==26746==    by 0x9C5BC09: UnknownInlinedFun (basic_string.h:539)
==26746==    by 0x9C5BC09: ~MCTargetOptions (MCTargetOptions.h:19)
==26746==    by 0x9C5BC09: ~TargetOptions (TargetOptions.h:93)
==26746==    by 0x9C5BC09: lp_build_create_jit_compiler_for_module (lp_bld_misc.cpp:488)
==26746==    by 0x9C595A3: UnknownInlinedFun (lp_bld_init.c:245)
==26746==    by 0x9C595A3: gallivm_compile_module (lp_bld_init.c:590)
==26746==    by 0x9C7D7DC: draw_llvm_create_variant (draw_llvm.c:581)
==26746==    by 0x9C7EC1C: llvm_middle_end_prepare (draw_pt_fetch_shade_pipeline_llvm.c:245)
==26746==    by 0x9BB038E: vsplit_prepare (draw_pt_vsplit.c:263)
==26746==    by 0x9BA93BE: draw_pt_arrays (draw_pt.c:135)
==26746==    by 0x9BA98EE: draw_vbo (draw_pt.c:564)
==26746==    by 0x9ED4852: llvmpipe_draw_vbo (lp_draw_arrays.c:132)
==26746==    by 0x9A82674: st_draw_vbo (st_draw.c:288)
==26746==    by 0x9A4B022: vbo_exec_vtx_flush (vbo_exec_draw.c:422)
==26746==    by 0x9A3660E: vbo_exec_FlushVertices_internal (vbo_exec_api.c:624)
==26746==  Address 0xc9ebf60 is in the BSS segment of /usr/lib64/libLLVM-3.8-mesa.so
==26746== 
Press Enter to finish

==26746== 
==26746== HEAP SUMMARY:
==26746==     in use at exit: 141,234 bytes in 728 blocks
==26746==   total heap usage: 66,103 allocs, 65,381 frees, 33,244,309 bytes allocated
==26746== 
==26746== LEAK SUMMARY:
==26746==    definitely lost: 56 bytes in 1 blocks
==26746==    indirectly lost: 56 bytes in 1 blocks
==26746==      possibly lost: 0 bytes in 0 blocks
==26746==    still reachable: 141,122 bytes in 726 blocks
==26746==         suppressed: 0 bytes in 0 blocks
==26746== Rerun with --leak-check=full to see details of leaked memory
==26746== 
==26746== For counts of detected and suppressed errors, rerun with: -v
==26746== ERROR SUMMARY: 6 errors from 4 contexts (suppressed: 0 from 0)

valgrind_output.txt (6,788 bytes)   
guilherme

guilherme

2017-01-27 18:08

reporter  

gdb_backtrace.txt (3,885 bytes)   
#0  0x00007ffff72231d7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff72248c8 in __GI_abort () at abort.c:90
#2  0x00007ffff7262f07 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7ffff736db48 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:196
#3  0x00007ffff726a503 in malloc_printerr (ar_ptr=0x7ffff75a8760 <main_arena>, ptr=<optimized out>, str=0x7ffff736b214 "free(): invalid pointer", action=3) at malloc.c:5013
#4  _int_free (av=0x7ffff75a8760 <main_arena>, p=<optimized out>, have_lock=0) at malloc.c:3835
#5  0x00007ffff3ee8534 in _M_dispose (__a=..., this=<optimized out>) at /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:2646
#6  std::string::_M_mutate (this=this@entry=0x7fffffffde38, __pos=__pos@entry=0, __len1=<optimized out>, __len2=__len2@entry=9)
    at /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:931
#7  0x00007ffff3ee89ee in std::string::_M_replace_safe (this=0x7fffffffde38, __pos1=0, __n1=<optimized out>, __s=0x7ffff18779f4 "ivybridge", __n2=9)
    at /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:1128
#8  0x00007ffff3ee9b3f in std::string::replace (this=this@entry=0x7fffffffde38, __pos=__pos@entry=0, __n1=<optimized out>, __s=<optimized out>, __n2=9)
    at /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:867
#9  0x00007ffff2e91642 in replace (__k2=<optimized out>, __k1=<optimized out>, __i2=..., __i1=..., this=0x7fffffffde38) at /usr/include/c++/4.8.2/bits/basic_string.h:1653
#10 assign<char const*> (__last=<optimized out>, __first=<optimized out>, this=0x7fffffffde38) at /usr/include/c++/4.8.2/bits/basic_string.h:1158
#11 setMCPU (mcpu=..., this=0x7fffffffdd80) at /usr/include/mesa-private/llvm/ExecutionEngine/ExecutionEngine.h:604
#12 lp_build_create_jit_compiler_for_module (OutJIT=OutJIT@entry=0x7a59c8, OutCode=OutCode@entry=0x7a59f8, M=<optimized out>, CMM=0x7a5d20, OptLevel=OptLevel@entry=2, useMCJIT=useMCJIT@entry=1, OutError=OutError@entry=0x7fffffffdee0) at gallivm/lp_bld_misc.cpp:596
#13 0x00007ffff2e8f5a4 in init_gallivm_engine (gallivm=0x7a59c0) at gallivm/lp_bld_init.c:245
#14 gallivm_compile_module (gallivm=0x7a59c0) at gallivm/lp_bld_init.c:590
#15 0x00007ffff3126d0e in generate_variant (lp=0x657140, key=0x7fffffffdf30, shader=0x7a04f0) at lp_state_fs.c:2632
#16 llvmpipe_update_fs (lp=lp@entry=0x657140) at lp_state_fs.c:3171
#17 0x00007ffff311f240 in llvmpipe_update_derived (e=e@entry=0x657140) at lp_state_derived.c:209
#18 0x00007ffff310a8d6 in llvmpipe_draw_vbo (pipe=0x657140, info=0x7fffffffe260) at lp_draw_arrays.c:70
#19 0x00007ffff2cb8675 in st_draw_vbo (ctx=0x7ffff7f49010, prims=<optimized out>, nr_prims=<optimized out>, ib=0x0, index_bounds_valid=<optimized out>, min_index=0, max_index=3, tfb_vertcount=0x0, stream=0, indirect=0x0) at state_tracker/st_draw.c:288
#20 0x00007ffff2c81023 in vbo_exec_vtx_flush (exec=exec@entry=0x7587c8, keepUnmapped=<optimized out>) at vbo/vbo_exec_draw.c:422
#21 0x00007ffff2c6c60f in vbo_exec_FlushVertices_internal (exec=0x7587c8, unmap=<optimized out>) at vbo/vbo_exec_api.c:624
#22 0x00007ffff2c7e0c6 in vbo_exec_FlushVertices (ctx=0x7ffff7f49010, flags=flags@entry=1) at vbo/vbo_exec_api.c:1261
#23 0x00007ffff2b664d2 in _mesa_flush (ctx=0x7ffff7f49010) at main/context.c:1871
#24 0x00007ffff786fcf7 in driswSwapBuffers (pdraw=0x75e1b0, target_msc=<optimized out>, divisor=<optimized out>, remainder=<optimized out>, flush=<optimized out>) at drisw_glx.c:558
#25 0x0000000000401580 in main ()

gdb_backtrace.txt (3,885 bytes)   
guilherme

guilherme

2017-01-27 18:08

reporter  

gdb_full_backtrace.txt (35,317 bytes)   
#0  0x00007ffff72231d7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
        resultvar = 0
        pid = 26849
        selftid = 26849
#1  0x00007ffff72248c8 in __GI_abort () at abort.c:90
        save_stage = 2
        act = {__sigaction_handler = {sa_handler = 0x7fffffffd08a, sa_sigaction = 0x7fffffffd08a}, sa_mask = {__val = {6, 140737340950471, 2, 140737488343198, 2, 140737340941735, 1, 140737340950467, 3, 140737488343172, 12, 140737340950471, 2, 140737488343984, 
              140737488343984, 140737488345744}}, sa_flags = 19, sa_restorer = 0x7fffffffd5b0}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007ffff7262f07 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7ffff736db48 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:196
        ap = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffffffdaa0, reg_save_area = 0x7fffffffd9b0}}
        ap_copy = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fffffffdaa0, reg_save_area = 0x7fffffffd9b0}}
        fd = 8
        on_2 = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
        written = <optimized out>
#3  0x00007ffff726a503 in malloc_printerr (ar_ptr=0x7ffff75a8760 <main_arena>, ptr=<optimized out>, str=0x7ffff736b214 "free(): invalid pointer", action=3) at malloc.c:5013
        buf = "00007ffff2275f60"
        cp = <optimized out>
        ar_ptr = 0x7ffff75a8760 <main_arena>
        ptr = <optimized out>
        str = 0x7ffff736b214 "free(): invalid pointer"
        action = 3
#4  _int_free (av=0x7ffff75a8760 <main_arena>, p=<optimized out>, have_lock=0) at malloc.c:3835
        size = <optimized out>
        fb = <optimized out>
        nextchunk = <optimized out>
        nextsize = <optimized out>
        nextinuse = <optimized out>
        prevsize = <optimized out>
        bck = <optimized out>
        fwd = <optimized out>
        errstr = 0x7ffff736b214 "free(): invalid pointer"
        locked = <optimized out>
#5  0x00007ffff3ee8534 in _M_dispose (__a=..., this=<optimized out>) at /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.h:2646
        __a = @0x7fffffffdb3f: {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}
        this = <optimized out>
#6  std::string::_M_mutate (this=this@entry=0x7fffffffde38, __pos=__pos@entry=0, __len1=<optimized out>, __len2=__len2@entry=9)
    at /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:931
        __a = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}
        __r = <optimized out>
        __new_size = 9
        __how_much = <optimized out>
#7  0x00007ffff3ee89ee in std::string::_M_replace_safe (this=0x7fffffffde38, __pos1=0, __n1=<optimized out>, __s=0x7ffff18779f4 "ivybridge", __n2=9)
    at /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:1128
No locals.
#8  0x00007ffff3ee9b3f in std::string::replace (this=this@entry=0x7fffffffde38, __pos=__pos@entry=0, __n1=<optimized out>, __s=<optimized out>, __n2=9)
    at /home/guilherme/Work/miniconda/conda-bld/gcc_1485182876877/work/gcc-5.4.0/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:867
        __left = <optimized out>
#9  0x00007ffff2e91642 in replace (__k2=<optimized out>, __k1=<optimized out>, __i2=..., __i1=..., this=0x7fffffffde38) at /usr/include/c++/4.8.2/bits/basic_string.h:1653
No locals.
#10 assign<char const*> (__last=<optimized out>, __first=<optimized out>, this=0x7fffffffde38) at /usr/include/c++/4.8.2/bits/basic_string.h:1158
No locals.
#11 setMCPU (mcpu=..., this=0x7fffffffdd80) at /usr/include/mesa-private/llvm/ExecutionEngine/ExecutionEngine.h:604
No locals.
#12 lp_build_create_jit_compiler_for_module (OutJIT=OutJIT@entry=0x7a59c8, OutCode=OutCode@entry=0x7a59f8, M=<optimized out>, CMM=0x7a5d20, OptLevel=OptLevel@entry=2, useMCJIT=useMCJIT@entry=1, OutError=OutError@entry=0x7fffffffdee0) at gallivm/lp_bld_misc.cpp:596
        builder = {M = {
            _M_t = {<std::_Tuple_impl<0ul, llvm::Module*, std::default_delete<llvm::Module> >> = {<std::_Tuple_impl<1ul, std::default_delete<llvm::Module> >> = {<std::_Tuple_impl<2ul>> = {<No data fields>}, <std::_Head_base<1ul, std::default_delete<llvm::Module>, true>> = {<std::default_delete<llvm::Module>> = {<No data fields>}, <No data fields>}, <No data fields>}, <std::_Head_base<0ul, llvm::Module*, false>> = {_M_head_impl = 0x7a5a10}, <No data fields>}, <No data fields>}}, WhichEngine = llvm::EngineKind::JIT, 
          ErrorStr = 0x7fffffffdc50, OptLevel = llvm::CodeGenOpt::Default, MemMgr = {<std::__shared_ptr<llvm::MCJITMemoryManager, (__gnu_cxx::_Lock_policy)2>> = {_M_ptr = 0x0, _M_refcount = {_M_pi = 0x0}}, <No data fields>}, 
          Resolver = {<std::__shared_ptr<llvm::RuntimeDyld::SymbolResolver, (__gnu_cxx::_Lock_policy)2>> = {_M_ptr = 0x0, _M_refcount = {_M_pi = 0x0}}, <No data fields>}, Options = {PrintMachineCode = 0, LessPreciseFPMADOption = 0, UnsafeFPMath = 0, 
            NoInfsFPMath = 0, NoNaNsFPMath = 0, HonorSignDependentRoundingFPMathOption = 0, NoZerosInBSS = 0, GuaranteedTailCallOpt = 0, StackAlignmentOverride = 0, EnableFastISel = 0, PositionIndependentExecutable = 0, UseInitArray = 0, DisableIntegratedAS = 0, 
            CompressDebugSections = 0, FunctionSections = 0, DataSections = 0, UniqueSectionNames = 1, TrapUnreachable = 0, EmulatedTLS = 0, FloatABIType = llvm::FloatABI::Default, AllowFPOpFusion = llvm::FPOpFusion::Standard, Reciprocals = {RecipMap = {_M_t = {
                  _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<llvm::StringRef const, llvm::TargetRecip::RecipParams> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<llvm::StringRef const, llvm::TargetRecip::RecipParams> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<llvm::StringRef, llvm::StringRef, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x7defb0, _M_left = 0x7eaa00, _M_right = 0x7df450}, 
                    _M_node_count = 8}}}}, JTType = llvm::JumpTable::Single, ThreadModel = llvm::ThreadModel::POSIX, EABIVersion = llvm::Default, DebuggerTuning = llvm::Default, MCOptions = {SanitizeAddress = false, MCRelaxAll = false, MCNoExecStack = false, 
              MCFatalWarnings = false, MCNoWarn = false, MCSaveTempLabels = false, MCUseDwarfDirectory = false, MCIncrementalLinkerCompatible = false, ShowMCEncoding = false, ShowMCInst = false, AsmVerbose = false, DwarfVersion = 0, ABIName = {
                static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff2275f78 <std::string::_Rep::_S_empty_rep_storage+24> ""}}}}, 
          RelocModel = llvm::Reloc::Default, CMModel = llvm::CodeModel::JITDefault, MArch = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
              _M_p = 0x7ffff2275f78 <std::string::_Rep::_S_empty_rep_storage+24> ""}}, MCPU = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
              _M_p = 0x7ffff2275f78 <std::string::_Rep::_S_empty_rep_storage+24> ""}}, 
          MAttrs = {<llvm::SmallVectorImpl<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<llvm::SmallVectorTemplateBase<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, false>> = {<llvm::SmallVectorTemplateCommon<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>> = {<llvm::SmallVectorBase> = {BeginX = 0x7ec660, EndX = 0x7ec6a8, CapacityX = 0x7ec6a8}, FirstEl = {<llvm::AlignedCharArray<8ul, 8ul>> = {
                      buffer = "\000\000\000\000\000\000\000"}, <No data fields>}}, <No data fields>}, <No data fields>}, Storage = {InlineElts = {{<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "\370\377\377\377\377\377\377\377"}, <No data fields>}, 
                {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "\352\345/\361\377\177\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "\240jz\000\000\000\000"}, <No data fields>}}}}, VerifyModules = false, UseOrcMCJITReplacement = false}
        MM = <optimized out>
        Error = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff41a4318 <std::string::_Rep::_S_empty_rep_storage+24> ""}}
        options = {PrintMachineCode = 0, LessPreciseFPMADOption = 0, UnsafeFPMath = 0, NoInfsFPMath = 0, NoNaNsFPMath = 0, HonorSignDependentRoundingFPMathOption = 0, NoZerosInBSS = 0, GuaranteedTailCallOpt = 0, StackAlignmentOverride = 0, EnableFastISel = 0, 
          PositionIndependentExecutable = 0, UseInitArray = 0, DisableIntegratedAS = 0, CompressDebugSections = 0, FunctionSections = 0, DataSections = 0, UniqueSectionNames = 1, TrapUnreachable = 0, EmulatedTLS = 0, FloatABIType = llvm::FloatABI::Default, 
          AllowFPOpFusion = llvm::FPOpFusion::Standard, Reciprocals = {RecipMap = {_M_t = {
                _M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<llvm::StringRef const, llvm::TargetRecip::RecipParams> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<llvm::StringRef const, llvm::TargetRecip::RecipParams> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<std::binary_function<llvm::StringRef, llvm::StringRef, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x7e3bf0, _M_left = 0x7e2db0, _M_right = 0x7ec090}, 
                  _M_node_count = 8}}}}, JTType = llvm::JumpTable::Single, ThreadModel = llvm::ThreadModel::POSIX, EABIVersion = llvm::Default, DebuggerTuning = llvm::Default, MCOptions = {SanitizeAddress = false, MCRelaxAll = false, MCNoExecStack = false, 
            MCFatalWarnings = false, MCNoWarn = false, MCSaveTempLabels = false, MCUseDwarfDirectory = false, MCIncrementalLinkerCompatible = false, ShowMCEncoding = false, ShowMCInst = false, AsmVerbose = false, DwarfVersion = 0, ABIName = {
              static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff2275f78 <std::string::_Rep::_S_empty_rep_storage+24> ""}}}}
        MAttrs = {<llvm::SmallVectorImpl<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >> = {<llvm::SmallVectorTemplateBase<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, false>> = {<llvm::SmallVectorTemplateCommon<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, void>> = {<llvm::SmallVectorBase> = {BeginX = 0x7fffffffdcf8, EndX = 0x7fffffffdd40, CapacityX = 0x7fffffffdd78}, FirstEl = {<llvm::AlignedCharArray<8ul, 8ul>> = {
                    buffer = "\310\306~\000\000\000\000"}, <No data fields>}}, <No data fields>}, <No data fields>}, Storage = {InlineElts = {{<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "8\274~\000\000\000\000"}, <No data fields>}, 
              {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "h\225}\000\000\000\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "\b$~\000\000\000\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {
                  buffer = "\350\064~\000\000\000\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "8\225}\000\000\000\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "8$~\000\000\000\000"}, <No data fields>}, 
              {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "\350\302~\000\000\000\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "\030\303~\000\000\000\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {
                  buffer = "h\335\377\377\377\177\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "\000\065~\000\000\000\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {
                  buffer = "\370\225}\000\000\000\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "P\226z\000\000\000\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "`\226z\000\000\000\000"}, <No data fields>}, 
              {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "\316g\265\360\377\177\000"}, <No data fields>}, {<llvm::AlignedCharArray<8ul, 8ul>> = {buffer = "\240\335\377\377\377\177\000"}, <No data fields>}}}}
        MCPU = <optimized out>
#13 0x00007ffff2e8f5a4 in init_gallivm_engine (gallivm=0x7a59c0) at gallivm/lp_bld_init.c:245
        error = 0x0
        ret = <optimized out>
#14 gallivm_compile_module (gallivm=0x7a59c0) at gallivm/lp_bld_init.c:590
        func = 0x0
#15 0x00007ffff3126d0e in generate_variant (lp=0x657140, key=0x7fffffffdf30, shader=0x7a04f0) at lp_state_fs.c:2632
        variant = 0x7a5740
        cbuf0_format_desc = <optimized out>
        fullcolormask = <optimized out>
        module_name = "fs51_variant0", '\000' <repeats 11 times>, "\060\340v", '\000' <repeats 13 times>, "\240\341\377\377\377\177\000\000\300\255u\000\000\000\000\000T\305\334\362\377\177\000"
#16 llvmpipe_update_fs (lp=lp@entry=0x657140) at lp_state_fs.c:3171
        i = <optimized out>
        variants_to_cull = <optimized out>
        shader = 0x7a04f0
        key = {depth = {enabled = 1, writemask = 1, func = 1, bounds_test = 0, bounds_min = 0, bounds_max = 0}, stencil = {{enabled = 0, func = 0, fail_op = 0, zpass_op = 0, zfail_op = 0, valuemask = 0, writemask = 0}, {enabled = 0, func = 0, fail_op = 0, 
              zpass_op = 0, zfail_op = 0, valuemask = 0, writemask = 0}}, blend = {independent_blend_enable = 1, logicop_enable = 0, logicop_func = 0, dither = 1, alpha_to_coverage = 0, alpha_to_one = 0, rt = {{blend_enable = 0, rgb_func = 0, rgb_src_factor = 0, 
                rgb_dst_factor = 0, alpha_func = 0, alpha_src_factor = 0, alpha_dst_factor = 0, colormask = 7}, {blend_enable = 0, rgb_func = 0, rgb_src_factor = 0, rgb_dst_factor = 0, alpha_func = 0, alpha_src_factor = 0, alpha_dst_factor = 0, colormask = 0}, {
                blend_enable = 0, rgb_func = 0, rgb_src_factor = 0, rgb_dst_factor = 0, alpha_func = 0, alpha_src_factor = 0, alpha_dst_factor = 0, colormask = 0}, {blend_enable = 0, rgb_func = 0, rgb_src_factor = 0, rgb_dst_factor = 0, alpha_func = 0, 
                alpha_src_factor = 0, alpha_dst_factor = 0, colormask = 0}, {blend_enable = 0, rgb_func = 0, rgb_src_factor = 0, rgb_dst_factor = 0, alpha_func = 0, alpha_src_factor = 0, alpha_dst_factor = 0, colormask = 0}, {blend_enable = 0, rgb_func = 0, 
                rgb_src_factor = 0, rgb_dst_factor = 0, alpha_func = 0, alpha_src_factor = 0, alpha_dst_factor = 0, colormask = 0}, {blend_enable = 0, rgb_func = 0, rgb_src_factor = 0, rgb_dst_factor = 0, alpha_func = 0, alpha_src_factor = 0, alpha_dst_factor = 0, 
                colormask = 0}, {blend_enable = 0, rgb_func = 0, rgb_src_factor = 0, rgb_dst_factor = 0, alpha_func = 0, alpha_src_factor = 0, alpha_dst_factor = 0, colormask = 0}}}, alpha = {enabled = 0, func = 0}, nr_cbufs = 1, nr_samplers = 0, 
          nr_sampler_views = 0, flatshade = 0, occlusion_count = 0, resource_1d = 0, depth_clamp = 0, zsbuf_format = PIPE_FORMAT_Z32_UNORM, cbuf_format = {PIPE_FORMAT_B8G8R8X8_UNORM, PIPE_FORMAT_NONE, PIPE_FORMAT_NONE, PIPE_FORMAT_NONE, PIPE_FORMAT_NONE, 
            PIPE_FORMAT_NONE, PIPE_FORMAT_NONE, PIPE_FORMAT_NONE}, state = {{sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 1, compare_func = 7, normalized_coords = 1, 
                min_max_lod_equal = 1, lod_bias_non_zero = 1, apply_min_lod = 1, apply_max_lod = 1, seamless_cube_map = 1, force_nearest_s = 1, force_nearest_t = 1}, texture_state = {format = 4294959056, swizzle_r = 7, swizzle_g = 7, swizzle_b = 7, swizzle_a = 7, 
                target = 7, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 7, wrap_t = 1, wrap_r = 7, min_img_filter = 3, min_mip_filter = 3, mag_img_filter = 2, compare_mode = 1, compare_func = 7, 
                normalized_coords = 1, min_max_lod_equal = 1, lod_bias_non_zero = 1, apply_min_lod = 1, apply_max_lod = 1, seamless_cube_map = 1, force_nearest_s = 1, force_nearest_t = 1}, texture_state = {format = 32767, swizzle_r = 6, swizzle_g = 6, 
                swizzle_b = 6, swizzle_a = 3, target = 3, pot_width = 1, pot_height = 0, pot_depth = 0, level_zero_only = 1}}, {sampler_state = {wrap_s = 7, wrap_t = 7, wrap_r = 7, min_img_filter = 3, min_mip_filter = 3, mag_img_filter = 3, compare_mode = 0, 
                compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_R10G10B10A2_UNORM, 
                swizzle_r = 7, swizzle_g = 7, swizzle_b = 7, swizzle_a = 7, target = 7, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 1, wrap_t = 4, wrap_r = 2, min_img_filter = 0, min_mip_filter = 1, 
                mag_img_filter = 3, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 1, apply_min_lod = 1, apply_max_lod = 1, seamless_cube_map = 0, force_nearest_s = 1, force_nearest_t = 0}, texture_state = {
                format = 32767, swizzle_r = 2, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 5, pot_width = 1, pot_height = 1, pot_depth = 1, level_zero_only = 0}}, {sampler_state = {wrap_s = 7, wrap_t = 7, wrap_r = 7, min_img_filter = 3, 
                min_mip_filter = 3, mag_img_filter = 3, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, 
              texture_state = {format = 905881856, swizzle_r = 7, swizzle_g = 7, swizzle_b = 2, swizzle_a = 4, target = 15, pot_width = 1, pot_height = 1, pot_depth = 1, level_zero_only = 1}}, {sampler_state = {wrap_s = 0, wrap_t = 2, wrap_r = 1, 
                min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 3, compare_mode = 1, compare_func = 7, normalized_coords = 1, min_max_lod_equal = 1, lod_bias_non_zero = 1, apply_min_lod = 1, apply_max_lod = 1, seamless_cube_map = 1, force_nearest_s = 1, 
                force_nearest_t = 1}, texture_state = {format = 32767, swizzle_r = 1, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, 
                wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, 
                force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_B8G8R8A8_UNORM, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {
              sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 2, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 3, compare_mode = 1, compare_func = 7, normalized_coords = 1, min_max_lod_equal = 1, lod_bias_non_zero = 1, apply_min_lod = 1, 
                apply_max_lod = 1, seamless_cube_map = 1, force_nearest_s = 1, force_nearest_t = 1}, texture_state = {format = 32767, swizzle_r = 0, swizzle_g = 3, swizzle_b = 2, swizzle_a = 5, target = 4, pot_width = 0, pot_height = 1, pot_depth = 0, 
                level_zero_only = 1}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, 
                apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = 4074805688, swizzle_r = 7, swizzle_g = 7, swizzle_b = 7, swizzle_a = 7, target = 7, pot_width = 0, pot_height = 0, 
                pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 4, wrap_r = 5, min_img_filter = 3, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 1, compare_func = 2, normalized_coords = 1, min_max_lod_equal = 1, 
                lod_bias_non_zero = 0, apply_min_lod = 1, apply_max_lod = 0, seamless_cube_map = 1, force_nearest_s = 1, force_nearest_t = 1}, texture_state = {format = 32767, swizzle_r = 1, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, 
                pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 4, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, 
                min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 1, swizzle_g = 0, swizzle_b = 0, 
                swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, 
                normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 0, 
                swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, 
                compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, 
                swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 4, wrap_t = 4, wrap_r = 1, min_img_filter = 0, min_mip_filter = 0, 
                mag_img_filter = 3, compare_mode = 1, compare_func = 7, normalized_coords = 1, min_max_lod_equal = 1, lod_bias_non_zero = 1, apply_min_lod = 1, apply_max_lod = 1, seamless_cube_map = 1, force_nearest_s = 1, force_nearest_t = 1}, texture_state = {
                format = 32767, swizzle_r = 0, swizzle_g = 1, swizzle_b = 2, swizzle_a = 0, target = 14, pot_width = 1, pot_height = 1, pot_depth = 1, level_zero_only = 1}}, {sampler_state = {wrap_s = 7, wrap_t = 7, wrap_r = 7, min_img_filter = 3, 
                min_mip_filter = 3, mag_img_filter = 3, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, 
              texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 1, pot_height = 1, pot_depth = 1, level_zero_only = 1}}, {sampler_state = {wrap_s = 0, wrap_t = 2, wrap_r = 1, 
                min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 3, compare_mode = 1, compare_func = 7, normalized_coords = 1, min_max_lod_equal = 1, lod_bias_non_zero = 1, apply_min_lod = 1, apply_max_lod = 1, seamless_cube_map = 1, force_nearest_s = 1, 
                force_nearest_t = 1}, texture_state = {format = 32767, swizzle_r = 0, swizzle_g = 0, swizzle_b = 7, swizzle_a = 3, target = 4, pot_width = 0, pot_height = 1, pot_depth = 0, level_zero_only = 1}}, {sampler_state = {wrap_s = 0, wrap_t = 0, 
                wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, 
                force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_R32G32B32A32_USCALED, swizzle_r = 2, swizzle_g = 0, swizzle_b = 4, swizzle_a = 2, target = 2, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {
              sampler_state = {wrap_s = 1, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, 
                apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = 479234, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, 
                level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, 
                apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, 
                pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, 
                min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, 
                swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, 
                normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 0, 
                swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, 
                compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, 
                swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, 
                mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {
                format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 5, wrap_t = 4, wrap_r = 6, min_img_filter = 3, 
                min_mip_filter = 2, mag_img_filter = 3, compare_mode = 0, compare_func = 5, normalized_coords = 1, min_max_lod_equal = 1, lod_bias_non_zero = 0, apply_min_lod = 1, apply_max_lod = 1, seamless_cube_map = 0, force_nearest_s = 1, force_nearest_t = 0}, 
              texture_state = {format = 32767, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, 
                min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, 
              texture_state = {format = 6661344, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 1, wrap_t = 0, wrap_r = 0, min_img_filter = 0, 
                min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, 
              texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 1, swizzle_g = 2, swizzle_b = 0, swizzle_a = 7, target = 13, pot_width = 0, pot_height = 0, pot_depth = 1, level_zero_only = 1}}, {sampler_state = {wrap_s = 7, wrap_t = 7, wrap_r = 7, 
                min_img_filter = 3, min_mip_filter = 3, mag_img_filter = 3, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, 
                force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 4, 
                wrap_r = 3, min_img_filter = 2, min_mip_filter = 0, mag_img_filter = 1, compare_mode = 1, compare_func = 5, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 1, apply_min_lod = 1, apply_max_lod = 0, seamless_cube_map = 0, 
                force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {
                wrap_s = 0, wrap_t = 0, wrap_r = 0, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, apply_min_lod = 0, apply_max_lod = 0, 
                seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = 4074563415, swizzle_r = 7, swizzle_g = 7, swizzle_b = 7, swizzle_a = 7, target = 7, pot_width = 0, pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {
              sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 5, min_img_filter = 0, min_mip_filter = 2, mag_img_filter = 0, compare_mode = 0, compare_func = 3, normalized_coords = 1, min_max_lod_equal = 1, lod_bias_non_zero = 1, apply_min_lod = 1, 
                apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, pot_height = 0, pot_depth = 0, 
                level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 1, min_img_filter = 0, min_mip_filter = 0, mag_img_filter = 0, compare_mode = 0, compare_func = 0, normalized_coords = 0, min_max_lod_equal = 0, lod_bias_non_zero = 0, 
                apply_min_lod = 0, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_L16_FLOAT, swizzle_r = 0, swizzle_g = 0, swizzle_b = 0, swizzle_a = 0, target = 0, pot_width = 0, 
                pot_height = 0, pot_depth = 0, level_zero_only = 0}}, {sampler_state = {wrap_s = 0, wrap_t = 0, wrap_r = 5, min_img_filter = 2, min_mip_filter = 0, mag_img_filter = 3, compare_mode = 1, compare_func = 2, normalized_coords = 1, 
                min_max_lod_equal = 1, lod_bias_non_zero = 1, apply_min_lod = 1, apply_max_lod = 0, seamless_cube_map = 0, force_nearest_s = 0, force_nearest_t = 0}, texture_state = {format = PIPE_FORMAT_NONE, swizzle_r = 0, swizzle_g = 4, swizzle_b = 6, 
                swizzle_a = 0, target = 14, pot_width = 1, pot_height = 1, pot_depth = 1, level_zero_only = 1}}}}
        variant = <optimized out>
        li = <optimized out>
        __func__ = "llvmpipe_update_fs"
#17 0x00007ffff311f240 in llvmpipe_update_derived (e=e@entry=0x657140) at lp_state_derived.c:209
        lp_screen = <optimized out>
#18 0x00007ffff310a8d6 in llvmpipe_draw_vbo (pipe=0x657140, info=0x7fffffffe260) at lp_draw_arrays.c:70
        lp = 0x657140
        draw = 0x65a4e0
        mapped_indices = 0x0
        i = <optimized out>
#19 0x00007ffff2cb8675 in st_draw_vbo (ctx=0x7ffff7f49010, prims=<optimized out>, nr_prims=<optimized out>, ib=0x0, index_bounds_valid=<optimized out>, min_index=0, max_index=3, tfb_vertcount=0x0, stream=0, indirect=0x0) at state_tracker/st_draw.c:288
        st = 0x7564e0
        ibuffer = {index_size = 0, offset = 0, buffer = 0x0, user_buffer = 0x0}
        info = {indexed = 0 '\000', mode = 7, start = 0, count = 4, start_instance = 0, instance_count = 1, drawid = 0, vertices_per_patch = 3, index_bias = 0, min_index = 0, max_index = 3, primitive_restart = 0 '\000', restart_index = 0, 
          count_from_stream_output = 0x0, indirect = 0x0, indirect_offset = 0, indirect_stride = 0, indirect_count = 0, indirect_params = 0x0, indirect_params_offset = 0}
        arrays = <optimized out>
        i = <optimized out>
#20 0x00007ffff2c81023 in vbo_exec_vtx_flush (exec=exec@entry=0x7587c8, keepUnmapped=<optimized out>) at vbo/vbo_exec_draw.c:422
        ctx = 0x7ffff7f49010
#21 0x00007ffff2c6c60f in vbo_exec_FlushVertices_internal (exec=0x7587c8, unmap=<optimized out>) at vbo/vbo_exec_api.c:624
No locals.
#22 0x00007ffff2c7e0c6 in vbo_exec_FlushVertices (ctx=0x7ffff7f49010, flags=flags@entry=1) at vbo/vbo_exec_api.c:1261
        exec = <optimized out>
#23 0x00007ffff2b664d2 in _mesa_flush (ctx=0x7ffff7f49010) at main/context.c:1871
No locals.
#24 0x00007ffff786fcf7 in driswSwapBuffers (pdraw=0x75e1b0, target_msc=<optimized out>, divisor=<optimized out>, remainder=<optimized out>, flush=<optimized out>) at drisw_glx.c:558
        pdp = 0x75e1b0
        psc = 0x6268d0
#25 0x0000000000401580 in main ()
gdb_full_backtrace.txt (35,317 bytes)   
guilherme

guilherme

2017-01-27 18:18

reporter  

quad.c (3,229 bytes)   
// Based on https://www.opengl.org/wiki/Programming_OpenGL_in_Linux:_GLX_and_Xlib

#include<stdio.h>
#include<stdlib.h>
#include<X11/X.h>
#include<X11/Xlib.h>
#include<GL/gl.h>
#include<GL/glx.h>
#include<GL/glu.h>

Display *dpy;
Window root;
GLint att[] = { GLX_RGBA, GLX_DEPTH_SIZE, 24, GLX_DOUBLEBUFFER, None };
XVisualInfo *vi;
Colormap cmap;
XSetWindowAttributes swa;
Window win;
GLXContext glc;
XWindowAttributes gwa;
XEvent xev;
char *user_input;
size_t bytes_read;
size_t nbytes = 100;

void DrawAQuad() {
    glClearColor(1.0, 1.0, 1.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-1., 1., -1., 1., 1., 20.);

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(0., 0., 10., 0., 0., 0., 0., 1., 0.);

    glBegin(GL_QUADS);
    glColor3f(1., 0., 0.);
    glVertex3f(-.75, -.75, 0.);
    glColor3f(0., 1., 0.);
    glVertex3f(.75, -.75, 0.);
    glColor3f(0., 0., 1.);
    glVertex3f(.75, .75, 0.);
    glColor3f(1., 1., 0.);
    glVertex3f(-.75, .75, 0.);
    glEnd();
}

void CreateWindow(Colormap *cmap, XSetWindowAttributes *swa, Window *win, Display* dpy, const char* title) {
    *cmap = XCreateColormap(dpy, root, vi->visual, AllocNone);

    swa->colormap = *cmap;
    swa->event_mask = ExposureMask | KeyPressMask;

    *win = XCreateWindow(dpy, root, 0, 0, 300, 300, 0, vi->depth, InputOutput,
            vi->visual, CWColormap | CWEventMask, swa);

    XMapWindow(dpy, *win);
    XStoreName(dpy, *win, title);

    XSync(dpy, 0);
}


int main(int argc, char *argv[]) {

    puts("Press any key to continue");
    bytes_read = getline(&user_input, &nbytes, stdin);

    dpy = XOpenDisplay(NULL);

    if (dpy == NULL) {
        printf("\n\tcannot connect to X server\n\n");
        exit(0);
    }

    root = DefaultRootWindow(dpy);

    vi = glXChooseVisual(dpy, 0, att);

    if (vi == NULL) {
        printf("\n\tno appropriate visual found\n\n");
        exit(0);
    } else {
        printf("\n\tvisual %p selected\n", (void *) vi->visualid); /* %p creates hexadecimal output like in glxinfo */
    }

    CreateWindow(&cmap, &swa, &win, dpy, "First Window");

    glc = glXCreateContext(dpy, vi, NULL, GL_TRUE);
    glXMakeCurrent(dpy, win, glc);
    printf("GL_VENDOR: %s\n", (char*)glGetString(GL_VENDOR));
    printf("GL_RENDERER: %s\n", (char*)glGetString(GL_RENDERER));
    printf("GL_VERSION: %s\n", (char*)glGetString(GL_VERSION));
    printf("GL_SHADING_LANGUAGE_VERSION: %s\n", (char*)glGetString(GL_SHADING_LANGUAGE_VERSION));
    printf("GL_EXTENSIONS: %s\n", (char*)glGetString(GL_SHADING_LANGUAGE_VERSION));

    glEnable(GL_DEPTH_TEST);

    while (1) {
        XNextEvent(dpy, &xev);

        if (xev.type == Expose) {
            XGetWindowAttributes(dpy, win, &gwa);
            glViewport(0, 0, gwa.width, gwa.height);
            DrawAQuad();
            glXSwapBuffers(dpy, win);
            puts("Press Enter to finish");
            bytes_read = getline(&user_input, &nbytes, stdin);
            glXMakeCurrent(dpy, None, NULL);
            glXDestroyContext(dpy, glc);
            XDestroyWindow(dpy, win);
            XCloseDisplay(dpy);
            exit(0);
        }
    }
}
quad.c (3,229 bytes)   
guilherme

guilherme

2017-01-27 20:03

reporter   ~0028499

After doing some tests I noticed there is a considerable delay to render when running glxgears with llvmpipe distributed by CentOS 7.
This delay can also be seen on the glxgears output:

$ LIBGL_ALWAYS_SOFTWARE=1 glxgears
7108 frames in 5.0 seconds = 1421.021 FPS
10222 frames in 5.0 seconds = 2044.301 FPS

When installing mesa-private-llvm built without -static-libstdc++ there is no delay. And the output shows that:

$ LIBGL_ALWAYS_SOFTWARE=1 glxgears
9698 frames in 5.0 seconds = 1939.504 FPS
10021 frames in 5.0 seconds = 2004.135 FPS

So it seems that -static-libstdc++ is messing up something on mesa-private-llvm.
guilherme

guilherme

2017-01-30 12:51

reporter   ~0028508

I thought that -static-libstdc++ option was a little bit smarter to not export the symbols. But trying to better understand the problem, I noticed that libstdc++ symbols are indeed exported by libLLVM-mesa.so.

For example std::string::replace function (which caused one of the invalid free) is defined both in libLLVM-mesa.so and my newer libstdc++:

$ objdump -T /usr/lib64/libLLVM-3.6-mesa.so | grep _ZNSs7replaceEmmPKcm
0000000001246c00 w DF .text 00000000000001c1 Base _ZNSs7replaceEmmPKcm



$ objdump -T <PATH_TO_NEWER_LIBSTDC++>/libstdc++.so | grep _ZNSs7replaceEmmPKcm
00000000000d2a70 w DF .text 00000000000001eb GLIBCXX_3.4 _ZNSs7replaceEmmPKcm


So, I don't think a system library should be static linked against libstdc++ as this duplicates symbols and lead to undefined behaviour for C++ applications using a newer libstdc++.
As libstdc++ is intended to be backward compatible, I would expect that I can always replace the system's libstdc++ with my own newer version. And others developers trying to build portable binaries expect that too, e.g. Steam from Valve.
But that is not possible if some system libraries are static linked against it.
guilherme

guilherme

2017-01-30 13:07

reporter   ~0028509

Just a typo: where I wrote /usr/lib64/libLLVM-3.6-mesa.so I meant /usr/lib64/libLLVM-3.8.1-mesa.so
guilherme

guilherme

2017-01-30 15:36

reporter   ~0028510

Created a red hat bug report: https://bugzilla.redhat.com/show_bug.cgi?id=1417663

Issue History

Date Modified Username Field Change
2017-01-27 17:49 guilherme New Issue
2017-01-27 17:49 guilherme File Added: crash_output.txt
2017-01-27 17:56 guilherme File Added: valgrind_output.txt
2017-01-27 17:56 guilherme Note Added: 0028498
2017-01-27 18:08 guilherme File Added: gdb_backtrace.txt
2017-01-27 18:08 guilherme File Added: gdb_full_backtrace.txt
2017-01-27 18:18 guilherme File Added: quad.c
2017-01-27 20:03 guilherme Note Added: 0028499
2017-01-30 12:51 guilherme Note Added: 0028508
2017-01-30 13:07 guilherme Note Added: 0028509
2017-01-30 15:36 guilherme Note Added: 0028510