Skip to content

Commit d9671ec

Browse files
Reintroduce wrapper through a flag
1 parent 768227b commit d9671ec

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

bolt/utils/nfc-check-setup.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ def main():
5858
default=os.getcwd(),
5959
help="Path to BOLT build directory, default is current " "directory",
6060
)
61+
parser.add_argument(
62+
"--create-wrapper",
63+
default=False,
64+
action="store_true",
65+
help="Sets up llvm-bolt as a symlink to llvm-bolt-wrapper. Passes the options through to llvm-bolt-wrapper.",
66+
)
6167
parser.add_argument(
6268
"--check-bolt-sources",
6369
default=False,
@@ -75,7 +81,12 @@ def main():
7581
default="HEAD^",
7682
help="Revision to checkout to compare vs HEAD",
7783
)
78-
args = parser.parse_args()
84+
85+
# When creating a wrapper, pass any unknown arguments to it. Otherwise, die.
86+
args, wrapper_args = parser.parse_known_args()
87+
if not args.create_wrapper and len(wrapper_args) > 0:
88+
parser.parse_args()
89+
7990
bolt_path = f"{args.build_dir}/bin/llvm-bolt"
8091

8192
source_dir = None
@@ -128,6 +139,24 @@ def main():
128139
)
129140
# rename llvm-bolt
130141
os.replace(bolt_path, f"{bolt_path}.old")
142+
143+
# symlink llvm-bolt-wrapper
144+
if args.create_wrapper:
145+
script_dir = os.path.dirname(os.path.abspath(__file__))
146+
wrapper_path = f"{script_dir}/llvm-bolt-wrapper.py"
147+
try:
148+
# set up llvm-bolt-wrapper.ini
149+
ini = subprocess.check_output(
150+
shlex.split(f"{wrapper_path} {bolt_path}.old {bolt_path}.new") + wrapper_args,
151+
text=True,
152+
)
153+
with open(f"{args.build_dir}/bin/llvm-bolt-wrapper.ini", "w") as f:
154+
f.write(ini)
155+
# symlink llvm-bolt-wrapper
156+
os.symlink(wrapper_path, bolt_path)
157+
except Exception as e:
158+
sys.exit("Failed to create a wrapper:\n" + str(e))
159+
131160
if args.switch_back:
132161
if stash:
133162
subprocess.run(shlex.split("git stash pop"), cwd=source_dir)

0 commit comments

Comments
 (0)