-
Notifications
You must be signed in to change notification settings - Fork 21
bump: update orfs, openroad, qt-bazel and fix stale patch #663
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,140 @@ | ||
| diff --git a/bazel/BUILD b/bazel/BUILD | ||
| index a15adee..66f99d2 100644 | ||
| --- a/bazel/BUILD | ||
| +++ b/bazel/BUILD | ||
| @@ -124,18 +124,12 @@ cc_library( | ||
| }), | ||
| ) | ||
|
|
||
| -# shim old library as it is still referenced in src/sta, implementing the | ||
| -# old behavior. | ||
| +# Stub library kept for src/sta:opensta compatibility. | ||
| +# Tcl setup is now handled by //bazel:tcl_library_init. | ||
| cc_library( | ||
| name = "runfiles", | ||
| srcs = ["InitRunFiles.cpp"], | ||
| - data = [":tcl_resources_dir"], | ||
| visibility = ["//visibility:public"], | ||
| - deps = [ | ||
| - "@rules_cc//cc/runfiles", | ||
| - "@tcl_lang//:tcl", | ||
| - ], | ||
| - alwayslink = True, | ||
| ) | ||
|
|
||
| # small build test to check if "bazel build //src/sta:StaTclInitVar" works | ||
| diff --git a/bazel/InitRunFiles.cpp b/bazel/InitRunFiles.cpp | ||
| index 0651774..ece50b0 100644 | ||
| --- a/bazel/InitRunFiles.cpp | ||
| +++ b/bazel/InitRunFiles.cpp | ||
| @@ -1,86 +1,3 @@ | ||
| -// SPDX-License-Identifier: BSD-3-Clause | ||
| -// Copyright (c) 2026, The OpenROAD Authors | ||
| - | ||
| -// This file to go away as soon as we use the tcl_library_init initialization | ||
| -// in OpenSTA. | ||
| - | ||
| -#include <unistd.h> // readlink() | ||
| - | ||
| -#include <climits> | ||
| -#include <cstdlib> | ||
| -#include <filesystem> | ||
| -#include <iostream> | ||
| -#include <memory> | ||
| -#include <optional> | ||
| -#include <string> | ||
| -#include <system_error> | ||
| - | ||
| -#if defined(__APPLE__) | ||
| -#include <mach-o/dyld.h> | ||
| -#include <sys/param.h> | ||
| -#endif | ||
| - | ||
| -#include "rules_cc/cc/runfiles/runfiles.h" | ||
| - | ||
| -namespace { | ||
| -// Avoid adding any dependencies like boost.filesystem | ||
| -// Returns path to running binary if possible, otherwise nullopt. | ||
| -static std::optional<std::string> GetProgramLocation() | ||
| -{ | ||
| -#if defined(_WIN32) | ||
| - char result[MAX_PATH + 1] = {'\0'}; | ||
| - auto path_len = GetModuleFileNameA(NULL, result, MAX_PATH); | ||
| -#elif defined(__APPLE__) | ||
| - char result[MAXPATHLEN + 1] = {'\0'}; | ||
| - uint32_t path_len = MAXPATHLEN; | ||
| - if (_NSGetExecutablePath(result, &path_len) != 0) { | ||
| - path_len = readlink(result, result, MAXPATHLEN); | ||
| - } | ||
| -#else | ||
| - char result[PATH_MAX + 1] = {'\0'}; | ||
| - ssize_t path_len = readlink("/proc/self/exe", result, PATH_MAX); | ||
| -#endif | ||
| - if (path_len > 0) { | ||
| - return result; | ||
| - } | ||
| - return std::nullopt; | ||
| -} | ||
| - | ||
| -std::string GetTclLibraryBaseLocation() | ||
| -{ | ||
| - using rules_cc::cc::runfiles::Runfiles; | ||
| - std::string error; | ||
| - std::unique_ptr<Runfiles> runfiles(Runfiles::Create( | ||
| - *GetProgramLocation(), BAZEL_CURRENT_REPOSITORY, &error)); | ||
| - if (!runfiles) { | ||
| - std::cerr << "[Warning] Failed to create bazel runfiles: " << error << "\n"; | ||
| - return ""; | ||
| - } | ||
| - | ||
| - std::error_code ec; | ||
| - for (const std::string loc : {"openroad", "opensta", "_main"}) { | ||
| - const std::string check_loc = loc + "/bazel/tcl_resources_dir"; | ||
| - const std::string path = runfiles->Rlocation(check_loc); | ||
| - if (!path.empty() && std::filesystem::exists(path, ec)) { | ||
| - return path; | ||
| - } | ||
| - } | ||
| - return ""; | ||
| -} | ||
| - | ||
| -class BazelInitializer | ||
| -{ | ||
| - public: | ||
| - BazelInitializer() | ||
| - { | ||
| - const std::string lib_mount_point = GetTclLibraryBaseLocation(); | ||
| - if (!lib_mount_point.empty()) { | ||
| - const std::string tcl_path = lib_mount_point + "/library"; | ||
| - setenv("TCL_LIBRARY", tcl_path.c_str(), true); | ||
| - } | ||
| - } | ||
| -}; | ||
| - | ||
| -// Provide via global constructor. | ||
| -static BazelInitializer bazel_initializer; | ||
| -} // namespace | ||
| +// Intentionally empty: tcl_library_init now handles Tcl setup. | ||
| +// This file is kept because src/sta:opensta still references | ||
| +// //bazel:runfiles in its srcs. | ||
| diff --git a/bazel/tcl_library_init.cc b/bazel/tcl_library_init.cc | ||
| index 4be9671..8306978 100644 | ||
| --- a/bazel/tcl_library_init.cc | ||
| +++ b/bazel/tcl_library_init.cc | ||
| @@ -35,6 +35,16 @@ static std::optional<std::string> TclLibraryMountPoint(Tcl_Interp* interp) | ||
| return Tcl_GetStringResult(interp); | ||
| #else | ||
| using rules_cc::cc::runfiles::Runfiles; | ||
| + | ||
| + // Clear inherited RUNFILES_* env vars: when OpenROAD is invoked by | ||
| + // a build system that previously ran another Bazel binary (e.g. a | ||
| + // Python wrapper), those variables point to the *other* binary's | ||
| + // runfiles tree. Runfiles::Create() checks env vars first, so it | ||
| + // would resolve paths in the wrong tree. Unsetting forces it to | ||
| + // fall back to Tcl_GetNameOfExecutable(), which is always correct. | ||
| + unsetenv("RUNFILES_DIR"); | ||
| + unsetenv("RUNFILES_MANIFEST_FILE"); | ||
| + | ||
| std::string error; | ||
| std::unique_ptr<Runfiles> runfiles(Runfiles::Create( | ||
| Tcl_GetNameOfExecutable(), BAZEL_CURRENT_REPOSITORY, &error)); | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hzeller @maliberty Have you run into this?
Could I be running into this with the static web files?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you give more context ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See link above:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have to run... so many things in flight, but I'm optimistic that all of these issues will trickle as fixes into OpenROAD and ORFS :-) Takes a bit of time though, step by step...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this a recent openroad from after April 2nd ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also: I have no idea what this patch is attempting to accomplish