From mboxrd@z Thu Jan 1 00:00:00 1970 References: <5641F09E.3040608@free.fr> <20151110142814.GA4629@hermes.click-hack.org> <564318FF.4030007@siemens.com> <56432BF5.3000606@xenomai.org> <56433451.5030009@xenomai.org> <56433603.3020709@xenomai.org> <564441D2.4070208@free.fr> From: Philippe Gerum Message-ID: <56446031.2060205@xenomai.org> Date: Thu, 12 Nov 2015 10:47:29 +0100 MIME-Version: 1.0 In-Reply-To: <564441D2.4070208@free.fr> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: quoted-printable Subject: Re: [Xenomai] panic macro interference with xerces api. List-Id: Discussions about the Xenomai project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?Q?St=c3=a9phane_ANCELOT?= , Jan Kiszka , Gilles Chanteperdrix Cc: "xenomai@xenomai.org" On 11/12/2015 08:37 AM, St=E9phane 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=E9phane 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 >>>>>>> #include >>>>>>> >>>>>>> >>>>>>> /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=3Dstable-3.0.x&id=3D5c88a11c= 11e9a2b13be4da91624dc3f3ff323e46 --=20 Philippe.