Skip to content

Commit 045a4f4

Browse files
authored
Merge pull request #1386 from vvbandeira/make-issue-gdb-tcl
Make issue fixes for gdb tcl
2 parents add4a12 + 1499459 commit 045a4f4

File tree

3 files changed

+28
-15
lines changed

3 files changed

+28
-15
lines changed

flow/util/generate-vars.sh

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ FLOW_ROOT=$(realpath "${FLOW_HOME}")
55
ORFS_ROOT=$(realpath "${FLOW_HOME}/../")
66

77
# exclude system and CI variables
8-
EXCLUDED_VARS="MAKE|MAKEFLAGS|PERL5LIB|QT_QPA_PLATFORM"
9-
EXCLUDED_VARS+="|RESULTS_ODB|PUBLIC|ISSUE_SCRIPTS"
10-
EXCLUDED_VARS+="|HOME|PWD|MAIL|SHELL|NPROC|NUM_CORES|FLOW_HOME"
11-
EXCLUDED_VARS+="|UNSET_VARIABLES_NAMES|do-step|get_variables|do-copy"
8+
EXCLUDED_VARS='MAKE|MAKEFLAGS|PERL5LIB|QT_QPA_PLATFORM'
9+
EXCLUDED_VARS+='|RESULTS_ODB|PUBLIC|ISSUE_SCRIPTS'
10+
EXCLUDED_VARS+='|HOME|PWD|MAIL|SHELL|NPROC|NUM_CORES|FLOW_HOME|\\n'
11+
EXCLUDED_VARS+='|UNSET_VARIABLES_NAMES|do-step|get_variables|do-copy'
1212

1313
EXCLUDED_PATTERNS="_EXE$|PATH$|_CMD$|\."
1414

@@ -44,17 +44,24 @@ while read -r VAR; do
4444
# skip variables that match the exclude patterns
4545
continue
4646
fi
47+
# handle special case where the variable needs to be splitted in Tcl code
48+
if [[ "${name}" == "GND_NETS_VOLTAGES" || "${name}" == "PWR_NETS_VOLTAGES" ]]; then
49+
echo "export ${name}='${value}'" >> $1.sh
50+
echo "set env(${name}) ${value}" >> $1.tcl
51+
echo "set env ${name} ${value}" >> $1.gdb
52+
continue
53+
fi
4754
if [[ ${value} == /* ]]; then
4855
# convert absolute paths if possible to use FLOW_HOME variable
4956
value=$(sed -e "s,${FLOW_ROOT},\${FLOW_HOME},g" <<< "${value}")
5057
value=$(sed -e "s,${ORFS_ROOT},\${FLOW_HOME}/\.\.,g" <<< "${value}")
5158
fi
52-
# handle special case where the variable needs to be splitted in Tcl code
53-
if [[ "${name}" == "GND_NETS_VOLTAGES" || "${name}" == "PWR_NETS_VOLTAGES" ]]; then
54-
echo "export ${name}='${value}'" >> $1.sh
59+
echo "export ${name}=\"${value}\"" >> $1.sh
60+
if [[ "${value}" == *'$'* ]]; then
61+
echo "set env ${name} $(sed -e 's,${FLOW_HOME},getenv("FLOW_HOME"),' <<< ${value})" >> $1.gdb
62+
echo "set env(${name}) \"$(sed -e 's,${FLOW_HOME},$::env(FLOW_HOME),' <<< ${value})\"" >> $1.tcl
5563
else
56-
echo "export ${name}=\"${value}\"" >> $1.sh
64+
echo "set env(${name}) \"${value}\"" >> $1.tcl
65+
echo "set env ${name} ${value}" >> $1.gdb
5766
fi
58-
echo "set env(${name}) \"${value}\"" >> $1.tcl
59-
echo "set env ${name} ${value}" >> $1.gdb
6067
done <<< "$ISSUE_VARIABLES"

flow/util/makeIssue.sh

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,15 @@ ISSUE_CP_FILES+="${ISSUE_CP_FILES_PLATFORM} \
6565
$VARS_BASENAME.gdb"
6666

6767
echo "Creating ${RUN_ME_SCRIPT} script"
68-
echo "#!/usr/bin/env bash" > ${RUN_ME_SCRIPT}
69-
echo "source ${VARS_BASENAME}.sh" >> ${RUN_ME_SCRIPT}
70-
echo "openroad -no_init ${SCRIPTS_DIR}/$1.tcl" >> ${RUN_ME_SCRIPT}
68+
cat > ${RUN_ME_SCRIPT} <<EOF
69+
#!/usr/bin/env bash
70+
source ${VARS_BASENAME}.sh
71+
if [[ ! -z \${GDB+x} ]]; then
72+
gdb --args openroad -no_init ${SCRIPTS_DIR}/$1.tcl
73+
else
74+
openroad -no_init ${SCRIPTS_DIR}/$1.tcl
75+
fi
76+
EOF
7177
chmod +x ${RUN_ME_SCRIPT}
7278

7379
echo "Creating ${VARS_BASENAME}.sh/tcl script"

flow/util/utils.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ $(foreach script,$(ISSUE_SCRIPTS),$(script)_issue): %_issue : versions.txt
9898

9999
.PHONY: clean_issues
100100
clean_issues:
101-
rm -rf $(foreach issue, $(ISSUE_SCRIPTS), $(issue)_*.tar.gz)
102-
rm -rf $(VARS_BASENAME).sh $(RUN_ME_SCRIPT)
101+
rm -f $(foreach issue, $(ISSUE_SCRIPTS), $(issue)_*.tar.gz)
102+
rm -f vars*.sh vars*.tcl vars*.gdb run-me*.sh
103103

104104
$(RESULTS_DIR)/6_final_only_clk.def: $(RESULTS_DIR)/6_final.def
105105
$(TIME_CMD) $(OPENROAD_CMD) $(SCRIPTS_DIR)/deleteNonClkNets.tcl

0 commit comments

Comments
 (0)