discuss@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: Peter Bray <pdb_ml@yahoo.com.au>
To: discuss@mdocml.bsd.lv
Subject: mdocml [CVS_2015_11_07] C++ Declaration Guards
Date: Sat, 07 Nov 2015 14:29:19 +1100	[thread overview]
Message-ID: <563D700F.9090001@yahoo.com.au> (raw)

Greetings,

Many of the header files in the mdocml project use the cpp(1) macros
'__BEGIN_DECLS' && '__END_DECLS', which IMHO is "A Good Thing(TM)".

But neither Solaris 10 or 11.2 define these macros in any standard
header files, so the project has to provide them.

Currently, this is done by generating the appropriate code into 'config.h'.

This is not sufficient to allow the code to compile on Solaris 10.

To progress the build, the files 'mandoc.h' and 'mandoc_aux.h' can be
edited to include the line '#include "config.h"'. And the build will
proceed.

Unfortunately, this is not a desirable solution, as these header files
get installed via 'make install'. So the correct solution will
probably involve having these definitions moved from 'config.h' to an
installed header file. If users of the library will always load a
common header file, than the declaration could go there. But the
project's own code, requires that at least two files be edited to
allow the build to proceed (as mentioned above).

Alternatively, maybe a generated header, say mandoc_compat.h could be
generated by the configure scripts and all the (installed) header
files using '__BEGIN_DECLS' && '__END_DECLS', could
'#include"mandoc_compat.h", as an example.

I'll leave it to the developers and maintainers to choose the
appropriate solution for their code base.

Regards,

Peter Bray
Sydney, Australia
--
 To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv

             reply	other threads:[~2015-11-07  3:29 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-07  3:29 Peter Bray [this message]
2015-11-07  3:37 ` Guy Harris
2015-11-07 14:06 ` Ingo Schwarze
2015-11-07 14:25   ` Joerg Sonnenberger
2015-11-07 14:34     ` Ingo Schwarze
2015-11-07 14:37       ` Joerg Sonnenberger
2015-11-11 10:57     ` Steffen Nurpmeso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=563D700F.9090001@yahoo.com.au \
    --to=pdb_ml@yahoo.com.au \
    --cc=discuss@mdocml.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).