mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 16:37:43 +00:00
3fa4194008
Make the offsets extracted reflect changes in classes that have fields that do not exist in product mode, since it affects the entity size. Change-Id: I0ec277663ba3ddc956ca651ccc0395e39ba185f9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133229 Reviewed-by: Martin Kustermann <kustermann@google.com> Commit-Queue: Victor Agnez Lima <victoragnez@google.com>
70 lines
2.2 KiB
Bash
Executable file
70 lines
2.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
|
|
# for details. All rights reserved. Use of this source code is governed by a
|
|
# BSD-style license that can be found in the LICENSE file.
|
|
|
|
set -e
|
|
|
|
FILE="runtime/vm/compiler/runtime_offsets_extracted.h"
|
|
|
|
# Make sure we're running in the SDK directory.
|
|
if ! test -f "$FILE"; then
|
|
echo "Couldn't find $FILE"
|
|
echo "Make sure to run this script from the Dart SDK directory."
|
|
exit 1
|
|
fi
|
|
|
|
# We're regenerating the file, but we want to keep all the comments etc at the
|
|
# top of the file. So just delete everything after the first "#if defined".
|
|
LINE=$(grep "#if " "$FILE" -n | head -n 1 | sed "s/^\([0-9]*\):.*/\1/")
|
|
TEMP="${FILE}.temp"
|
|
TEMP_HEADER="${FILE}.header.temp"
|
|
TEMP_JIT="${FILE}.jit.temp"
|
|
TEMP_AOT="${FILE}.aot.temp"
|
|
head -n $(expr $LINE - 1) "$FILE" >"$TEMP_HEADER"
|
|
|
|
# Run offsets_extractor for every architecture and append the results.
|
|
run() {
|
|
tools/gn.py --mode=$1 --arch=$2
|
|
tools/build.py --mode=$1 --arch=$2 offsets_extractor offsets_extractor_precompiled_runtime
|
|
echo "" >>"$TEMP_JIT"
|
|
out/$3/offsets_extractor >>"$TEMP_JIT"
|
|
echo "" >>"$TEMP_AOT"
|
|
out/$3/offsets_extractor_precompiled_runtime >>"$TEMP_AOT"
|
|
}
|
|
echo "" >>"$TEMP_JIT"
|
|
echo "" >>"$TEMP_AOT"
|
|
echo "#if !defined(PRODUCT)" >>"$TEMP_JIT"
|
|
echo "#if !defined(PRODUCT)" >>"$TEMP_AOT"
|
|
run release simarm ReleaseSIMARM
|
|
run release x64 ReleaseX64
|
|
run release ia32 ReleaseIA32
|
|
run release simarm64 ReleaseSIMARM64
|
|
echo "" >>"$TEMP_JIT"
|
|
echo "" >>"$TEMP_AOT"
|
|
echo "#else // !defined(PRODUCT)" >>"$TEMP_JIT"
|
|
echo "#else // !defined(PRODUCT)" >>"$TEMP_AOT"
|
|
run product simarm ProductSIMARM
|
|
run product x64 ProductX64
|
|
run product ia32 ProductIA32
|
|
run product simarm64 ProductSIMARM64
|
|
echo "" >>"$TEMP_JIT"
|
|
echo "" >>"$TEMP_AOT"
|
|
echo "#endif // !defined(PRODUCT)" >>"$TEMP_JIT"
|
|
echo "#endif // !defined(PRODUCT)" >>"$TEMP_AOT"
|
|
|
|
cat $TEMP_HEADER >>"$TEMP"
|
|
cat $TEMP_JIT >>"$TEMP"
|
|
cat $TEMP_AOT >>"$TEMP"
|
|
|
|
echo "" >>"$TEMP"
|
|
echo "#endif // RUNTIME_VM_COMPILER_RUNTIME_OFFSETS_EXTRACTED_H_" >>"$TEMP"
|
|
mv "$TEMP" "$FILE"
|
|
|
|
# Cleanup.
|
|
git cl format "$FILE"
|
|
rm "$TEMP_HEADER"
|
|
rm "$TEMP_JIT"
|
|
rm "$TEMP_AOT"
|
|
echo -e "\n\nSuccessfully generated $FILE :)"
|