As it turns out, someone was cleaning up the Makefile of the console
client, and he ended up checking for ncursesw before Makeconf was
included, which always caused that the source list for the driver was
empty, while the later check, the one that defines the build rule for
the driver, succeeded if ncursesw was available, causing an empty shared
object to be generated.
Here's a patch that fixes it:
--- hurd/console-client/Makefile 2014-07-04 23:05:53.000000000 +0200
+++ hurd/console-client/Makefile 2014-07-04 23:30:14.000000000 +0200
@@ -26,13 +26,9 @@
PC_MOUSE_SO_SRCS = pc-mouse.c
GENERIC_SPEAKER_SO_SRCS = generic-speaker.c
CURRENT_VCS_SO_SRCS = current-vcs.c
-ifneq ($(LIBNCURSESW),)
-NCURSESW_SO_SRCS = ncursesw.c
-endif
SRCS = $(CONSOLE_SRCS) \
$(VGA_SO_SRCS) $(PC_KBD_SO_SRCS) $(PC_MOUSE_SO_SRCS) \
- $(GENERIC_SPEAKER_SO_SRCS) $(CURRENT_VCS_SO_SRCS) $(NCURSESW_SO_SRCS)
\
- $(XKB_SRCS)
+ $(GENERIC_SPEAKER_SO_SRCS) $(CURRENT_VCS_SO_SRCS) $(XKB_SRCS)
VPATH += $(srcdir)/xkb
OBJS = $(addsuffix .o,$(basename $(notdir $(SRCS)))) kdioctlServer.o
@@ -51,6 +47,11 @@
include ../Makeconf
+ifneq ($(LIBNCURSESW),)
+NCURSESW_SO_SRCS = ncursesw.c
+SRCS += $(NCURSESW_SO_SRCS)
+endif
+
driver-CPPFLAGS = -D'CONSOLE_DEFPATH="$(module-dir)\0"' \
-D'CONSOLE_SONAME_SUFFIX=".so.$(hurd-version)"'
driver-DEPS = $(..)config.make
p.s. This is my first ever patch I submitted to a project, so please
don't be too mean if I messed something up :)