Skip to content

Stop installing obsolete swift-build-tool executable - #84364

Open
owenv wants to merge 1 commit into
swiftlang:mainfrom
owenv:owenv/swift-build-tool
Open

Stop installing obsolete swift-build-tool executable#84364
owenv wants to merge 1 commit into
swiftlang:mainfrom
owenv:owenv/swift-build-tool

Conversation

@owenv

@owenv owenv commented Sep 18, 2025

Copy link
Copy Markdown
Contributor

swiftlang/swift-llbuild#1013 removes swift-build-tool from the products of llbuild, as it's no longer used during SwiftPM builds or bootstrapping. Remove the reference in build-script-impl

@owenv

owenv commented Sep 18, 2025

Copy link
Copy Markdown
Contributor Author

@swift-ci test

@owenv

owenv commented Sep 18, 2025

Copy link
Copy Markdown
Contributor Author

@swift-ci build toolchain

@owenv

owenv commented Sep 18, 2025

Copy link
Copy Markdown
Contributor Author

It's possible this change is too narrow - however, we do still need to build llbuild here to support the SwiftPM bootstrap, we just don't need to install anything it produces

@owenv
owenv requested a review from shahmishal September 18, 2025 00:11

@etcwilde etcwilde left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it's only used for bootstrapping, do we need llbuild in build-script-impl at all? It looks like SwiftPM's bootstrap script already builds llbuild, or at least has logic for building it:

def build_llbuild(args):
    """Builds LLBuild using CMake."""
    logging.info("Building llbuild")

    # Set where we are going to build llbuild for future steps to find it
    args.build_dirs["llbuild"] = os.path.join(args.target_dir, "llbuild")

    api_dir = os.path.join(args.build_dirs["llbuild"], ".cmake/api/v1/query")
    mkdir_p(api_dir)
    call(["touch", "codemodel-v2"], cwd=api_dir, verbose=args.verbose)

    flags = [
        "-DCMAKE_C_COMPILER:=%s" % (args.clang_path),
        "-DCMAKE_CXX_COMPILER:=%s" % (args.clangxx_path),
        "-DCMAKE_AR:PATH=%s" % (args.ar_path),
        "-DCMAKE_RANLIB:PATH=%s" % (args.ranlib_path),
        "-DLLBUILD_SUPPORT_BINDINGS:=Swift",
    ]
    cmake_env = []

    if platform.system() == 'Darwin':
        # On Darwin, make sure we're building for the host architecture.
        flags.append("-DCMAKE_OSX_ARCHITECTURES:=%s" % (get_build_target(args).split('-')[0]))
        # Inject linkage of C++ standard library
        cmake_env.append("LDFLAGS=-lc++")

    if args.sysroot:
        flags.append("-DSQLite3_INCLUDE_DIR=%s/usr/include" % args.sysroot)

    args.source_dirs["llbuild"] = get_llbuild_source_path(args)
    build_with_cmake(args, flags, [], args.source_dirs["llbuild"], args.build_dirs["llbuild"], cmake_env=cmake_env)

https://github.com/swiftlang/swift-package-manager/blob/a112ab817dafb40f3d95daaa31b034f7c766fa8e/Utilities/bootstrap#L663-L693

@owenv

owenv commented Sep 18, 2025

Copy link
Copy Markdown
Contributor Author

@etcwilde I considered that, but I wasn't sure what should be responsible for running the llbuild tests if I made that change.

@owenv
owenv force-pushed the owenv/swift-build-tool branch from b835fb9 to f04ed6f Compare September 18, 2025 16:08
@owenv

owenv commented Sep 18, 2025

Copy link
Copy Markdown
Contributor Author

@swift-ci smoke test

@owenv

owenv commented Sep 18, 2025

Copy link
Copy Markdown
Contributor Author

@swift-ci build toolchain

@owenv

owenv commented Sep 18, 2025

Copy link
Copy Markdown
Contributor Author

@swift-ci please build toolchain windows

@owenv

owenv commented Sep 19, 2025

Copy link
Copy Markdown
Contributor Author

Unclear what the problem on Windows actually is

Archiving artifacts
‘build/artifacts/*’ doesn’t match anything, but ‘*’ does. Perhaps that’s what you mean?
ERROR: Step ‘Archive the artifacts’ failed: No artifacts found that match the file pattern "build/artifacts/*". Configuration error?

@finagolfin

Copy link
Copy Markdown
Member

Thanks for doing this, I've been doing the same with my native Android toolchain for a while now. Maybe dump a warning for people who are unknowingly using this flag still, and remove install-llbuild from all build presets, since it does nothing now?

I thought about removing the flag altogether, but it looks like it is automatically generated in build-script-impl, so that's not possible.

@owenv

owenv commented Sep 22, 2025

Copy link
Copy Markdown
Contributor Author

@swift-ci please build toolchain Windows

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants