Hi James!

On Wed, Jan 29, 2025 at 01:43:31AM +0000, James Addison wrote:
> Dear Maintainer, Dmitry,
> 
> This is conjecture, but I wondered whether an adjustment to the meson linkage
> options for libgallium_dri[1] around the same time (not contained in the same
> commit, but chronologically nearby) could be relevant.  In particular, libdri
> moved into link_whole, although libswdri did not.

I tried moving libswdri to link_whole as well, but it did not change anything
unfortunately. And reverting 212d57f7e6701a4f307c2c049a0e3eccfce58965 is not
possible, because there are conflicts in all three files.

In other news, I tried to use different linkers and linker options. With all
linkers, it crashes, but in a bit different ways:

- bfd (default): jump happens to stderr().

- gold: jump happens to some incorrect place in libgallium-24.3.4.so:
  https://paste.debian.net/1347044/
  https://paste.debian.net/1347045/

- lld: jump happens to 0x0.

- bfd with -Wl,-z,now: *** stack smashing detected *** but in the same
  location, when attempting to do driSwapBuffers(pdraw->dri_drawable).

Also I tried a different compiler (clang), and did not notice any difference
compared to gcc.

In case someone else wants to take a look at this, here is how I test it:

 1. Clone upstream repo and enter the directory:
    $ git clone --depth 1 https://gitlab.freedesktop.org/mesa/mesa.git -b 24.3
    $ cd mesa

 2. Configure mesa (see [1] on details how to pass a different compiler or 
options):
    $ meson setup build

 3. Build mesa (pass -v to see full command lines):
    $ ninja -C build

 4. Install mesa locally:
    $ meson install -C build --destdir=~/mesa-install

 5. Get qtlocation package source:
    $ cd ~
    $ dget -ux 
https://deb.debian.org/debian/pool/main/q/qtlocation-opensource-src/qtlocation-opensource-src_5.15.15+dfsg-3.dsc

 6. Run the build until it fails:
    $ cd qtlocation-opensource-src-5.15.15+dfsg
    $ dpkg-buildpackage -jauto

 7. Enter the test directory:
    $ cd tests/auto/declarative_ui

 8. Set LD_LIBRARY_PATH environment variable:
    $ export 
LD_LIBRARY_PATH=~/qtlocation-opensource-src-5.15.15+dfsg/lib:~/mesa-install/usr/local/lib/powerpc64le-linux-gnu

 9. Enter Xvfb environment:
    $ xvfb-run -a -s "-screen 0 1024x768x24 +extension RANDR +extension RENDER 
+extension GLX" bash

10. Run the test:
    $ ./tst_declarative_ui -import ~/qtlocation-opensource-src-5.15.15+dfsg/qml

Steps 5 and 6 can be done once, no need to repeat them between tests.

[1]: https://docs.mesa3d.org/meson.html#compiler-options

--
Dmitry Shachnev

Attachment: signature.asc
Description: PGP signature

Reply via email to