Skip to content

Commit 32360d1

Browse files
committed
Fix ncurses headers: use flat include dir to avoid ncursesw/ detection
Copy ncurses headers to a flat /deps/flat/include/ directory (without the ncursesw/ subdirectory) so GDB's configure finds <curses.h> directly rather than detecting <ncursesw/ncurses.h>. This matches PDCurses behavior and avoids potential compilation issues with GCC 15's C23 mode. Also remove diagnostic retry logic from GDB make step. https://claude.ai/code/session_01NJhZXUW8C4GZsWZ945zs9j
1 parent 2ca23fb commit 32360d1

1 file changed

Lines changed: 11 additions & 12 deletions

File tree

‎Dockerfile‎

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -506,13 +506,17 @@ RUN /dl/ncurses/configure \
506506
&& printf 'CREATE /deps/lib/libcurses.a\nADDLIB /deps/lib/libncursesw.a\nADDLIB /deps/lib/libpanelw.a\nADDLIB /deps/lib/libformw.a\nADDLIB /deps/lib/libmenuw.a\nSAVE\nEND\n' | $ARCH-ar -M \
507507
&& rm /deps/lib/libncursesw.a /deps/lib/libpanelw.a /deps/lib/libformw.a /deps/lib/libmenuw.a \
508508
&& sed -i '1s/^/#define NCURSES_STATIC\n/' /deps/include/ncursesw/ncurses_dll.h \
509-
&& cp /deps/include/ncursesw/curses.h /deps/include/curses.h \
510-
&& cp /deps/include/ncursesw/form.h /deps/include/form.h
509+
&& mkdir -p /deps/flat/include /deps/flat/lib \
510+
&& for h in curses.h ncurses.h ncurses_dll.h unctrl.h form.h panel.h menu.h; do \
511+
test -f /deps/include/ncursesw/$h \
512+
&& cp /deps/include/ncursesw/$h /deps/flat/include/$h; \
513+
done \
514+
&& cp /deps/lib/libcurses.a /deps/flat/lib/libcurses.a
511515

512516
FROM cross AS build-gdb
513517
COPY --from=dl-gdb /dl/ /dl/
514-
COPY --from=build-ncurses /deps/lib/libcurses.a /deps/lib/
515-
COPY --from=build-ncurses /deps/include/ /deps/include/
518+
COPY --from=build-ncurses /deps/flat/lib/libcurses.a /deps/lib/
519+
COPY --from=build-ncurses /deps/flat/include/ /deps/include/
516520

517521
WORKDIR /expat
518522
RUN /dl/expat/configure \
@@ -548,12 +552,7 @@ RUN cat $PREFIX/src/gdb-*.patch | patch -d/dl/gdb -p1 \
548552
CFLAGS="-std=gnu17 -O2 -D__MINGW_USE_VC2005_COMPAT -DNCURSES_STATIC -I/deps/include" \
549553
CXXFLAGS="-O2 -D__MINGW_USE_VC2005_COMPAT -DNCURSES_STATIC -I/deps/include" \
550554
LDFLAGS="-s -L/deps/lib"
551-
RUN make MAKEINFO=true -j$(nproc) 2>&1 \
552-
|| { echo "=== PARALLEL BUILD FAILED, RETRYING SERIAL ===" \
553-
&& make MAKEINFO=true -j1 V=1 2>&1 | tee /tmp/gdb-build.log \
554-
; echo "=== LAST 80 LINES ===" \
555-
&& tail -80 /tmp/gdb-build.log \
556-
&& false; } \
555+
RUN make MAKEINFO=true -j$(nproc) \
557556
&& mkdir -p /out/bin \
558557
&& cp gdb/.libs/gdb.exe gdbserver/gdbserver.exe /out/bin/
559558

@@ -728,8 +727,8 @@ RUN cmake -DCMAKE_BUILD_TYPE=Release \
728727

729728
FROM cross AS build-cmake
730729
COPY --from=dl-cmake /dl/ /dl/
731-
COPY --from=build-ncurses /deps/lib/libcurses.a /deps/lib/
732-
COPY --from=build-ncurses /deps/include/ /deps/include/
730+
COPY --from=build-ncurses /deps/flat/lib/libcurses.a /deps/lib/
731+
COPY --from=build-ncurses /deps/flat/include/ /deps/include/
733732

734733
WORKDIR /cmake
735734
COPY src/cmake-*.patch $PREFIX/src/

0 commit comments

Comments
 (0)