Procházet zdrojové kódy

build: fix macOS --enable-modules build

Apple's nm implementation includes empty lines in the output that are not
found in GNU binutils.  This confuses scripts/undefsym.py, though it did
not confuse the scripts/undefsym.sh script that it replaced.  To fix
this, ignore lines that do not have two fields.

Reported-by: Emmanuel Blot <eblot.ml@gmail.com>
Tested-by: Emmanuel Blot <eblot.ml@gmail.com>
Fixes: 604f3e4e90 ("meson: Convert undefsym.sh to undefsym.py", 2020-09-08)
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Paolo Bonzini před 4 roky
rodič
revize
da0dfe251d
2 změnil soubory, kde provedl 6 přidání a 7 odebrání
  1. 1 1
      .cirrus.yml
  2. 5 6
      scripts/undefsym.py

+ 1 - 1
.cirrus.yml

@@ -40,7 +40,7 @@ macos_xcode_task:
   script:
   script:
     - mkdir build
     - mkdir build
     - cd build
     - cd build
-    - ../configure --extra-cflags='-Wno-error=deprecated-declarations'
+    - ../configure --extra-cflags='-Wno-error=deprecated-declarations' --enable-modules
                    --enable-werror --cc=clang || { cat config.log meson-logs/meson-log.txt; exit 1; }
                    --enable-werror --cc=clang || { cat config.log meson-logs/meson-log.txt; exit 1; }
     - gmake -j$(sysctl -n hw.ncpu)
     - gmake -j$(sysctl -n hw.ncpu)
     - gmake check V=1
     - gmake check V=1

+ 5 - 6
scripts/undefsym.py

@@ -15,12 +15,11 @@ def filter_lines_set(stdout, from_staticlib):
     linesSet = set()
     linesSet = set()
     for line in stdout.splitlines():
     for line in stdout.splitlines():
         tokens = line.split(b' ')
         tokens = line.split(b' ')
-        if len(tokens) >= 1:
-            if len(tokens) > 1:
-                if from_staticlib and tokens[1] == b'U':
-                    continue
-                if not from_staticlib and tokens[1] != b'U':
-                    continue
+        if len(tokens) >= 2:
+            if from_staticlib and tokens[1] == b'U':
+                continue
+            if not from_staticlib and tokens[1] != b'U':
+                continue
             new_line = b'-Wl,-u,' + tokens[0]
             new_line = b'-Wl,-u,' + tokens[0]
             if not new_line in linesSet:
             if not new_line in linesSet:
                 linesSet.add(new_line)
                 linesSet.add(new_line)