[Bug 577804] Re: function with attribute((noreturn)) never called in cdebootstrap

Matthias Klose 577804 at bugs.launchpad.net
Tue Mar 9 17:12:18 UTC 2021


is this still the case with recent compiler versions?

** Changed in: gcc-defaults (Ubuntu)
       Status: New => Incomplete

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-defaults in Ubuntu.
https://bugs.launchpad.net/bugs/577804

Title:
  function with attribute((noreturn)) never called in cdebootstrap

Status in gcc-defaults package in Ubuntu:
  Incomplete

Bug description:
  Binary package hint: gcc

  cdebootstrap on x86_64 hangs whenever it tries to fork/exec a child
  process. It appears that this is miscompiled:

    if (pid <= 0)
    {
      close (fds_status[0]);
      close (fds_stdout[0]);
      close (fds_stderr[0]);
    }

    if (pid == 0)
      internal_di_exec_child (filename, argv, envp, pid, child_prepare_handler, child_prepare_user_data, fds_status[1], fd_null, fds_stdout[1], fds_stderr[1]);

    close (fd_null);

  strace shows that the child process gets to the close(fd_null) without
  executing any of the statements inside internal_di_exec_child().

  The later function is marked attribute((noreturn)). If I remove that
  attribute, then things work properly.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/577804/+subscriptions



More information about the foundations-bugs mailing list