gcc5's cpp inserts patterns like this:

extern
      __attribute__((visibility("default")))
                int WaitForSomething(int *
    );

This patch make sdksyms.sh work with this. Note my awk skills are weak, so
there likely is a better way to deal with this.

Signed-off-by: Hans de Goede <[email protected]>
---
 hw/xfree86/sdksyms.sh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/hw/xfree86/sdksyms.sh b/hw/xfree86/sdksyms.sh
index 2305073..99b0cae 100755
--- a/hw/xfree86/sdksyms.sh
+++ b/hw/xfree86/sdksyms.sh
@@ -350,6 +350,23 @@ BEGIN {
     if (sdk) {
        n = 3;
 
+       # detect the following gcc5 cpp pattern and skip it:
+       # extern
+       # # 320 "../../include/os.h" 3 4
+       #     __attribute__((visibility("default")))
+       # # 320 "../../include/os.h"
+       # Note in this case the "extern " or "extern void " always has
+       # a trailing space
+       if ($0 ~ "^extern.* $") {
+           getline;
+           getline;
+           getline;
+           getline;
+           n = 1;
+           while ($n == " ")
+               n++;
+       }
+
        # skip attribute, if any
        while ($n ~ /^(__attribute__|__global)/ ||
            # skip modifiers, if any
-- 
2.1.0

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

Reply via email to