[syslinux:firmware] cmenu: the order of entries in $(LIBMENU) is vital

syslinux-bot for Matt Fleming matt.fleming at intel.com
Mon Jul 29 06:12:08 PDT 2013


Commit-ID:  228194e45c916766e8fddb1124d8fd8b3dea3f92
Gitweb:     http://www.syslinux.org/commit/228194e45c916766e8fddb1124d8fd8b3dea3f92
Author:     Matt Fleming <matt.fleming at intel.com>
AuthorDate: Mon, 29 Jul 2013 09:43:29 +0100
Committer:  Matt Fleming <matt.fleming at intel.com>
CommitDate: Mon, 29 Jul 2013 10:15:20 +0100

cmenu: the order of entries in $(LIBMENU) is vital

Unresolved symbols in an object file cannot be resolved from shared
libraries that are listed earlier in $(LIBMENU). We need to put the
shared libraries at the end of $(LIBMENU).

commit 1408e6ca ("Add per-firmware object directory support") appears to
have broken this rule, which resulted in hdt.c32 (among other modules)
failing to load with,

     "Undef symbol FAIL: symbol console_ansi_raw"

Add a simple regression test that loads hdt.c32.

Signed-off-by: Matt Fleming <matt.fleming at intel.com>

---
 com32/cmenu/Makefile    |  7 +++----
 tests/com32/Makefile    | 10 ++++++++--
 tests/com32/hdt.cfg     |  5 +++++
 tests/com32/hdt.results |  2 ++
 4 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/com32/cmenu/Makefile b/com32/cmenu/Makefile
index 5334a6b..100dba5 100644
--- a/com32/cmenu/Makefile
+++ b/com32/cmenu/Makefile
@@ -26,10 +26,9 @@ include $(MAKEDIR)/elf.mk
 
 CFLAGS	  += -I$(SRC)/libmenu
 
-LIBMENU = $(objdir)/com32/libutil/libutil.c32 \
-	$(objdir)/com32/lib/libcom32.c32 \
-	libmenu/syslnx.o libmenu/com32io.o libmenu/tui.o \
-	libmenu/menu.o libmenu/passwords.o libmenu/des.o libmenu/help.o
+LIBMENU = libmenu/syslnx.o libmenu/com32io.o libmenu/tui.o \
+	libmenu/menu.o libmenu/passwords.o libmenu/des.o libmenu/help.o \
+	$(objdir)/com32/libutil/libutil.c32 $(objdir)/com32/lib/libcom32.c32
 
 CMENUS = $(patsubst %.c,%.c32,$(wildcard $(SRC)/*.c))
 IMENUS = $(patsubst %.menu,%.c32,$(wildcard $(SRC)/*.menu))
diff --git a/tests/com32/Makefile b/tests/com32/Makefile
index 5a9a95b..7450475 100644
--- a/tests/com32/Makefile
+++ b/tests/com32/Makefile
@@ -19,11 +19,17 @@ chaindisk_results = chaindisk.results
 chaindisk:
 	$(run-test)
 
-tests: banner chaindisk
+tests: banner chaindisk hdt
 else
 
-tests:
+tests: banner hdt
 endif # ifeq ($(DERIVATIVE),SYSLINUX)
 
+hdt_cfg = hdt.cfg
+hdt_files = $(hdt_cfg)
+hdt_results = hdt.results
+hdt:
+	$(run-test)
+
 banner:
 	printf "    Running COM32 module regression tests...\n"
diff --git a/tests/com32/hdt.cfg b/tests/com32/hdt.cfg
new file mode 100644
index 0000000..970627d
--- /dev/null
+++ b/tests/com32/hdt.cfg
@@ -0,0 +1,5 @@
+DEFAULT dohdt
+
+LABEL dohdt
+    COM32 hdt.c32
+    APPEND nomenu auto='exit'
diff --git a/tests/com32/hdt.results b/tests/com32/hdt.results
new file mode 100644
index 0000000..420e018
--- /dev/null
+++ b/tests/com32/hdt.results
@@ -0,0 +1,2 @@
+Entering Auto mode
+Entering CLI mode


More information about the Syslinux-commits mailing list