summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorCronet Mainline Eng <cronet-mainline-eng+copybara@google.com>2024-01-24 19:13:11 +0000
committerChidera Olibie <colibie@google.com>2024-01-24 19:19:32 +0000
commitabce8a39488511c10b95ac52d1a3fdd2e886da83 (patch)
tree163cb3522692e4ac343079f490b3c29c97da116e /build
parentd14faf319d3e431654f149930db41f3e0adf2d15 (diff)
downloadcronet-abce8a39488511c10b95ac52d1a3fdd2e886da83.tar.gz
Import Cronet version 121.0.6167.71
FolderOrigin-RevId: /tmp/copybara-origin/src Change-Id: Ieee3d31a0e9c404daa9a1630919e62b52ce61d1b
Diffstat (limited to 'build')
-rw-r--r--build/BUILD.gn2
-rwxr-xr-xbuild/android/apk_operations.py17
-rw-r--r--build/android/bytecode/java/org/chromium/bytecode/ByteCodeRewriter.java8
-rw-r--r--build/android/bytecode/java/org/chromium/bytecode/EmptyOverrideGeneratorClassAdapter.java12
-rw-r--r--build/android/bytecode/java/org/chromium/bytecode/MethodCheckerClassAdapter.java11
-rw-r--r--build/android/bytecode/java/org/chromium/bytecode/ParentMethodCheckerClassAdapter.java10
-rw-r--r--build/android/bytecode/java/org/chromium/bytecode/TraceEventAdder.java57
-rw-r--r--build/android/bytecode/java/org/chromium/bytecode/TraceEventAdderClassAdapter.java15
-rw-r--r--build/android/bytecode/java/org/chromium/bytecode/TypeUtils.java1
-rw-r--r--build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestInstrumentationTestRunner.java73
-rw-r--r--build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/NativeTestIntent.java4
-rw-r--r--build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusIntent.java4
-rw-r--r--build/android/gtest_apk/java/src/org/chromium/build/gtest_apk/TestStatusReceiver.java6
-rwxr-xr-xbuild/android/gyp/apkbuilder.py20
-rwxr-xr-xbuild/android/gyp/create_app_bundle.py1
-rwxr-xr-xbuild/android/gyp/dex.py10
-rw-r--r--build/android/gyp/test/java/org/chromium/helloworld/HelloWorldMain.java1
-rw-r--r--build/android/gyp/test/java/org/chromium/helloworld/HelloWorldPrinter.java1
-rw-r--r--build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapAppComponentFactory.java4
-rw-r--r--build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapApplication.java47
-rw-r--r--build/android/incremental_install/java/org/chromium/incrementalinstall/BootstrapInstrumentation.java4
-rw-r--r--build/android/incremental_install/java/org/chromium/incrementalinstall/ClassLoaderPatcher.java48
-rw-r--r--build/android/incremental_install/java/org/chromium/incrementalinstall/LockFile.java56
-rw-r--r--build/android/incremental_install/java/org/chromium/incrementalinstall/Reflect.java37
-rw-r--r--build/android/incremental_install/java/org/chromium/incrementalinstall/SecondInstrumentation.java4
-rw-r--r--build/android/java/src/org/chromium/build/annotations/AlwaysInline.java4
-rw-r--r--build/android/java/src/org/chromium/build/annotations/DoNotStripLogs.java4
-rw-r--r--build/android/java/test/DefaultLocaleLintTest.java4
-rw-r--r--build/android/java/test/NewApiLintTest.java4
-rw-r--r--build/android/pylib/base/base_test_result.py16
-rw-r--r--build/android/pylib/device/commands/java/src/org/chromium/android/commands/unzip/Unzip.java5
-rw-r--r--build/android/pylib/local/emulator/avd.py7
-rw-r--r--build/android/stacktrace/java/org/chromium/build/FlushingReTrace.java145
-rw-r--r--build/build_config.h8
-rw-r--r--build/config/BUILD.gn2
-rw-r--r--build/config/BUILDCONFIG.gn2
-rw-r--r--build/config/android/BUILD.gn12
-rw-r--r--build/config/android/abi.gni3
-rw-r--r--build/config/android/config.gni9
-rw-r--r--build/config/android/rules.gni13
-rw-r--r--build/config/android/sdk.gni5
-rw-r--r--build/config/android/test/resource_overlay/java/src/org/chromium/build/resource_overlay/ResourceOverlayTest.java4
-rw-r--r--build/config/buildflags_paint_preview.gni2
-rw-r--r--build/config/c++/BUILD.gn9
-rw-r--r--build/config/c++/libc++.natvis8
-rw-r--r--build/config/cast.gni (renamed from build/config/chromecast_build.gni)2
-rw-r--r--build/config/chromecast/BUILD.gn2
-rw-r--r--build/config/clang/BUILD.gn6
-rw-r--r--build/config/compiler/BUILD.gn7
-rw-r--r--build/config/compiler/compiler.gni2
-rw-r--r--build/config/compiler/pgo/pgo.gni2
-rw-r--r--build/config/features.gni2
-rw-r--r--build/config/fuchsia/BUILD.gn2
-rw-r--r--build/config/fuchsia/generate_runner_scripts.gni2
-rw-r--r--build/config/gclient_args.gni2
-rw-r--r--build/config/ios/ios_test_runner_wrapper.gni31
-rw-r--r--build/config/ios/ios_test_runner_xcuitest.gni3
-rw-r--r--build/config/linux/atspi2/BUILD.gn13
-rw-r--r--build/config/linux/libdrm/BUILD.gn2
-rw-r--r--build/config/linux/libffi/BUILD.gn2
-rw-r--r--build/config/logging.gni19
-rw-r--r--build/config/ozone.gni2
-rw-r--r--build/config/rust.gni3
-rw-r--r--build/config/sanitizers/BUILD.gn10
-rw-r--r--build/config/sanitizers/sanitizers.gni7
-rw-r--r--build/config/siso/PRESUBMIT.py6
-rw-r--r--build/config/siso/android.star4
-rw-r--r--build/config/siso/blink_all.star5
-rw-r--r--build/config/siso/clang_windows.star2
-rw-r--r--build/config/siso/config.star6
-rw-r--r--build/config/siso/cros.star2
-rw-r--r--build/config/siso/devtools_frontend.star130
-rw-r--r--build/config/siso/linux.star52
-rw-r--r--build/config/siso/mac.star4
-rw-r--r--build/config/siso/main.star54
-rw-r--r--build/config/siso/mojo.star3
-rw-r--r--build/config/siso/reproxy.star77
-rw-r--r--build/config/siso/tsc.star55
-rw-r--r--build/config/siso/typescript_unix.star (renamed from build/config/siso/typescript_linux.star)0
-rw-r--r--build/config/siso/windows.star17
-rw-r--r--build/config/ui.gni2
-rw-r--r--build/config/win/BUILD.gn1
-rw-r--r--build/fuchsia/cipd/BUILD.gn9
-rw-r--r--build/fuchsia/linux_internal.sdk.sha12
-rw-r--r--build/fuchsia/test/boot_device.py10
-rwxr-xr-xbuild/fuchsia/test/coveragetest.py2
-rw-r--r--build/fuchsia/test/pylintrc5
-rwxr-xr-xbuild/fuchsia/test/serial_boot_device.py261
-rwxr-xr-xbuild/fuchsia/test/serial_boot_device_unittests.py111
-rw-r--r--build/gn_helpers.py7
-rwxr-xr-xbuild/gn_helpers_unittest.py2
-rwxr-xr-xbuild/install-build-deps.py3
-rw-r--r--build/nocompile.gni3
-rw-r--r--build/rust/BUILD.gn15
-rw-r--r--build/rust/rust_static_library.gni40
-rwxr-xr-xbuild/rust/rustc_wrapper.py8
-rw-r--r--build/rust/std/BUILD.gn.hbs4
-rw-r--r--build/rust/std/gnrt_config.toml6
-rw-r--r--build/rust/std/rules/BUILD.gn951
-rw-r--r--build/rust/tests/test_rust_calling_cpp/rust_calling_cpp_rlib.rs1
-rw-r--r--build/rust/tests/test_rust_shared_library/src/lib.rs4
-rw-r--r--build/rust/tests/test_rust_static_library/src/lib.rs4
-rw-r--r--build/sanitizers/asan_suppressions.cc1
-rw-r--r--build/toolchain/concurrent_links.gni4
-rw-r--r--build/toolchain/toolchain.gni2
-rw-r--r--build/toolchain/win/toolchain.gni18
-rw-r--r--build/util/LASTCHANGE4
-rw-r--r--build/util/LASTCHANGE.committime2
-rwxr-xr-xbuild/util/lastchange.py35
-rw-r--r--build/util/process_version.gni7
-rwxr-xr-xbuild/util/version.py44
-rw-r--r--build/util/version_test.py18
-rw-r--r--build/whitespace_file.txt2
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&lt;*&gt;">
+ <DisplayString Condition="!__engaged_">nullopt</DisplayString>
+ <DisplayString>{__val_}</DisplayString>
+ <Expand>
+ <ExpandedItem Condition="__engaged_">__val_</ExpandedItem>
+ </Expand>
+ </Type>
+
<Type Name="std::__Cr::priority_queue&lt;*&gt;">
<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.