Bug 1112

Summary: __dead conflicts with sys/cdefs.h on Interix
Product: Portable OpenSSH Reporter: Todd Vierling <tv>
Component: Build systemAssignee: Assigned to nobody <unassigned-bugs>
Status: CLOSED FIXED    
Severity: normal CC: djm, dtucker
Priority: P2    
Version: 4.2p1   
Hardware: All   
OS: Other   
Bug Depends on:    
Bug Blocks: 1114    
Attachments:
Description Flags
Patch removing __dead and using __attribute__(noreturn) explicitly none

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