GH-137484: Have Tools/wasm/wasi use the build triple instead of "build" (GH-37485)
This should help prevent issuse where something like a container is used to do one build and then someone tries to build again locally.
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
Have ``Tools/wasm/wasi`` put the build Python into a directory named after
|
||||||
|
the build triple instead of "build".
|
||||||
@@ -20,7 +20,8 @@ CHECKOUT = pathlib.Path(__file__).parent.parent.parent.parent
|
|||||||
assert (CHECKOUT / "configure").is_file(), "Please update the location of the file"
|
assert (CHECKOUT / "configure").is_file(), "Please update the location of the file"
|
||||||
|
|
||||||
CROSS_BUILD_DIR = CHECKOUT / "cross-build"
|
CROSS_BUILD_DIR = CHECKOUT / "cross-build"
|
||||||
BUILD_DIR = CROSS_BUILD_DIR / "build"
|
# Build platform can also be found via `config.guess`.
|
||||||
|
BUILD_DIR = CROSS_BUILD_DIR / sysconfig.get_config_var("BUILD_GNU_TYPE")
|
||||||
|
|
||||||
LOCAL_SETUP = CHECKOUT / "Modules" / "Setup.local"
|
LOCAL_SETUP = CHECKOUT / "Modules" / "Setup.local"
|
||||||
LOCAL_SETUP_MARKER = ("# Generated by Tools/wasm/wasi .\n"
|
LOCAL_SETUP_MARKER = ("# Generated by Tools/wasm/wasi .\n"
|
||||||
@@ -80,7 +81,7 @@ def subdir(working_dir, *, clean_ok=False):
|
|||||||
print("📁", working_dir)
|
print("📁", working_dir)
|
||||||
if (clean_ok and getattr(context, "clean", False) and
|
if (clean_ok and getattr(context, "clean", False) and
|
||||||
working_dir.exists()):
|
working_dir.exists()):
|
||||||
print(f"🚮 Deleting directory (--clean)...")
|
print("🚮 Deleting directory (--clean)...")
|
||||||
shutil.rmtree(working_dir)
|
shutil.rmtree(working_dir)
|
||||||
|
|
||||||
working_dir.mkdir(parents=True, exist_ok=True)
|
working_dir.mkdir(parents=True, exist_ok=True)
|
||||||
@@ -120,12 +121,6 @@ def call(command, *, context=None, quiet=False, logdir=None, **kwargs):
|
|||||||
subprocess.check_call(command, **kwargs, stdout=stdout, stderr=stderr)
|
subprocess.check_call(command, **kwargs, stdout=stdout, stderr=stderr)
|
||||||
|
|
||||||
|
|
||||||
def build_platform():
|
|
||||||
"""The name of the build/host platform."""
|
|
||||||
# Can also be found via `config.guess`.
|
|
||||||
return sysconfig.get_config_var("BUILD_GNU_TYPE")
|
|
||||||
|
|
||||||
|
|
||||||
def build_python_path():
|
def build_python_path():
|
||||||
"""The path to the build Python binary."""
|
"""The path to the build Python binary."""
|
||||||
binary = BUILD_DIR / "python"
|
binary = BUILD_DIR / "python"
|
||||||
@@ -274,7 +269,7 @@ def configure_wasi_python(context, working_dir):
|
|||||||
# executed from within a checkout.
|
# executed from within a checkout.
|
||||||
configure = [os.path.relpath(CHECKOUT / 'configure', working_dir),
|
configure = [os.path.relpath(CHECKOUT / 'configure', working_dir),
|
||||||
f"--host={context.host_triple}",
|
f"--host={context.host_triple}",
|
||||||
f"--build={build_platform()}",
|
f"--build={BUILD_DIR.name}",
|
||||||
f"--with-build-python={build_python}"]
|
f"--with-build-python={build_python}"]
|
||||||
if build_python_is_pydebug():
|
if build_python_is_pydebug():
|
||||||
configure.append("--with-pydebug")
|
configure.append("--with-pydebug")
|
||||||
@@ -357,8 +352,8 @@ def main():
|
|||||||
"Python)")
|
"Python)")
|
||||||
make_host = subcommands.add_parser("make-host",
|
make_host = subcommands.add_parser("make-host",
|
||||||
help="Run `make` for the host/WASI")
|
help="Run `make` for the host/WASI")
|
||||||
clean = subcommands.add_parser("clean", help="Delete files and directories "
|
subcommands.add_parser("clean", help="Delete files and directories "
|
||||||
"created by this script")
|
"created by this script")
|
||||||
for subcommand in build, configure_build, make_build, configure_host, make_host:
|
for subcommand in build, configure_build, make_build, configure_host, make_host:
|
||||||
subcommand.add_argument("--quiet", action="store_true", default=False,
|
subcommand.add_argument("--quiet", action="store_true", default=False,
|
||||||
dest="quiet",
|
dest="quiet",
|
||||||
|
|||||||
Reference in New Issue
Block a user