On 16/02/2017 19:00, Adam Jackson wrote:
The code as written would match anything declared extern. _X_EXPORT is
what we really mean here. That's a macro, so check for what it expands
to and skip if not found.
---
 hw/xfree86/sdksyms.sh | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/hw/xfree86/sdksyms.sh b/hw/xfree86/sdksyms.sh
index cf26892..10909d0 100755
--- a/hw/xfree86/sdksyms.sh
+++ b/hw/xfree86/sdksyms.sh
@@ -343,6 +343,10 @@ BEGIN {
            n = 1;
         }

+        # only match _X_EXPORT
+        if ($n !~ /^(__attribute__..visibility..default|__global)/)
+            next;
+
        # skip attribute, if any
        while ($n ~ /^(__attribute__|__global)/ ||
            # skip modifiers, if any


Unfortunately, one of the possible definitions of _X_EXPORT in Xfuncproto.h is empty, in which case, this leaves us with nothing in sdksyms.c

This would be much easier if we could use -fdirectives-only, but I guess this needs to be cpp-agnostic.

Not sure how to fix this short of having a define to make Xfuncproto.h not define the _X_EXPORT macro, and turning that on when sdksyms.sh invokes cpp, and having sdksyms.sh recognize a literal X_EXPORT...

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to