From b98d7b6853e9950b3ee0a527456e9c23b0ebcb28 Mon Sep 17 00:00:00 2001 From: Simon Bucher Date: Wed, 19 Aug 2026 10:46:41 +0000 Subject: [PATCH] Gracefully handle EINTR during read. EINTR should be retried. --- passes/techmap/abc.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/passes/techmap/abc.cc b/passes/techmap/abc.cc index 81d841c50..99eb4853a 100644 --- a/passes/techmap/abc.cc +++ b/passes/techmap/abc.cc @@ -1194,7 +1194,10 @@ bool read_until_abc_done(abc_output_filter &filt, int fd, DeferredLogs &logs) { bool seen_source_cmd = false; bool seen_yosys_abc_done = false; while (true) { - int ret = read(fd, buf, sizeof(buf) - 1); + int ret; + do { + ret = read(fd, buf, sizeof(buf) - 1); + } while (ret == -1 && errno == EINTR); if (ret < 0) { logs.log_error("Failed to read from ABC, errno=%d\n", errno); return false;