<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to bugs</title><link>https://sourceforge.net/p/bochs/bugs/</link><description>Recent changes to bugs</description><atom:link href="https://sourceforge.net/p/bochs/bugs/feed.rss" rel="self"/><language>en</language><lastBuildDate>Wed, 28 Oct 2026 16:27:05 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/bochs/bugs/feed.rss" rel="self" type="application/rss+xml"/><item><title>#1181 PCI interrupts go to multiple IOAPIC entries w/ bad trigger</title><link>https://sourceforge.net/p/bochs/bugs/1181/?limit=25#8755</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stanislav Shwartsman</dc:creator><pubDate>Wed, 28 Oct 2026 16:27:05 -0000</pubDate><guid isPermaLink="false">https://sourceforge.net085055add066a5810bbdc2a38c5f4c0995c2577b</guid></item><item><title>#1336 Sending EOI to Local APIC acts that all interrupts is complete</title><link>https://sourceforge.net/p/bochs/bugs/1336/?limit=25#5866</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stanislav Shwartsman</dc:creator><pubDate>Mon, 26 Oct 2026 21:16:26 -0000</pubDate><guid isPermaLink="false">https://sourceforge.net66e0f37176580de2888ab86b5ae347d5e645c3a7</guid></item><item><title>#1336 Sending EOI to Local APIC acts that all interrupts is complete</title><link>https://sourceforge.net/p/bochs/bugs/1336/?limit=25#12a1</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Fixed by 4e4a0f309 and 79b10b2b9 / 1cd5b8d5e&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stanislav Shwartsman</dc:creator><pubDate>Mon, 26 Oct 2026 21:16:12 -0000</pubDate><guid isPermaLink="false">https://sourceforge.netecd8fcfd1037d9f083696ecb1bd81d59c3e22766</guid></item><item><title>#1287 bochs debugger gui do not switches to 'magic breaked' CPU</title><link>https://sourceforge.net/p/bochs/bugs/1287/?limit=25#4444</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stanislav Shwartsman</dc:creator><pubDate>Sat, 17 Oct 2026 11:52:32 -0000</pubDate><guid isPermaLink="false">https://sourceforge.netc051582ddcf9a67d73451cbdf6fb2072fd8130a5</guid></item><item><title>#1287 bochs debugger gui do not switches to 'magic breaked' CPU</title><link>https://sourceforge.net/p/bochs/bugs/1287/?limit=25#0987</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Fixed in master&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stanislav Shwartsman</dc:creator><pubDate>Sat, 17 Oct 2026 11:52:25 -0000</pubDate><guid isPermaLink="false">https://sourceforge.net7867e52072783ef93615f1acd5a828291da90284</guid></item><item><title>#1055 MACRO of USER_CS has a wrong value</title><link>https://sourceforge.net/p/bochs/bugs/1055/?limit=25#3d91</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stanislav Shwartsman</dc:creator><pubDate>Sat, 17 Oct 2026 11:44:45 -0000</pubDate><guid isPermaLink="false">https://sourceforge.netd142f7cdd0885e49bf9ee8cd1a8029fb1173022d</guid></item><item><title>#1055 MACRO of USER_CS has a wrong value</title><link>https://sourceforge.net/p/bochs/bugs/1055/?limit=25#5954</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Fixed in master&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stanislav Shwartsman</dc:creator><pubDate>Sat, 17 Oct 2026 11:44:36 -0000</pubDate><guid isPermaLink="false">https://sourceforge.net8989e2d16114c3b015f3411d82e2635f3945ea73</guid></item><item><title>#651 Lack of repeatability</title><link>https://sourceforge.net/p/bochs/bugs/651/?limit=25#95bb</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stanislav Shwartsman</dc:creator><pubDate>Fri, 16 Jan 2026 11:25:42 -0000</pubDate><guid isPermaLink="false">https://sourceforge.net5fe33aad396cec34ddd6c504a0ea33bc13a35603</guid></item><item><title>#1466 failed to build bochs 3.0 on macos</title><link>https://sourceforge.net/p/bochs/bugs/1466/?limit=25#e295</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Volker Ruppert</dc:creator><pubDate>Mon, 17 Feb 2025 15:45:32 -0000</pubDate><guid isPermaLink="false">https://sourceforge.net44d970811c6ae5c94f3aa947e0f89c081e2e9eff</guid></item><item><title>failed to build bochs 3.0 on macos</title><link>https://sourceforge.net/p/bochs/bugs/1466/</link><description>&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;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rui Chen</dc:creator><pubDate>Sun, 16 Feb 2025 17:25:56 -0000</pubDate><guid isPermaLink="false">https://sourceforge.net6309cd8c5e1ecd8d0e51516c1d0dcd3add52e4ac</guid></item></channel></rss>