<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to bugs</title><link href="https://sourceforge.net/p/bochs/bugs/" rel="alternate"/><link href="https://sourceforge.net/p/bochs/bugs/feed.atom" rel="self"/><id>https://sourceforge.net/p/bochs/bugs/</id><updated>2026-10-28T16:27:05.256000Z</updated><subtitle>Recent changes to bugs</subtitle><entry><title>#1181 PCI interrupts go to multiple IOAPIC entries w/ bad trigger</title><link href="https://sourceforge.net/p/bochs/bugs/1181/?limit=25#8755" rel="alternate"/><published>2026-10-28T16:27:05.256000Z</published><updated>2026-10-28T16:27:05.256000Z</updated><author><name>Stanislav Shwartsman</name><uri>https://sourceforge.net/u/sshwarts/</uri></author><id>https://sourceforge.net085055add066a5810bbdc2a38c5f4c0995c2577b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;What the report says, against current code&lt;/p&gt;
&lt;p&gt;PCI interrupts do still reach two I/O APIC inputs:&lt;br/&gt;
pci_set_irq() drives input 16 + pirq (pci2isa.cc:224).&lt;br/&gt;
The routed ISA IRQ then goes through DEV_pic_set_irq_level(). raise_irq() and lower_irq() forward it to I/O APIC input X (pic.cc:498, pic.cc:474).&lt;br/&gt;
The recent fixes didn’t change this dual routing. They are 79b10b2b9 (Remote IRR, moving asserted PIRQ lines when the routing changes), 862acecfa (a level-triggered entry whose line is already high is pending) and 52662b8fc. They do make level-triggered delivery on input X more correct.&lt;/p&gt;
&lt;p&gt;Why it’s not really a bug&lt;/p&gt;
&lt;p&gt;The I/O APIC never picks a trigger mode itself; the guest programs it. Bochs reports input 16–19 interrupts in neither its MP table nor its ACPI tables:&lt;br/&gt;
ACPI: _PRT sends every PCI pin through the LNKA–LNKD link devices to ISA IRQs (Level, ActiveLow). There’s no _PIC method and no input 16+ routing, so an ACPI guest in APIC mode always uses input X.&lt;br/&gt;
MP table: it has only 15 ISA entries with flags 0 (bus default, which means edge / active high for ISA) and no PCI bus interrupt entries (rombios32.c:1377).&lt;br/&gt;
So guests always use input X. Input X forwarding can’t be removed without breaking every APIC-mode guest; QEMU’s PIIX model works the same way. Inputs 16–19 stay masked from reset, so a second interrupt can only happen if the guest unmasks them itself.&lt;/p&gt;
&lt;p&gt;What’s left of the complaint&lt;br/&gt;
The reporter’s “bad trigger” comes from the MP table. A guest that uses only the MP table is told that PCI IRQs 9 and 11 are edge-triggered ISA interrupts, while the ELCR marks them level-triggered (rombios32.c:865). With a shared line in edge mode, an interrupt can be lost if a second device asserts while the line is already high.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#1336 Sending EOI to Local APIC acts that all interrupts is complete</title><link href="https://sourceforge.net/p/bochs/bugs/1336/?limit=25#5866" rel="alternate"/><published>2026-10-26T21:16:26.276000Z</published><updated>2026-10-26T21:16:26.276000Z</updated><author><name>Stanislav Shwartsman</name><uri>https://sourceforge.net/u/sshwarts/</uri></author><id>https://sourceforge.net66e0f37176580de2888ab86b5ae347d5e645c3a7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: unread --&amp;gt; closed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Group&lt;/strong&gt;: can't_reproduce --&amp;gt; fixed_in_SVN&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#1336 Sending EOI to Local APIC acts that all interrupts is complete</title><link href="https://sourceforge.net/p/bochs/bugs/1336/?limit=25#12a1" rel="alternate"/><published>2026-10-26T21:16:12.653000Z</published><updated>2026-10-26T21:16:12.653000Z</updated><author><name>Stanislav Shwartsman</name><uri>https://sourceforge.net/u/sshwarts/</uri></author><id>https://sourceforge.netecd8fcfd1037d9f083696ecb1bd81d59c3e22766</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Fixed by 4e4a0f309 and 79b10b2b9 / 1cd5b8d5e&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#1287 bochs debugger gui do not switches to 'magic breaked' CPU</title><link href="https://sourceforge.net/p/bochs/bugs/1287/?limit=25#4444" rel="alternate"/><published>2026-10-17T11:52:32.419000Z</published><updated>2026-10-17T11:52:32.419000Z</updated><author><name>Stanislav Shwartsman</name><uri>https://sourceforge.net/u/sshwarts/</uri></author><id>https://sourceforge.netc051582ddcf9a67d73451cbdf6fb2072fd8130a5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Group&lt;/strong&gt;:  --&amp;gt; to_be_fixed_in_next_release&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#1287 bochs debugger gui do not switches to 'magic breaked' CPU</title><link href="https://sourceforge.net/p/bochs/bugs/1287/?limit=25#0987" rel="alternate"/><published>2026-10-17T11:52:25.278000Z</published><updated>2026-10-17T11:52:25.278000Z</updated><author><name>Stanislav Shwartsman</name><uri>https://sourceforge.net/u/sshwarts/</uri></author><id>https://sourceforge.net7867e52072783ef93615f1acd5a828291da90284</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Fixed in master&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#1055 MACRO of USER_CS has a wrong value</title><link href="https://sourceforge.net/p/bochs/bugs/1055/?limit=25#3d91" rel="alternate"/><published>2026-10-17T11:44:45.223000Z</published><updated>2026-10-17T11:44:45.223000Z</updated><author><name>Stanislav Shwartsman</name><uri>https://sourceforge.net/u/sshwarts/</uri></author><id>https://sourceforge.netd142f7cdd0885e49bf9ee8cd1a8029fb1173022d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Group&lt;/strong&gt;:  --&amp;gt; can't_reproduce&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#1055 MACRO of USER_CS has a wrong value</title><link href="https://sourceforge.net/p/bochs/bugs/1055/?limit=25#5954" rel="alternate"/><published>2026-10-17T11:44:36.480000Z</published><updated>2026-10-17T11:44:36.480000Z</updated><author><name>Stanislav Shwartsman</name><uri>https://sourceforge.net/u/sshwarts/</uri></author><id>https://sourceforge.net8989e2d16114c3b015f3411d82e2635f3945ea73</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Fixed in master&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>#651 Lack of repeatability</title><link href="https://sourceforge.net/p/bochs/bugs/651/?limit=25#95bb" rel="alternate"/><published>2026-01-16T11:25:42.281000Z</published><updated>2026-01-16T11:25:42.281000Z</updated><author><name>Stanislav Shwartsman</name><uri>https://sourceforge.net/u/sshwarts/</uri></author><id>https://sourceforge.net5fe33aad396cec34ddd6c504a0ea33bc13a35603</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>#1466 failed to build bochs 3.0 on macos</title><link href="https://sourceforge.net/p/bochs/bugs/1466/?limit=25#e295" rel="alternate"/><published>2025-02-17T15:45:32.176000Z</published><updated>2025-02-17T15:45:32.176000Z</updated><author><name>Volker Ruppert</name><uri>https://sourceforge.net/u/vruppert/</uri></author><id>https://sourceforge.net44d970811c6ae5c94f3aa947e0f89c081e2e9eff</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;status&lt;/strong&gt;: open --&amp;gt; closed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;assigned_to&lt;/strong&gt;: Volker Ruppert&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Group&lt;/strong&gt;: pending --&amp;gt; fixed_in_SVN&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</summary></entry><entry><title>failed to build bochs 3.0 on macos</title><link href="https://sourceforge.net/p/bochs/bugs/1466/" rel="alternate"/><published>2025-02-16T17:25:56.633000Z</published><updated>2025-02-16T17:25:56.633000Z</updated><author><name>Rui Chen</name><uri>https://sourceforge.net/u/chenrui333/</uri></author><id>https://sourceforge.net6309cd8c5e1ecd8d0e51516c1d0dcd3add52e4ac</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;While building on macos, seeing some build issue as below&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;clang&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="o"&gt;../..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="o"&gt;./..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="o"&gt;./../..&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="o"&gt;../../&lt;/span&gt;&lt;span class="n"&gt;instrument&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;stubs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="o"&gt;./../../&lt;/span&gt;&lt;span class="n"&gt;instrument&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;stubs&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;fpascal&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;strings&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;fno&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;common&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Wno&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;four&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nb"&gt;char&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;constants&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Wno&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;unknown&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;pragmas&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Dmacintosh&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;D_FILE_OFFSET_BITS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;D_LARGE_FILES&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;fpascal&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;strings&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;fno&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;common&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Wno&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;four&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nb"&gt;char&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;constants&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Wno&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;unknown&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;pragmas&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;Dmacintosh&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;D_FILE_OFFSET_BITS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;D_LARGE_FILES&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;I&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;homebrew&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;Cellar&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;sdl2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;2.32&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;include&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;SDL2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;D_THREAD_SAFE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;intel&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;corei5_lynnfield_750&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;intel&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;corei5_lynnfield_750&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;keymap&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;133&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;use&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;undeclared&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;identifier&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'basename'&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;133&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strncmp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prefix2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;basename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;keymap_file&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;strlen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prefix2&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;                            &lt;/span&gt;&lt;span class="o"&gt;^&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;generated&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;This patch works for me&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="gh"&gt;diff --git a/gui/keymap.cc b/gui/keymap.cc&lt;/span&gt;
&lt;span class="gh"&gt;index 3426b6b..7bf76d8 100644&lt;/span&gt;
&lt;span class="gd"&gt;--- a/gui/keymap.cc&lt;/span&gt;
&lt;span class="gi"&gt;+++ b/gui/keymap.cc&lt;/span&gt;
&lt;span class="gu"&gt;@@ -30,6 +30,10 @@&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;#include "gui.h"
&lt;span class="w"&gt; &lt;/span&gt;#include "keymap.h"

&lt;span class="gi"&gt;+#if defined(__APPLE__)&lt;/span&gt;
&lt;span class="gi"&gt;+#include &amp;lt;libgen.h&amp;gt;&lt;/span&gt;
&lt;span class="gi"&gt;+#endif&lt;/span&gt;
&lt;span class="gi"&gt;+&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;// Table of bochs "BX_KEY_*" symbols
&lt;span class="w"&gt; &lt;/span&gt;// the table must be in BX_KEY_* order
&lt;span class="w"&gt; &lt;/span&gt;const char *bx_key_symbol[BX_KEY_NBKEYS] = {
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;</summary></entry></feed>