Bug 1112 - __dead conflicts with sys/cdefs.h on Interix
Summary: __dead conflicts with sys/cdefs.h on Interix
Status: CLOSED FIXED
Alias: None
Product: Portable OpenSSH
Classification: Unclassified
Component: Build system (show other bugs)
Version: 4.2p1
Hardware: All Other
: P2 normal
Assignee: Assigned to nobody
URL:
Keywords:
Depends on:
Blocks: 1114
  Show dependency treegraph
 
Reported: 2005-11-05 15:12 AEDT by Todd Vierling
Modified: 2008-07-22 12:07 AEST (History)
2 users (show)

See Also:


Attachments
Patch removing __dead and using __attribute__(noreturn) explicitly (1.21 KB, patch)
2005-11-05 15:18 AEDT, Todd Vierling
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Todd Vierling 2005-11-05 15:12:58 AEDT
The __dead definition in defines.h redefines it to be __attribute__(noreturn) -- which works fine if the OS's sys/cdefs.h uses the same definition, or if the symbol wasn't previously defined.

However, Interix uses (and provides) the older BSD definition for __dead, which is "volatile".  That can't live after the arguments; it would have to be placed before the return type.

A better solution here would be to use __attribute__(noreturn) explicitly and do away with playing __dead (pun intended).
Comment 1 Todd Vierling 2005-11-05 15:18:45 AEDT
Created attachment 1020 [details]
Patch removing __dead and using __attribute__(noreturn) explicitly
Comment 2 Darren Tucker 2008-06-13 10:29:54 AEST
Thanks, this has now been done.  It will be in tomorrow's snaps and the 5.1 release.
Comment 3 Damien Miller 2008-07-22 12:07:56 AEST
Mass update RESOLVED->CLOSED after release of openssh-5.1