Title: [275023] releases/WebKitGTK/webkit-2.32/Source/_javascript_Core
Revision
275023
Author
[email protected]
Date
2021-03-25 07:06:48 -0700 (Thu, 25 Mar 2021)

Log Message

Merge r274428 - postprocess-asm/resolve-asm-file-conflicts.rb build failure after upgrading to F34
https://bugs.webkit.org/show_bug.cgi?id=223136

Reviewed by Michael Catanzaro.

When parsing .file assembler directives (for the purpose of
deduplicating the file slots), also accept

  .file "path/to/CWD" "path/to/include"

that seems to be emitted by GCC in some configurations. This also
uses Pathname.cleanpath on the resulting path to canonicalize the
paths. We could use .realpath, but since we only run this on the
paths in a single compilation unit and the first component is
supposed to be the CWD, this both seems unnecessary and would
complicate our selftests.

* Scripts/resolve-asm-file-conflicts.rb:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.32/Source/_javascript_Core/ChangeLog (275022 => 275023)


--- releases/WebKitGTK/webkit-2.32/Source/_javascript_Core/ChangeLog	2021-03-25 14:06:44 UTC (rev 275022)
+++ releases/WebKitGTK/webkit-2.32/Source/_javascript_Core/ChangeLog	2021-03-25 14:06:48 UTC (rev 275023)
@@ -1,3 +1,24 @@
+2021-03-15  Angelos Oikonomopoulos  <[email protected]>
+
+        postprocess-asm/resolve-asm-file-conflicts.rb build failure after upgrading to F34
+        https://bugs.webkit.org/show_bug.cgi?id=223136
+
+        Reviewed by Michael Catanzaro.
+
+        When parsing .file assembler directives (for the purpose of
+        deduplicating the file slots), also accept
+
+          .file "path/to/CWD" "path/to/include"
+
+        that seems to be emitted by GCC in some configurations. This also
+        uses Pathname.cleanpath on the resulting path to canonicalize the
+        paths. We could use .realpath, but since we only run this on the
+        paths in a single compilation unit and the first component is
+        supposed to be the CWD, this both seems unnecessary and would
+        complicate our selftests.
+
+        * Scripts/resolve-asm-file-conflicts.rb:
+
 2021-03-12  Carlos Garcia Campos  <[email protected]>
 
         [GTK] Bump API version when building with libsoup3

Modified: releases/WebKitGTK/webkit-2.32/Source/_javascript_Core/Scripts/resolve-asm-file-conflicts.rb (275022 => 275023)


--- releases/WebKitGTK/webkit-2.32/Source/_javascript_Core/Scripts/resolve-asm-file-conflicts.rb	2021-03-25 14:06:44 UTC (rev 275022)
+++ releases/WebKitGTK/webkit-2.32/Source/_javascript_Core/Scripts/resolve-asm-file-conflicts.rb	2021-03-25 14:06:48 UTC (rev 275023)
@@ -69,16 +69,24 @@
     @s.skip(/\s*/)
 
     # We require at least one string literal
-    ret = parse_string_literal
-    if ret.respond_to?(:error)
-      return ret
+    ret1 = parse_string_literal
+    if ret1.respond_to?(:error)
+      return ret1
     end
 
     @s.skip(/\s*/)
+    if @s.eos?
+      return ParseResultSuccess.new(Pathname.new(ret1.str).cleanpath.to_s)
+    end
+    # If anything follows, it needs to be a string literal
+    ret2 = parse_string_literal
+    if ret2.respond_to?(:error)
+      return ret2
+    end
     if not @s.eos?
-      return ParseResultError.new("Expected end of line after #{ret.str}")
+      return ParseResultError.new("Expected end of line after #{ret2.str}")
     end
-    return ParseResultSuccess.new(ret.str)
+    return ParseResultSuccess.new((Pathname.new(ret1.str) / ret2.str).cleanpath.to_s)
   end
   def parse_string_literal
     if @s.scan(/"/).nil?
@@ -174,13 +182,26 @@
     ['"/bar/baz"', ['/bar/baz']],
 
     # Can detect stray token
-    ['"foo" bar', "Expected end of line"],
+    ['"foo" bar', "Expected string literal"],
 
     # Can detect stray token without whitespace
-    ['"foo"bar', "Expected end of line"],
+    ['"foo"bar', "Expected string literal"],
 
-    # Will not accept clang-style .file directives
-    ['"working_directory" "path"', "Expected end of line"]
+    # Can parse two string literals
+    ['"working_directory" "path"', ['working_directory/path']],
+
+    # Will only accept up to 2 string literals
+    ['"first" "second" "third"', "Expected end of line"],
+
+    # Can detect stray token after 2nd string literal
+    ['"foo" "bar" baz', "Expected end of line"],
+
+    # Can detect stray token after 2nd string literal without whitespace
+    ['"foo" "bar"baz', "Expected end of line"],
+
+    # Can detect unterminated 3rd string literal
+    ['"foo" "bar" "baz', "Expected end of line"]
+
   ]
   outf = StringIO.new("")
   tests.each { |str, res|
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to