<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>149161</bug_id>
          
          <creation_ts>2015-09-15 06:47:39 -0700</creation_ts>
          <short_desc>[cmake] Enable debug fission only if it is supported</short_desc>
          <delta_ts>2015-09-17 08:18:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148639</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Csaba Osztrogonác">ossy</assigned_to>
          <cc>calvaris</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>rhodovan.u-szeged</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1125945</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-15 06:47:39 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/189179 broke the debug build 
with icecc, because debug fission isn&apos;t supported with icecc.

We should enable debug fission only if the compiler accepts -gsplit-dwarf option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125946</commentid>
    <comment_count>1</comment_count>
      <attachid>261190</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-15 06:49:27 -0700</bug_when>
    <thetext>Created attachment 261190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125949</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-09-15 07:10:28 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; https://trac.webkit.org/changeset/189179 broke the debug build 
&gt; with icecc, because debug fission isn&apos;t supported with icecc.
&gt; 
&gt; We should enable debug fission only if the compiler accepts -gsplit-dwarf
&gt; option.

I&apos;m using succesfully icecc with clang and debug fission (also with ccache).

The trick is to send your toolchain to the build slaves. You have to include /usr/bin/objcopy in the toolchain.

Check the documentation here: https://trac.webkit.org/wiki/WebKitGTK/SpeedUpBuild#Usingiceccwithclang The interesting part is on 4.1

But, there is a bug on icecc that will cause that the buildslaves run out of disk space quickly. https://github.com/icecc/icecream/issues/140</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125950</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-15 07:18:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #0)
&gt; &gt; https://trac.webkit.org/changeset/189179 broke the debug build 
&gt; &gt; with icecc, because debug fission isn&apos;t supported with icecc.
&gt; &gt; 
&gt; &gt; We should enable debug fission only if the compiler accepts -gsplit-dwarf
&gt; &gt; option.
&gt; 
&gt; I&apos;m using succesfully icecc with clang and debug fission (also with ccache).
&gt; 
&gt; The trick is to send your toolchain to the build slaves. You have to include
&gt; /usr/bin/objcopy in the toolchain.
&gt; 
&gt; Check the documentation here:
&gt; https://trac.webkit.org/wiki/WebKitGTK/SpeedUpBuild#Usingiceccwithclang The
&gt; interesting part is on 4.1
&gt; 
&gt; But, there is a bug on icecc that will cause that the buildslaves run out of
&gt; disk space quickly. https://github.com/icecc/icecream/issues/140

I experienced with GCC only and it doesn&apos;t work at all and 
won&apos;t in the near future. (until icecc and/or gcc is fixed)

Copying objcopy isn&apos;t enough, you have to made icecc to send
back dwo files. And it is still not enough, because object files
contains hard coded paths ( eg: /tmp/... ) to the responsible
dwo files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125951</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-09-15 07:30:35 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; https://trac.webkit.org/changeset/189179 broke the debug build 
&gt; &gt; &gt; with icecc, because debug fission isn&apos;t supported with icecc.
&gt; &gt; &gt; 
&gt; &gt; &gt; We should enable debug fission only if the compiler accepts -gsplit-dwarf
&gt; &gt; &gt; option.
&gt; &gt; 
&gt; &gt; I&apos;m using succesfully icecc with clang and debug fission (also with ccache).
&gt; &gt; 
&gt; &gt; The trick is to send your toolchain to the build slaves. You have to include
&gt; &gt; /usr/bin/objcopy in the toolchain.
&gt; &gt; 
&gt; &gt; Check the documentation here:
&gt; &gt; https://trac.webkit.org/wiki/WebKitGTK/SpeedUpBuild#Usingiceccwithclang The
&gt; &gt; interesting part is on 4.1
&gt; &gt; 
&gt; &gt; But, there is a bug on icecc that will cause that the buildslaves run out of
&gt; &gt; disk space quickly. https://github.com/icecc/icecream/issues/140
&gt; 
&gt; I experienced with GCC only and it doesn&apos;t work at all and 
&gt; won&apos;t in the near future. (until icecc and/or gcc is fixed)
&gt; 
&gt; Copying objcopy isn&apos;t enough, you have to made icecc to send
&gt; back dwo files. And it is still not enough, because object files
&gt; contains hard coded paths ( eg: /tmp/... ) to the responsible
&gt; dwo files.

I have just tried it.

It works fine for me also with GCC. The .dwo objects are copied back just fine.

Please try to build your toolchain like this:

/usr/lib/icecc/icecc-create-env --gcc /usr/bin/gcc /usr/bin/g++ --addfile /usr/bin/objcopy

and before running the compilation export the env variable ICECC_VERSION to the full path of the tar.gz that is created.

You can do this in one shot with something like:

export ICECC_VERSION=&quot;$(pwd)/$(/usr/lib/icecc/icecc-create-env --gcc /usr/bin/gcc /usr/bin/g++ --addfile /usr/bin/objcopy|tee /dev/stderr|grep creating|awk &apos;{print $2}&apos;)&quot;



I&apos;m using GCC 4.9.2 and and icecc 1.0.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125957</commentid>
    <comment_count>5</comment_count>
      <attachid>261190</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-15 08:01:24 -0700</bug_when>
    <thetext>Comment on attachment 261190
Patch

Clearing flags on attachment: 261190

Committed r189807: &lt;http://trac.webkit.org/changeset/189807&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125958</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-15 08:01:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126395</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-16 10:35:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; &gt; https://trac.webkit.org/changeset/189179 broke the debug build 
&gt; &gt; &gt; &gt; with icecc, because debug fission isn&apos;t supported with icecc.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; We should enable debug fission only if the compiler accepts -gsplit-dwarf
&gt; &gt; &gt; &gt; option.
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m using succesfully icecc with clang and debug fission (also with ccache).
&gt; &gt; &gt; 
&gt; &gt; &gt; The trick is to send your toolchain to the build slaves. You have to include
&gt; &gt; &gt; /usr/bin/objcopy in the toolchain.
&gt; &gt; &gt; 
&gt; &gt; &gt; Check the documentation here:
&gt; &gt; &gt; https://trac.webkit.org/wiki/WebKitGTK/SpeedUpBuild#Usingiceccwithclang The
&gt; &gt; &gt; interesting part is on 4.1
&gt; &gt; &gt; 
&gt; &gt; &gt; But, there is a bug on icecc that will cause that the buildslaves run out of
&gt; &gt; &gt; disk space quickly. https://github.com/icecc/icecream/issues/140
&gt; &gt; 
&gt; &gt; I experienced with GCC only and it doesn&apos;t work at all and 
&gt; &gt; won&apos;t in the near future. (until icecc and/or gcc is fixed)
&gt; &gt; 
&gt; &gt; Copying objcopy isn&apos;t enough, you have to made icecc to send
&gt; &gt; back dwo files. And it is still not enough, because object files
&gt; &gt; contains hard coded paths ( eg: /tmp/... ) to the responsible
&gt; &gt; dwo files.
&gt; 
&gt; I have just tried it.
&gt; 
&gt; It works fine for me also with GCC. The .dwo objects are copied back just
&gt; fine.
&gt; 
&gt; Please try to build your toolchain like this:
&gt; 
&gt; /usr/lib/icecc/icecc-create-env --gcc /usr/bin/gcc /usr/bin/g++ --addfile
&gt; /usr/bin/objcopy
&gt; 
&gt; and before running the compilation export the env variable ICECC_VERSION to
&gt; the full path of the tar.gz that is created.
&gt; 
&gt; You can do this in one shot with something like:
&gt; 
&gt; export ICECC_VERSION=&quot;$(pwd)/$(/usr/lib/icecc/icecc-create-env --gcc
&gt; /usr/bin/gcc /usr/bin/g++ --addfile /usr/bin/objcopy|tee /dev/stderr|grep
&gt; creating|awk &apos;{print $2}&apos;)&quot;
&gt; 
&gt; 
&gt; 
&gt; I&apos;m using GCC 4.9.2 and and icecc 1.0.1

I can&apos;t believe it. I tried it again, because you seemed too confident,
but it doesn&apos;t work at all as I said previously. (Ubuntu 15.04. ,
GCC 4.9.2, icecc 1.0.1, +objcopy included in the tar.gz)

Icecc doesn&apos;t contain any code path to copy dwo files back to the host
where you are building. Icecc doesn&apos;t do anything with dwo files, just
fill the hard disk of the slaves for nothing.

Additionally if you fixed icecc somehow to copy back dwo files, you
won&apos;t be able to use them for anything, because object files contains
wrong paths to the dwo files. (the tmp path of the icecc slaves)

Could you possibly explain how did you manage to make 
icecc+GCC work with debug fission (without ccache)?

Maybe ccache uses some tricks to workaround the wrong hard coded
dwo path in object files and additionally regenerate dwo files
again on that side where you do the build. Could you confirm it please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126431</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-16 12:03:05 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Maybe ccache uses some tricks to workaround the wrong hard coded
&gt; dwo path in object files and additionally regenerate dwo files
&gt; again on that side where you do the build. Could you confirm it please?

I checked the latest ccache release, it really does the 
trick somehow. I still don&apos;t understand how, but it does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126435</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-09-16 12:35:42 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Maybe ccache uses some tricks to workaround the wrong hard coded
&gt; &gt; dwo path in object files and additionally regenerate dwo files
&gt; &gt; again on that side where you do the build. Could you confirm it please?
&gt; 
&gt; I checked the latest ccache release, it really does the 
&gt; trick somehow. I still don&apos;t understand how, but it does.

Yes, I&apos;m using ccache+icecc+clang|gcc. But I have just tested to remove ccache from the mix, and it seems to work ok also.

What I suspect may be happening to you is that your buildslaves have cached an old version of your toolchain (the one that didn&apos;t includes the objcopy binary).

The buildslaves use the filename of the tarball as an index to check if they already have it. If you always use the same filename for the tarball, your buildslaves are not going to update your toolchain when you really want them to update it.

If you send as toolchain a file named &quot;my-toolchain.tar.gz&quot;, icecc won&apos;t upload your toolchain if the directory &quot;/var/cache/icecc/target=x86_64/my-toolchain&quot; already exists on the buildslave.

So my recommendation is to use as filename the one that icecc generates by default (that is a hash of the files included on the toolchain).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126655</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-17 02:20:16 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Yes, I&apos;m using ccache+icecc+clang|gcc. But I have just tested to remove
&gt; ccache from the mix, and it seems to work ok also.

No, it is impossible with stock icecc. Nor icecc 1.0.1, 
neither trunk icecc supports sending back the dwo files.
Additionally trunk icecc forces local build if you pass -gsplit-dwarf command
line option. icecc commit: ee5c312675ae099ca9a42b9d6ca180a8e9c85e76
 
&gt; What I suspect may be happening to you is that your buildslaves have cached
&gt; an old version of your toolchain (the one that didn&apos;t includes the objcopy
&gt; binary).
...

I know icecc enough not to make this begginners fault. Of course the good
toolchain is sent and dwo files are generated on the slave side. But
it isn&apos;t sent back, because icecc doesn&apos;t know anything about it.

I&apos;m pretty sure that ccache does the trick somehow, but I don&apos;t know how.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126666</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-17 03:24:32 -0700</bug_when>
    <thetext>One more thing, ccache+icecc+gcc combo works only if the icecc jobs are
sent to the machine which you build on, because icecc does local builds
in place instead of creating chroot.

So I still say debug fission doesn&apos;t work at all with icecc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126667</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-17 03:28:54 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; One more thing, ccache+icecc+gcc combo works only if the icecc jobs are
&gt; sent to the machine which you build on, because icecc does local builds
&gt; in place instead of creating chroot.
&gt; 
&gt; So I still say debug fission doesn&apos;t work at all with icecc.

And it won&apos;t work with newer icecc which will chrooting to the environment 
for local builds too since 1e8dc310ff11bb048a2855544040ab7255db7061 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126668</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-09-17 03:50:56 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Yes, I&apos;m using ccache+icecc+clang|gcc. But I have just tested to remove
&gt; &gt; ccache from the mix, and it seems to work ok also.
&gt; 
&gt; No, it is impossible with stock icecc. Nor icecc 1.0.1, 
&gt; neither trunk icecc supports sending back the dwo files.
&gt; Additionally trunk icecc forces local build if you pass -gsplit-dwarf command
&gt; line option. icecc commit: ee5c312675ae099ca9a42b9d6ca180a8e9c85e76
&gt;  

That change has been done after the release 1.0.1 (which is what I&apos;m using).

I&apos;m using icecc=1.0.1-2 directly from Debian (no modifications), and just to be double-sure I just downloaded the sources with &quot;apt-get source icecc&quot;, and grepped it for &quot;gsplit-dwarf&quot; strings. Nothing showed.


&gt; &gt; What I suspect may be happening to you is that your buildslaves have cached
&gt; &gt; an old version of your toolchain (the one that didn&apos;t includes the objcopy
&gt; &gt; binary).
&gt; ...
&gt; 
&gt; I know icecc enough not to make this begginners fault. Of course the good
&gt; toolchain is sent and dwo files are generated on the slave side. But
&gt; it isn&apos;t sent back, because icecc doesn&apos;t know anything about it.
&gt; 
&gt; I&apos;m pretty sure that ccache does the trick somehow, but I don&apos;t know how.

I just tested (again, to be double sure):

* Building webkitgtk+ on debug mode (from zero, a clean build) using icecc=1.0.1-2 (with GCC=4.9.2-10) (and without ccache):

$ export PATH=&quot;/usr/lib/icecc/bin:${PATH}&quot;
$ export ICECC_VERSION=&quot;$(pwd)/$(/usr/lib/icecc/icecc-create-env --gcc /usr/bin/gcc /usr/bin/g++ --addfile /usr/bin/objcopy|tee /dev/stderr|grep creating|awk &apos;{print $2}&apos;)&quot;
$ rm -fr WebKitBuild/Debug
$ Tools/Scripts/build-webkit --debug --gtk --makeargs=-j48 --cmakeargs=-j48

And:

  * The .dwo files are generated correctly on the WebKitBuild/Debug directory.

$ find WebKitBuild/Debug -type f -name &apos;*.dwo&apos;|wc -l
62

  * The jobs are correctly dispatched to all build slaves (double-checked it by looking at the console with the icecream monitor (icemon) )
  * The build finishes without trouble.
  * ccache was not used (double-checked by ensuring it was not on the PATH as also by checking that the output of &quot;ccache -s&quot; before and after the compilation was exactly the same)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126669</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-09-17 03:52:16 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; One more thing, ccache+icecc+gcc combo works only if the icecc jobs are
&gt; &gt; sent to the machine which you build on, because icecc does local builds
&gt; &gt; in place instead of creating chroot.
&gt; &gt; 
&gt; &gt; So I still say debug fission doesn&apos;t work at all with icecc.
&gt; 
&gt; And it won&apos;t work with newer icecc which will chrooting to the environment 
&gt; for local builds too since 1e8dc310ff11bb048a2855544040ab7255db7061 .

That is also post 1.0.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126671</commentid>
    <comment_count>15</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2015-09-17 04:07:16 -0700</bug_when>
    <thetext>I am using the same setup with CCache and IceCC that Carlos described. Frankly I haven&apos;t devoted any time to check this in depth (as I have Carlos less than 10m away), but I can build with Fission, with and without IceCC. The only thing that I had to do at the beginning was clearing the cache of CCache (ccache -Cz).

It it true that when later, when using GDB I am getting a lot of errors that some dwo files can&apos;t be found, but I don&apos;t know why, symbols are there I don&apos;t have any issue with the debugging process.

For the record, currently I am using Debian testing with ccache 3.2.3-1 and icecc                                 1.0.1-2+b1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126672</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-17 04:41:14 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt;   * The .dwo files are generated correctly on the WebKitBuild/Debug
&gt; directory.
&gt; 
&gt; $ find WebKitBuild/Debug -type f -name &apos;*.dwo&apos;|wc -l
&gt; 62
&gt; 
&gt;   * The jobs are correctly dispatched to all build slaves (double-checked it
&gt; by looking at the console with the icecream monitor (icemon) )
&gt;   * The build finishes without trouble.
&gt;   * ccache was not used (double-checked by ensuring it was not on the PATH
&gt; as also by checking that the output of &quot;ccache -s&quot; before and after the
&gt; compilation was exactly the same)

That&apos;s exactly same what I said previously. There are ~4000 object files,
but you have only 62 dwo files. You have dwo files for the objects which
were built locally, because icecc built them in place instead of chroot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126691</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-09-17 07:43:20 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #13)
&gt; &gt;   * The .dwo files are generated correctly on the WebKitBuild/Debug
&gt; &gt; directory.
&gt; &gt; 
&gt; &gt; $ find WebKitBuild/Debug -type f -name &apos;*.dwo&apos;|wc -l
&gt; &gt; 62
&gt; &gt; 
&gt; &gt;   * The jobs are correctly dispatched to all build slaves (double-checked it
&gt; &gt; by looking at the console with the icecream monitor (icemon) )
&gt; &gt;   * The build finishes without trouble.
&gt; &gt;   * ccache was not used (double-checked by ensuring it was not on the PATH
&gt; &gt; as also by checking that the output of &quot;ccache -s&quot; before and after the
&gt; &gt; compilation was exactly the same)
&gt; 
&gt; That&apos;s exactly same what I said previously. There are ~4000 object files,
&gt; but you have only 62 dwo files. You have dwo files for the objects which
&gt; were built locally, because icecc built them in place instead of chroot.

And how the build finished correctly? Doesn&apos;t it needs the dwo files for linking?

The debugger seems to work fine also. :\ ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126696</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-09-17 08:18:21 -0700</bug_when>
    <thetext>I tried re-building now with ccache+icecc+gcc with a clean ccache cache and the behaviour is the same:

It builds fine but it only generates a few .dwo files (I guess the ones that were built locally).

So I think ccache is not fixing anything. The thing is that it builds fine without the dwo files. Also the debugger (so far) seems to work ok.

I&apos;m re-reading the doc:

&quot;We can move the .debug_info, .debug_types, and .debug_str sections from the object (.o) files to a separate DWARF object (.dwo) file (or &quot;.dsym&quot;, in Apple&apos;s nomenclature). Assuming that we could ignore these .dwo files during the link step, this would remove the bulk of the data that would be sent to the linker, and debug builds would be be much closer to non-debug builds in terms of object file size and link speed.
[...]
In order for the debugger to be able to locate and process the information in raw (unrelocated) .dwo files, some information must still be left behind in the .o files for the linker to combine and relocate. The bulk of the reduction in .o file size will come from moving .debug_info, .debug_types, .debug_loc, and .debug_str sections into the .dwo file (and eliminating most of the associated relocations). The .debug_ranges, .debug_line, .debug_pubnames, .debug_pubtypes, .debug_aranges, and .debug_gdb_scripts sections (and their relocation sections) will remain in the .o file.
&quot;  https://gcc.gnu.org/wiki/DebugFission

So if I understood this right, the dwo files are not needed for linking, and the basic debug information (like in release builds) is still contained on the .o files.

That explains why it builds fine and I can run the debugger apparently fine (I guess I&apos;m just missing some extra debug information for not having all the dwo files).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261190</attachid>
            <date>2015-09-15 06:49:27 -0700</date>
            <delta_ts>2015-09-15 08:01:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149161-20150915064915.patch</filename>
            <type>text/plain</type>
            <size>1279</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5ODA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0NvbW1vbi5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlCmluZGV4
IDU2ZjcyMGQ5OWUzOWVlNmUzYzNmNTI3NGQ1NDY1ZTAyYmE4MmMyYjkuLmY2Y2FjNjZkN2VlZTk0
Y2FlYjE5NGFlMTQ2MWZjNDRiY2U4MDNmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRp
b25zQ29tbW9uLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlCkBA
IC04NSw3ICs4NSwxMSBAQCBlbmRpZiAoKQogCiBzZXQoRU5BQkxFX0RFQlVHX0ZJU1NJT05fREVG
QVVMVCBPRkYpCiBpZiAoVVNFX0xEX0dPTEQgQU5EIENNQUtFX0JVSUxEX1RZUEUgU1RSRVFVQUwg
IkRlYnVnIikKLSAgICBzZXQoRU5BQkxFX0RFQlVHX0ZJU1NJT05fREVGQVVMVCBPTikKKyAgICBp
bmNsdWRlKFRlc3RDWFhBY2NlcHRzRmxhZykKKyAgICBDSEVDS19DWFhfQUNDRVBUU19GTEFHKC1n
c3BsaXQtZHdhcmYgQ1hYX0FDQ0VQVFNfR1NQTElUX0RXQVJGKQorICAgIGlmIChDWFhfQUNDRVBU
U19HU1BMSVRfRFdBUkYpCisgICAgICAgIHNldChFTkFCTEVfREVCVUdfRklTU0lPTl9ERUZBVUxU
IE9OKQorICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCiBvcHRpb24oREVCVUdfRklTU0lPTiAiVXNl
IERlYnVnIEZpc3Npb24gc3VwcG9ydCIgJHtFTkFCTEVfREVCVUdfRklTU0lPTl9ERUZBVUxUfSkK
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3NmEwNzdiYzgzMDJmYmVh
NTczYjJiNDMzYWQ4NmRhNmE5YjA5MmE4Li5hM2YyOWQzNTA2OGFhYWYyNzNhODU5YjQwOTllZDZm
ZTg1ODRkNmMwIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTUtMDktMTUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbY21ha2VdIEVuYWJsZSBkZWJ1ZyBmaXNzaW9uIG9ubHkgaWYgaXQgaXMg
c3VwcG9ydGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDkxNjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zQ29tbW9uLmNtYWtlOgorCiAyMDE1LTA5LTE0ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUHJvZ3Jl
c3MgdG93YXJkcyBDTWFrZSBvbiBNYWMuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>