<html>
    <head>
      <base href="https://bugzilla.gnome.org/" />
    </head>
    <body><span class="vcard"><a href="page.cgi?id=describeuser.html&login=simon.mcvittie%40collabora.co.uk" title="Simon McVittie <simon.mcvittie@collabora.co.uk>"> <span class="fn">Simon McVittie</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Do not rely on memfd as it requires a fairly recent kernel"
   href="https://bugzilla.gnome.org/show_bug.cgi?id=766341">bug 766341</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
                
           </td>
           <td>simon.mcvittie@collabora.co.uk
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Do not rely on memfd as it requires a fairly recent kernel"
   href="https://bugzilla.gnome.org/show_bug.cgi?id=766341#c5">Comment # 5</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Do not rely on memfd as it requires a fairly recent kernel"
   href="https://bugzilla.gnome.org/show_bug.cgi?id=766341">bug 766341</a>
              from <span class="vcard"><a href="page.cgi?id=describeuser.html&login=simon.mcvittie%40collabora.co.uk" title="Simon McVittie <simon.mcvittie@collabora.co.uk>"> <span class="fn">Simon McVittie</span></a>
</span></b>
        <pre>(In reply to Ray Strode [halfline] from <a href="show_bug.cgi?id=766341#c4">comment #4</a>)
<span class="quote">> Emanuele if you don't have an #ifdef won't it fail to build because of the
> #include <linux/memfd.h> ?</span >

#ifdef protects you from failing to compile with an old libc, a runtime
fallback on ENOSYS protects you from failing to run with an old kernel. They
complement each other. Whether you need neither, one or both depends on how
long ago the syscall was added to libc and the kernel.

(In reply to Ray Strode [halfline] from <a href="show_bug.cgi?id=766341#c3">comment #3</a>)
<span class="quote">> reintroducing that code would reintroduce the bug the commit was addressing,
> right  ?</span >

>From <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - wayland: use shm_open instead of open in tmpdir"
   href="show_bug.cgi?id=761095">Bug #761095</a>:

"If it fills then desktop will start crashing with SIGBUS errors."

This is obviously not ideal, but seems better than crashing immediately? :-)

(In reply to Ray Strode [halfline] from <a href="show_bug.cgi?id=766341#c3">comment #3</a>)
<span class="quote">> wayland is a chance to get away from technical baggage, so it seems a little
> strange to me to try to work on platforms that don't offer features that
> have been around for years.</span >

memfds were new in Linux 3.17 (~ 18 months old) which is really fairly new.
Distributions typically try to support running release N on the kernel from
release N-1, because otherwise upgrading is a pain (if there's a regression in
the new kernel on your hardware, it's desirable to be able to boot with the old
one). In particular, in Debian 9 we're hoping to have GNOME defaulting to
Wayland, but if that crashes horribly under the 3.16 kernel from Debian 8, it's
unhelpful.

The other factor that makes support for older kernels desirable is that outside
the x86 + nVidia/AMD/Intel desktop hardware bubble, it often isn't practical to
use a new kernel, because hardware frequently doesn't work with a mainline
kernel, and hardware-vendor kernels are usually something rather old patched to
within an inch of its life. This is not a desirable situation, but
unfortunately it's the situation the industry is in right now :-(</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>