Files
OpenROAD/docs/agents/build.md
Jaehyun Kim 03ba68b735 Add AGENTS.md and AI agent sub-guides for cross-tool support
Add project-specific AI agent guidance files that work across
Claude Code, Codex, and Gemini CLI. Includes 5 critical rules
(sta/ protection, clang-format exclusions, DCO compliance,
submodule hygiene, upstream bug tracing) and 4 sub-guides
for build, testing, CI, and coding patterns.

Relocate triage-issue skill to .agents/skills/ (cross-tool)
with .claude/skills symlink for backwards compatibility.
Add .gemini/commands/triage-issue.toml for Gemini CLI support.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
2026-04-01 23:33:42 +09:00

778 B

OpenROAD Build Pitfalls

Debug vs Release Build Behavior Differences

When tests pass locally (Debug) but fail in CI (Release), check for:

  • Uninitialized members: Debug zero-initializes memory; Release leaves garbage
  • nullptr through custom hashers: e.g., PinIdHash::operator()(nullptr) segfaults in Release only
  • Subnormal float values: Uninitialized floats may be zero in Debug but subnormal in Release

Shared Library RPATH vs LD_LIBRARY_PATH

External tool binaries (e.g., kepler-formal) have RPATH baked in pointing to the original install location. After rebuilding a dependency, you must either cmake --install to the RPATH location or use LD_PRELOAD/patchelf. Setting LD_LIBRARY_PATH alone may be insufficient if RPATH takes precedence.