diff --git a/BUILD.bazel b/BUILD.bazel
index f2fcf1639..945df266c 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -135,6 +135,8 @@ tcl_srcs = [
"sdf/Sdf.tcl",
"verilog/Verilog.tcl",
"spice/WriteSpice.tcl",
+ # OpenROAD fork: analysis_corner support (must follow tcl/Sta.tcl).
+ "tcl/AnalysisCorner.tcl",
]
exports_files([
@@ -197,6 +199,8 @@ filegroup(
"power/Power.i",
"sdc/Sdc.i",
"sdf/Sdf.i",
+ # OpenROAD fork: analysis_corner support.
+ "search/AnalysisCorner.i",
"search/Property.i",
"search/Search.i",
"spice/WriteSpice.i",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8ddda840..7c66118c5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -201,6 +201,8 @@ set(STA_SOURCE
search/ReportPath.cc
search/Search.cc
search/SearchPred.cc
+ # OpenROAD fork: analysis_corner support.
+ search/AnalysisCorner.cc
search/Scene.cc
search/Sim.cc
search/Sta.cc
@@ -271,6 +273,8 @@ set(STA_TCL_FILES
search/Search.tcl
spice/WriteSpice.tcl
verilog/Verilog.tcl
+ # OpenROAD fork: analysis_corner support (must follow tcl/Sta.tcl).
+ tcl/AnalysisCorner.tcl
)
################################################################
@@ -491,6 +495,8 @@ set(SWIG_FILES
${STA_HOME}/tcl/StaTclTypes.i
${STA_HOME}/util/Util.i
${STA_HOME}/verilog/Verilog.i
+ # OpenROAD fork: analysis_corner support.
+ ${STA_HOME}/search/AnalysisCorner.i
)
set_property(SOURCE ${STA_SWIG_FILE}
diff --git a/app/StaApp.i b/app/StaApp.i
index bce8cdbb9..30224815d 100644
--- a/app/StaApp.i
+++ b/app/StaApp.i
@@ -37,6 +37,8 @@
%include "sdf/Sdf.i"
%include "search/Search.i"
%include "search/Property.i"
+// OpenROAD fork: analysis_corner support.
+%include "search/AnalysisCorner.i"
%include "util/Util.i"
%include "spice/WriteSpice.i"
%include "verilog/Verilog.i"
diff --git a/include/sta/AnalysisCorner.hh b/include/sta/AnalysisCorner.hh
new file mode 100644
index 000000000..c21dff736
--- /dev/null
+++ b/include/sta/AnalysisCorner.hh
@@ -0,0 +1,208 @@
+// OpenSTA, Static Timing Analyzer
+// Copyright (c) 2026, Parallax Software, Inc.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// The origin of this software must not be misrepresented; you must not
+// claim that you wrote the original software.
+//
+// Altered source versions must be plainly marked as such, and must not be
+// misrepresented as being the original software.
+//
+// This notice may not be removed or altered from any source distribution.
+
+// OpenROAD fork: analysis_corner support.
+
+#pragma once
+
+#include