#49046 closed defect (fixed)
rcs @5.9.4: error: '_Noreturn' keyword must precede function declarator
Reported by: | inyeollee | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | elcapitan haspatch | Cc: | avysk (Alexey Vyskubov), steele@…, ric@…, kurthindenburg (Kurt Hindenburg) |
Port: | rcs |
Description
rcs-5.9.4 build failed, log attached.
Attachments (2)
Change History (12)
Changed 9 years ago by inyeollee
comment:1 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | elcapitan added |
---|---|
Port: | rcs added; rcs-5.9.4 removed |
Summary: | rcs-5.9.4 build failure, Macport 2.3.4, El Capitan. → rcs @5.9.4: error: '_Noreturn' keyword must precede function declarator |
comment:2 Changed 9 years ago by avysk (Alexey Vyskubov)
Cc: | tascafoo@… added |
---|
comment:4 Changed 9 years ago by pcollinson
Here's a workaround, it's probably against all the rules but here goes. Since Apple in its infinite wisdom has removed rcs from Xcode, I need to find another way of getting it now for 10.11.
Once you've found that things don't work, find the source of rcs.
On my system that's
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_rcs/rcs/work/rcs-5.9.4/src
Edit (and you'll need to sudo) base.h
Find the line:
#define exiting _Noreturn
and replace it by
#define exiting ;
Then
sudo port install rcs
will work. It builds the system and installs it.
The _Noreturn
keyword is a C11 artefact and the build can happen without it (it seems). Caveat: I really know zilch about C11. I've done some rough testing and rcs appears to work.
comment:5 Changed 9 years ago by davidfavor (David Favor)
The above fix does produce a clean build + what does appear to be a functional RCS.
This is a life saver, as RCS is such a simple way to quickly version control any random file.
Seems like this fix is so simple it could make make it into a patch.
Changed 9 years ago by inyeollee
Attachment: | rcs-5.9.4._Noreturn.patch added |
---|
Patch against rcs-5.9.4 to fix _Noreturn issue.
comment:6 Changed 9 years ago by inyeollee
RCS source has syntax errors regarding _Noreturn keyward usage, now CLang is catching them. The fix is to rearrange _Noreturn keyword (exiting macro), from:
extern void Oerror (void) exiting;
to:
exiting extern void Oerror (void);
There are about 10 instances of this usage in base.h, b-fb.h, and b-complain.h. Patch uploaded - rcs.5.9.4_Noreturn.patch.
comment:7 Changed 9 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ric@… added |
---|---|
Keywords: | haspatch added |
Has duplicate #49304.
comment:9 Changed 9 years ago by kurthindenburg (Kurt Hindenburg)
Resolution: | → fixed |
---|---|
Status: | new → closed |
done r141984
Cc Me!