diff options
author | Cronet Mainline Eng <cronet-mainline-eng+copybara@google.com> | 2024-01-24 19:13:11 +0000 |
---|---|---|
committer | Chidera Olibie <colibie@google.com> | 2024-01-24 19:19:32 +0000 |
commit | abce8a39488511c10b95ac52d1a3fdd2e886da83 (patch) | |
tree | 163cb3522692e4ac343079f490b3c29c97da116e /build | |
parent | d14faf319d3e431654f149930db41f3e0adf2d15 (diff) | |
download | cronet-abce8a39488511c10b95ac52d1a3fdd2e886da83.tar.gz |
Import Cronet version 121.0.6167.71
FolderOrigin-RevId: /tmp/copybara-origin/src
Change-Id: Ieee3d31a0e9c404daa9a1630919e62b52ce61d1b
Diffstat (limited to 'build')
113 files changed, 1838 insertions, 1007 deletions
diff --git a/build/BUILD.gn b/build/BUILD.gn index bd0f6453f..fc551fa19 100644 --- a/build/BUILD.gn +++ b/build/BUILD.gn @@ -3,8 +3,8 @@ # found in the LICENSE file. import("//build/buildflag_header.gni") +import("//build/config/cast.gni") import("//build/config/chrome_build.gni") -import("//build/config/chromecast_build.gni") import("//build/config/chromeos/args.gni") import("//build/config/chromeos/ui_mode.gni") import("//build/config/features.gni") diff --git a/build/android/apk_operations.py b/build/android/apk_operations.py index 0f8ed91c3..2532972a5 100755 --- a/build/android/apk_operations.py +++ b/build/android/apk_operations.py @@ -1318,7 +1318,16 @@ class _Command: def _FindSupportedDevices(self, devices): """Returns supported devices and reasons for each not supported one.""" app_abis = self.apk_helper.GetAbis() - logging.debug('App supports: %r', app_abis) + calling_script_name = os.path.basename(sys.argv[0]) + is_webview = 'webview' in calling_script_name + requires_32_bit = self.apk_helper.Get32BitAbiOverride() == '0xffffffff' + logging.debug('App supports (requires 32bit: %r, is webview: %r): %r', + requires_32_bit, is_webview, app_abis) + # Webview 32_64 targets can work even on 64-bit only devices since only the + # webview library in the target needs the correct bitness. + if requires_32_bit and not is_webview: + app_abis = [abi for abi in app_abis if '64' not in abi] + logging.debug('App supports (filtered): %r', app_abis) if not app_abis: # The app does not have any native libs, so all devices can support it. return devices, None @@ -1350,10 +1359,14 @@ class _Command: target_cpu = 'arm' else: target_cpu = '<something else>' + # pylint: disable=line-too-long + native_lib_link = 'https://chromium.googlesource.com/chromium/src/+/main/docs/android_native_libraries.md' not_supported_reasons[device.serial] = ( f"none of the app's ABIs ({','.join(app_abis)}) match this " f"device's ABIs ({','.join(device_abis)}), you may need to set " - f'target_cpu="{target_cpu}" in your args.gn.') + f'target_cpu="{target_cpu}" in your args.gn. If you already set ' + 'the target_cpu arg, you may need to use one of the _64 or _64_32 ' + f'targets, see {native_lib_link} for more details.') return fully_supported, not_supported_reasons def ProcessArgs(self, args): diff --git a/build/android/bytecode/java/org/chromium/bytecode/ByteCodeRewriter.java b/build/android/bytecode/java/org/chromium/bytecode/ByteCodeRewriter.java index b365cde29..56aabc525 100644 --- a/build/android/bytecode/java/org/chromium/bytecode/ByteCodeRewriter.java +++ b/build/android/bytecode/java/org/chromium/bytecode/ByteCodeRewriter.java @@ -25,9 +25,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; -/** - * Base class for scripts that perform bytecode modifications on a jar file. - */ +/** Base class for scripts that perform bytecode modifications on a jar file. */ public abstract class ByteCodeRewriter { private static final String CLASS_FILE_SUFFIX = ".class"; @@ -53,9 +51,7 @@ public abstract class ByteCodeRewriter { /** Returns true if the class at the given path in the archive should be rewritten. */ protected abstract boolean shouldRewriteClass(String classPath); - /** - * Returns true if the class at the given {@link ClassReader} should be rewritten. - */ + /** Returns true if the class at the given {@link ClassReader} should be rewritten. */ protected boolean shouldRewriteClass(ClassReader classReader) { return true; } diff --git a/build/android/bytecode/java/org/chromium/bytecode/EmptyOverrideGeneratorClassAdapter.java b/build/android/bytecode/java/org/chromium/bytecode/EmptyOverrideGeneratorClassAdapter.java index 3cf3a83d4..fdd54ce65 100644 --- a/build/android/bytecode/java/org/chromium/bytecode/EmptyOverrideGeneratorClassAdapter.java +++ b/build/android/bytecode/java/org/chromium/bytecode/EmptyOverrideGeneratorClassAdapter.java @@ -31,7 +31,12 @@ class EmptyOverrideGeneratorClassAdapter extends ClassVisitor { } @Override - public void visit(int version, int access, String name, String signature, String superName, + public void visit( + int version, + int access, + String name, + String signature, + String superName, String[] interfaces) { super.visit(version, access, name, signature, superName, interfaces); @@ -52,8 +57,9 @@ class EmptyOverrideGeneratorClassAdapter extends ClassVisitor { continue; } - MethodVisitor mv = super.visitMethod( - method.access, method.methodName, method.description, null, null); + MethodVisitor mv = + super.visitMethod( + method.access, method.methodName, method.description, null, null); writeOverrideCode(mv, method.access, method.methodName, method.description); } diff --git a/build/android/bytecode/java/org/chromium/bytecode/MethodCheckerClassAdapter.java b/build/android/bytecode/java/org/chromium/bytecode/MethodCheckerClassAdapter.java index 6794a77a6..ecdb0496e 100644 --- a/build/android/bytecode/java/org/chromium/bytecode/MethodCheckerClassAdapter.java +++ b/build/android/bytecode/java/org/chromium/bytecode/MethodCheckerClassAdapter.java @@ -51,7 +51,12 @@ class MethodCheckerClassAdapter extends ClassVisitor { } @Override - public void visit(int version, int access, String name, String signature, String superName, + public void visit( + int version, + int access, + String name, + String signature, + String superName, String[] interfaces) { super.visit(version, access, name, signature, superName, interfaces); @@ -126,7 +131,9 @@ class MethodCheckerClassAdapter extends ClassVisitor { } } - static void checkParentClass(String superClassName, ArrayList<MethodDescription> methodsToCheck, + static void checkParentClass( + String superClassName, + ArrayList<MethodDescription> methodsToCheck, ClassLoader jarClassLoader) { try { ClassReader cr = new ClassReader(getClassAsStream(jarClassLoader, superClassName)); diff --git a/build/android/bytecode/java/org/chromium/bytecode/ParentMethodCheckerClassAdapter.java b/build/android/bytecode/java/org/chromium/bytecode/ParentMethodCheckerClassAdapter.java index 4656c34ab..d0ae0c1ec 100644 --- a/build/android/bytecode/java/org/chromium/bytecode/ParentMethodCheckerClassAdapter.java +++ b/build/android/bytecode/java/org/chromium/bytecode/ParentMethodCheckerClassAdapter.java @@ -36,7 +36,12 @@ class ParentMethodCheckerClassAdapter extends ClassVisitor { } @Override - public void visit(int version, int access, String name, String signature, String superName, + public void visit( + int version, + int access, + String name, + String signature, + String superName, String[] interfaces) { super.visit(version, access, name, signature, superName, interfaces); @@ -56,7 +61,8 @@ class ParentMethodCheckerClassAdapter extends ClassVisitor { } for (MethodDescription methodToCheck : mMethodsToCheck) { - if (methodToCheck.shouldCreateOverride != null || !methodToCheck.methodName.equals(name) + if (methodToCheck.shouldCreateOverride != null + || !methodToCheck.methodName.equals(name) || !methodToCheck.description.equals(descriptor)) { continue; } diff --git a/build/android/bytecode/java/org/chromium/bytecode/TraceEventAdder.java b/build/android/bytecode/java/org/chromium/bytecode/TraceEventAdder.java index 51020b5a4..81ebecc72 100644 --- a/build/android/bytecode/java/org/chromium/bytecode/TraceEventAdder.java +++ b/build/android/bytecode/java/org/chromium/bytecode/TraceEventAdder.java @@ -47,8 +47,9 @@ public class TraceEventAdder extends ByteCodeRewriter { args = ByteCodeRewriter.expandArgs(args); if (args.length < 2) { - System.err.println("Expected arguments: <':' separated list of input jar paths> " - + "<':' separated list of output jar paths>"); + System.err.println( + "Expected arguments: <':' separated list of input jar paths> " + + "<':' separated list of output jar paths>"); System.exit(1); } @@ -56,9 +57,11 @@ public class TraceEventAdder extends ByteCodeRewriter { String[] outputJars = args[1].split(":"); assert inputJars.length >= outputJars.length - : "Input list must be a superset of the output list, where the " + : "Input list must be a superset of the output list, where the " + "first N entries match, and N is the length of the output list." - + inputJars.length + " Outputs: " + outputJars.length; + + inputJars.length + + " Outputs: " + + outputJars.length; // outputJars[n] must be the same as inputJars[n] but with a suffix, validate this. for (int i = 0; i < outputJars.length; i++) { @@ -94,23 +97,35 @@ public class TraceEventAdder extends ByteCodeRewriter { @Override protected boolean shouldRewriteClass(ClassReader classReader) { - mMethodsToTrace = new ArrayList<>(Arrays.asList( - // Methods on View.java - new MethodDescription( - "dispatchTouchEvent", "(Landroid/view/MotionEvent;)Z", Opcodes.ACC_PUBLIC), - new MethodDescription("draw", "(Landroid/graphics/Canvas;)V", Opcodes.ACC_PUBLIC), - new MethodDescription("onMeasure", "(II)V", Opcodes.ACC_PROTECTED), - new MethodDescription("onLayout", "(ZIIII)V", Opcodes.ACC_PROTECTED), - // Methods on RecyclerView.java in AndroidX - new MethodDescription("scrollStep", "(II[I)V", 0), - // Methods on Animator.AnimatorListener - new MethodDescription( - "onAnimationStart", "(Landroid/animation/Animator;)V", Opcodes.ACC_PUBLIC), - new MethodDescription( - "onAnimationEnd", "(Landroid/animation/Animator;)V", Opcodes.ACC_PUBLIC), - // Methods on ValueAnimator.AnimatorUpdateListener - new MethodDescription("onAnimationUpdate", "(Landroid/animation/ValueAnimator;)V", - Opcodes.ACC_PUBLIC))); + mMethodsToTrace = + new ArrayList<>( + Arrays.asList( + // Methods on View.java + new MethodDescription( + "dispatchTouchEvent", + "(Landroid/view/MotionEvent;)Z", + Opcodes.ACC_PUBLIC), + new MethodDescription( + "draw", "(Landroid/graphics/Canvas;)V", Opcodes.ACC_PUBLIC), + new MethodDescription("onMeasure", "(II)V", Opcodes.ACC_PROTECTED), + new MethodDescription( + "onLayout", "(ZIIII)V", Opcodes.ACC_PROTECTED), + // Methods on RecyclerView.java in AndroidX + new MethodDescription("scrollStep", "(II[I)V", 0), + // Methods on Animator.AnimatorListener + new MethodDescription( + "onAnimationStart", + "(Landroid/animation/Animator;)V", + Opcodes.ACC_PUBLIC), + new MethodDescription( + "onAnimationEnd", + "(Landroid/animation/Animator;)V", + Opcodes.ACC_PUBLIC), + // Methods on ValueAnimator.AnimatorUpdateListener + new MethodDescription( + "onAnimationUpdate", + "(Landroid/animation/ValueAnimator;)V", + Opcodes.ACC_PUBLIC))); // This adapter will modify mMethodsToTrace to indicate which methods already exist in the // class and which ones need to be overridden. In case the class is not an Android view diff --git a/build/android/bytecode/java/org/chromium/bytecode/TraceEventAdderClassAdapter.java b/build/android/bytecode/java/org/chromium/bytecode/TraceEventAdderClassAdapter.java index f2d03fbcc..74e02db5d 100644 --- a/build/android/bytecode/java/org/chromium/bytecode/TraceEventAdderClassAdapter.java +++ b/build/android/bytecode/java/org/chromium/bytecode/TraceEventAdderClassAdapter.java @@ -25,15 +25,24 @@ class TraceEventAdderClassAdapter extends ClassVisitor { } @Override - public void visit(int version, int access, String name, String signature, String superName, + public void visit( + int version, + int access, + String name, + String signature, + String superName, String[] interfaces) { super.visit(version, access, name, signature, superName, interfaces); mShortClassName = name.substring(name.lastIndexOf('/') + 1); } @Override - public MethodVisitor visitMethod(final int access, final String name, String desc, - String signature, String[] exceptions) { + public MethodVisitor visitMethod( + final int access, + final String name, + String desc, + String signature, + String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); for (MethodDescription method : mMethodsToTrace) { diff --git a/build/android/bytecode/java/org/chromium/bytecode/TypeUtils.java b/build/android/bytecode/java/org/chromium/bytecode/TypeUtils.java index e62a912f8..188fe7544 100644 --- a/build/android/bytecode/java/org/chromium/bytecode/TypeUtils.java +++ b/build/android/bytecode/java/org/chromium/bytecode/TypeUtils.java @@ -35,6 +35,7 @@ class TypeUtils { static final String INT = "I"; static final String VOID = "V"; private static final Map<String, Type> PRIMITIVE_DESCRIPTORS; + static { PRIMITIVE_DESCRIPTORS = new HashMap<>(); PRIMITIVE_DESCRIPTORS.put(Type.BOOLEAN_TYPE.toString(), Type.BOOLEAN_TYPE); diff --git a/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestInstrumentationTestRunner.java b/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestInstrumentationTestRunner.java index 7f5c4a817..066259354 100644 --- a/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestInstrumentationTestRunner.java +++ b/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestInstrumentationTestRunner.java @@ -28,9 +28,7 @@ import java.util.ArrayList; import java.util.Queue; import java.util.concurrent.atomic.AtomicBoolean; -/** - * An Instrumentation that runs tests based on NativeTest. - */ +/** An Instrumentation that runs tests based on NativeTest. */ public class NativeTestInstrumentationTestRunner extends Instrumentation { private static final String EXTRA_NATIVE_TEST_ACTIVITY = "org.chromium.native_test.NativeTestInstrumentationTestRunner.NativeTestActivity"; @@ -64,12 +62,12 @@ public class NativeTestInstrumentationTestRunner extends Instrumentation { @Override public void onCreate(Bundle arguments) { - Context context = getContext(); mTransparentArguments = new Bundle(arguments); mNativeTestActivity = arguments.getString(EXTRA_NATIVE_TEST_ACTIVITY); if (mNativeTestActivity == null) { - Log.e(TAG, + Log.e( + TAG, "Unable to find org.chromium.native_test.NativeUnitTestActivity extra on " + "NativeTestInstrumentationTestRunner launch intent."); finish(Activity.RESULT_CANCELED, new Bundle()); @@ -90,8 +88,9 @@ public class NativeTestInstrumentationTestRunner extends Instrumentation { mStdoutFile = new File(stdoutFile); } else { try { - mStdoutFile = File.createTempFile( - ".temp_stdout_", ".txt", Environment.getExternalStorageDirectory()); + mStdoutFile = + File.createTempFile( + ".temp_stdout_", ".txt", Environment.getExternalStorageDirectory()); Log.i(TAG, "stdout file created: " + mStdoutFile.getAbsolutePath()); } catch (IOException e) { Log.e(TAG, "Unable to create temporary stdout file.", e); @@ -145,34 +144,38 @@ public class NativeTestInstrumentationTestRunner extends Instrumentation { mReceiver = new TestStatusReceiver(); mReceiver.register(getContext()); - mReceiver.registerCallback(new TestStatusReceiver.TestRunCallback() { - @Override - public void testRunStarted(int pid) { - if (pid != Process.myPid()) { - ShardMonitor m = new ShardMonitor(pid, System.nanoTime() + mShardNanoTimeout); - mMonitors.put(pid, m); - mHandler.post(m); - } - } + mReceiver.registerCallback( + new TestStatusReceiver.TestRunCallback() { + @Override + public void testRunStarted(int pid) { + if (pid != Process.myPid()) { + ShardMonitor m = + new ShardMonitor(pid, System.nanoTime() + mShardNanoTimeout); + mMonitors.put(pid, m); + mHandler.post(m); + } + } - @Override - public void testRunFinished(int pid) { - ShardMonitor m = mMonitors.get(pid); - if (m != null) { - m.stopped(); - mMonitors.remove(pid); - } - mHandler.post(new ShardEnder(pid)); - } + @Override + public void testRunFinished(int pid) { + ShardMonitor m = mMonitors.get(pid); + if (m != null) { + m.stopped(); + mMonitors.remove(pid); + } + mHandler.post(new ShardEnder(pid)); + } - @Override - public void uncaughtException(int pid, String stackTrace) { - mLogBundle.putString(Instrumentation.REPORT_KEY_STREAMRESULT, - String.format("Uncaught exception in test process (pid: %d)%n%s%n", pid, - stackTrace)); - sendStatus(0, mLogBundle); - } - }); + @Override + public void uncaughtException(int pid, String stackTrace) { + mLogBundle.putString( + Instrumentation.REPORT_KEY_STREAMRESULT, + String.format( + "Uncaught exception in test process (pid: %d)%n%s%n", + pid, stackTrace)); + sendStatus(0, mLogBundle); + } + }); mHandler.post(new ShardStarter()); } @@ -240,9 +243,7 @@ public class NativeTestInstrumentationTestRunner extends Instrumentation { return i; } - /** - * Starts the NativeTest Activity. - */ + /** Starts the NativeTest Activity. */ private class ShardStarter implements Runnable { @Override public void run() { diff --git a/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestIntent.java b/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestIntent.java index 202078445..88fd88cc2 100644 --- a/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestIntent.java +++ b/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestIntent.java @@ -4,9 +4,7 @@ package org.chromium.build.gtest_apk; -/** - * Extras for intent sent by NativeTestInstrumentationTestRunner. - */ +/** Extras for intent sent by NativeTestInstrumentationTestRunner. */ public class NativeTestIntent { public static final String EXTRA_COMMAND_LINE_FILE = "org.chromium.native_test.NativeTest.CommandLineFile"; diff --git a/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusIntent.java b/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusIntent.java index 98ebf443b..8acc32488 100644 --- a/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusIntent.java +++ b/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusIntent.java @@ -4,9 +4,7 @@ package org.chromium.build.gtest_apk; -/** - * Intent action and extras of broadcasts intercepted by TestStatusReceiver. - */ +/** Intent action and extras of broadcasts intercepted by TestStatusReceiver. */ public class TestStatusIntent { public static final String ACTION_TEST_RUN_STARTED = "org.chromium.test.reporter.TestStatusReporter.TEST_RUN_STARTED"; diff --git a/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusReceiver.java b/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusReceiver.java index 1fd5ca80f..5e5d3e3da 100644 --- a/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusReceiver.java +++ b/build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusReceiver.java @@ -14,8 +14,7 @@ import java.util.ArrayList; import java.util.List; /** - Receives test status broadcasts sent from - {@link org.chromium.test.reporter.TestStatusReporter}. + * Receives test status broadcasts sent from {@link org.chromium.test.reporter.TestStatusReporter}. */ public class TestStatusReceiver extends BroadcastReceiver { private static final String TAG = "test_reporter"; @@ -24,6 +23,7 @@ public class TestStatusReceiver extends BroadcastReceiver { /** An IntentFilter that matches the intents that this class can receive. */ private static final IntentFilter INTENT_FILTER; + static { IntentFilter filter = new IntentFilter(); filter.addAction(TestStatusIntent.ACTION_TEST_RUN_STARTED); @@ -40,7 +40,9 @@ public class TestStatusReceiver extends BroadcastReceiver { /** A callback used when a test run has started or finished. */ public interface TestRunCallback { void testRunStarted(int pid); + void testRunFinished(int pid); + void uncaughtException(int pid, String stackTrace); } diff --git a/build/android/gyp/apkbuilder.py b/build/android/gyp/apkbuilder.py index fa5701b6d..19c9e4bdc 100755 --- a/build/android/gyp/apkbuilder.py +++ b/build/android/gyp/apkbuilder.py @@ -244,6 +244,12 @@ def _AddFiles(apk, details): alignment=alignment) +def _GetAbiAlignment(android_abi): + if '64' in android_abi: + return 0x4000 # 16k alignment + return 0x1000 # 4k alignment + + def _GetNativeLibrariesToAdd(native_libs, android_abi, fast_align, lib_always_compress): """Returns the list of file_detail tuples for native libraries in the apk. @@ -262,7 +268,10 @@ def _GetNativeLibrariesToAdd(native_libs, android_abi, fast_align, lib_android_abi = 'arm64-v8a-hwasan' apk_path = 'lib/%s/%s' % (lib_android_abi, basename) - alignment = 0 if compress and not fast_align else 0x1000 + if compress and not fast_align: + alignment = 0 + else: + alignment = _GetAbiAlignment(android_abi) libraries_to_add.append((apk_path, path, compress, alignment)) return libraries_to_add @@ -297,7 +306,8 @@ def main(args): # Python's zip implementation duplicates file comments in the central # directory, whereas zipalign does not, so use zipalign for official builds. requires_alignment = options.format == 'apk' - run_zipalign = requires_alignment and options.best_compression + # TODO(crbug.com/1495851): Re-enable zipalign once we are using Android V SDK. + run_zipalign = requires_alignment and options.best_compression and False fast_align = bool(requires_alignment and not run_zipalign) native_libs = sorted(options.native_libs) @@ -476,14 +486,16 @@ def main(args): # with stale builds when the only change is adding/removing # placeholders). apk_path = 'lib/%s/%s' % (options.android_abi, name) - add_to_zip(apk_path, '', alignment=0x1000) + alignment = _GetAbiAlignment(options.android_abi) + add_to_zip(apk_path, '', alignment=alignment) for name in sorted(secondary_native_lib_placeholders): # Note: Empty libs files are ignored by md5check (can cause issues # with stale builds when the only change is adding/removing # placeholders). apk_path = 'lib/%s/%s' % (options.secondary_android_abi, name) - add_to_zip(apk_path, '', alignment=0x1000) + alignment = _GetAbiAlignment(options.secondary_android_abi) + add_to_zip(apk_path, '', alignment=alignment) # 5. Resources logging.debug('Adding res/') diff --git a/build/android/gyp/create_app_bundle.py b/build/android/gyp/create_app_bundle.py index 6bef20b1e..d82150103 100755 --- a/build/android/gyp/create_app_bundle.py +++ b/build/android/gyp/create_app_bundle.py @@ -237,6 +237,7 @@ def _GenerateBundleConfigJson(uncompressed_assets, compress_dex, }, 'uncompressNativeLibraries': { 'enabled': True, + 'alignment': 'PAGE_ALIGNMENT_16K' }, 'uncompressDexFiles': { 'enabled': True, # Applies only for P+. diff --git a/build/android/gyp/dex.py b/build/android/gyp/dex.py index ae8729106..3b8df26a8 100755 --- a/build/android/gyp/dex.py +++ b/build/android/gyp/dex.py @@ -183,7 +183,15 @@ def _RunD8(dex_cmd, input_paths, output_path, warnings_as_errors, build_utils.CheckOutput(dex_cmd, stderr_filter=stderr_filter, fail_on_output=warnings_as_errors) - except Exception: + except Exception as e: + if isinstance(e, build_utils.CalledProcessError): + output = e.output # pylint: disable=no-member + if "global synthetic for 'Record desugaring'" in output: + sys.stderr.write('Java records are not supported.\n') + sys.stderr.write( + 'See https://chromium.googlesource.com/chromium/src/+/' + + 'main/styleguide/java/java.md#Records\n') + sys.exit(1) if orig_dex_cmd is not dex_cmd: sys.stderr.write('Full command: ' + shlex.join(orig_dex_cmd) + '\n') raise diff --git a/build/android/gyp/test/java/org/chromium/helloworld/HelloWorldMain.java b/build/android/gyp/test/java/org/chromium/helloworld/HelloWorldMain.java index 2c4d9a274..01a3bbfe7 100644 --- a/build/android/gyp/test/java/org/chromium/helloworld/HelloWorldMain.java +++ b/build/android/gyp/test/java/org/chromium/helloworld/HelloWorldMain.java @@ -12,4 +12,3 @@ public class HelloWorldMain { HelloWorldPrinter.print(); } } - diff --git a/build/android/gyp/test/java/org/chromium/helloworld/HelloWorldPrinter.java b/build/android/gyp/test/java/org/chromium/helloworld/HelloWorldPrinter.java index 2762b4f9e..5c0691aec 100644 --- a/build/android/gyp/test/java/org/chromium/helloworld/HelloWorldPrinter.java +++ b/build/android/gyp/test/java/org/chromium/helloworld/HelloWorldPrinter.java @@ -9,4 +9,3 @@ public class HelloWorldPrinter { System.out.println("Hello, world!"); } } - diff --git a/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapAppComponentFactory.java b/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapAppComponentFactory.java index c782143f4..bda84dde2 100644 --- a/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapAppComponentFactory.java +++ b/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapAppComponentFactory.java @@ -13,9 +13,7 @@ import android.content.ContentProvider; import android.content.Intent; import android.content.pm.ApplicationInfo; -/** - * Delegates to the real AppComponentFactory. - */ +/** Delegates to the real AppComponentFactory. */ public class BootstrapAppComponentFactory extends AppComponentFactory { static AppComponentFactory sDelegate; diff --git a/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapApplication.java b/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapApplication.java index d49a8274c..0c69fcc10 100644 --- a/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapApplication.java +++ b/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapApplication.java @@ -53,10 +53,13 @@ public final class BootstrapApplication extends Application { protected void attachBaseContext(Context context) { super.attachBaseContext(context); try { - ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo( - context.getPackageName(), PackageManager.GET_META_DATA); - mActivityThread = Reflect.invokeMethod(Class.forName("android.app.ActivityThread"), - "currentActivityThread"); + ApplicationInfo appInfo = + context.getPackageManager() + .getApplicationInfo( + context.getPackageName(), PackageManager.GET_META_DATA); + mActivityThread = + Reflect.invokeMethod( + Class.forName("android.app.ActivityThread"), "currentActivityThread"); mClassLoaderPatcher = new ClassLoaderPatcher(context); mOrigInstrumentation = @@ -89,9 +92,10 @@ public final class BootstrapApplication extends Application { File instInstallLockFile = new File(instIncrementalRootDir, "install.lock"); File instFirstRunLockFile = new File(instIncrementalRootDir, "firstrun.lock"); - boolean isFirstRun = LockFile.installerLockExists(appFirstRunLockFile) - || (instPackageNameDiffers - && LockFile.installerLockExists(instFirstRunLockFile)); + boolean isFirstRun = + LockFile.installerLockExists(appFirstRunLockFile) + || (instPackageNameDiffers + && LockFile.installerLockExists(instFirstRunLockFile)); if (isFirstRun) { if (mClassLoaderPatcher.mIsPrimaryProcess) { // Wait for incremental_install.py to finish. @@ -157,8 +161,9 @@ public final class BootstrapApplication extends Application { Log.i(TAG, "Instantiating " + realApplicationName); Instrumentation anyInstrumentation = mRealInstrumentation != null ? mRealInstrumentation : mOrigInstrumentation; - mRealApplication = anyInstrumentation.newApplication( - getClassLoader(), realApplicationName, context); + mRealApplication = + anyInstrumentation.newApplication( + getClassLoader(), realApplicationName, context); // Between attachBaseContext() and onCreate(), ActivityThread tries to instantiate // all ContentProviders. The ContentProviders break without the correct Application @@ -171,9 +176,7 @@ public final class BootstrapApplication extends Application { } } - /** - * Instantiates and initializes mRealInstrumentation (the real Instrumentation class). - */ + /** Instantiates and initializes mRealInstrumentation (the real Instrumentation class). */ private Instrumentation initInstrumentation(String realInstrumentationName) throws ReflectiveOperationException { if (realInstrumentationName == null) { @@ -200,8 +203,15 @@ public final class BootstrapApplication extends Application { private void populateInstrumenationFields(Instrumentation target) throws ReflectiveOperationException { // Initialize the fields that are set by Instrumentation.init(). - String[] initFields = {"mAppContext", "mComponent", "mInstrContext", "mMessageQueue", - "mThread", "mUiAutomationConnection", "mWatcher"}; + String[] initFields = { + "mAppContext", + "mComponent", + "mInstrContext", + "mMessageQueue", + "mThread", + "mUiAutomationConnection", + "mWatcher" + }; for (String fieldName : initFields) { Reflect.setField(target, fieldName, Reflect.getField(mOrigInstrumentation, fieldName)); } @@ -236,9 +246,7 @@ public final class BootstrapApplication extends Application { } } - /** - * Nulls out ActivityThread.mBoundApplication.providers. - */ + /** Nulls out ActivityThread.mBoundApplication.providers. */ private void disableContentProviders() throws ReflectiveOperationException { Object data = Reflect.getField(mActivityThread, "mBoundApplication"); mStashedProviderList = Reflect.getField(data, "providers"); @@ -254,7 +262,10 @@ public final class BootstrapApplication extends Application { Reflect.setField(data, "providers", mStashedProviderList); if (mStashedProviderList != null && mClassLoaderPatcher.mIsPrimaryProcess) { Log.i(TAG, "Instantiating content providers"); - Reflect.invokeMethod(mActivityThread, "installContentProviders", mRealApplication, + Reflect.invokeMethod( + mActivityThread, + "installContentProviders", + mRealApplication, mStashedProviderList); } mStashedProviderList = null; diff --git a/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapInstrumentation.java b/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapInstrumentation.java index f1f507af8..57962e0f6 100644 --- a/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapInstrumentation.java +++ b/build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapInstrumentation.java @@ -7,9 +7,7 @@ package org.chromium.incrementalinstall; import android.app.Instrumentation; import android.os.Bundle; -/** - * Notifies BootstrapApplication of the call to Instrumentation.onCreate(). - */ +/** Notifies BootstrapApplication of the call to Instrumentation.onCreate(). */ public final class BootstrapInstrumentation extends Instrumentation { private final BootstrapApplication mApp; diff --git a/build/android/incremental_install/java/org/chromium/incrementalinstall/ClassLoaderPatcher.java b/build/android/incremental_install/java/org/chromium/incrementalinstall/ClassLoaderPatcher.java index 13c7c5d63..864267312 100644 --- a/build/android/incremental_install/java/org/chromium/incrementalinstall/ClassLoaderPatcher.java +++ b/build/android/incremental_install/java/org/chromium/incrementalinstall/ClassLoaderPatcher.java @@ -42,12 +42,10 @@ final class ClassLoaderPatcher { Log.i(TAG, "uid=" + mProcessUid + " (isPrimary=" + mIsPrimaryProcess + ")"); } - /** - * Loads all dex files within |dexDir| into the app's ClassLoader. - */ + /** Loads all dex files within |dexDir| into the app's ClassLoader. */ @SuppressLint({ - "SetWorldReadable", - "SetWorldWritable", + "SetWorldReadable", + "SetWorldWritable", }) DexFile[] loadDexFiles(File dexDir, String packageName) throws ReflectiveOperationException, IOException { @@ -133,9 +131,7 @@ final class ClassLoaderPatcher { return ret; } - /** - * Sets up all libraries within |libDir| to be loadable by System.loadLibrary(). - */ + /** Sets up all libraries within |libDir| to be loadable by System.loadLibrary(). */ @SuppressLint("SetWorldReadable") void importNativeLibs(File libDir) throws ReflectiveOperationException, IOException { Log.i(TAG, "Importing native libraries from: " + libDir); @@ -155,9 +151,10 @@ final class ClassLoaderPatcher { private void safeCopyAllFiles(File srcDir, File dstDir) throws IOException { if (!mIsPrimaryProcess) { // TODO: Work around this issue by using APK splits to install each dex / lib. - throw new RuntimeException("Incremental install does not work on Android M+ " - + "with isolated processes. Build system should have removed this. " - + "Please file a bug."); + throw new RuntimeException( + "Incremental install does not work on Android M+ " + + "with isolated processes. Build system should have removed this. " + + "Please file a bug."); } // The library copying is not necessary on older devices, but we do it anyways to @@ -184,14 +181,16 @@ final class ClassLoaderPatcher { private void addNativeLibrarySearchPath(File nativeLibDir) throws ReflectiveOperationException { Object dexPathList = Reflect.getField(mClassLoader, "pathList"); Object currentDirs = Reflect.getField(dexPathList, "nativeLibraryDirectories"); - File[] newDirs = new File[] { nativeLibDir }; + File[] newDirs = new File[] {nativeLibDir}; // Switched from an array to an ArrayList in Lollipop. if (currentDirs instanceof List) { List<File> dirsAsList = (List<File>) currentDirs; dirsAsList.add(0, nativeLibDir); } else { File[] dirsAsArray = (File[]) currentDirs; - Reflect.setField(dexPathList, "nativeLibraryDirectories", + Reflect.setField( + dexPathList, + "nativeLibraryDirectories", Reflect.concatArrays(newDirs, newDirs, dirsAsArray)); } @@ -204,9 +203,11 @@ final class ClassLoaderPatcher { return; } Object[] additionalElements = makeNativePathElements(newDirs); - Reflect.setField(dexPathList, "nativeLibraryPathElements", - Reflect.concatArrays(nativeLibraryPathElements, additionalElements, - nativeLibraryPathElements)); + Reflect.setField( + dexPathList, + "nativeLibraryPathElements", + Reflect.concatArrays( + nativeLibraryPathElements, additionalElements, nativeLibraryPathElements)); } private static void copyChangedFiles(File srcDir, File dstDir) throws IOException { @@ -228,9 +229,13 @@ final class ClassLoaderPatcher { f.delete(); } } - String msg = String.format(Locale.US, - "copyChangedFiles: %d of %d updated. %d stale files removed.", numUpdated, - srcFiles.length, numDeleted); + String msg = + String.format( + Locale.US, + "copyChangedFiles: %d of %d updated. %d stale files removed.", + numUpdated, + srcFiles.length, + numDeleted); Log.i(TAG, msg); } @@ -293,8 +298,9 @@ final class ClassLoaderPatcher { for (int i = 0; i < files.length; ++i) { File file = files[i]; // loadDexFile requires that ret contain all previously added elements. - Object dexFile = Reflect.invokeMethod( - clazz, "loadDexFile", file, optimizedDirectory, mClassLoader, ret); + Object dexFile = + Reflect.invokeMethod( + clazz, "loadDexFile", file, optimizedDirectory, mClassLoader, ret); Object dexElement; if (Build.VERSION.SDK_INT >= 26) { dexElement = Reflect.newInstance(entryClazz, dexFile, file); diff --git a/build/android/incremental_install/java/org/chromium/incrementalinstall/LockFile.java b/build/android/incremental_install/java/org/chromium/incrementalinstall/LockFile.java index 08d4c66c3..b90236143 100644 --- a/build/android/incremental_install/java/org/chromium/incrementalinstall/LockFile.java +++ b/build/android/incremental_install/java/org/chromium/incrementalinstall/LockFile.java @@ -12,9 +12,7 @@ import java.io.IOException; import java.nio.channels.FileLock; import java.util.concurrent.Callable; -/** - * Helpers for dealing with .lock files used during install / first run. - */ +/** Helpers for dealing with .lock files used during install / first run. */ final class LockFile { private static final String TAG = "incrementalinstall"; @@ -28,9 +26,7 @@ final class LockFile { mFileLock = fileLock; } - /** - * Clears the lock file by writing to it (making it non-zero in length); - */ + /** Clears the lock file by writing to it (making it non-zero in length); */ static void clearInstallerLock(File lockFile) throws IOException { Log.i(TAG, "Clearing " + lockFile); // On Android M+, we can't delete files in /data/local/tmp, so we write to it instead. @@ -39,20 +35,20 @@ final class LockFile { os.close(); } - /** - * Waits for the given file to be non-zero in length. - */ + /** Waits for the given file to be non-zero in length. */ static void waitForInstallerLock(final File file, long timeoutMs) { - pollingWait(new Callable<Boolean>() { - @Override public Boolean call() { - return !installerLockExists(file); - } - }, file, timeoutMs); + pollingWait( + new Callable<Boolean>() { + @Override + public Boolean call() { + return !installerLockExists(file); + } + }, + file, + timeoutMs); } - /** - * Waits for the given file to be non-zero in length. - */ + /** Waits for the given file to be non-zero in length. */ private static void pollingWait(Callable<Boolean> func, File file, long timeoutMs) { long pollIntervalMs = 200; for (int i = 0; i < timeoutMs / pollIntervalMs; i++) { @@ -77,9 +73,7 @@ final class LockFile { throw new RuntimeException("Timed out waiting for lock file: " + file); } - /** - * Returns whether the given lock file is missing or is in the locked state. - */ + /** Returns whether the given lock file is missing or is in the locked state. */ static boolean installerLockExists(File file) { return !file.exists() || file.length() == 0; } @@ -104,20 +98,20 @@ final class LockFile { return null; } - /** - * Waits for the given file to not exist. - */ + /** Waits for the given file to not exist. */ static void waitForRuntimeLock(final File file, long timeoutMs) { - pollingWait(new Callable<Boolean>() { - @Override public Boolean call() { - return !file.exists(); - } - }, file, timeoutMs); + pollingWait( + new Callable<Boolean>() { + @Override + public Boolean call() { + return !file.exists(); + } + }, + file, + timeoutMs); } - /** - * Releases and deletes the lock file. - */ + /** Releases and deletes the lock file. */ void release() throws IOException { Log.i(TAG, "Deleting lock file: " + mFile); mFileLock.release(); diff --git a/build/android/incremental_install/java/org/chromium/incrementalinstall/Reflect.java b/build/android/incremental_install/java/org/chromium/incrementalinstall/Reflect.java index 6ce74eb81..31d62ab36 100644 --- a/build/android/incremental_install/java/org/chromium/incrementalinstall/Reflect.java +++ b/build/android/incremental_install/java/org/chromium/incrementalinstall/Reflect.java @@ -15,9 +15,7 @@ import java.lang.reflect.Method; import java.util.Arrays; import java.util.List; -/** - * Reflection helper methods. - */ +/** Reflection helper methods. */ final class Reflect { /** * Sets the value of an object's field (even if it's not visible). @@ -52,8 +50,10 @@ final class Reflect { * type. */ static Object[] concatArrays(Object[] arrType, Object[] left, Object[] right) { - Object[] result = (Object[]) Array.newInstance( - arrType.getClass().getComponentType(), left.length + right.length); + Object[] result = + (Object[]) + Array.newInstance( + arrType.getClass().getComponentType(), left.length + right.length); System.arraycopy(left, 0, result, 0, left.length); System.arraycopy(right, 0, result, left.length, right.length); return result; @@ -66,15 +66,13 @@ final class Reflect { static Object invokeMethod(Object instance, String name, Object... params) throws ReflectiveOperationException { boolean isStatic = instance instanceof Class; - Class<?> clazz = isStatic ? (Class<?>) instance : instance.getClass(); + Class<?> clazz = isStatic ? (Class<?>) instance : instance.getClass(); Method method = findMethod(clazz, name, params); method.setAccessible(true); return method.invoke(instance, params); } - /** - * Calls a constructor with zero or more parameters. - */ + /** Calls a constructor with zero or more parameters. */ static Object newInstance(Class<?> clazz, Object... params) throws ReflectiveOperationException { Constructor<?> constructor = findConstructor(clazz, params); @@ -93,8 +91,10 @@ final class Reflect { // Need to look in the super class. } } else { - List<Field> fields = isStatic ? HiddenApiBypass.getStaticFields(clazz) - : HiddenApiBypass.getInstanceFields(clazz); + List<Field> fields = + isStatic + ? HiddenApiBypass.getStaticFields(clazz) + : HiddenApiBypass.getInstanceFields(clazz); for (Field field : fields) { if (field.getName().equals(name)) { return field; @@ -115,8 +115,13 @@ final class Reflect { } } } - throw new NoSuchMethodException("Method " + name + " with parameters " - + Arrays.asList(params) + " not found in " + clazz); + throw new NoSuchMethodException( + "Method " + + name + + " with parameters " + + Arrays.asList(params) + + " not found in " + + clazz); } private static Constructor<?> findConstructor(Class<?> clazz, Object... params) @@ -126,8 +131,8 @@ final class Reflect { return constructor; } } - throw new NoSuchMethodException("Constructor with parameters " + Arrays.asList(params) - + " not found in " + clazz); + throw new NoSuchMethodException( + "Constructor with parameters " + Arrays.asList(params) + " not found in " + clazz); } private static boolean areParametersCompatible(Class<?>[] paramTypes, Object... params) { @@ -150,7 +155,7 @@ final class Reflect { if (left.isPrimitive()) { // TODO(agrieve): Fill in the rest as needed. return left == boolean.class && rightClazz == Boolean.class - || left == int.class && rightClazz == Integer.class; + || left == int.class && rightClazz == Integer.class; } return left.isAssignableFrom(rightClazz); } diff --git a/build/android/incremental_install/java/org/chromium/incrementalinstall/SecondInstrumentation.java b/build/android/incremental_install/java/org/chromium/incrementalinstall/SecondInstrumentation.java index ecf4870e8..49c7531d9 100644 --- a/build/android/incremental_install/java/org/chromium/incrementalinstall/SecondInstrumentation.java +++ b/build/android/incremental_install/java/org/chromium/incrementalinstall/SecondInstrumentation.java @@ -6,7 +6,5 @@ package org.chromium.incrementalinstall; import android.app.Instrumentation; -/** - * Exists to support an app having multiple instrumentations. - */ +/** Exists to support an app having multiple instrumentations. */ public final class SecondInstrumentation extends Instrumentation {} diff --git a/build/android/java/src/org/chromium/build/annotations/AlwaysInline.java b/build/android/java/src/org/chromium/build/annotations/AlwaysInline.java index 1a4d1ffe1..92b4d01f1 100644 --- a/build/android/java/src/org/chromium/build/annotations/AlwaysInline.java +++ b/build/android/java/src/org/chromium/build/annotations/AlwaysInline.java @@ -9,9 +9,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -/** - * Tells R8 to always inline the annotated method/constructor. - */ +/** Tells R8 to always inline the annotated method/constructor. */ @Target({ElementType.CONSTRUCTOR, ElementType.METHOD}) @Retention(RetentionPolicy.CLASS) public @interface AlwaysInline {} diff --git a/build/android/java/src/org/chromium/build/annotations/DoNotStripLogs.java b/build/android/java/src/org/chromium/build/annotations/DoNotStripLogs.java index be96d9a59..cb864cc50 100644 --- a/build/android/java/src/org/chromium/build/annotations/DoNotStripLogs.java +++ b/build/android/java/src/org/chromium/build/annotations/DoNotStripLogs.java @@ -9,9 +9,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -/** - * The annotated method or class will have -maximumremovedandroidloglevel 0 applied to it. - */ +/** The annotated method or class will have -maximumremovedandroidloglevel 0 applied to it. */ @Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.CLASS) public @interface DoNotStripLogs {} diff --git a/build/android/java/test/DefaultLocaleLintTest.java b/build/android/java/test/DefaultLocaleLintTest.java index d1f6e285b..d9a4394f7 100644 --- a/build/android/java/test/DefaultLocaleLintTest.java +++ b/build/android/java/test/DefaultLocaleLintTest.java @@ -6,9 +6,7 @@ package test; import android.app.Application; -/** - * Class which fails 'DefaultLocale' lint check. - */ +/** Class which fails 'DefaultLocale' lint check. */ public class DefaultLocaleLintTest extends Application { public String testTriggerDefaultLocaleCheck(int any) { // String format with an integer requires a Locale since it may be formatted differently. diff --git a/build/android/java/test/NewApiLintTest.java b/build/android/java/test/NewApiLintTest.java index 35a1f6228..5d3a8a650 100644 --- a/build/android/java/test/NewApiLintTest.java +++ b/build/android/java/test/NewApiLintTest.java @@ -6,9 +6,7 @@ package test; import android.app.Application; -/** - * Class which fails 'NewAPI' lint check. - */ +/** Class which fails 'NewAPI' lint check. */ public class NewApiLintTest extends Application { public String testTriggerNewApiCheck() { // This was added in API level 30. diff --git a/build/android/pylib/base/base_test_result.py b/build/android/pylib/base/base_test_result.py index b79ef5c6b..584ca84f6 100644 --- a/build/android/pylib/base/base_test_result.py +++ b/build/android/pylib/base/base_test_result.py @@ -15,9 +15,9 @@ from lib.results import result_types # pylint: disable=import-error # This must match the source adding the suffix: bit.ly/3Zmwwyx MULTIPROCESS_SUFFIX = '__multiprocess_mode' -# This must match the source adding the suffix (TODO(zbikowski): add link) -_NULL_MUTATION_SUFFIX = '_null_' -_MUTATION_SUFFIX_PATTERN = re.compile(r'^(.*)_([a-zA-Z]+)\.\.([a-zA-Z]+)_$') +# This must match the source adding the suffix: bit.ly/3Qt0Ww4 +_NULL_MUTATION_SUFFIX = '__null_' +_MUTATION_SUFFIX_PATTERN = re.compile(r'^(.*)__([a-zA-Z]+)\.\.([a-zA-Z]+)_$') class ResultType: @@ -98,13 +98,13 @@ class BaseTestResult: # The name can include suffixes encoding Webview variant data: # a Webview multiprocess mode suffix and an AwSettings mutation suffix. # If both are present, the mutation suffix will come after the multiprocess - # suffix. The mutation suffix can either be "_null_" or "_{key}..{value}_". + # suffix. The mutation suffix can either be "__null_" or "__{key}..{value}_" # # Examples: - # (...)AwSettingsTest#testAssetUrl__multiprocess_mode_allMutations..true_ - # (...)AwSettingsTest#testAssetUrl__multiprocess_mode_null_ - # (...)AwSettingsTest#testAssetUrl_allMutations..true_ - # org.chromium.android_webview.test.AwSettingsTest#testAssetUrl_null_ + # (...)AwSettingsTest#testAssetUrl__multiprocess_mode__allMutations..true_ + # (...)AwSettingsTest#testAssetUrl__multiprocess_mode__null_ + # (...)AwSettingsTest#testAssetUrl__allMutations..true_ + # org.chromium.android_webview.test.AwSettingsTest#testAssetUrl__null_ # first, strip any AwSettings mutation parameter information # from the RHS of the raw_name diff --git a/build/android/pylib/device/commands/java/src/org/chromium/android/commands/unzip/Unzip.java b/build/android/pylib/device/commands/java/src/org/chromium/android/commands/unzip/Unzip.java index 54ba8ac72..726f8cfc4 100644 --- a/build/android/pylib/device/commands/java/src/org/chromium/android/commands/unzip/Unzip.java +++ b/build/android/pylib/device/commands/java/src/org/chromium/android/commands/unzip/Unzip.java @@ -18,9 +18,7 @@ import java.io.PrintStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; -/** - * Minimal implementation of the command-line unzip utility for Android. - */ +/** Minimal implementation of the command-line unzip utility for Android. */ public class Unzip { private static final String TAG = "Unzip"; @@ -94,4 +92,3 @@ public class Unzip { unzip(args); } } - diff --git a/build/android/pylib/local/emulator/avd.py b/build/android/pylib/local/emulator/avd.py index 1387d9054..6f3a5d46a 100644 --- a/build/android/pylib/local/emulator/avd.py +++ b/build/android/pylib/local/emulator/avd.py @@ -556,7 +556,7 @@ class AvdConfig: # https://bit.ly/3agmjcM). # Wait for this step to complete since it can take a while for old OSs # like M, otherwise the avd may have "Encryption Unsuccessful" error. - instance.device.WaitUntilFullyBooted(decrypt=True, timeout=180, retries=0) + instance.device.WaitUntilFullyBooted(decrypt=True, timeout=360, retries=0) if additional_apks: for apk in additional_apks: @@ -884,8 +884,11 @@ class AvdConfig: with ini.update_ini_file(config_path) as config_contents: config_contents.update(properties) - # Create qt config file to disable adb warning when launched in window mode. + # Create qt config file to disable certain warnings when launched in window. with ini.update_ini_file(self._qt_config_path) as config_contents: + # Disable nested virtualization warning. + config_contents['General'] = {'showNestedWarning': 'false'} + # Disable adb warning. config_contents['set'] = {'autoFindAdb': 'false'} def _Initialize(self): diff --git a/build/android/stacktrace/java/org/chromium/build/FlushingReTrace.java b/build/android/stacktrace/java/org/chromium/build/FlushingReTrace.java index 3e2719754..10d7b3410 100644 --- a/build/android/stacktrace/java/org/chromium/build/FlushingReTrace.java +++ b/build/android/stacktrace/java/org/chromium/build/FlushingReTrace.java @@ -36,61 +36,70 @@ public class FlushingReTrace { private static final String LINE_PARSE_REGEX = // Eagerly match logcat prefix to avoid conflicting with the patterns below. LOGCAT_PREFIX - + "(?:" - // Based on default ReTrace regex, but with whitespaces allowed in file:line parentheses - // and "at" changed to to allow : - // E.g.: 06-22 13:58:02.895 4674 4674 E THREAD_STATE: bLA.a( PG : 173 ) - // Normal stack trace lines look like: - // \tat org.chromium.chrome.browser.tab.Tab.handleJavaCrash(Tab.java:682) - + "(?:.*?(?::|\\bat)\\s+%c\\.%m\\s*\\(\\s*%s(?:\\s*:\\s*%l\\s*)?\\))|" - // Stack trace from crbug.com/1300215 looks like: - // 0xffffffff (chromium-TrichromeChromeGoogle.aab-canary-490400033: 70) ii2.p - + "(?:.*?\\(\\s*%s(?:\\s*:\\s*%l\\s*)?\\)\\s*%c\\.%m)|" - // E.g.: Caused by: java.lang.NullPointerException: Attempt to read from field 'int bLA' - // on a null object reference - + "(?:.*java\\.lang\\.NullPointerException.*[\"']%t\\s*%c\\.(?:%f|%m\\(%a\\))[\"'].*)|" - // E.g.: java.lang.VerifyError: bLA - + "(?:java\\.lang\\.VerifyError: %c)|" - // E.g.: java.lang.NoSuchFieldError: No instance field e of type L...; in class LbxK; - + "(?:java\\.lang\\.NoSuchFieldError: No instance field %f of type .*? in class L%C;)|" - // E.g.: Object of type Clazz was not destroyed... (See LifetimeAssert.java) - + "(?:.*?Object of type %c .*)|" - // E.g.: VFY: unable to resolve new-instance 3810 (LSome/Framework/Class;) in Lfoo/Bar; - + "(?:.*L%C;.*)|" - // E.g.: END SomeTestClass#someMethod - + "(?:.*?%c#%m.*?)|" - // Special-case for a common junit logcat message: - // E.g.: java.lang.NoClassDefFoundError: SomeFrameworkClass in isTestClass for Foo - + "(?:.* isTestClass for %c)|" - // E.g.: Caused by: java.lang.RuntimeException: Intentional Java Crash - + "(?:Caused by: %c:.*)|" - // Quoted values and lines that end with a class / class+method: - // E.g.: The class: Foo - // E.g.: INSTRUMENTATION_STATUS: class=Foo - // E.g.: NoClassDefFoundError: SomeFrameworkClass in isTestClass for Foo - // E.g.: Could not find class 'SomeFrameworkClass', referenced from method Foo.bar - // E.g.: Could not find method SomeFrameworkMethod, referenced from method Foo.bar - // E.g.: The member "Foo.bar" - // E.g.: The class "Foobar" - // Be careful about matching %c without %m since language tags look like class names. - + "(?:.*?%c\\.%m)|" - + "(?:.*?\"%c\\.%m\".*)|" - + "(?:.*\\b(?:[Cc]lass|[Tt]ype)\\b.*?\"%c\".*)|" - + "(?:.*\\b(?:[Cc]lass|[Tt]ype)\\b.*?%c)|" - // E.g.: java.lang.RuntimeException: Intentional Java Crash - + "(?:%c:.*)|" - // See if entire line matches a class name (e.g. for manual deobfuscation) - + "(?:%c)" - + ")"; + + "(?:" + // Based on default ReTrace regex, but with whitespaces allowed in file:line + // parentheses and "at" changed to to allow : + // E.g.: 06-22 13:58:02.895 4674 4674 E THREAD_STATE: bLA.a( PG : 173 ) + // Normal stack trace lines look like: + // \tat org.chromium.chrome.browser.tab.Tab.handleJavaCrash(Tab.java:682) + + "(?:.*?(?::|\\bat)\\s+%c\\.%m\\s*\\(\\s*%s(?:\\s*:\\s*%l\\s*)?\\))|" + // Stack trace from crbug.com/1300215 looks like: + // 0xffffffff (chromium-TrichromeChromeGoogle.aab-canary-490400033: 70) ii2.p + + "(?:.*?\\(\\s*%s(?:\\s*:\\s*%l\\s*)?\\)\\s*%c\\.%m)|" + // E.g.: Caused by: java.lang.NullPointerException: Attempt to read from field + // 'int bLA' on a null object reference + + "(?:.*java\\.lang\\.NullPointerException.*[\"']%t\\s*%c\\.(?:%f|%m\\(%a\\))[\"'].*)|" + // E.g.: java.lang.VerifyError: bLA + + "(?:java\\.lang\\.VerifyError: %c)|" + // E.g.: java.lang.NoSuchFieldError: No instance field e of type L...; in class + // LbxK; + + "(?:java\\.lang\\.NoSuchFieldError: No instance field %f of type .*? in class" + + " L%C;)|" + // E.g.: Object of type Clazz was not destroyed... (See LifetimeAssert.java) + + "(?:.*?Object of type %c .*)|" + // E.g.: VFY: unable to resolve new-instance 3810 (LSome/Framework/Class;) in + // Lfoo/Bar; + + "(?:.*L%C;.*)|" + // E.g.: END SomeTestClass#someMethod + + "(?:.*?%c#%m.*?)|" + // Special-case for a common junit logcat message: + // E.g.: java.lang.NoClassDefFoundError: SomeFrameworkClass in isTestClass for + // Foo + + "(?:.* isTestClass for %c)|" + // E.g.: Caused by: java.lang.RuntimeException: Intentional Java Crash + + "(?:Caused by: %c:.*)|" + // Quoted values and lines that end with a class / class+method: + // E.g.: The class: Foo + // E.g.: INSTRUMENTATION_STATUS: class=Foo + // E.g.: NoClassDefFoundError: SomeFrameworkClass in isTestClass for Foo + // E.g.: Could not find class 'SomeFrameworkClass', referenced from method + // Foo.bar + // E.g.: Could not find method SomeFrameworkMethod, referenced from method + // Foo.bar + // E.g.: The member "Foo.bar" + // E.g.: The class "Foobar" + // Be careful about matching %c without %m since language tags look like class + // names. + + "(?:.*?%c\\.%m)|" + + "(?:.*?\"%c\\.%m\".*)|" + + "(?:.*\\b(?:[Cc]lass|[Tt]ype)\\b.*?\"%c\".*)|" + + "(?:.*\\b(?:[Cc]lass|[Tt]ype)\\b.*?%c)|" + // E.g.: java.lang.RuntimeException: Intentional Java Crash + + "(?:%c:.*)|" + // See if entire line matches a class name (e.g. for manual deobfuscation) + + "(?:%c)" + + ")"; private static void usage() { System.err.println("Usage: echo $OBFUSCATED_CLASS | java_deobfuscate Foo.apk.mapping"); System.err.println("Usage: java_deobfuscate Foo.apk.mapping < foo.log"); - System.err.println("Note: Deobfuscation of symbols outside the context of stack " - + "traces will work only when lines match the regular expression defined " - + "in FlushingReTrace.java."); - System.err.println("Also: Deobfuscation of method names without associated line " - + "numbers does not seem to work."); + System.err.println( + "Note: Deobfuscation of symbols outside the context of stack " + + "traces will work only when lines match the regular expression defined " + + "in FlushingReTrace.java."); + System.err.println( + "Also: Deobfuscation of method names without associated line " + + "numbers does not seem to work."); System.exit(1); } @@ -116,24 +125,26 @@ public class FlushingReTrace { .setRetracedStackTraceConsumer( retraced -> retraced.forEach(System.out::println)) .setRegularExpression(LINE_PARSE_REGEX) - .setStackTrace(new StackTraceSupplier() { - final BufferedReader mReader = new BufferedReader( - new InputStreamReader(System.in, "UTF-8")); + .setStackTrace( + new StackTraceSupplier() { + final BufferedReader mReader = + new BufferedReader( + new InputStreamReader(System.in, "UTF-8")); - @Override - public List<String> get() { - try { - String line = mReader.readLine(); - if (line == null) { - return null; + @Override + public List<String> get() { + try { + String line = mReader.readLine(); + if (line == null) { + return null; + } + return Collections.singletonList(line); + } catch (IOException e) { + e.printStackTrace(); + return null; + } } - return Collections.singletonList(line); - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - }) + }) .build(); Retrace.run(retraceCommand); } catch (IOException ex) { diff --git a/build/build_config.h b/build/build_config.h index 248470369..65a246520 100644 --- a/build/build_config.h +++ b/build/build_config.h @@ -356,19 +356,19 @@ // Type detection for wchar_t. #if defined(OS_WIN) -#define WCHAR_T_IS_UTF16 +#define WCHAR_T_IS_16_BIT #elif defined(OS_FUCHSIA) -#define WCHAR_T_IS_UTF32 +#define WCHAR_T_IS_32_BIT #elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \ (__WCHAR_MAX__ == 0x7fffffff || __WCHAR_MAX__ == 0xffffffff) -#define WCHAR_T_IS_UTF32 +#define WCHAR_T_IS_32_BIT #elif defined(OS_POSIX) && defined(COMPILER_GCC) && defined(__WCHAR_MAX__) && \ (__WCHAR_MAX__ == 0x7fff || __WCHAR_MAX__ == 0xffff) // On Posix, we'll detect short wchar_t, but projects aren't guaranteed to // compile in this mode (in particular, Chrome doesn't). This is intended for // other projects using base who manage their own dependencies and make sure // short wchar works for them. -#define WCHAR_T_IS_UTF16 +#define WCHAR_T_IS_16_BIT #else #error Please add support for your compiler in build/build_config.h #endif diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn index 6fb49548b..f34168719 100644 --- a/build/config/BUILD.gn +++ b/build/config/BUILD.gn @@ -3,8 +3,8 @@ # found in the LICENSE file. import("//build/config/c++/c++.gni") +import("//build/config/cast.gni") import("//build/config/chrome_build.gni") -import("//build/config/chromecast_build.gni") import("//build/config/dcheck_always_on.gni") import("//build/config/features.gni") diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn index 105e194dd..8b8cf6bc8 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn @@ -342,7 +342,6 @@ default_compiler_configs = [ "//build/config/compiler:default_optimization", "//build/config/compiler:default_stack_frames", "//build/config/compiler:default_symbols", - "//build/config/compiler:export_dynamic", "//build/config/compiler:no_exceptions", "//build/config/compiler:no_rtti", "//build/config/compiler:no_unresolved_symbols", @@ -430,6 +429,7 @@ if (is_win) { # Executable defaults. default_executable_configs = default_compiler_configs + [ + "//build/config/compiler:export_dynamic", "//build/config:default_libs", "//build/config:executable_config", ] + _linker_configs diff --git a/build/config/android/BUILD.gn b/build/config/android/BUILD.gn index 9e481132f..670599996 100644 --- a/build/config/android/BUILD.gn +++ b/build/config/android/BUILD.gn @@ -33,19 +33,23 @@ config("compiler") { "ANDROID_NDK_VERSION_ROLL=${android_ndk_version}_1", ] + if (android_64bit_current_cpu) { + _max_page_size = 16384 + } else { + _max_page_size = 4096 + } + ldflags = [ # Don't allow visible symbols from libraries that contain # assembly code with symbols that aren't hidden properly. # http://crbug.com/448386 "-Wl,--exclude-libs=libvpx_assembly_arm.a", - ] - if (current_cpu == "arm64") { # Reduce the page size from 65536 in order to reduce binary size slightly # by shrinking the alignment gap between segments. This also causes all # segments to be mapped adjacently, which breakpad relies on. - ldflags += [ "-Wl,-z,max-page-size=4096" ] - } + "-Wl,-z,max-page-size=$_max_page_size", + ] if (current_cpu == "arm64") { if (arm_control_flow_integrity == "standard") { diff --git a/build/config/android/abi.gni b/build/config/android/abi.gni index 1a082cf2b..e59373cb1 100644 --- a/build/config/android/abi.gni +++ b/build/config/android/abi.gni @@ -88,6 +88,9 @@ if (target_cpu == "arm64" || target_cpu == "x64" || target_cpu == "mips64el" || assert(false, "Unknown target CPU: $target_cpu") } +android_64bit_current_cpu = current_cpu == "arm64" || target_cpu == "x64" || + target_cpu == "mips64el" || current_cpu == "riscv64" + # Do not define android_secondary_abi_cpu or android_app_secondary_abi for # target_cpu's that are 32-bit-only or 64-bit-only, as they are not used. The # presence of this variable may be used in conjunction with android_64bit_target_cpu diff --git a/build/config/android/config.gni b/build/config/android/config.gni index d244f96f9..37398140f 100644 --- a/build/config/android/config.gni +++ b/build/config/android/config.gni @@ -26,7 +26,7 @@ robolectric_toolchain = "//build/toolchain/android:robolectric_$host_cpu" # toolchains. Checking |is_android| here would therefore be too restrictive. if (is_android || is_chromeos) { import("//build/config/android/channel.gni") - import("//build/config/chromecast_build.gni") + import("//build/config/cast.gni") import("//build/config/clang/clang.gni") import("//build/config/dcheck_always_on.gni") import("//build/toolchain/siso.gni") @@ -136,13 +136,6 @@ if (is_android || is_chromeos) { public_android_sdk = true } - if (android_sdk_release == "tprivacysandbox") { - default_android_sdk_root = public_android_sdk_root - default_android_sdk_version = "TiramisuPrivacySandbox" - default_android_sdk_build_tools_version = "33.0.0" - public_android_sdk = true - } - # For use downstream when we are building with preview Android SDK if (!defined(final_android_sdk)) { final_android_sdk = public_android_sdk diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni index 9bc8939ee..113b60905 100644 --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni @@ -1025,8 +1025,17 @@ if (enable_java_templates && is_android) { deps = [] } deps += [ ":$target_name$build_config_target_suffix" ] - metadata = { - target_type = [ "java_library" ] + if (is_cronet_build) { + _abs_deps = [] + if (defined(invoker.deps)) { + foreach(dep, invoker.deps) { + _abs_deps += [ get_label_info(dep, "label_no_toolchain") ] + } + } + metadata = { + all_deps = _abs_deps + target_type = [ "java_library" ] + } } } } diff --git a/build/config/android/sdk.gni b/build/config/android/sdk.gni index 45e340492..af8496c47 100644 --- a/build/config/android/sdk.gni +++ b/build/config/android/sdk.gni @@ -7,7 +7,4 @@ default_android_sdk_release = "u" # SDK releases against which public builds are supported. -public_sdk_releases = [ - "tprivacysandbox", - "u", -] +public_sdk_releases = [ "u" ] diff --git a/build/config/android/test/resource_overlay/java/src/org/chromium/build/resource_overlay/ResourceOverlayTest.java b/build/config/android/test/resource_overlay/java/src/org/chromium/build/resource_overlay/ResourceOverlayTest.java index d42450e5e..20800ef98 100644 --- a/build/config/android/test/resource_overlay/java/src/org/chromium/build/resource_overlay/ResourceOverlayTest.java +++ b/build/config/android/test/resource_overlay/java/src/org/chromium/build/resource_overlay/ResourceOverlayTest.java @@ -17,9 +17,7 @@ import org.junit.runner.RunWith; import org.chromium.base.test.BaseJUnit4ClassRunner; import org.chromium.base.test.util.Batch; -/** - * Test for resource_overlay parameter in android_resources() build rule. - */ +/** Test for resource_overlay parameter in android_resources() build rule. */ @RunWith(BaseJUnit4ClassRunner.class) @Batch(Batch.UNIT_TESTS) public class ResourceOverlayTest { diff --git a/build/config/buildflags_paint_preview.gni b/build/config/buildflags_paint_preview.gni index 951b6608e..f5eabf49a 100644 --- a/build/config/buildflags_paint_preview.gni +++ b/build/config/buildflags_paint_preview.gni @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/chromecast_build.gni") +import("//build/config/cast.gni") import("//build/config/features.gni") declare_args() { diff --git a/build/config/c++/BUILD.gn b/build/config/c++/BUILD.gn index abe15b4aa..f8372d24d 100644 --- a/build/config/c++/BUILD.gn +++ b/build/config/c++/BUILD.gn @@ -44,6 +44,15 @@ config("runtime_library") { defines += [ "CR_LIBCXX_REVISION=$libcxx_revision" ] + # Temporarily add a define to force a rebuild when changing + # buildtools/third_party/libc++/__config_site which isn't picked up by + # dependency tracking (because it's an #include of headers included via + # -isysroot). + # TODO(thakis): Remove this after a few days. + if (is_android) { + defines += [ "TEMP_REBUILD_HACK" ] + } + if (is_win) { # Intentionally not using libc++abi on Windows because libc++abi only # implements the Itanium C++ ABI, and not the Microsoft ABI which we use on diff --git a/build/config/c++/libc++.natvis b/build/config/c++/libc++.natvis index 26580dbb1..bceb4354c 100644 --- a/build/config/c++/libc++.natvis +++ b/build/config/c++/libc++.natvis @@ -248,6 +248,14 @@ </Expand> </Type> + <Type Name="std::__Cr::optional<*>"> + <DisplayString Condition="!__engaged_">nullopt</DisplayString> + <DisplayString>{__val_}</DisplayString> + <Expand> + <ExpandedItem Condition="__engaged_">__val_</ExpandedItem> + </Expand> + </Type> + <Type Name="std::__Cr::priority_queue<*>"> <DisplayString>{c}</DisplayString> <Expand> diff --git a/build/config/chromecast_build.gni b/build/config/cast.gni index e8294ce7b..c4fd6ac45 100644 --- a/build/config/chromecast_build.gni +++ b/build/config/cast.gni @@ -5,8 +5,6 @@ # The args declared in this file should be referenced by components outside of # //chromecast. Args needed only in //chromecast should be declared in # //chromecast/chromecast.gni. -# -# TODO(crbug.com/1294964): Rename this file after is_chromecast is removed. declare_args() { # Set this true for an audio-only Chromecast build. # TODO(crbug.com/1293538): Replace with a buildflag for speaker-only builds not diff --git a/build/config/chromecast/BUILD.gn b/build/config/chromecast/BUILD.gn index acaf990a2..97bbef720 100644 --- a/build/config/chromecast/BUILD.gn +++ b/build/config/chromecast/BUILD.gn @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/chromecast_build.gni") +import("//build/config/cast.gni") assert(is_castos || is_cast_android) diff --git a/build/config/clang/BUILD.gn b/build/config/clang/BUILD.gn index 46f4de039..d4de2e0cc 100644 --- a/build/config/clang/BUILD.gn +++ b/build/config/clang/BUILD.gn @@ -42,6 +42,12 @@ config("find_bad_constructs") { "-plugin-arg-find-bad-constructs", "-Xclang", "raw-ptr-fix-crbug-1449812", + + # TODO(https://crbug.com/1504043): Remove when raw_ptr check has been enabled for the dawn repo. + "-Xclang", + "-plugin-arg-find-bad-constructs", + "-Xclang", + "raw-ptr-exclude-path=/third_party/dawn/", ] if (is_linux || is_chromeos || is_android || is_fuchsia) { diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index 80bc79e5f..de1cd6efc 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn @@ -1065,8 +1065,10 @@ config("compiler") { if (is_nacl_saigo) { defines += [ "_LIBCPP_ENABLE_ASSERTIONS=1" ] } else { - defines += [ "_LIBCPP_ENABLE_SAFE_MODE=1" ] + defines += [ "_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE" ] } + } else { + defines += [ "_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE" ] } } @@ -1879,9 +1881,6 @@ config("default_warnings") { # TODO(https://crbug.com/1490607): Fix and re-enable. "-Wno-thread-safety-reference-return", - - # TODO(crbug.com/1495100): Evaluate and possibly enable. - "-Wno-delayed-template-parsing-in-cxx20", ] } } diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni index b1d92979c..636652d15 100644 --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni @@ -3,8 +3,8 @@ # found in the LICENSE file. import("//build/config/c++/c++.gni") +import("//build/config/cast.gni") import("//build/config/chrome_build.gni") -import("//build/config/chromecast_build.gni") import("//build/config/chromeos/args.gni") import("//build/config/chromeos/ui_mode.gni") import("//build/config/compiler/pgo/pgo.gni") diff --git a/build/config/compiler/pgo/pgo.gni b/build/config/compiler/pgo/pgo.gni index 9e50afb30..a85334d81 100644 --- a/build/config/compiler/pgo/pgo.gni +++ b/build/config/compiler/pgo/pgo.gni @@ -2,8 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/config/cast.gni") import("//build/config/chrome_build.gni") -import("//build/config/chromecast_build.gni") import("//build/config/chromeos/ui_mode.gni") import("//build/config/dcheck_always_on.gni") import("//build/config/features.gni") diff --git a/build/config/features.gni b/build/config/features.gni index 7676483db..a142b455b 100644 --- a/build/config/features.gni +++ b/build/config/features.gni @@ -14,8 +14,8 @@ # There is more advice on where to put build flags in the "Build flag" section # of //build/config/BUILDCONFIG.gn. +import("//build/config/cast.gni") import("//build/config/chrome_build.gni") -import("//build/config/chromecast_build.gni") declare_args() { # Enables proprietary codecs and demuxers; e.g. H264, AAC, MP3, and MP4. diff --git a/build/config/fuchsia/BUILD.gn b/build/config/fuchsia/BUILD.gn index 3702eecfd..43133d543 100644 --- a/build/config/fuchsia/BUILD.gn +++ b/build/config/fuchsia/BUILD.gn @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/chromecast_build.gni") +import("//build/config/cast.gni") import("//build/config/clang/clang.gni") import("//build/config/fuchsia/generate_runner_scripts.gni") import("//build/config/fuchsia/gn_configs.gni") diff --git a/build/config/fuchsia/generate_runner_scripts.gni b/build/config/fuchsia/generate_runner_scripts.gni index 747fb6781..6fba7f4fc 100644 --- a/build/config/fuchsia/generate_runner_scripts.gni +++ b/build/config/fuchsia/generate_runner_scripts.gni @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/chromecast_build.gni") +import("//build/config/cast.gni") import("//build/config/fuchsia/config.gni") import("//build/config/fuchsia/fuchsia_package_metadata.gni") import("//build/config/gclient_args.gni") diff --git a/build/config/gclient_args.gni b/build/config/gclient_args.gni index 7e4ef56be..9d26ac68d 100644 --- a/build/config/gclient_args.gni +++ b/build/config/gclient_args.gni @@ -5,7 +5,7 @@ checkout_android_prebuilts_build_tools = false checkout_android_native_support = true checkout_clang_coverage_tools = false checkout_ios_webkit = false -checkout_nacl = true +checkout_nacl = false checkout_openxr = true checkout_src_internal = false cros_boards = "" diff --git a/build/config/ios/ios_test_runner_wrapper.gni b/build/config/ios/ios_test_runner_wrapper.gni index 378323c4f..106088365 100644 --- a/build/config/ios/ios_test_runner_wrapper.gni +++ b/build/config/ios/ios_test_runner_wrapper.gni @@ -13,6 +13,10 @@ import("//build/util/generate_wrapper.gni") # # Arguments: # +# clones +# (optional) number of ios simulator clones to execute tests on +# in parallel +# # data # (optional, default [ "//ios/build/bots/scripts/" ]) list of files or # directories required to run target @@ -30,8 +34,9 @@ import("//build/util/generate_wrapper.gni") # (optional, default 3) number of retry attempts # # shards -# (optional, default 1) number of shards to execute tests in parallel. not -# the same as swarming shards. +# (optional) number of ios simulator clones to execute tests in parallel. not +# the same as swarming shards. Only used if clones is not provided. Will be +# deprecated. # # wrapper_output_name # (optional, default "run_${target_name}") name of the wrapper script @@ -84,14 +89,22 @@ template("ios_test_runner_wrapper") { "${retries}", ] - # Default shards to 1 - if (!defined(shards)) { - shards = 1 + # Clones is not required by test runner so only pass if defined. + # For now preserve passing shards during transition ifff clones not passed + # TODO(crbug.com/1500395) deprecate shards + if (defined(clones)) { + executable_args += [ + "--clones", + "${clones}", + ] + } else { + if (defined(shards)) { + executable_args += [ + "--shards", + "${shards}", + ] + } } - executable_args += [ - "--shards", - "${shards}", - ] if (xcode_version_int >= 1400) { executable_args += [ diff --git a/build/config/ios/ios_test_runner_xcuitest.gni b/build/config/ios/ios_test_runner_xcuitest.gni index 6aeb08b1f..dce0542f9 100644 --- a/build/config/ios/ios_test_runner_xcuitest.gni +++ b/build/config/ios/ios_test_runner_xcuitest.gni @@ -37,11 +37,14 @@ template("ios_test_runner_xcuitest") { ios_test_runner_wrapper(target_name) { forward_variables_from(invoker, [ + "clones", "data", "data_deps", "deps", "executable_args", "retries", + + # TODO(crbug.com/1500395) deprecate shards "shards", "xcode_test_application_name", ]) diff --git a/build/config/linux/atspi2/BUILD.gn b/build/config/linux/atspi2/BUILD.gn index d1629205c..30bc77f9c 100644 --- a/build/config/linux/atspi2/BUILD.gn +++ b/build/config/linux/atspi2/BUILD.gn @@ -21,10 +21,21 @@ if (use_atk) { minor = atspi_version[1] micro = atspi_version[2] + # These aren't necessarily used if atspi is not old enough to require them. + # Also, gn considers variables unused if the only use of them is + # short-circuited away, so for example if major == 2 and minor == 48, micro + # would be unused. + not_needed([ + "major", + "minor", + "micro", + ]) + # ATSPI 2.49.90 now defines these for us and it's an error for us to # redefine them on the compiler command line. # See ATSPI 927344a34cd5bf81fc64da4968241735ecb4f03b - if (minor < 49 || (minor == 49 && micro < 90)) { + if (major < 2 || (major == 2 && minor < 49) || + (major == 2 && minor == 49 && micro < 90)) { defines = [ "ATSPI_MAJOR_VERSION=$major", "ATSPI_MINOR_VERSION=$minor", diff --git a/build/config/linux/libdrm/BUILD.gn b/build/config/linux/libdrm/BUILD.gn index 31ab0d8da..a37bd24c2 100644 --- a/build/config/linux/libdrm/BUILD.gn +++ b/build/config/linux/libdrm/BUILD.gn @@ -1,7 +1,7 @@ # Copyright 2018 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/chromecast_build.gni") +import("//build/config/cast.gni") import("//build/config/chromeos/args.gni") import("//build/config/linux/pkg_config.gni") diff --git a/build/config/linux/libffi/BUILD.gn b/build/config/linux/libffi/BUILD.gn index 771170c3e..6e45f4c22 100644 --- a/build/config/linux/libffi/BUILD.gn +++ b/build/config/linux/libffi/BUILD.gn @@ -19,6 +19,6 @@ if (use_system_libffi) { } } else { config("libffi") { - libs = [ ":libffi_pic.a" ] + libs = [ "ffi_pic" ] } } diff --git a/build/config/logging.gni b/build/config/logging.gni index a08195b7d..54ce51781 100644 --- a/build/config/logging.gni +++ b/build/config/logging.gni @@ -2,7 +2,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/buildflag_header.gni") import("//build/config/chromeos/ui_mode.gni") import("//build/config/dcheck_always_on.gni") @@ -11,22 +10,4 @@ declare_args() { enable_log_error_not_reached = is_chromeos_ash && !(is_debug || dcheck_always_on) enable_stack_trace_line_numbers = false - - # Use runtime vlog everywhere except for ash-chrome. - # When `use_runtime_vlog` is true, - # command line switch `--vmodule=xxx` or `--v=x` could be used to - # control vlog level at runtime. - # when `use_runtime_volog` is false, - # verbose log level is controlled by `ENABLE_VLOG_LEVEL` macro. VLOG(n) - # is kept and generate output if `n` is less than or equal to the vlog - # level defined by the macro. - # Command line switch `--vmodule=xxx`, or `--v=x` would have no effect. - # - # Runtime vlog is used everywhere except on ash-chrome. - # Ash-chrome has a few vmodule patterns that need to be used indefinitely - # to investigate problems from logs in feedback reports. These vmodule - # patterns are using too much cpu cycles (see http://crbug/489441). Turning - # off runtime vlog and using build time vlog would avoid paying that cpu tax - # and have a nice side effect of a smaller production binary. - use_runtime_vlog = !is_chromeos_ash } diff --git a/build/config/ozone.gni b/build/config/ozone.gni index e85db6b33..8a3bc28c3 100644 --- a/build/config/ozone.gni +++ b/build/config/ozone.gni @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//build/config/chromecast_build.gni") +import("//build/config/cast.gni") import("//build/config/chromeos/ui_mode.gni") import("//build/toolchain/toolchain.gni") diff --git a/build/config/rust.gni b/build/config/rust.gni index f12417048..814c455c5 100644 --- a/build/config/rust.gni +++ b/build/config/rust.gni @@ -92,9 +92,6 @@ declare_args() { # Support for chrome://crash-rust to check crash dump collection works. enable_rust_crash = enable_rust - # Support for QR code generation - see https://crbug.com/1431991. - enable_rust_qr = enable_rust - # Support for Rust mojo bindings. enable_rust_mojo = enable_rust && enable_all_rust_features diff --git a/build/config/sanitizers/BUILD.gn b/build/config/sanitizers/BUILD.gn index 5d8ba62c1..965448933 100644 --- a/build/config/sanitizers/BUILD.gn +++ b/build/config/sanitizers/BUILD.gn @@ -2,8 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/config/cast.gni") import("//build/config/chrome_build.gni") -import("//build/config/chromecast_build.gni") import("//build/config/clang/clang.gni") import("//build/config/rust.gni") import("//build/config/sanitizers/sanitizers.gni") @@ -57,7 +57,7 @@ group("deps") { public_deps = [ ":asan_runtime_bundle_data" ] } } - if (use_centipede) { + if (use_centipede || enable_fuzztest_fuzz) { # For executables which aren't actual fuzzers, we need stubs for # the sanitizer coverage symbols, because we'll still be generating # .o files which depend on them. @@ -476,12 +476,16 @@ config("ubsan_flags") { ubsan_ignorelist_path = rebase_path("//tools/ubsan/ignorelist.txt", root_build_dir) } + # TODO(crbug.com/1502579): Enable all of -fsanitize=undefined. Note that + # both this list and Clang's defaults omit -fsanitize=float-divide-by-zero. + # C and C++ leave it undefined to accommodate non-IEEE floating point, but + # we assume the compiler implements IEEE floating point, which does define + # division by zero. cflags += [ "-fsanitize=alignment", "-fsanitize=bool", "-fsanitize=bounds", "-fsanitize=builtin", - "-fsanitize=float-divide-by-zero", "-fsanitize=integer-divide-by-zero", "-fsanitize=null", "-fsanitize=nonnull-attribute", diff --git a/build/config/sanitizers/sanitizers.gni b/build/config/sanitizers/sanitizers.gni index 7444241f5..928c9a457 100644 --- a/build/config/sanitizers/sanitizers.gni +++ b/build/config/sanitizers/sanitizers.gni @@ -2,8 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/config/cast.gni") import("//build/config/chrome_build.gni") -import("//build/config/chromecast_build.gni") import("//build/config/chromeos/args.gni") import("//build/config/chromeos/ui_mode.gni") import("//build/config/profiling/profiling.gni") @@ -133,12 +133,15 @@ declare_args() { # useful option, but it requires sanitizer coverage, and that # could conceivably disrupt normal unit testing workflows, so we'll # enable it by default only in sanitizer builds. + # Also be sure not to enable this on non-Chromium builds where + # the required //third_party/fuzztest dependency may be absent. # TODO(crbug.com/1495713): enable on component builds enable_fuzztest_fuzz = !(use_libfuzzer || use_afl || use_centipede || use_external_fuzzing_engine) && (is_asan || is_hwasan || is_lsan || is_tsan || is_msan || is_ubsan || - is_ubsan_vptr || is_ubsan_security) && !is_component_build && is_linux + is_ubsan_vptr || is_ubsan_security) && !is_component_build && is_linux && + build_with_chromium } assert(!is_hwasan || (target_os == "android" && target_cpu == "arm64"), diff --git a/build/config/siso/PRESUBMIT.py b/build/config/siso/PRESUBMIT.py index 5a568694d..f2a7665e6 100644 --- a/build/config/siso/PRESUBMIT.py +++ b/build/config/siso/PRESUBMIT.py @@ -16,11 +16,15 @@ def CheckTryjobFooters(input_api, output_api): "Missing 'Cq-Include-Trybots:' field required for Siso config changes" "\nPlease add the following fields to run Siso tryjobs.\n\n" "Cq-Include-Trybots: luci.chromium.try:android-arm64-siso-rel\n" + "Cq-Include-Trybots: luci.chromium.try:android-binary-size-siso\n" + "Cq-Include-Trybots: luci.chromium.try:android_compile_siso_dbg\n" "Cq-Include-Trybots: luci.chromium.try:chromeos-amd64-generic-siso-rel\n" + "Cq-Include-Trybots: luci.chromium.try:fuchsia-binary-size-siso\n" "Cq-Include-Trybots: luci.chromium.try:ios-simulator-siso\n" + "Cq-Include-Trybots: luci.chromium.try:linux-chromeos-compile-siso-dbg\n" "Cq-Include-Trybots: luci.chromium.try:linux-siso-rel\n" - "Cq-Include-Trybots: luci.chromium.try:linux-wayland-siso-rel\n" "Cq-Include-Trybots: luci.chromium.try:linux_chromium_asan_siso_rel_ng\n" + "Cq-Include-Trybots: luci.chromium.try:linux_chromium_compile_siso_dbg_ng\n" "Cq-Include-Trybots: luci.chromium.try:mac-siso-rel\n" "Cq-Include-Trybots: luci.chromium.try:win-siso-rel\n" ) diff --git a/build/config/siso/android.star b/build/config/siso/android.star index c57e478a3..b8d0cee8d 100644 --- a/build/config/siso/android.star +++ b/build/config/siso/android.star @@ -51,10 +51,6 @@ def __step_config(ctx, step_config): "third_party/android_sdk/public/platforms/android-34/optional/android.test.base.jar", "third_party/android_sdk/public/platforms/android-34/optional/org.apache.http.legacy.jar", ], - "outputs_map": { - # Slow actions that exceed deadline on the default worker pool. - "./obj/chrome/android/chrome_test_java.turbine.jar": {"platform_ref": "large"}, - }, "remote": remote_run, "platform_ref": "large", "canonicalize_dir": True, diff --git a/build/config/siso/blink_all.star b/build/config/siso/blink_all.star index d13e7f264..5cdc1bb29 100644 --- a/build/config/siso/blink_all.star +++ b/build/config/siso/blink_all.star @@ -21,11 +21,6 @@ def __step_config(ctx, step_config): { "name": "blink/generate_bindings", "command_prefix": platform.python_bin + " ../../third_party/blink/renderer/bindings/scripts/generate_bindings.py", - "inputs": [ - # build/print_python_deps.py couldn't detect this? - # TODO(crbug.com/1475569): fix build/print_python_deps.py - "third_party/mako/mako/mako/ext/pygmentplugin.py", - ], "remote": True, "platform_ref": "large", }, diff --git a/build/config/siso/clang_windows.star b/build/config/siso/clang_windows.star index 712a245f3..9312182af 100644 --- a/build/config/siso/clang_windows.star +++ b/build/config/siso/clang_windows.star @@ -220,6 +220,8 @@ def __step_config(ctx, step_config): path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/msiquery.h"), # third_party/win_virtual_display/controller includes "Devpropdef.h" path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/shared/Devpropdef.h"), + # third_party/dawn/third_party/dxc/include/dxc/Support/WinIncludes.h "ObjIdl.h" + path.join(win_toolchain_dir, "Windows Kits/10/Include/10.0.22621.0/um/ObjIdl.h"), ], }) remote = True diff --git a/build/config/siso/config.star b/build/config/siso/config.star index 19b337796..81da4ab11 100644 --- a/build/config/siso/config.star +++ b/build/config/siso/config.star @@ -9,6 +9,12 @@ load("@builtin//struct.star", "module") __KNOWN_CONFIG_OPTIONS = [ # Indicates that the build runs on a builder. "builder", + + # TODO: b/308405411 - Enable this config for all builders. + "remote-devtools-frontend-typescript", + + # TODO: b/314693395 - Enable reproxy mode for cros by default. + "reproxy-cros", ] def __check(ctx): diff --git a/build/config/siso/cros.star b/build/config/siso/cros.star index a5faff549..b33a09454 100644 --- a/build/config/siso/cros.star +++ b/build/config/siso/cros.star @@ -77,6 +77,7 @@ def __step_config(ctx, step_config): step_config["rules"].extend([ { "name": "clang-cros/cxx", + "action": "(.*_)?cxx", "command_prefix": "../../build/cros_cache/chrome-sdk/", "remote": True, "handler": "cros_compiler", @@ -85,6 +86,7 @@ def __step_config(ctx, step_config): }, { "name": "clang-cros/cc", + "action": "(.*_)?cc", "command_prefix": "../../build/cros_cache/chrome-sdk/", "remote": True, "handler": "cros_compiler", diff --git a/build/config/siso/devtools_frontend.star b/build/config/siso/devtools_frontend.star new file mode 100644 index 000000000..dc9f3e9ba --- /dev/null +++ b/build/config/siso/devtools_frontend.star @@ -0,0 +1,130 @@ +load("@builtin//encoding.star", "json") +load("@builtin//path.star", "path") +load("@builtin//struct.star", "module") +load("./config.star", "config") +load("./tsc.star", "tsc") + +# TODO: crbug.com/1478909 - Specify typescript inputs in GN config. +def __filegroups(ctx): + return { + "third_party/devtools-frontend/src/node_modules/typescript:typescript": { + "type": "glob", + "includes": ["*"], + }, + "third_party/devtools-frontend/src/node_modules:node_modules": { + "type": "glob", + "includes": ["*.js", "*.json", "*.ts"], + }, + } + +def __step_config(ctx, step_config): + step_config["input_deps"].update({ + "third_party/devtools-frontend/src/third_party/typescript/ts_library.py": [ + "third_party/devtools-frontend/src/node_modules/typescript:typescript", + "third_party/devtools-frontend/src/node_modules:node_modules", + ], + }) + + # TODO: b/308405411 - Enable remote-devtools-frontend-typescript by default. + if config.get(ctx, "remote-devtools-frontend-typescript"): + step_config["rules"].extend([ + { + "name": "devtools-frontend/typescript/ts_library", + "command_prefix": "python3 ../../third_party/devtools-frontend/src/third_party/typescript/ts_library.py", + "exclude_input_patterns": [ + "*.stamp", + ], + "remote": True, + "handler": "devtools_frontend/typescript_ts_library", + "output_local": True, + }, + ]) + return step_config + +def _ts_library(ctx, cmd): + # Handler for https://crsrc.org/c/third_party/devtools-frontend/src/third_party/typescript/ts_library.py + # Note that this is a different script from https://crsrc.org/c/tools/typescript/ts_library.py + deps = [] + sources = [] + tsconfig_path = None + flag = None + for i, arg in enumerate(cmd.args): + if flag != "" and arg.startswith("-"): + flag = "" + if arg == "--tsconfig_output_location": + tsconfig_path = ctx.fs.canonpath(cmd.args[i + 1]) + continue + if arg in ("--deps", "--sources"): + flag = arg + continue + if flag == "--deps": + deps.append(arg) + continue + if flag == "--sources": + sources.append(ctx.fs.canonpath(arg)) + continue + if not tsconfig_path: + fail("missing --tsconfig_output_location") + tsconfig = {"files": [], "references": []} + tsconfig_dir = path.dir(tsconfig_path) + for s in sources: + tsconfig["files"].append(path.rel(tsconfig_dir, s)) + for d in deps: + tsconfig["references"].append({"path": d}) + refpath = path.join(tsconfig_dir, d) + refdir = path.dir(refpath) + + # TODO: crbug.com/1503020 - Fix devtools_entrypoint to propagate .d.ts output. + dpath = path.join(refdir, path.base(refdir) + ".d.ts") + if ctx.fs.exists(dpath): + sources.append(dpath) + + inputs = tsc.scandeps(ctx, tsconfig_path, tsconfig) + + # Sources and imported files might be located in different dirs. source vs gen. + # Try to collect the corresponding files in source or gen dir. + # TODO: crbug.com/1505319 - Fix devtools_module import issues. + files = {} + gen_dir = None + + # Infer source files from gen file. + for f in cmd.inputs + inputs: + if f.startswith("out/"): + # Remove out/{subdir}/gen. + splits = f.split("/", 3) + if len(splits) < 4: + continue + gen_dir = path.join(splits[0], splits[1], splits[2]) + f = splits[3] + if ctx.fs.exists(f) and not f in files: + files[f] = True + continue + if f.endswith(".js"): + f = f.removesuffix(".js") + ".d.ts" + if ctx.fs.exists(f) and not f in files: + files[f] = True + + # Infer gen files from source file. + if gen_dir: + for f in cmd.inputs + inputs: + if f.endswith(".ts"): + f = path.join(gen_dir, f) + f = f.removesuffix(".ts") + ".d.ts" + if ctx.fs.exists(f) and not f in files: + files[f] = True + if f.endswith(".js"): + f = path.join(gen_dir, f) + f = f.removesuffix(".js") + ".d.ts" + if ctx.fs.exists(f) and not f in files: + files[f] = True + + ctx.actions.fix(inputs = cmd.inputs + inputs + sources + files.keys()) + +devtools_frontend = module( + "devtools_frontend", + step_config = __step_config, + handlers = { + "devtools_frontend/typescript_ts_library": _ts_library, + }, + filegroups = __filegroups, +) diff --git a/build/config/siso/linux.star b/build/config/siso/linux.star index 1c6208ffd..30675164a 100644 --- a/build/config/siso/linux.star +++ b/build/config/siso/linux.star @@ -7,20 +7,22 @@ load("@builtin//struct.star", "module") load("./android.star", "android") load("./clang_linux.star", "clang") -load("./cros.star", "cros") load("./config.star", "config") +load("./cros.star", "cros") +load("./devtools_frontend.star", "devtools_frontend") load("./nacl_linux.star", "nacl") load("./nasm_linux.star", "nasm") load("./proto_linux.star", "proto") load("./reproxy.star", "reproxy") load("./rust_linux.star", "rust") -load("./typescript_linux.star", "typescript") +load("./typescript_unix.star", "typescript") def __filegroups(ctx): fg = {} fg.update(android.filegroups(ctx)) fg.update(clang.filegroups(ctx)) fg.update(cros.filegroups(ctx)) + fg.update(devtools_frontend.filegroups(ctx)) fg.update(nacl.filegroups(ctx)) fg.update(nasm.filegroups(ctx)) fg.update(proto.filegroups(ctx)) @@ -32,64 +34,22 @@ __handlers = {} __handlers.update(android.handlers) __handlers.update(clang.handlers) __handlers.update(cros.handlers) +__handlers.update(devtools_frontend.handlers) __handlers.update(nacl.handlers) __handlers.update(nasm.handlers) __handlers.update(proto.handlers) __handlers.update(rust.handlers) __handlers.update(typescript.handlers) -def __disable_remote_b289968566(ctx, step_config): - rule = { - # TODO(b/289968566): they often faile with exit=137 (OOM?). - # We should migrate default machine type to n2-standard-2. - "name": "b289968566/exit-137", - "action_outs": [ - "./android_clang_arm/obj/third_party/distributed_point_functions/distributed_point_functions/evaluate_prg_hwy.o", - "./obj/chrome/browser/ash/ash/autotest_private_api.o", - "./obj/chrome/browser/ash/ash/chrome_browser_main_parts_ash.o", - "./obj/chrome/browser/ash/system_web_apps/browser_tests/system_web_app_manager_browsertest.o", - "./obj/chrome/browser/browser/browser_prefs.o", - "./obj/chrome/browser/browser/chrome_browser_interface_binders.o", - "./obj/chrome/browser/ui/ash/holding_space/browser_tests/holding_space_ui_browsertest.o", - "./obj/chrome/test/browser_tests/browser_non_client_frame_view_chromeos_browsertest.o", - "./obj/chrome/test/browser_tests/chrome_shelf_controller_browsertest.o", - "./obj/chrome/test/browser_tests/device_local_account_browsertest.o", - "./obj/chrome/test/browser_tests/file_manager_browsertest_base.o", - "./obj/chrome/test/browser_tests/remote_apps_manager_browsertest.o", - "./obj/chrome/test/browser_tests/spoken_feedback_browsertest.o", - "./obj/chrome/test/unit_tests/chrome_browsing_data_remover_delegate_unittest.o", - "./obj/chrome/test/unit_tests/site_settings_handler_unittest.o", - "./obj/fuchsia_web/runners/cast_runner_integration_tests__exec/cast_runner_integration_test.o", - "./obj/fuchsia_web/webengine/web_engine_core/frame_impl.o", - "./ash_clang_x64/obj/chrome/browser/ash/ash/autotest_private_api.o", - "./ash_clang_x64/obj/chrome/browser/ash/ash/chrome_browser_main_parts_ash.o", - "./ash_clang_x64/obj/chrome/browser/browser/browser_prefs.o", - "./ash_clang_x64/obj/chrome/browser/browser/chrome_browser_interface_binders.o", - ], - "remote": False, - } - if reproxy.enabled(ctx): - rule["handler"] = "strip_rewrapper" - step_config["rules"].insert(0, rule) - return step_config - def __step_config(ctx, step_config): config.check(ctx) - step_config["platforms"].update({ - "default": { - "OSFamily": "Linux", - "container-image": "docker://gcr.io/chops-public-images-prod/rbe/siso-chromium/linux@sha256:912808c295e578ccde53b0685bcd0d56c15d7a03e819dcce70694bfe3fdab35e", - "label:action_default": "1", - }, - }) - - step_config = __disable_remote_b289968566(ctx, step_config) if android.enabled(ctx): step_config = android.step_config(ctx, step_config) step_config = clang.step_config(ctx, step_config) step_config = cros.step_config(ctx, step_config) + step_config = devtools_frontend.step_config(ctx, step_config) step_config = nacl.step_config(ctx, step_config) step_config = nasm.step_config(ctx, step_config) step_config = proto.step_config(ctx, step_config) diff --git a/build/config/siso/mac.star b/build/config/siso/mac.star index 7fbebfe51..86b31c638 100644 --- a/build/config/siso/mac.star +++ b/build/config/siso/mac.star @@ -7,18 +7,22 @@ load("@builtin//struct.star", "module") load("./clang_mac.star", "clang") load("./config.star", "config") +load("./typescript_unix.star", "typescript") def __filegroups(ctx): fg = {} fg.update(clang.filegroups(ctx)) + fg.update(typescript.filegroups(ctx)) return fg __handlers = {} __handlers.update(clang.handlers) +__handlers.update(typescript.handlers) def __step_config(ctx, step_config): config.check(ctx) step_config = clang.step_config(ctx, step_config) + step_config = typescript.step_config(ctx, step_config) return step_config chromium = module( diff --git a/build/config/siso/main.star b/build/config/siso/main.star index 29116d9ce..bf0658f78 100644 --- a/build/config/siso/main.star +++ b/build/config/siso/main.star @@ -16,6 +16,53 @@ load("./reproxy.star", "reproxy") load("./simple.star", "simple") load("./windows.star", chromium_windows = "chromium") +def __use_large_b289968566(ctx, step_config): + # TODO(b/289968566): they often faile with exit=137 (OOM?). + # They need to run on a machine has more memory than the default machine type n2-custom-2-3840 + exit137_list = [ + "./android_clang_arm/obj/third_party/distributed_point_functions/distributed_point_functions/evaluate_prg_hwy.o", + "./ash_clang_x64/obj/chrome/browser/ash/ash/autotest_private_api.o", + "./ash_clang_x64/obj/chrome/browser/ash/ash/chrome_browser_main_parts_ash.o", + "./ash_clang_x64/obj/chrome/browser/browser/browser_prefs.o", + "./ash_clang_x64/obj/chrome/browser/browser/chrome_browser_interface_binders.o", + "./obj/chrome/browser/ash/ash/autotest_private_api.o", + "./obj/chrome/browser/ash/ash/chrome_browser_main_parts_ash.o", + "./obj/chrome/browser/ash/system_web_apps/browser_tests/system_web_app_manager_browsertest.o", + "./obj/chrome/browser/browser/browser_prefs.o", + "./obj/chrome/browser/browser/chrome_browser_interface_binders.o", + "./obj/chrome/browser/ui/ash/holding_space/browser_tests/holding_space_ui_browsertest.o", + "./obj/chrome/test/browser_tests/browser_non_client_frame_view_chromeos_browsertest.o", + "./obj/chrome/test/browser_tests/chrome_shelf_controller_browsertest.o", + "./obj/chrome/test/browser_tests/device_local_account_browsertest.o", + "./obj/chrome/test/browser_tests/file_manager_browsertest_base.o", + "./obj/chrome/test/browser_tests/remote_apps_manager_browsertest.o", + "./obj/chrome/test/browser_tests/spoken_feedback_browsertest.o", + "./obj/chrome/test/unit_tests/chrome_browsing_data_remover_delegate_unittest.o", + "./obj/chrome/test/unit_tests/site_settings_handler_unittest.o", + "./obj/content/browser/browser/browser_interface_binders.o", + "./obj/fuchsia_web/runners/cast_runner_integration_tests__exec/cast_runner_integration_test.o", + "./obj/fuchsia_web/webengine/web_engine_core/frame_impl.o", + ] + if runtime.os == "windows": + exit137_list = [obj.removesuffix(".o") + ".obj" for obj in exit137_list if obj.startswith("./obj/")] + + new_rules = [] + for rule in step_config["rules"]: + if not rule["name"].endswith("/cxx"): + new_rules.append(rule) + continue + if "action_outs" in rule: + fail("unexpeced \"action_outs\" in cxx rule %s" % rule["name"]) + r = {} + r.update(rule) + r["name"] += "/b289968566/exit-137" + r["action_outs"] = exit137_list + r["platform_ref"] = "large" + new_rules.append(r) + new_rules.append(rule) + step_config["rules"] = new_rules + return step_config + def init(ctx): print("runtime: os:%s arch:%s run:%d" % ( runtime.os, @@ -29,6 +76,11 @@ def init(ctx): }[runtime.os] step_config = { "platforms": { + "default": { + "OSFamily": "Linux", + "container-image": "docker://gcr.io/chops-public-images-prod/rbe/siso-chromium/linux@sha256:912808c295e578ccde53b0685bcd0d56c15d7a03e819dcce70694bfe3fdab35e", + "label:action_default": "1", + }, # Large workers are usually used for Python actions like generate bindings, mojo generators etc # They can run on Linux workers. "large": { @@ -71,6 +123,8 @@ def init(ctx): arg0 = arg0.removesuffix(".exe") rule["remote_command"] = arg0 + step_config = __use_large_b289968566(ctx, step_config) + filegroups = {} filegroups.update(blink_all.filegroups(ctx)) filegroups.update(host.filegroups(ctx)) diff --git a/build/config/siso/mojo.star b/build/config/siso/mojo.star index 7bcbe7771..88667b0e7 100644 --- a/build/config/siso/mojo.star +++ b/build/config/siso/mojo.star @@ -19,9 +19,6 @@ def __step_config(ctx, step_config): { "name": "mojo/mojom_bindings_generator", "command_prefix": platform.python_bin + " ../../mojo/public/tools/bindings/mojom_bindings_generator.py", - "inputs": [ - "mojo/public/tools/bindings/mojom_bindings_generator.py", - ], "indirect_inputs": { "includes": [ "*.js", diff --git a/build/config/siso/reproxy.star b/build/config/siso/reproxy.star index 4bb8deff1..5622f1b23 100644 --- a/build/config/siso/reproxy.star +++ b/build/config/siso/reproxy.star @@ -6,6 +6,7 @@ load("@builtin//encoding.star", "json") load("@builtin//lib/gn.star", "gn") +load("@builtin//path.star", "path") load("@builtin//struct.star", "module") load("./clang_code_coverage_wrapper.star", "clang_code_coverage_wrapper") load("./config.star", "config") @@ -40,7 +41,45 @@ def __parse_rewrapper_cmdline(ctx, cmd): break if wrapped_command_pos < 1: fail("couldn't find first non-arg passed to rewrapper for %s" % str(cmd.args)) - return cmd.args[wrapped_command_pos:], cfg_file, True + if not cfg_file: + return cmd.args[wrapped_command_pos:], None, True + return cmd.args[wrapped_command_pos:], rewrapper_cfg.parse(ctx, cfg_file), True + +def __parse_cros_rewrapper_cmdline(ctx, cmd): + # fix cros sdk clang command line and extract rewrapper cfg. + # Example command: + # ../../build/cros_cache/chrome-sdk/symlinks/amd64-generic+15629.0.0+target_toolchain/bin/x86_64-cros-linux-gnu-clang++ + # -MMD -MF obj/third_party/abseil-cpp/absl/base/base/spinlock.o.d + # ... + # --rewrapper-path /usr/local/google/home/ukai/src/chromium/src/build/args/chromeos/rewrapper_amd64-generic + # --rewrapper-cfg ../../buildtools/reclient_cfgs/chromium-browser-clang/rewrapper_linux.cfg + # -pipe -march=x86-64 -msse3 ... + cfg_file = None + skip = "" + args = [] + toolchainpath = None + for i, arg in enumerate(cmd.args): + if i == 0: + toolchainpath = path.dir(path.dir(ctx.fs.canonpath(arg))) + args.append(arg) + continue + if skip: + if skip == "--rewrapper-cfg": + cfg_file = ctx.fs.canonpath(arg) + skip = "" + continue + if arg in ("--rewrapper-path", "--rewrapper-cfg"): + skip = arg + continue + args.append(arg) + if not cfg_file: + fail("couldn't find rewrapper cfg file in %s" % str(cmd.args)) + rwcfg = rewrapper_cfg.parse(ctx, cfg_file) + inputs = rwcfg.get("inputs", []) + inputs.append(toolchainpath) + rwcfg["inputs"] = inputs + rwcfg["preserve_symlinks"] = True + return args, rwcfg # TODO(b/278225415): change gn so this wrapper (and by extension this handler) becomes unnecessary. def __parse_clang_code_coverage_wrapper_cmdline(ctx, cmd): @@ -80,29 +119,33 @@ def __parse_clang_code_coverage_wrapper_cmdline(ctx, cmd): fail("couldn't find rewrapper cfg file in %s" % str(cmd.args)) coverage_wrapper_command = cmd.args[:rewrapper_pos] + cmd.args[wrapped_command_pos:] clang_command = clang_code_coverage_wrapper.run(ctx, list(coverage_wrapper_command)) - return clang_command, cfg_file + if len(clang_command) > 1 and "/chrome-sdk/" in clang_command[0]: + # TODO: implement cros sdk support under code coverage wrapper + fail("need to fix handler for cros sdk under code coverage wrapper") + return clang_command, rewrapper_cfg.parse(ctx, cfg_file) def __rewrite_rewrapper(ctx, cmd): # If clang-coverage, needs different handling. if len(cmd.args) > 2 and "clang_code_coverage_wrapper.py" in cmd.args[1]: - args, cfg_file = __parse_clang_code_coverage_wrapper_cmdline(ctx, cmd) + args, rwcfg = __parse_clang_code_coverage_wrapper_cmdline(ctx, cmd) + elif len(cmd.args) > 1 and "/chrome-sdk/" in cmd.args[0]: + args, rwcfg = __parse_cros_rewrapper_cmdline(ctx, cmd) else: # handling for generic rewrapper. - args, cfg_file, wrapped = __parse_rewrapper_cmdline(ctx, cmd) + args, rwcfg, wrapped = __parse_rewrapper_cmdline(ctx, cmd) if not wrapped: print("command doesn't have rewrapper. %s" % str(cmd.args)) return - if not cfg_file: + if not rwcfg: fail("couldn't find rewrapper cfg file in %s" % str(cmd.args)) - reproxy_config = rewrapper_cfg.parse(ctx, cfg_file) if cmd.outputs[0] == ctx.fs.canonpath("./obj/third_party/abseil-cpp/absl/functional/any_invocable_test/any_invocable_test.o"): # need longer timeout for any_invocable_test.o crbug.com/1484474 - reproxy_config.update({ + rwcfg.update({ "exec_timeout": "4m", }) ctx.actions.fix( args = args, - reproxy_config = json.encode(reproxy_config), + reproxy_config = json.encode(rwcfg), ) def __strip_rewrapper(ctx, cmd): @@ -224,14 +267,16 @@ def __step_config(ctx, step_config): if not rule.get("action"): fail("clang rule %s found without action" % rule["name"]) - # TODO(b/294160948): reclient doesn't work well with cros wrapper symlink tricks. - cros_rule = { - "name": rule["name"] + "/cros", - "action": rule["action"], - "command_prefix": "../../build/cros_cache/", - "use_remote_exec_wrapper": True, - } - new_rules.append(cros_rule) + if not config.get(ctx, "reproxy-cros"): + # TODO: b/314698010 - use reproxy mode once performance issue is fixed. + cros_rule = { + "name": rule["name"] + "/cros", + "action": rule["action"], + "command_prefix": "../../build/cros_cache/", + "use_remote_exec_wrapper": True, + } + new_rules.append(cros_rule) + new_rule = { "name": rule["name"], "action": rule["action"], diff --git a/build/config/siso/tsc.star b/build/config/siso/tsc.star index fc9f16df1..dad490468 100644 --- a/build/config/siso/tsc.star +++ b/build/config/siso/tsc.star @@ -3,38 +3,55 @@ load("@builtin//encoding.star", "json") load("@builtin//path.star", "path") load("@builtin//struct.star", "module") -def _load(ctx, fname, loaded): - if fname in loaded: - return loaded[fname] - tsconfig = json.decode(str(ctx.fs.read(fname))) - loaded[fname] = tsconfig +def _load(ctx, tsconfig_path, loaded): + if tsconfig_path in loaded: + return loaded[tsconfig_path] + tsconfig = json.decode(str(ctx.fs.read(tsconfig_path))) + loaded[tsconfig_path] = tsconfig return tsconfig -def _paths(ctx, fname, tsconfig, loaded): - paths = [fname] +def _paths(ctx, tsconfig_path, tsconfig, loaded): + paths = [tsconfig_path] + tsconfig_dir = path.dir(tsconfig_path) if "extends" in tsconfig and tsconfig["extends"]: - base = path.join(path.dir(fname), tsconfig["extends"]) + base = path.join(tsconfig_dir, tsconfig["extends"]) paths.append(base) parent = _load(ctx, base, loaded) if "files" in parent and not tsconfig["files"]: tsconfig["files"] = parent["files"] - paths.extend([path.join(path.dir(fname), file) for file in tsconfig["files"]]) + if "files" in tsconfig: + for file in tsconfig["files"]: + paths.append(path.join(tsconfig_dir, file)) + if file.endswith(".js"): + # Add if d.ts version of the file exists. + file_dts = path.join(tsconfig_dir, file[:-2] + "d.ts") + if ctx.fs.exists(file_dts): + paths.append(file_dts) return paths -def _scan_inputs(ctx, fname, tsconfig, loaded): - inputs = [] - inputs += _paths(ctx, fname, tsconfig, loaded) +def _scan_inputs(ctx, tsconfig_path, tsconfig, loaded, scanned): + if tsconfig_path in scanned: + return scanned[tsconfig_path] + inputs = {} + for fname in _paths(ctx, tsconfig_path, tsconfig, loaded): + if fname not in inputs: + inputs[fname] = True if "references" in tsconfig: for ref in tsconfig["references"]: - refname = path.join(path.dir(fname), ref["path"]) - inputs.append(refname) + refname = path.join(path.dir(tsconfig_path), ref["path"]) + if refname not in inputs: + inputs[refname] = True reftc = _load(ctx, refname, loaded) - inputs += _scan_inputs(ctx, refname, reftc, loaded) - return inputs + for fname in _scan_inputs(ctx, refname, reftc, loaded, scanned): + if fname not in inputs: + inputs[fname] = True + scanned[tsconfig_path] = inputs.keys() + return scanned[tsconfig_path] -def _scandeps(ctx, fname, tsconfig): - loaded = {fname: tsconfig} - inputs = _scan_inputs(ctx, fname, tsconfig, loaded) +def _scandeps(ctx, tsconfig_path, tsconfig): + loaded = {tsconfig_path: tsconfig} + scanned = {} + inputs = _scan_inputs(ctx, tsconfig_path, tsconfig, loaded, scanned) return inputs tsc = module( diff --git a/build/config/siso/typescript_linux.star b/build/config/siso/typescript_unix.star index 799c71300..799c71300 100644 --- a/build/config/siso/typescript_linux.star +++ b/build/config/siso/typescript_unix.star diff --git a/build/config/siso/windows.star b/build/config/siso/windows.star index b43f677a8..17fd72dbe 100644 --- a/build/config/siso/windows.star +++ b/build/config/siso/windows.star @@ -17,25 +17,8 @@ def __filegroups(ctx): __handlers = {} __handlers.update(clang.handlers) -def __disable_remote_b289968566(ctx, step_config): - rule = { - # TODO(b/289968566): they often faile with exit=137 (OOM?). - # We should migrate default machine type to n2-standard-2. - "name": "b289968566/exit-137", - "action_outs": [ - "./obj/chrome/test/unit_tests/chrome_browsing_data_remover_delegate_unittest.obj", - "./obj/content/browser/browser/browser_interface_binders.obj", - ], - "remote": False, - } - if reproxy.enabled(ctx): - rule["handler"] = "strip_rewrapper" - step_config["rules"].insert(0, rule) - return step_config - def __step_config(ctx, step_config): config.check(ctx) - step_config = __disable_remote_b289968566(ctx, step_config) step_config = clang.step_config(ctx, step_config) return step_config diff --git a/build/config/ui.gni b/build/config/ui.gni index b560f372c..1ad21d73f 100644 --- a/build/config/ui.gni +++ b/build/config/ui.gni @@ -17,7 +17,7 @@ # There is more advice on where to put build flags in the "Build flag" section # of //build/config/BUILDCONFIG.gn. -import("//build/config/chromecast_build.gni") +import("//build/config/cast.gni") import("//build/config/chromeos/args.gni") import("//build/config/chromeos/ui_mode.gni") import("//build/config/ozone.gni") diff --git a/build/config/win/BUILD.gn b/build/config/win/BUILD.gn index ddcc94a2d..6e1417aa4 100644 --- a/build/config/win/BUILD.gn +++ b/build/config/win/BUILD.gn @@ -434,6 +434,7 @@ config("delayloads") { "/DELAYLOAD:ncrypt.dll", "/DELAYLOAD:ole32.dll", "/DELAYLOAD:oleacc.dll", + "/DELAYLOAD:pdh.dll", "/DELAYLOAD:propsys.dll", "/DELAYLOAD:psapi.dll", "/DELAYLOAD:rpcrt4.dll", diff --git a/build/fuchsia/cipd/BUILD.gn b/build/fuchsia/cipd/BUILD.gn index 228a7d046..4f0e6b93a 100644 --- a/build/fuchsia/cipd/BUILD.gn +++ b/build/fuchsia/cipd/BUILD.gn @@ -8,6 +8,7 @@ assert(is_fuchsia) import("//build/cipd/cipd.gni") import("//build/config/chrome_build.gni") +import("//build/config/compiler/compiler.gni") import("//build/util/process_version.gni") import("//third_party/fuchsia-gn-sdk/src/build_id_dir.gni") import("//third_party/fuchsia-gn-sdk/src/cipd.gni") @@ -421,14 +422,18 @@ group("web_engine_archives_with_tests") { group("cipd") { testonly = true # Some archives are testonly. deps = [ - ":chrome${_archive_suffix}", - ":chrome_debug_symbols", ":web_engine_archives_with_tests", # Symbols are not uploaded for the following. ":chromedriver${_archive_suffix}", ":web_engine_debug_symbols", ] + if (!optimize_for_size) { + deps += [ + ":chrome${_archive_suffix}", + ":chrome_debug_symbols", + ] + } visibility = [] # Required to replace the file default. visibility = [ "//:gn_all" ] } diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index cd18f6dcf..5669b0fe8 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1 @@ -1 +1 @@ -16.20231029.1.1 +16.20231112.3.1 diff --git a/build/fuchsia/test/boot_device.py b/build/fuchsia/test/boot_device.py index 0fec66020..ee6f1ba72 100644 --- a/build/fuchsia/test/boot_device.py +++ b/build/fuchsia/test/boot_device.py @@ -122,6 +122,16 @@ def boot_device(target_id: Optional[str], Raises: StateTransitionError: When final state of device is not desired. """ + # Avoid cycle dependency. + # This file will be replaced with serial_boot_device quite soon, later one + # should be much more reliable comparing to ffx target list and ssh. So + # changing the file structure is not necessary in the current situation. + # pylint: disable=cyclic-import, import-outside-toplevel + # pylint: disable=wrong-import-position + import serial_boot_device + if serial_boot_device.boot_device(target_id, serial_num, mode, must_boot): + return + # Skip boot call if already in the state and not skipping check. state = _get_target_state(target_id, serial_num, num_attempts=3) wanted_state = _BOOTMODE_TO_STATE.get(mode) diff --git a/build/fuchsia/test/coveragetest.py b/build/fuchsia/test/coveragetest.py index 3a82e53c2..9d45fa336 100755 --- a/build/fuchsia/test/coveragetest.py +++ b/build/fuchsia/test/coveragetest.py @@ -19,7 +19,7 @@ COVERED_FILES = [ ] # The files will be tested without coverage requirements. -TESTED_FILES = ['common.py', 'ffx_emulator.py'] +TESTED_FILES = ['common.py', 'ffx_emulator.py', 'serial_boot_device.py'] def main(): diff --git a/build/fuchsia/test/pylintrc b/build/fuchsia/test/pylintrc index a144b8066..264ebc415 100644 --- a/build/fuchsia/test/pylintrc +++ b/build/fuchsia/test/pylintrc @@ -24,3 +24,8 @@ max-attributes=10 [FORMAT] max-line-length=80 + +[SIMILARITIES] +ignore-comments=yes +ignore-docstrings=yes +ignore-imports=yes diff --git a/build/fuchsia/test/serial_boot_device.py b/build/fuchsia/test/serial_boot_device.py new file mode 100755 index 000000000..98a060c3a --- /dev/null +++ b/build/fuchsia/test/serial_boot_device.py @@ -0,0 +1,261 @@ +#!/usr/bin/env python3 +# Copyright 2023 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +"""Helpers to reliably reboot the device via serial and fastboot. + +Note, this file will be executed in docker instance without vpython3, so we use +python3 instead. +""" + +import json +import logging +import os +import shutil +import subprocess +import sys +import time + +from typing import List +from boot_device import BootMode + +# pylint: disable=too-many-return-statements, too-many-branches + + +def boot_device(node_id: str, + serial_num: str, + mode: BootMode, + must_boot: bool = False) -> bool: + """Boots device into desired mode via serial and fastboot. + This function waits for at most 10 minutes for the transition. + + Args: + node_id: The fuchsia node id of the device. + serial_num: The fastboot serial number of the device. + mode: Desired boot mode. + must_boot: Forces device to reboot regardless the current state. + + Returns: + a boolean value to indicate if the operation succeeded; missing + dependencies like serialio (for serial access) and fastboot, or the + device cannot be found may also introduce the error. + """ + #TODO(crbug.com/1490434): Remove the default values once the use in + # flash_device has been migrated. + if node_id is None: + node_id = os.getenv('FUCHSIA_NODENAME') + if serial_num is None: + serial_num = os.getenv('FUCHSIA_FASTBOOT_SERNUM') + assert node_id is not None + assert serial_num is not None + + if not mode in [BootMode.REGULAR, BootMode.BOOTLOADER]: + logging.warning('Unsupported BootMode %s for serial_boot_device.', + mode) + return False + if shutil.which('fastboot') is None: + logging.warning('fastboot is not accessible') + return False + if shutil.which('serialio') is None: + logging.warning('serialio is not accessible') + return False + + if is_in_fuchsia(node_id): + if not must_boot and mode == BootMode.REGULAR: + return True + # pylint: disable=subprocess-run-check + if subprocess.run([ + 'serialio', node_id, 'send', 'dm', 'reboot' + + ('' if mode == BootMode.REGULAR else '-bootloader') + ]).returncode != 0: + logging.error('Failed to send dm reboot[-bootloader] via serialio') + return False + elif is_in_fastboot(serial_num): + # fastboot is stateless and there isn't a reason to reboot the device + # again to go to the fastboot. + if mode == BootMode.BOOTLOADER: + return True + if not _run_fastboot(['reboot'], serial_num): + # Shouldn't return None here, unless the device was rebooting. In + # the case, it would be safer to return false. + return False + else: + logging.error('Cannot find node id %s or fastboot serial number %s', + node_id, serial_num) + return False + + start_sec = time.time() + while time.time() - start_sec < 600: + assert mode in [BootMode.REGULAR, BootMode.BOOTLOADER] + if mode == BootMode.REGULAR and is_in_fuchsia(node_id): + return True + if mode == BootMode.BOOTLOADER and is_in_fastboot(serial_num): + return True + logging.error( + 'Failed to transite node id %s or fastboot serial number %s ' + 'to expected state %s', node_id, serial_num, mode) + return False + + +def _serialio_send_and_wait(node_id: str, command: List[str], + waitfor: str) -> bool: + """Continously sends the command to the device and waits for the waitfor + string via serialio. + This function asserts the existence of serialio and waits at most ~30 + seconds.""" + assert shutil.which('serialio') is not None + start_sec = time.time() + with subprocess.Popen(['serialio', node_id, 'wait', waitfor], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL) as proc: + while time.time() - start_sec < 28: + send_command = ['serialio', node_id, 'send'] + send_command.extend(command) + # pylint: disable=subprocess-run-check + if subprocess.run(send_command).returncode != 0: + logging.error('Failed to send %s via serialio to %s', command, + node_id) + return False + result = proc.poll() + if result is not None: + if result == 0: + return True + logging.error( + 'Failed to wait %s via serial to %s, ' + 'return code %s', waitfor, node_id, result) + return False + time.sleep(2) + proc.kill() + logging.error('Have not found %s via serialio to %s', waitfor, node_id) + return False + + +def is_in_fuchsia(node_id: str) -> bool: + """Checks if the device is running in fuchsia through serial. + Note, this check goes through serial and does not guarantee the fuchsia os + has a workable network or ssh connection. + This function asserts the existence of serialio and waits at most ~60 + seconds.""" + if not _serialio_send_and_wait( + node_id, ['echo', 'yes-i-am-healthy', '|', 'sha1sum'], + '89d517b7db104aada669a83bc3c3a906e00671f7'): + logging.error( + 'Device %s did not respond echo, ' + 'it may not be running fuchsia', node_id) + return False + if not _serialio_send_and_wait(node_id, ['ps'], 'sshd'): + logging.warning( + 'Cannot find sshd from ps on %s, the ssh ' + 'connection may not be available.', node_id) + return True + + +def is_in_fastboot(serial_num: str) -> bool: + """Checks if the device is running in fastboot through fastboot command. + Note, the fastboot may be impacted by the usb congestion and causes this + function to return false. + This function asserts the existence of fastboot and waits at most ~30 + seconds.""" + start_sec = time.time() + while time.time() - start_sec < 28: + result = _run_fastboot(['getvar', 'product'], serial_num) + if result is None: + return False + if result: + return True + time.sleep(2) + logging.error('Failed to wait for fastboot state of %s', serial_num) + return False + + +def _run_fastboot(args: List[str], serial_num: str) -> bool: + """Executes the fastboot command and kills the hanging process. + The fastboot may be impacted by the usb congestion and causes the process to + hang forever. So this command waits for 30 seconds before killing the + process, and it's not good for flashing. + Note, if this function detects the fastboot is waiting for the device, i.e. + the device is not in the fastboot, it returns None instead, e.g. unknown. + This function asserts the existence of fastboot.""" + assert shutil.which('fastboot') is not None + args.insert(0, 'fastboot') + args.extend(('-s', serial_num)) + try: + # Capture output to ensure we can get '< waiting for serial-num >' + # output. + # pylint: disable=subprocess-run-check + if subprocess.run(args, capture_output=True, + timeout=30).returncode == 0: + return True + except subprocess.TimeoutExpired as timeout: + if timeout.stderr is not None and serial_num.lower( + ) in timeout.stderr.decode().lower(): + logging.warning('fastboot is still waiting for %s', serial_num) + return None + logging.error('Failed to run %s against fastboot %s', args, serial_num) + return False + + +def main(action: str) -> int: + """Main entry of serial_boot_device.""" + node_id = os.getenv('FUCHSIA_NODENAME') + serial_num = os.getenv('FUCHSIA_FASTBOOT_SERNUM') + assert node_id is not None + assert serial_num is not None + if action == 'health-check': + if is_in_fuchsia(node_id) or is_in_fastboot(serial_num): + # Print out the json result without using logging to avoid any + # potential formatting issue. + print( + json.dumps([{ + 'nodename': node_id, + 'state': 'healthy', + 'status_message': '', + 'dms_state': '' + }])) + return 0 + logging.error('Cannot find node id %s or fastboot serial number %s', + node_id, serial_num) + return 1 + if action in ['reboot', 'after-task']: + if boot_device(node_id, serial_num, BootMode.REGULAR, must_boot=True): + return 0 + logging.error( + 'Cannot reboot the device with node id %s and fastboot ' + 'serial number %s', node_id, serial_num) + return 1 + if action == 'reboot-fastboot': + if boot_device(node_id, + serial_num, + BootMode.BOOTLOADER, + must_boot=True): + return 0 + logging.error( + 'Cannot reboot the device with node id %s and fastboot ' + 'serial number %s into fastboot', node_id, serial_num) + return 1 + if action == 'is-in-fuchsia': + if is_in_fuchsia(node_id): + return 0 + logging.error('Cannot find node id %s', node_id) + return 1 + if action == 'is-in-fastboot': + if is_in_fastboot(serial_num): + return 0 + logging.error('Cannot find fastboot serial number %s', serial_num) + return 1 + if action == 'server-version': + # TODO(crbug.com/1490434): Implement the server-version. + print('chromium') + return 0 + if action == 'before-task': + # Do nothing + return 0 + if action == 'set-power-state': + # Do nothing + return 0 + logging.error('Unknown command %s', action) + return 2 + + +if __name__ == '__main__': + sys.exit(main(sys.argv[1])) diff --git a/build/fuchsia/test/serial_boot_device_unittests.py b/build/fuchsia/test/serial_boot_device_unittests.py new file mode 100755 index 000000000..c863a4af6 --- /dev/null +++ b/build/fuchsia/test/serial_boot_device_unittests.py @@ -0,0 +1,111 @@ +#!/usr/bin/env vpython3 +# Copyright 2023 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +"""File for testing serial_boot_device.py.""" + +import json +import os +import unittest +import unittest.mock as mock + +from subprocess import CompletedProcess + +import serial_boot_device + +from boot_device import BootMode + + +# pylint: disable=too-many-public-methods, missing-function-docstring +@mock.patch('shutil.which', return_value='/bin') +class SerialBootDeviceTest(unittest.TestCase): + """Unittests for serial_boot_device.py.""" + def setUp(self) -> None: + os.environ['FUCHSIA_NODENAME'] = 'fuchsia-node-id' + os.environ['FUCHSIA_FASTBOOT_SERNUM'] = 'fuchsia-serial-num' + + def test_does_not_boot_without_binaries(self, *_) -> None: + with mock.patch('shutil.which', return_value=None): + self.assertNotEqual(serial_boot_device.main('reboot'), 0) + + @mock.patch('serial_boot_device.is_in_fuchsia', side_effect=[True]) + @mock.patch('builtins.print') + def test_check_health_in_fuchsia(self, mock_print, *_) -> None: + self.assertEqual(serial_boot_device.main('health-check'), 0) + result = json.loads(mock_print.call_args.args[0]) + self.assertEqual(result[0]['nodename'], 'fuchsia-node-id') + self.assertEqual(result[0]['state'], 'healthy') + + @mock.patch('serial_boot_device.is_in_fuchsia', side_effect=[False]) + @mock.patch('serial_boot_device.is_in_fastboot', side_effect=[True]) + @mock.patch('builtins.print') + def test_check_health_in_fastboot(self, mock_print, *_) -> None: + self.assertEqual(serial_boot_device.main('health-check'), 0) + result = json.loads(mock_print.call_args.args[0]) + self.assertEqual(result[0]['nodename'], 'fuchsia-node-id') + self.assertEqual(result[0]['state'], 'healthy') + + @mock.patch('serial_boot_device.is_in_fuchsia', side_effect=[False]) + @mock.patch('serial_boot_device.is_in_fastboot', side_effect=[False]) + def test_check_health_undetectable(self, *_) -> None: + self.assertNotEqual(serial_boot_device.main('health-check'), 0) + + @mock.patch('serial_boot_device.is_in_fuchsia', side_effect=[False]) + @mock.patch('serial_boot_device.is_in_fastboot', side_effect=[False]) + @mock.patch('subprocess.run', + return_value=CompletedProcess(args=['/bin'], returncode=0)) + def test_boot_undetectable(self, mock_run, *_) -> None: + self.assertNotEqual(serial_boot_device.main('reboot'), 0) + mock_run.assert_not_called() + + @mock.patch('serial_boot_device.is_in_fuchsia', side_effect=[True, True]) + @mock.patch('subprocess.run', + return_value=CompletedProcess(args=['/bin'], returncode=0)) + def test_boot_from_fuchsia_to_fuchsia(self, mock_run, *_) -> None: + self.assertEqual(serial_boot_device.main('reboot'), 0) + mock_run.assert_called_once_with( + ['serialio', 'fuchsia-node-id', 'send', 'dm', 'reboot']) + + @mock.patch('serial_boot_device.is_in_fuchsia', side_effect=[True]) + @mock.patch('subprocess.run', + return_value=CompletedProcess(args=['/bin'], returncode=0)) + def test_boot_from_fuchsia_to_fuchsia_not_must_boot(self, mock_run, + *_) -> None: + self.assertTrue( + serial_boot_device.boot_device('fuchsia-node-id', + 'fuchsia-serial-num', + BootMode.REGULAR, + must_boot=False)) + mock_run.assert_not_called() + + @mock.patch('serial_boot_device.is_in_fuchsia', side_effect=[False, True]) + @mock.patch('serial_boot_device.is_in_fastboot', side_effect=[True]) + @mock.patch('subprocess.run', + return_value=CompletedProcess(args=['/bin'], returncode=0)) + def test_boot_from_fastboot_to_fuchsia(self, mock_run, *_) -> None: + self.assertEqual(serial_boot_device.main('reboot'), 0) + mock_run.assert_called_once_with( + ['fastboot', 'reboot', '-s', 'fuchsia-serial-num'], + capture_output=True, + timeout=30) + + @mock.patch('serial_boot_device.is_in_fuchsia', side_effect=[True]) + @mock.patch('serial_boot_device.is_in_fastboot', side_effect=[True]) + @mock.patch('subprocess.run', + return_value=CompletedProcess(args=['/bin'], returncode=0)) + def test_boot_from_fuchsia_to_fastboot(self, mock_run, *_) -> None: + self.assertEqual(serial_boot_device.main('reboot-fastboot'), 0) + mock_run.assert_called_once_with( + ['serialio', 'fuchsia-node-id', 'send', 'dm', 'reboot-bootloader']) + + @mock.patch('serial_boot_device.is_in_fuchsia', side_effect=[False]) + @mock.patch('serial_boot_device.is_in_fastboot', side_effect=[True]) + @mock.patch('subprocess.run', + return_value=CompletedProcess(args=['/bin'], returncode=0)) + def test_boot_from_fastboot_to_fastboot(self, mock_run, *_) -> None: + self.assertEqual(serial_boot_device.main('reboot-fastboot'), 0) + mock_run.assert_not_called() + + +if __name__ == '__main__': + unittest.main() diff --git a/build/gn_helpers.py b/build/gn_helpers.py index 94c1a8400..34dfb134d 100644 --- a/build/gn_helpers.py +++ b/build/gn_helpers.py @@ -546,7 +546,10 @@ def ReadBuildVars(output_directory): def CreateBuildCommand(output_directory): - """Returns [cmd, -C, output_directory], where |cmd| is auto{siso,ninja}.""" + """Returns [cmd, -C, output_directory]. + + Where |cmd| is one of: siso ninja, ninja, or autoninja. + """ suffix = '.bat' if sys.platform.startswith('win32') else '' # Prefer the version on PATH, but fallback to known version if PATH doesn't # have one (e.g. on bots). @@ -560,7 +563,7 @@ def CreateBuildCommand(output_directory): siso_cmd = [f'{siso_prefix}siso{suffix}', 'ninja'] else: ninja_cmd = [f'autoninja{suffix}'] - siso_cmd = [f'autosiso{suffix}'] + siso_cmd = list(ninja_cmd) if output_directory and os.path.relpath(output_directory) != '.': ninja_cmd += ['-C', output_directory] diff --git a/build/gn_helpers_unittest.py b/build/gn_helpers_unittest.py index 6e305d719..ed3df422c 100755 --- a/build/gn_helpers_unittest.py +++ b/build/gn_helpers_unittest.py @@ -323,7 +323,7 @@ class UnitTest(unittest.TestCase): siso_deps = pathlib.Path(temp_dir) / '.siso_deps' siso_deps.touch() - self.assertEqual(f'autosiso{suffix}', + self.assertEqual(f'autoninja{suffix}', gn_helpers.CreateBuildCommand(temp_dir)[0]) with mock.patch('shutil.which', lambda x: None): diff --git a/build/install-build-deps.py b/build/install-build-deps.py index 2506e130b..5d1153d11 100755 --- a/build/install-build-deps.py +++ b/build/install-build-deps.py @@ -374,6 +374,7 @@ def lib_list(): "libxrender1", "libxtst6", "x11-utils", + "xorg", # TODO(crbug.com/1417069): Experimental. "xvfb", "zlib1g", ] @@ -875,7 +876,7 @@ def install_chromeos_fonts(options): def install_locales(): print("Installing locales.", file=sys.stderr) CHROMIUM_LOCALES = [ - "da_DK.UTF-8", "en_US.utf8", "fr_FR.UTF-8", "he_IL.UTF-8", "zh_TW.UTF-8" + "da_DK.UTF-8", "en_US.UTF-8", "fr_FR.UTF-8", "he_IL.UTF-8", "zh_TW.UTF-8" ] LOCALE_GEN = "/etc/locale.gen" if os.path.exists(LOCALE_GEN): diff --git a/build/nocompile.gni b/build/nocompile.gni index 05e7a4288..964b7a94f 100644 --- a/build/nocompile.gni +++ b/build/nocompile.gni @@ -12,7 +12,7 @@ # # import("//build/nocompile.gni") # -# nocompile_source_set("base_nocompile") { +# nocompile_source_set("base_nocompile_tests") { # sources = [ # "functional/one_not_equal_two_nocompile.nc", # ] @@ -316,6 +316,7 @@ if (enable_nocompile_tests) { "-I" + rebase_path("//third_party/abseil-cpp/", root_build_dir), "-I" + rebase_path("//buildtools/third_party/libc++/", root_build_dir), "-I" + rebase_path(root_gen_dir, root_build_dir), + "-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE", # TODO(https://crbug.com/989932): Track build/config/compiler/BUILD.gn "-Wno-implicit-int-float-conversion", diff --git a/build/rust/BUILD.gn b/build/rust/BUILD.gn index 56ffdab6b..c1c13bfa2 100644 --- a/build/rust/BUILD.gn +++ b/build/rust/BUILD.gn @@ -23,8 +23,12 @@ if (toolchain_has_rust) { # on the C++ side. static_library("cxx_cppdeps") { sources = [ - "//third_party/rust/cxx/v1/crate/include/cxx.h", - "//third_party/rust/cxx/v1/crate/src/cxx.cc", + "//third_party/rust/chromium_crates_io/vendor/cxx-1.0.110/include/cxx.h", + "//third_party/rust/chromium_crates_io/vendor/cxx-1.0.110/src/cxx.cc", + + # Our version-independent forwarding header, which we patch cxx.cc to + # use since we want it to use an absolute path for its include. + "//third_party/rust/cxx/v1/cxx.h", ] defines = [ "RUST_CXX_NO_EXCEPTIONS" ] @@ -88,3 +92,10 @@ config("panic_immediate_abort") { ] } } + +config("is_gtest_unittests") { + rustflags = [ + "--cfg", + "is_gtest_unittests", + ] +} diff --git a/build/rust/rust_static_library.gni b/build/rust/rust_static_library.gni index 03d3366a8..204cc35f1 100644 --- a/build/rust/rust_static_library.gni +++ b/build/rust/rust_static_library.gni @@ -145,12 +145,50 @@ import("//build/rust/rust_target.gni") template("rust_static_library") { _target_name = target_name + _configs = [] + _all_dependent_configs = [] + + if (defined(invoker.configs)) { + _configs += invoker.configs + } + + # TODO(dcheng): Is there any value in allowing rust_shared_library() to also + # set `is_gtest_unittest` to true? + if (defined(invoker.is_gtest_unittests) && invoker.is_gtest_unittests) { + config("${_target_name}_alwayslink") { + # Targets using the #[gtest(...)] proc macro register their tests with + # static initializers. A rust library target generates a .rlib, which is + # a regular static library with extra metadata. However, if nothing + # outside the .rlib references functions in the .rlib—as is often the + # case with a target containing only tests—the linker will not pull in + # the .rlib into the final test binary at all, so the tests won't run. + # + # C++ works around this by using source sets and directly pass the .o + # files to the linker, but Rust does not have a parallel to this. Instead, + # force the linker to always include the whole archive. + # + # The library name is hardcoded here, since `get_target_outputs()` can't + # be used with a target that doesn't exist yet! + _rlib_path = "lib${_target_name}.rlib" + if (current_os == "aix") { + # The AIX linker does not implement an option for this. + } else if (is_win) { + ldflags = [ "/WHOLEARCHIVE:${_rlib_path}" ] + } else { + ldflags = [ "-LinkWrapper,add-whole-archive=${_rlib_path}" ] + } + } + _all_dependent_configs += [ ":${target_name}_alwayslink" ] + _configs += [ "//build/rust:is_gtest_unittests" ] + } + rust_target(_target_name) { forward_variables_from(invoker, "*", TESTONLY_AND_VISIBILITY + [ "configs" ]) forward_variables_from(invoker, TESTONLY_AND_VISIBILITY) - library_configs = invoker.configs + library_configs = _configs + all_dependent_configs = _all_dependent_configs target_type = "rust_library" } } diff --git a/build/rust/rustc_wrapper.py b/build/rust/rustc_wrapper.py index 1c61e9f4c..b8e490da2 100755 --- a/build/rust/rustc_wrapper.py +++ b/build/rust/rustc_wrapper.py @@ -7,6 +7,7 @@ import argparse import pathlib import subprocess +import shlex import os import sys import re @@ -141,6 +142,7 @@ def main(): parser.add_argument('--depfile', required=True, type=pathlib.Path) parser.add_argument('--rsp', type=pathlib.Path, required=True) parser.add_argument('--target-windows', action='store_true') + parser.add_argument('-v', action='store_true') parser.add_argument('args', metavar='ARG', nargs='+') args = parser.parse_args() @@ -191,9 +193,13 @@ def main(): fixed_env_vars.append(k) try: + if args.v: + print(' '.join(f'{k}={shlex.quote(v)}' for k, v in env.items()), + args.rustc, shlex.join(rustc_args)) r = subprocess.run([args.rustc, *rustc_args], env=env, check=False) finally: - os.remove(out_rsp) + if not args.v: + os.remove(out_rsp) if r.returncode != 0: sys.exit(r.returncode) diff --git a/build/rust/std/BUILD.gn.hbs b/build/rust/std/BUILD.gn.hbs index 9f3b4d365..590047148 100644 --- a/build/rust/std/BUILD.gn.hbs +++ b/build/rust/std/BUILD.gn.hbs @@ -7,8 +7,8 @@ import("//build/rust/cargo_crate.gni") {{#each rules}} -cargo_crate("{{this.0}}") { - {{#with this.1.concrete}} +{{#with this.detail}} +cargo_crate("{{../name}}") { crate_type = "{{crate_type}}" crate_root = "{{crate_root}}" sources = [ diff --git a/build/rust/std/gnrt_config.toml b/build/rust/std/gnrt_config.toml index 96a9a6ef3..f99685bba 100644 --- a/build/rust/std/gnrt_config.toml +++ b/build/rust/std/gnrt_config.toml @@ -3,6 +3,12 @@ # found in the LICENSE file. # Provides per-crate and overall configuration options to gnrt. +# +# Most commonly needed configuration options can be found in the top-level doc +# comment in //third_party/rust/chromium_crates_io/gnrt_config.toml. As a +# fallback, one may also read the doc comments in +# `//tools/crates/gnrt/lib/config.rs` (e.g. `CrateConfig`'s fields correspond +# to per-crate options). [resolve] # There is a virtual "sysroot" crate that includes all sysroot libraries as diff --git a/build/rust/std/rules/BUILD.gn b/build/rust/std/rules/BUILD.gn index b2aedf483..e368997bf 100644 --- a/build/rust/std/rules/BUILD.gn +++ b/build/rust/std/rules/BUILD.gn @@ -261,174 +261,174 @@ cargo_crate("cfg_if") { } cargo_crate("compiler_builtins") { crate_type = "rlib" - crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/lib.rs" + crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/lib.rs" sources = [ - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/aarch64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/aarch64_linux.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/arm.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/arm_linux.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/add.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/cmp.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/conv.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/div.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/extend.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/mul.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/pow.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/sub.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/float/trunc.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/addsub.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/leading_zeros.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/mul.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/sdiv.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/shift.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/specialized_div_rem/asymmetric.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/specialized_div_rem/binary_long.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/specialized_div_rem/delegate.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/specialized_div_rem/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/specialized_div_rem/norm_shift.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/specialized_div_rem/trifecta.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/int/udiv.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/lib.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/macros.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/math.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/mem/impls.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/mem/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/mem/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/probestack.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/riscv.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/x86.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/aarch64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/aarch64_linux.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/arm.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/arm_linux.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/add.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/cmp.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/conv.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/div.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/extend.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/mul.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/pow.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/sub.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/float/trunc.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/addsub.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/leading_zeros.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/mul.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/sdiv.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/shift.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/specialized_div_rem/asymmetric.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/specialized_div_rem/binary_long.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/specialized_div_rem/delegate.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/specialized_div_rem/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/specialized_div_rem/norm_shift.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/specialized_div_rem/trifecta.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/int/udiv.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/lib.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/macros.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/math.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/mem/impls.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/mem/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/mem/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/probestack.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/riscv.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/x86.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/x86_64.rs", ] inputs = [ - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/acos.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/acosf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/acosh.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/acoshf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/asin.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/asinf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/asinh.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/asinhf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/atan.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/atan2.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/atan2f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/atanf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/atanh.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/atanhf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/cbrt.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/cbrtf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/ceil.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/ceilf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/copysign.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/copysignf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/cos.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/cosf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/cosh.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/coshf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/erf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/erff.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/exp.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/exp10.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/exp10f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/exp2.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/exp2f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/expf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/expm1.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/expm1f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/expo2.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fabs.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fabsf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fdim.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fdimf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fenv.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/floor.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/floorf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fma.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fmaf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fmax.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fmaxf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fmin.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fminf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fmod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/fmodf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/frexp.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/frexpf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/hypot.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/hypotf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/ilogb.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/ilogbf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/j0.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/j0f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/j1.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/j1f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/jn.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/jnf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/k_cos.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/k_cosf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/k_expo2.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/k_expo2f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/k_sin.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/k_sinf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/k_tan.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/k_tanf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/ldexp.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/ldexpf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/lgamma.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/lgamma_r.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/lgammaf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/lgammaf_r.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/log.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/log10.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/log10f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/log1p.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/log1pf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/log2.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/log2f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/logf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/modf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/modff.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/nextafter.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/nextafterf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/pow.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/powf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/rem_pio2.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/rem_pio2_large.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/rem_pio2f.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/remainder.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/remainderf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/remquo.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/remquof.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/rint.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/rintf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/round.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/roundf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/scalbn.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/scalbnf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/sin.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/sincos.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/sincosf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/sinf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/sinh.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/sinhf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/sqrt.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/sqrtf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/tan.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/tanf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/tanh.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/tanhf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/tgamma.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/tgammaf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/trunc.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/src/../libm/src/math/truncf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/acos.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/acosf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/acosh.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/acoshf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/asin.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/asinf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/asinh.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/asinhf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/atan.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/atan2.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/atan2f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/atanf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/atanh.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/atanhf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/cbrt.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/cbrtf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/ceil.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/ceilf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/copysign.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/copysignf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/cos.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/cosf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/cosh.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/coshf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/erf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/erff.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/exp.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/exp10.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/exp10f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/exp2.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/exp2f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/expf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/expm1.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/expm1f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/expo2.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fabs.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fabsf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fdim.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fdimf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fenv.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/floor.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/floorf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fma.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fmaf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fmax.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fmaxf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fmin.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fminf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fmod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/fmodf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/frexp.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/frexpf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/hypot.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/hypotf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/ilogb.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/ilogbf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/j0.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/j0f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/j1.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/j1f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/jn.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/jnf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/k_cos.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/k_cosf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/k_expo2.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/k_expo2f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/k_sin.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/k_sinf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/k_tan.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/k_tanf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/ldexp.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/ldexpf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/lgamma.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/lgamma_r.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/lgammaf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/lgammaf_r.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/log.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/log10.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/log10f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/log1p.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/log1pf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/log2.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/log2f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/logf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/modf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/modff.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/nextafter.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/nextafterf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/pow.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/powf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/rem_pio2.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/rem_pio2_large.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/rem_pio2f.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/remainder.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/remainderf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/remquo.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/remquof.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/rint.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/rintf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/round.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/roundf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/scalbn.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/scalbnf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/sin.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/sincos.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/sincosf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/sinf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/sinh.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/sinhf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/sqrt.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/sqrtf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/tan.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/tanf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/tanh.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/tanhf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/tgamma.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/tgammaf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/trunc.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/src/../libm/src/math/truncf.rs", ] no_std = true # Unit tests skipped. Generate with --with-tests to include them. build_native_rust_unit_tests = false edition = "2018" - cargo_pkg_version = "0.1.101" + cargo_pkg_version = "0.1.103" cargo_pkg_authors = "Jorge Aparicio <japaricious@gmail.com>" cargo_pkg_name = "compiler_builtins" cargo_pkg_description = "Compiler intrinsics used by the Rust compiler. Also available for other targets if necessary!" @@ -452,9 +452,8 @@ cargo_crate("compiler_builtins") { "rustc-dep-of-std", "weak-intrinsics", ] - build_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/build.rs" - build_sources = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.101/build.rs" ] - build_deps = [] + build_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/build.rs" + build_sources = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/compiler_builtins-0.1.103/build.rs" ] rustenv = [ "CFG_DISABLE_UNSTABLE_FEATURES=0", "STD_ENV_ARCH=$rust_target_arch", @@ -528,6 +527,8 @@ cargo_crate("core") { "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/internal_macros.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/intrinsics.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/intrinsics/mir.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/io/borrowed_buf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/io/mod.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/adapters/array_chunks.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/adapters/by_ref_sized.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/core/src/iter/adapters/chain.rs", @@ -1148,237 +1149,239 @@ cargo_crate("hashbrown") { } cargo_crate("libc") { crate_type = "rlib" - crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/lib.rs" + crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/lib.rs" sources = [ - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/fixed_width_ints.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/fuchsia/aarch64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/fuchsia/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/fuchsia/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/fuchsia/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/fuchsia/riscv64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/fuchsia/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/hermit/aarch64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/hermit/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/hermit/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/lib.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/macros.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/psp.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/sgx.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/solid/aarch64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/solid/arm.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/solid/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/switch.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/teeos/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/aix/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/aix/powerpc64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/b32/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/b32/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/b64/aarch64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/b64/aarch64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/b64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/b64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/b64/x86_64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/b64/x86_64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/long_array.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/apple/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/dragonfly/errno.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/dragonfly/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/aarch64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/arm.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/powerpc.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/riscv64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/x86.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/freebsdlike/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/netbsd/aarch64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/netbsd/arm.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/netbsd/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/netbsd/powerpc.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/netbsd/sparc64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/netbsd/x86.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/netbsd/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/aarch64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/arm.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/mips64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/powerpc.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/riscv64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/sparc64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/x86.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/bsd/netbsdlike/openbsd/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/haiku/b32.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/haiku/b64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/haiku/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/haiku/native.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/haiku/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/hurd/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/hurd/b32.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/hurd/b64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/hurd/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/hurd/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b32/arm.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b32/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b32/x86/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b32/x86/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b64/aarch64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b64/aarch64/int128.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b64/aarch64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b64/riscv64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b64/riscv64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b64/x86_64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/b64/x86_64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/android/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/emscripten/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/emscripten/lfs64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/emscripten/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/emscripten/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/arch/generic/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/arch/mips/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/arch/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/arch/powerpc/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/arch/sparc/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/arm/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/arm/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/csky/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/csky/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/m68k/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/mips/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/mips/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/powerpc.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/sparc/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/x86/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b32/x86/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/mips64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/s390x.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/gnu/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/arm/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/arm/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/hexagon.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/mips/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/mips/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/powerpc.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/riscv32/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/x86/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b32/x86/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/aarch64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/mips64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/powerpc64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/riscv64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/s390x.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/x86_64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/lfs64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/musl/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/non_exhaustive.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/arm/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/arm/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/arm/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/mips/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/x86_64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/linux/uclibc/x86_64/other.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/linux_like/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/aarch64/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/arm/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/espidf/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/generic.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/horizon/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/powerpc/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/newlib/vita/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/no_align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/nto/aarch64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/nto/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/nto/neutrino.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/nto/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/redox/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/solarish/compat.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/solarish/illumos.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/solarish/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/solarish/solaris.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/solarish/x86.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/solarish/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/unix/solarish/x86_common.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/vxworks/aarch64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/vxworks/arm.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/vxworks/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/vxworks/powerpc.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/vxworks/powerpc64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/vxworks/x86.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/vxworks/x86_64.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/wasi.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/windows/gnu/align.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/windows/gnu/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/windows/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/windows/msvc/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/src/xous.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/fixed_width_ints.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/fuchsia/aarch64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/fuchsia/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/fuchsia/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/fuchsia/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/fuchsia/riscv64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/fuchsia/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/hermit/aarch64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/hermit/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/hermit/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/lib.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/macros.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/psp.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/sgx.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/solid/aarch64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/solid/arm.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/solid/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/switch.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/teeos/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/aix/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/aix/powerpc64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/b32/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/b32/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/b64/aarch64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/b64/aarch64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/b64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/b64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/b64/x86_64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/b64/x86_64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/long_array.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/apple/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/dragonfly/errno.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/dragonfly/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/aarch64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/arm.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd11/b64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd12/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd13/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/freebsd14/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/powerpc.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/riscv64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/x86.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/x86_64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/freebsd/x86_64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/freebsdlike/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/netbsd/aarch64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/netbsd/arm.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/netbsd/mips.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/netbsd/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/netbsd/powerpc.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/netbsd/riscv64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/netbsd/sparc64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/netbsd/x86.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/netbsd/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/aarch64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/arm.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/mips64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/powerpc.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/powerpc64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/riscv64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/sparc64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/x86.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/bsd/netbsdlike/openbsd/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/haiku/b32.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/haiku/b64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/haiku/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/haiku/native.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/haiku/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/hurd/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/hurd/b32.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/hurd/b64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/hurd/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/hurd/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b32/arm.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b32/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b32/x86/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b32/x86/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b64/aarch64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b64/aarch64/int128.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b64/aarch64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b64/riscv64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b64/riscv64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b64/x86_64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/b64/x86_64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/android/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/emscripten/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/emscripten/lfs64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/emscripten/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/emscripten/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/arch/generic/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/arch/mips/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/arch/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/arch/powerpc/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/arch/sparc/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/arm/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/arm/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/csky/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/csky/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/m68k/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/mips/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/mips/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/powerpc.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/riscv32/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/sparc/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/x86/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b32/x86/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/aarch64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/aarch64/fallback.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/aarch64/ilp32.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/aarch64/int128.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/aarch64/lp64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/loongarch64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/mips64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/powerpc64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/riscv64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/s390x.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/sparc64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/x86_64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/x86_64/not_x32.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/b64/x86_64/x32.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/gnu/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/arm/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/arm/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/hexagon.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/mips/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/mips/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/powerpc.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/riscv32/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/riscv32/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/x86/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b32/x86/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/aarch64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/aarch64/int128.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/mips64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/powerpc64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/riscv64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/s390x.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/x86_64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/lfs64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/non_exhaustive.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/arm/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/arm/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/arm/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/mips/mips32/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/mips/mips32/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/mips/mips64/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/mips/mips64/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/mips/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/x86_64/l4re.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/x86_64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/linux/uclibc/x86_64/other.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/linux_like/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/aarch64/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/arm/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/espidf/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/generic.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/horizon/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/powerpc/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/newlib/vita/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/no_align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/nto/aarch64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/nto/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/nto/neutrino.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/nto/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/redox/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/solarish/compat.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/solarish/illumos.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/solarish/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/solarish/solaris.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/solarish/x86.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/solarish/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/unix/solarish/x86_common.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/vxworks/aarch64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/vxworks/arm.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/vxworks/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/vxworks/powerpc.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/vxworks/powerpc64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/vxworks/x86.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/vxworks/x86_64.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/wasi.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/windows/gnu/align.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/windows/gnu/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/windows/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/windows/msvc/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/src/xous.rs", ] inputs = [] no_std = true @@ -1386,7 +1389,7 @@ cargo_crate("libc") { # Unit tests skipped. Generate with --with-tests to include them. build_native_rust_unit_tests = false edition = "2015" - cargo_pkg_version = "0.2.149" + cargo_pkg_version = "0.2.150" cargo_pkg_authors = "The Rust Project Developers" cargo_pkg_name = "libc" cargo_pkg_description = "Raw FFI bindings to platform libraries like libc." @@ -1406,9 +1409,8 @@ cargo_crate("libc") { "rustc-dep-of-std", "rustc-std-workspace-core", ] - build_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/build.rs" - build_sources = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.149/build.rs" ] - build_deps = [] + build_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/build.rs" + build_sources = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/libc-0.2.150/build.rs" ] rustenv = [ "CFG_DISABLE_UNSTABLE_FEATURES=0", "STD_ENV_ARCH=$rust_target_arch", @@ -1492,7 +1494,6 @@ cargo_crate("memchr") { ] build_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/memchr-2.5.0/build.rs" build_sources = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/memchr-2.5.0/build.rs" ] - build_deps = [] rustenv = [ "CFG_DISABLE_UNSTABLE_FEATURES=0", "STD_ENV_ARCH=$rust_target_arch", @@ -1564,80 +1565,80 @@ cargo_crate("miniz_oxide") { } cargo_crate("object") { crate_type = "rlib" - crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/lib.rs" + crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/lib.rs" sources = [ - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/archive.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/common.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/elf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/endian.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/lib.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/macho.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/pe.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/pod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/any.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/archive.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/coff/comdat.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/coff/file.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/coff/import.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/coff/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/coff/relocation.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/coff/section.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/coff/symbol.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/attributes.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/comdat.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/compression.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/dynamic.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/file.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/hash.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/note.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/relocation.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/section.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/segment.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/symbol.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/elf/version.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/macho/dyld_cache.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/macho/fat.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/macho/file.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/macho/load_command.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/macho/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/macho/relocation.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/macho/section.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/macho/segment.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/macho/symbol.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/pe/data_directory.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/pe/export.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/pe/file.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/pe/import.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/pe/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/pe/relocation.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/pe/resource.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/pe/rich.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/pe/section.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/read_cache.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/read_ref.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/traits.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/util.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/wasm.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/xcoff/comdat.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/xcoff/file.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/xcoff/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/xcoff/relocation.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/xcoff/section.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/xcoff/segment.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/read/xcoff/symbol.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/coff.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/elf/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/elf/object.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/elf/writer.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/macho.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/mod.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/pe.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/string.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/util.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/write/xcoff.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.0/src/xcoff.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/archive.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/common.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/elf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/endian.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/lib.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/macho.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/pe.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/pod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/any.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/archive.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/coff/comdat.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/coff/file.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/coff/import.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/coff/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/coff/relocation.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/coff/section.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/coff/symbol.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/attributes.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/comdat.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/compression.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/dynamic.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/file.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/hash.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/note.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/relocation.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/section.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/segment.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/symbol.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/elf/version.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/macho/dyld_cache.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/macho/fat.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/macho/file.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/macho/load_command.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/macho/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/macho/relocation.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/macho/section.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/macho/segment.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/macho/symbol.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/pe/data_directory.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/pe/export.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/pe/file.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/pe/import.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/pe/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/pe/relocation.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/pe/resource.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/pe/rich.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/pe/section.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/read_cache.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/read_ref.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/traits.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/util.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/wasm.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/xcoff/comdat.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/xcoff/file.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/xcoff/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/xcoff/relocation.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/xcoff/section.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/xcoff/segment.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/read/xcoff/symbol.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/coff.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/elf/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/elf/object.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/elf/writer.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/macho.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/pe.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/string.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/util.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/write/xcoff.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/vendor/object-0.32.1/src/xcoff.rs", ] inputs = [] no_std = true @@ -1645,7 +1646,7 @@ cargo_crate("object") { # Unit tests skipped. Generate with --with-tests to include them. build_native_rust_unit_tests = false edition = "2018" - cargo_pkg_version = "0.32.0" + cargo_pkg_version = "0.32.1" cargo_pkg_name = "object" cargo_pkg_description = "A unified interface for reading and writing object file formats." @@ -2037,6 +2038,8 @@ cargo_crate("std") { "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/ffi/os_str/tests.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/fs.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/fs/tests.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/hash/mod.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/hash/random.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/buffered/bufreader.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/buffered/bufreader/buffer.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/buffered/bufwriter.rs", @@ -2056,8 +2059,6 @@ cargo_crate("std") { "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/impls/tests.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/mod.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/prelude.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/readbuf.rs", - "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/readbuf/tests.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/stdio.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/stdio/tests.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/io/tests.rs", @@ -2459,6 +2460,7 @@ cargo_crate("std") { "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/wasm/mod.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/windows/alloc.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/windows/alloc/tests.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/windows/api.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/windows/args.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/windows/args/tests.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/sys/windows/c.rs", @@ -2555,6 +2557,7 @@ cargo_crate("std") { "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/dbghelp.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/coff.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/elf.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/libs_aix.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/libs_dl_iterate_phdr.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/libs_haiku.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/libs_illumos.rs", @@ -2567,6 +2570,7 @@ cargo_crate("std") { "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/mmap_windows.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/parse_running_mmaps_unix.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/stash.rs", + "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli/xcoff.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/gimli.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/miri.rs", "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/src/../../backtrace/src/symbolize/mod.rs", @@ -2648,7 +2652,6 @@ cargo_crate("std") { build_sources = [ "//third_party/rust-toolchain/lib/rustlib/src/rust/library/std/build.rs", ] - build_deps = [] rustenv = [ "CFG_DISABLE_UNSTABLE_FEATURES=0", "STD_ENV_ARCH=$rust_target_arch", diff --git a/build/rust/tests/test_rust_calling_cpp/rust_calling_cpp_rlib.rs b/build/rust/tests/test_rust_calling_cpp/rust_calling_cpp_rlib.rs index 9a3bd1706..54557e455 100644 --- a/build/rust/tests/test_rust_calling_cpp/rust_calling_cpp_rlib.rs +++ b/build/rust/tests/test_rust_calling_cpp/rust_calling_cpp_rlib.rs @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#[allow(unsafe_op_in_unsafe_fn)] #[cxx::bridge] mod ffi { extern "Rust" { diff --git a/build/rust/tests/test_rust_shared_library/src/lib.rs b/build/rust/tests/test_rust_shared_library/src/lib.rs index 2fa77c31d..b813b7749 100644 --- a/build/rust/tests/test_rust_shared_library/src/lib.rs +++ b/build/rust/tests/test_rust_shared_library/src/lib.rs @@ -2,10 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Requires this allow since cxx generates unsafe code. -// -// TODO(crbug.com/1422745): patch upstream cxx to generate compatible code. -#[allow(unsafe_op_in_unsafe_fn)] #[cxx::bridge] mod ffi { pub struct SomeStruct { diff --git a/build/rust/tests/test_rust_static_library/src/lib.rs b/build/rust/tests/test_rust_static_library/src/lib.rs index 1fcabe3f2..9fd9fe7b9 100644 --- a/build/rust/tests/test_rust_static_library/src/lib.rs +++ b/build/rust/tests/test_rust_static_library/src/lib.rs @@ -2,10 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Requires this allow since cxx generates unsafe code. -// -// TODO(crbug.com/1422745): patch upstream cxx to generate compatible code. -#[allow(unsafe_op_in_unsafe_fn)] #[cxx::bridge] mod ffi { pub struct SomeStruct { diff --git a/build/sanitizers/asan_suppressions.cc b/build/sanitizers/asan_suppressions.cc index 3bda1f370..314fc24f4 100644 --- a/build/sanitizers/asan_suppressions.cc +++ b/build/sanitizers/asan_suppressions.cc @@ -21,6 +21,7 @@ char kASanDefaultSuppressions[] = "odr_violation:^std::io::\n" "odr_violation:^std::panicking::\n" "odr_violation:^read_fonts::tables::\n" + "odr_violation:^std_detect::detect::cache::\n" // End of suppressions. // PLEASE READ ABOVE BEFORE ADDING NEW SUPPRESSIONS. diff --git a/build/toolchain/concurrent_links.gni b/build/toolchain/concurrent_links.gni index e3590228e..815314dbc 100644 --- a/build/toolchain/concurrent_links.gni +++ b/build/toolchain/concurrent_links.gni @@ -82,6 +82,10 @@ if (concurrent_links == -1) { # could be optimized (maybe to 12GB or for different configs like # component build). _args = [ "--mem_per_link_gb=16" ] + } else if (is_chromeos && is_msan) { + # crbug.com/1505350 - CrOS MSan builder consumes more memory and crushes. + # Max 25.2GB, Avg: 9.4GB, Median: 7.9GB + _args = [ "--mem_per_link_gb=12" ] } else { _args = [] } diff --git a/build/toolchain/toolchain.gni b/build/toolchain/toolchain.gni index 917095996..23ec903ad 100644 --- a/build/toolchain/toolchain.gni +++ b/build/toolchain/toolchain.gni @@ -5,8 +5,8 @@ # Toolchain-related configuration that may be needed outside the context of the # toolchain() rules themselves. +import("//build/config/cast.gni") import("//build/config/chrome_build.gni") -import("//build/config/chromecast_build.gni") import("//build_overrides/build.gni") declare_args() { diff --git a/build/toolchain/win/toolchain.gni b/build/toolchain/win/toolchain.gni index 19d1c9212..4ade3ba45 100644 --- a/build/toolchain/win/toolchain.gni +++ b/build/toolchain/win/toolchain.gni @@ -315,15 +315,17 @@ template("msvc_toolchain") { ml_py = rebase_path("//build/toolchain/win/ml.py", root_build_dir) ml = "\"$python_path\" $ml_py $ml" } - } - if (toolchain_args.current_cpu != "arm64" || toolchain_is_clang) { - # TODO(thakis): Stop using asm-wrapper when using clang. - command = "\"$python_path\" $_tool_wrapper_path asm-wrapper $env $ml {{defines}} {{include_dirs}} {{asmflags}} {{source}}" + + if (toolchain_args.current_cpu == "arm64") { + # armasm64.exe does not support definitions passed via the command + # line. (Fortunately, they're not needed for compiling the V8 + # snapshot, which is the only time this assembler is required.) + command = "\"$python_path\" $_tool_wrapper_path asm-wrapper $env $ml {{include_dirs}} {{asmflags}} {{source}}" + } else { + command = "\"$python_path\" $_tool_wrapper_path asm-wrapper $env $ml {{defines}} {{include_dirs}} {{asmflags}} {{source}}" + } } else { - # armasm64.exe does not support definitions passed via the command - # line. (Fortunately, they're not needed for compiling the V8 - # snapshot, which is the only time this assembler is required.) - command = "\"$python_path\" $_tool_wrapper_path asm-wrapper $env $ml {{include_dirs}} {{asmflags}} {{source}}" + command = "$ml {{defines}} {{include_dirs}} {{asmflags}} {{source}}" } description = "ASM {{output}}" diff --git a/build/util/LASTCHANGE b/build/util/LASTCHANGE index c7645123b..1d82799d0 100644 --- a/build/util/LASTCHANGE +++ b/build/util/LASTCHANGE @@ -1,2 +1,2 @@ -LASTCHANGE=d4c777abddceeca0bb15facf4159bda52b1c203c-refs/branch-heads/6103@{#4} -LASTCHANGE_YEAR=2023 +LASTCHANGE=4b7cc55f9aca1fe017b847e8e10091161961ddab-refs/branch-heads/6167@{#1425} +LASTCHANGE_YEAR=2024 diff --git a/build/util/LASTCHANGE.committime b/build/util/LASTCHANGE.committime index 55dcd8e6e..08589b23d 100644 --- a/build/util/LASTCHANGE.committime +++ b/build/util/LASTCHANGE.committime @@ -1 +1 @@ -1699011758
\ No newline at end of file +1705445157
\ No newline at end of file diff --git a/build/util/lastchange.py b/build/util/lastchange.py index 98a6360b4..d1be27d5a 100755 --- a/build/util/lastchange.py +++ b/build/util/lastchange.py @@ -78,6 +78,7 @@ def _RunGitCommand(directory, command): stdout, stderr = tuple(x.decode(encoding='utf_8') for x in proc.communicate()) stdout = stdout.strip() + stderr = stderr.strip() logging.debug("returncode: %d", proc.returncode) logging.debug("stdout: %s", stdout) logging.debug("stderr: %s", stderr) @@ -276,14 +277,16 @@ def main(argv=None): sys.exit(2) source_dir = args.source_dir or os.path.dirname(os.path.abspath(__file__)) + + git_top_dir = None try: git_top_dir = GetGitTopDirectory(source_dir) except GitError as e: - logging.error("Failed to get git top directory from '%s': %s", - source_dir, e) - return 2 + logging.warning("Failed to get git top directory from '%s': %s", source_dir, + e) - if args.merge_base_ref: + merge_base_sha = 'HEAD' + if git_top_dir and args.merge_base_ref: try: merge_base_sha = GetMergeBase(git_top_dir, args.merge_base_ref) except GitError as e: @@ -291,18 +294,24 @@ def main(argv=None): "merge base could be found between it and HEAD. Git " "reports: %s", args.merge_base_ref, e) return 3 - else: - merge_base_sha = 'HEAD' - try: - version_info = FetchGitRevision(git_top_dir, commit_filter, merge_base_sha) - except GitError as e: - logging.error("Failed to get version info: %s", e) - logging.info(("Falling back to a version of 0.0.0 to allow script to " + version_info = None + if git_top_dir: + try: + version_info = FetchGitRevision(git_top_dir, commit_filter, + merge_base_sha) + except GitError as e: + logging.error("Failed to get version info: %s", e) + + if not version_info: + logging.warning( + "Falling back to a version of 0.0.0 to allow script to " "finish. This is normal if you are bootstrapping a new environment " "or do not have a git repository for any other reason. If not, this " - "could represent a serious error.")) - version_info = VersionInfo('0', '0', 0) + "could represent a serious error.") + # Use a dummy revision that has the same length as a Git commit hash, + # same as what we use in build/util/LASTCHANGE.dummy. + version_info = VersionInfo('0' * 40, '0' * 40, 0) revision_string = version_info.revision if args.revision_id_only: diff --git a/build/util/process_version.gni b/build/util/process_version.gni index cd9671ccd..90d921e4c 100644 --- a/build/util/process_version.gni +++ b/build/util/process_version.gni @@ -40,6 +40,9 @@ import("//build/util/lastchange.gni") # doesn't attempt to link the result into a source set. This is for if # you are processing the version as data only. # +# executable (optional, defaults to false) +# Sets the executable bit on the output file (POSIX only). +# # visibility (optional) # # Example: @@ -92,6 +95,10 @@ template("process_version") { } } + if (defined(invoker.executable) && invoker.executable) { + args += [ "-x" ] + } + if (defined(invoker.extra_args)) { args += invoker.extra_args } diff --git a/build/util/version.py b/build/util/version.py index 9bf51cd35..30d3a5d1b 100755 --- a/build/util/version.py +++ b/build/util/version.py @@ -95,25 +95,29 @@ def SubstFile(file_name, values): This is like SubstTemplate, except it operates on a file. """ - template = open(file_name, 'r').read() + with open(file_name, 'r') as f: + template = f.read() return SubstTemplate(template, values) -def WriteIfChanged(file_name, contents): +def WriteIfChanged(file_name, contents, mode): """ Writes the specified contents to the specified file_name. Does nothing if the contents aren't different than the current contents. """ try: - old_contents = open(file_name, 'r').read() + with open(file_name, 'r') as f: + old_contents = f.read() except EnvironmentError: pass else: - if contents == old_contents: + if contents == old_contents and mode == os.lstat(file_name).st_mode: return os.unlink(file_name) - open(file_name, 'w').write(contents) + with open(file_name, 'w') as f: + f.write(contents) + os.chmod(file_name, mode) def BuildParser(): @@ -127,6 +131,11 @@ def BuildParser(): help='Write substituted strings to FILE.') parser.add_argument('-t', '--template', default=None, help='Use TEMPLATE as the strings to substitute.') + parser.add_argument('-x', + '--executable', + default=False, + action='store_true', + help='Set the executable bit on the output (on POSIX).') parser.add_argument( '-e', '--eval', @@ -231,6 +240,18 @@ OFFICIAL_BUILD=%(OFFICIAL_BUILD)s """ % values +def GenerateOutputMode(options): + """Construct output mode (e.g. from template). + + Arguments: + options -- argparse parsed arguments + """ + if options.executable: + return 0o755 + else: + return 0o644 + + def BuildOutput(args): """Gets all input and output values needed for writing output.""" # Build argparse parser with arguments @@ -245,17 +266,18 @@ def BuildOutput(args): # Get the raw values that will be used the generate the output values = GenerateValues(options, evals) - # Get the output string + # Get the output string and mode contents = GenerateOutputContents(options, values) + mode = GenerateOutputMode(options) - return {'options': options, 'contents': contents} + return {'options': options, 'contents': contents, 'mode': mode} -def main(): - output = BuildOutput(sys.argv[1:]) +def main(args): + output = BuildOutput(args) if output['options'].output is not None: - WriteIfChanged(output['options'].output, output['contents']) + WriteIfChanged(output['options'].output, output['contents'], output['mode']) else: print(output['contents']) @@ -263,4 +285,4 @@ def main(): if __name__ == '__main__': - sys.exit(main()) + sys.exit(main(sys.argv[1:])) diff --git a/build/util/version_test.py b/build/util/version_test.py index f9b468f05..7ad587336 100644 --- a/build/util/version_test.py +++ b/build/util/version_test.py @@ -3,6 +3,7 @@ # found in the LICENSE file. import os +import tempfile import unittest import mock @@ -159,6 +160,23 @@ class _VersionTest(unittest.TestCase): self.assertEqual(cm.exception.code, 2) + def testSetExecutable(self): + """Assert that -x sets executable on POSIX and is harmless on Windows.""" + with tempfile.TemporaryDirectory() as tmpdir: + in_file = os.path.join(tmpdir, "in") + out_file = os.path.join(tmpdir, "out") + with open(in_file, "w") as f: + f.write("") + self.assertEqual(version.main(['-i', in_file, '-o', out_file, '-x']), 0) + + # Whether lstat(out_file).st_mode has the executable bits set is + # platform-specific. Therefore, test that out_file has the same + # permissions that in_file would have after chmod(in_file, 0o755). + # On Windows: both files will have 0o666. + # On POSIX: both files will have 0o755. + os.chmod(in_file, 0o755) # On Windows, this sets in_file to 0o666. + self.assertEqual(os.lstat(in_file).st_mode, os.lstat(out_file).st_mode) + if __name__ == '__main__': unittest.main() diff --git a/build/whitespace_file.txt b/build/whitespace_file.txt index 0b2330114..30daae276 100644 --- a/build/whitespace_file.txt +++ b/build/whitespace_file.txt @@ -194,7 +194,7 @@ And you know you're going to fall Tell 'em a hookah-smoking caterpillar Isn't it supposed to be a whitespace file? -Let's add some " ". +Let's add some " ". I'll join to add my first commit here. P. S. It has stopped being a story long long ago. |