From a8307017222a62b771daaa3d5e5a8f008bbaf673 Mon Sep 17 00:00:00 2001 From: Sophia Guo Date: Thu, 10 Oct 2024 12:54:29 -0400 Subject: [PATCH] update --- tooling/reproducible/repro_common.sh | 134 ++++++++++++-------------- tooling/reproducible/repro_compare.sh | 3 +- tooling/reproducible/repro_process.sh | 2 +- 3 files changed, 65 insertions(+), 74 deletions(-) diff --git a/tooling/reproducible/repro_common.sh b/tooling/reproducible/repro_common.sh index 0d247ad80..5648fef81 100755 --- a/tooling/reproducible/repro_common.sh +++ b/tooling/reproducible/repro_common.sh @@ -98,14 +98,12 @@ function removeSystemModulesHashBuilderParams() { FILES=$(find "${JDK_DIR}" -type f -name "$systemModule") for f in $FILES do + ff=$f if [[ "$OS" =~ CYGWIN* ]]; then ff=$(cygpath -w $f) - else - ff=$f fi "${work_JDK}"/bin/javap -v -sysinfo -l -p -c -s -constants "$ff" > "$f.javap.tmp" - rm "$f" - + # Remove "instruction number:" prefix, so we can just match code if [[ "$OS" =~ Darwin* ]]; then sed -i "" -E 's/^[[:space:]]+[0-9]+:(.*)/\1/' "$f.javap.tmp" @@ -139,6 +137,7 @@ function removeSystemModulesHashBuilderParams() { rm "$f.javap.tmp" grep -v "Last modified\|Classfile\|SHA-256 checksum" "$f.javap.tmp2" > "$f.javap" rm "$f.javap.tmp2" + rm "$f" done done @@ -256,80 +255,73 @@ function processModuleInfo() { local OS="$2" local work_JDK="$3" echo "process Module Info from ${JDK_DIR}" - if [[ "$OS" =~ CYGWIN* ]] || [[ "$OS" =~ Darwin* ]]; then - echo "Normalizing ModuleAttributes order in module-info.class, converting to javap" - - moduleAttr="ModuleResolution ModuleTarget" + echo "Normalizing ModuleAttributes order in module-info.class, converting to javap" + moduleAttr="ModuleResolution ModuleTarget" + FILES=$(find "${JDK_DIR}" -type f -name "module-info.class") + for f in $FILES + do + ff=$f + if [[ "$OS" =~ CYGWIN* ]]; then + ff=$(cygpath -w $f) + fi + "${work_JDK}"/bin/javap -v -sysinfo -l -p -c -s -constants "$ff" > "$f.javap.tmp" + cc=99 + foundAttr=false + attrName="" + # Clear any attr tmp files + for attr in $moduleAttr + do + rm -f "$f.javap.$attr" + done - FILES=$(find "${JDK_DIR}" -type f -name "module-info.class") - for f in $FILES + while IFS= read -r line do - if [[ "$OS" =~ CYGWIN* ]]; then - ff=$(cygpath -w $f) - else - ff=$f + cc=$((cc+1)) + + # Module attr have only 1 line definition + if [[ "$foundAttr" = true ]] && [[ "$cc" -gt 1 ]]; then + foundAttr=false + attrName="" fi - "${work_JDK}"/bin/javap -v -sysinfo -l -p -c -s -constants "$ff" > "$f.javap.tmp" - rm "$f" - cc=99 - foundAttr=false - attrName="" - # Clear any attr tmp files - for attr in $moduleAttr - do - rm -f "$f.javap.$attr" - done - - while IFS= read -r line - do - cc=$((cc+1)) - - # Module attr have only 1 line definition - if [[ "$foundAttr" = true ]] && [[ "$cc" -gt 1 ]]; then - foundAttr=false - attrName="" - fi - - # If not processing an attr then check for attr - if [[ "$foundAttr" = false ]]; then - for attr in $moduleAttr - do - if [[ "$line" =~ .*"$attr:".* ]]; then - cc=0 - foundAttr=true - attrName="$attr" - fi - done - fi - - # Echo attr to attr tmp file, otherwise to tmp2 - if [[ "$foundAttr" = true ]]; then - echo "$line" >> "$f.javap.$attrName" - else - echo "$line" >> "$f.javap.tmp2" - fi - done < "$f.javap.tmp" - rm "$f.javap.tmp" - - # Remove javap Classfile and timestamp and SHA-256 hash - if [[ "$f" =~ .*"java.base".* ]]; then - grep -v "Last modified\|Classfile\|SHA-256 checksum\|hash:" "$f.javap.tmp2" > "$f.javap" + # If not processing an attr then check for attr + if [[ "$foundAttr" = false ]]; then + for attr in $moduleAttr + do + if [[ "$line" =~ .*"$attr:".* ]]; then + cc=0 + foundAttr=true + attrName="$attr" + fi + done + fi + + # Echo attr to attr tmp file, otherwise to tmp2 + if [[ "$foundAttr" = true ]]; then + echo "$line" >> "$f.javap.$attrName" else - grep -v "Last modified\|Classfile\|SHA-256 checksum" "$f.javap.tmp2" > "$f.javap" + echo "$line" >> "$f.javap.tmp2" fi - rm "$f.javap.tmp2" - - # Append any ModuleAttr tmp files - for attr in $moduleAttr - do - if [[ -f "$f.javap.$attr" ]]; then - cat "$f.javap.$attr" >> "$f.javap" - fi - rm -f "$f.javap.$attr" - done + done < "$f.javap.tmp" + rm "$f.javap.tmp" + rm "$f" + # Remove javap Classfile and timestamp and SHA-256 hash + if [[ "$f" =~ .*"java.base".* ]]; then + grep -v "Last modified\|Classfile\|SHA-256 checksum\|hash:" "$f.javap.tmp2" > "$f.javap" + else + grep -v "Last modified\|Classfile\|SHA-256 checksum" "$f.javap.tmp2" > "$f.javap" + fi + rm "$f.javap.tmp2" + + # Append any ModuleAttr tmp files + for attr in $moduleAttr + do + if [[ -f "$f.javap.$attr" ]]; then + cat "$f.javap.$attr" >> "$f.javap" + fi + rm -f "$f.javap.$attr" done - fi + done } # Remove windowns generate classes jdk/bin/server/classes.jsa & jdk/bin/server/classes_nocoops.jsa diff --git a/tooling/reproducible/repro_compare.sh b/tooling/reproducible/repro_compare.sh index 18743f7e9..2ee8616fb 100755 --- a/tooling/reproducible/repro_compare.sh +++ b/tooling/reproducible/repro_compare.sh @@ -51,11 +51,10 @@ do if [[ "$OS" =~ CYGWIN* ]] || [[ "$OS" =~ Darwin* ]]; then removeSystemModulesHashBuilderParams "${JDK_DIR}" "${OS}" "${BK_JDK_DIR}" + processModuleInfo "${JDK_DIR}" "${OS}" "${BK_JDK_DIR}" fi - processModuleInfo "${JDK_DIR}" "${OS}" "${BK_JDK_DIR}" done - files1=$(find "${JDK_DIR1}" -type f | wc -l) echo "Number of files: ${files1}" rc=0 diff --git a/tooling/reproducible/repro_process.sh b/tooling/reproducible/repro_process.sh index 7dbbe6ed4..d44f9ac8b 100755 --- a/tooling/reproducible/repro_process.sh +++ b/tooling/reproducible/repro_process.sh @@ -13,7 +13,7 @@ # ******************************************************************************** # shellcheck disable=SC1091 -source $(dirname "$0")/repro_common.sh +source "$(dirname "$0")"/repro_common.sh JDK_DIR="$1" OS="$2"