From: Philippe Gerum <rpm@xenomai.org>
To: "Stéphane ANCELOT" <sancelot@free.fr>,
"Jan Kiszka" <jan.kiszka@siemens.com>,
"Gilles Chanteperdrix" <gilles.chanteperdrix@xenomai.org>
Cc: "xenomai@xenomai.org" <xenomai@xenomai.org>
Subject: Re: [Xenomai] panic macro interference with xerces api.
Date: Thu, 12 Nov 2015 10:47:29 +0100 [thread overview]
Message-ID: <56446031.2060205@xenomai.org> (raw)
In-Reply-To: <564441D2.4070208@free.fr>
On 11/12/2015 08:37 AM, Stéphane ANCELOT wrote:
> On 11/11/2015 13:35, Philippe Gerum wrote:
>> On 11/11/2015 01:28 PM, Philippe Gerum wrote:
>>> On 11/11/2015 12:52 PM, Philippe Gerum wrote:
>>>> On 11/11/2015 11:31 AM, Jan Kiszka wrote:
>>>>> On 2015-11-10 15:28, Gilles Chanteperdrix wrote:
>>>>>> On Tue, Nov 10, 2015 at 02:26:54PM +0100, Stéphane ANCELOT wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I don't know if there might be a big impact, but I noticed,
>>>>>>> depending
>>>>>>> on the order we include headers , that
>>>>>>> there was a panic macro interfering with xercesc api headers.
>>>>>>>
>>>>>>> #include <alchemy/task.h>
>>>>>>> #include <xercesc/dom/DOMException.hpp>
>>>>>>>
>>>>>>>
>>>>>>> /usr/xenomai-3.0-igb/include/boilerplate/ancillaries.h:64:10: error:
>>>>>>> expected identifier before '__func__'
>>>>>>> __panic(__func__, __fmt, ##__args)
>>>>>> Well, if the two headers define the same macro, there are not many
>>>>>> solutions: arrange for not having to include them in the same file.
>>>>>> It should not be too hard, since a real-time thread using
>>>>>> alchemy/task.h has no business using an xml library, probably only
>>>>>> using linux services which a real-time task can not use without
>>>>>> switching to secondary mode.
>>>>> Isn't *panic an internal service? Then we can maybe avoid that it is
>>>>> exposed to applications. If it's not internal, it should probably
>>>>> carry
>>>>> some "xenomai" prefix in its (fairly generic) name.
>>>>>
>>>> Sure, this service is aimed at being fairly generic and
>>>> general-purpose,
>>>> with backtracing support, timing data, error code translation and such.
>>>> With respect to layering, I would rather expect an XML lib not to mess
>>>> with the namespace of core services, instead of asking the xenomai libs
>>>> which do deliver core services to apps to prefix its own services.
>>>>
>>>> I may move those helpers in some specific file to hide them, but no, I
>>>> really don't want to go for xenomai_panic(), because it really should
>>>> work the other way around (although nobody is likely to care about this
>>>> on the apache side).
>>>>
>>> Actually, the only issue is about defining the panic helpers as macros,
>>> so that we can pull the source/line information automatically.
>>>
>> We are not even doing that anymore, so this is eventually about moving
>> these helpers in some header that would not be pulled indirectly, or
>> using a different internal identifier from the reserved namespace.
>>
> I ordered differently the headers to enable compilation.
> I may arrange source code , since the xerces lib is needed only for data
> parsing during the setup process.
This change from the stable branch should prevent the conflict from
arising. Including boilerplate/ancillaries.h is now required to pull the
related definitions (no more indirect inclusion from the API headers),
which should limit the scope of conflict to direct users of the
ancillaries services.
http://git.xenomai.org/xenomai-3.git/commit/?h=stable-3.0.x&id=5c88a11c11e9a2b13be4da91624dc3f3ff323e46
--
Philippe.
prev parent reply other threads:[~2015-11-12 9:47 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-10 13:26 [Xenomai] panic macro interference with xerces api Stéphane ANCELOT
2015-11-10 14:28 ` Gilles Chanteperdrix
2015-11-11 9:22 ` g.strobbe
2015-11-11 10:31 ` Jan Kiszka
2015-11-11 11:52 ` Philippe Gerum
2015-11-11 12:28 ` Philippe Gerum
2015-11-11 12:35 ` Philippe Gerum
2015-11-12 7:37 ` Stéphane ANCELOT
2015-11-12 9:47 ` Philippe Gerum [this message]
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=56446031.2060205@xenomai.org \
--to=rpm@xenomai.org \
--cc=gilles.chanteperdrix@xenomai.org \
--cc=jan.kiszka@siemens.com \
--cc=sancelot@free.fr \
--cc=xenomai@xenomai.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.