From: Joakim Tjernlund <Joakim.Tjernlund@infinera.com>
To: "greg@kroah.com" <greg@kroah.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH 1/2] Correct function definition for C++
Date: Wed, 22 Feb 2017 16:25:05 +0000 [thread overview]
Message-ID: <1487780704.5760.24.camel@infinera.com> (raw)
In-Reply-To: <20170222142214.GA6830@kroah.com>
On Wed, 2017-02-22 at 15:22 +0100, greg@kroah.com wrote:
> On Wed, Feb 22, 2017 at 02:00:53PM +0000, Joakim Tjernlund wrote:
> > On Wed, 2017-02-22 at 14:03 +0100, greg@kroah.com wrote:
> > > On Wed, Feb 22, 2017 at 07:50:46AM +0000, Joakim Tjernlund wrote:
> > > > On Wed, 2017-02-22 at 08:10 +0100, Greg KH wrote:
> > > > > On Tue, Feb 21, 2017 at 04:24:04PM +0100, Joakim Tjernlund wrote:
> > > > > > C++ does does not like the extra extern before asmlinkage, remove it.
> > > > > >
> > > > > > Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
> > > > > > ---
> > > > > > include/linux/printk.h | 4 ++--
> > > > > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > > > > >
> > > > > > diff --git a/include/linux/printk.h b/include/linux/printk.h
> > > > > > index 3472cc6..be823f5 100644
> > > > > > --- a/include/linux/printk.h
> > > > > > +++ b/include/linux/printk.h
> > > > >
> > > > >
> > > > > Why are you building this file with a C++ compiler?
> > > >
> > > > virtualbox uses C++ and includes various kernel headers and the build
> > > > fails, virtualbox guest additions has not build for quite some time now and
> > > > this is one of the problems.
> > >
> > > Virtualbox is a horrid pile of crap. You can quote me on that. We
> > > don't care about out-of-tree drivers, the authors should work to get
> > > them merged properly if they do care.
> >
> > Sure, I believe you :)
> >
> > But in this case it is not the kernel modules that fails, it is their
> > guest additions/xf86 video driver. Seem like that these need to include some
> > kernel herders there too.
>
> Seems like their build system is broken, it should not be including non
> uapi header files at all.
>
> > > Kernel code should be C, not C++, and if you do want to use C++, then
> > > you are on your own, sorry.
> >
> > But there are already a lot of C++ adjustments!? Just grepping for __cplusplus shows
> > plenty of hits and what is the point of asmlinkage then:
> > #ifdef __cplusplus
> > #define CPP_ASMLINKAGE extern "C"
> > #else
> > #define CPP_ASMLINKAGE
> > #endif
> >
> > #ifndef asmlinkage
> > #define asmlinkage CPP_ASMLINKAGE
> > #endif
>
> The usages in include/uapi/ make a bit of sense, but not much.
> Everything outside of there makes no sense at all (really just some drm
> and one scsi file.) They should be removed.
>
> > I read all of this that C++ code should be able to at least include kernel headers
> > without fatal errors.
>
> For uapi stuff, yes. But that's not what you are doing here. You are
> trying to build kernel code with a c++ compiler. That's not going to
> work.
Right, I looked into guest-addition and it builds a few kernel modules too
and include linux/string.h and that pulls in the offending code.
Anyhow, the code in printk.h is "wrong" to add an extra extern so that
change should not be a big deal as is, C++ or not.
>
> How is a C++ compiler supposed to parse the following line in device.h
> struct class;
> (one of my most proud moments...)
:)
next prev parent reply other threads:[~2017-02-22 16:25 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-21 15:24 [PATCH 1/2] Correct function definition for C++ Joakim Tjernlund
2017-02-21 15:24 ` [PATCH 2/2] compiler.h: fix C++ uninitialized const issue Joakim Tjernlund
2017-02-22 7:10 ` [PATCH 1/2] Correct function definition for C++ Greg KH
2017-02-22 7:50 ` Joakim Tjernlund
2017-02-22 13:03 ` greg
2017-02-22 14:00 ` Joakim Tjernlund
2017-02-22 14:22 ` greg
2017-02-22 14:22 ` greg
2017-02-22 16:25 ` Joakim Tjernlund [this message]
2017-02-28 23:15 ` Thomas Backlund
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=1487780704.5760.24.camel@infinera.com \
--to=joakim.tjernlund@infinera.com \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.