| Summary: | DevicePresence macro miscompiled in C++ mode | ||||||
|---|---|---|---|---|---|---|---|
| Product: | xorg | Reporter: | Andriy Rysin <arysin> | ||||
| Component: | Lib/Xi | Assignee: | Peter Hutterer <peter.hutterer> | ||||
| Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||
| Severity: | normal | ||||||
| Priority: | medium | CC: | peter.hutterer | ||||
| Version: | unspecified | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| Whiteboard: | |||||||
| i915 platform: | i915 features: | ||||||
| Attachments: |
|
||||||
which version of libXi is that? sorry for the summary change, firefox plugin gone nuts. The top of the header is: /* $XFree86: xc/include/extensions/XInput.h,v 1.3 2001/12/14 19:53:28 dawes Exp $ */ The package it comes from is: $ rpm -qf /usr/include/X11/extensions/XInput.h x11-proto-devel-7.3-6mdv2009.0 The Xi package is: $ rpm -qf /usr/lib64/libXi.so lib64xi-devel-1.1.3-3mdv2009.0 Created attachment 21141 [details] [review] 0001-Protect-_XiDevicePresenceNotifyEvent-declaration-aga.patch This is basically the patch we have in the git version of libXi, where XInput.h resides now. Pushed as 60c449cbb1769569ed5e98c75f26bd15627bd146 |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
If XInput.h is included in C++ code DevicePresence macro defined as #define DevicePresence(dpy, type, _class) \ { \ extern int _XiGetDevicePresenceNotifyEvent(Display *); \ type = _XiGetDevicePresenceNotifyEvent(dpy); \ _class = (0x10000 | _devicePresence); \ } produces wrong extern definition for _XiGetDevicePresenceNotifyEvent A predefine of extern "C" { extern int _XiGetDevicePresenceNotifyEvent(Display *); } before macro call in source code works but is an ugly hack.