[webkit-dev] Fwd: Any way to get a debugging symbols build without compiling?

Michael Catanzaro mcatanzaro at gnome.org
Thu Apr 8 07:40:26 PDT 2021


On Thu, Apr 8 2021 at 08:21:43 AM -0600, Alemar via webkit-dev 
<webkit-dev at lists.webkit.org> wrote:
> So, my question is: What CLI arguments are used for building the
> release version posted on the website? I'm assuming it's not just:
> 
> cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_GAMEPAD=NO
> -DENABLE_INTROSPECTION=NO -GNinja

Hi, this is decided by Manjaro. I'm not source where to see their 
packaging, but the Arch packaging is here:

https://github.com/archlinux/svntogit-packages/blob/packages/webkit2gtk/trunk/PKGBUILD

And honestly it's relatively likely that Manjaro might not make any 
changes to it. You can see the build flags they are using:

  cmake -S webkitgtk-$pkgver -B build -G Ninja \
    -DPORT=GTK \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_INSTALL_LIBDIR=lib \
    -DCMAKE_INSTALL_LIBEXECDIR=lib \
    -DCMAKE_SKIP_RPATH=ON \
    -DENABLE_GTKDOC=ON \
    -DENABLE_MINIBROWSER=ON

FYI your debugging experience today was about 13498x harder than it 
needed to be. Arch and its derivatives like Manjaro are the only 
distros that don't provide debug symbols for its packages. In any other 
distro you would just install the relevant debug packages, and then you 
wouldn't have to worry about not being able to reproduce the problem 
with your own custom build. It's impossible to know why one build 
crashes and another doesn't, but there could be many differences, e.g. 
Arch hopefully uses security hardening flags when building its packages 
(not sure about that, but I hope so ;) that are not used by default 
when you build yourself.

FWIW I recommend using -DCMAKE_BUILD_TYPE=RelWithDebInfo rather than 
-DCMAKE_BUILD_TYPE=Debug to ensure you get a release build. Debug 
builds indeed have some different codepaths and very different 
performance characteristics. Normally debug builds crash more because 
assertions are enabled, but I suppose it's indeed possible that some 
crash might not occur in a debug build for whatever reason. But even if 
you use RelWithDebInfo, I'm afraid there's no guarantee you'll be able 
to reproduce the crash you're hunting.

Michael




More information about the webkit-dev mailing list