summaryrefslogtreecommitdiffstats
path: root/patches/02_fix-mconf-linking.patch
blob: 4549fde9847121d73b27bb6caa38195508fefdd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Author: "P. J. McDermott" <pj@pehjota.net>
Subject: Fix mconf linking

Recent versions of GNU ld no longer resolve references to symbols in implicitly
linked shared objects.

The object "scripts/kconfig/lxdialog/checklist.o" references the symbol
"acs_map", which is defined in libtinfo.so.5, which is only implicitly linked.

This hack causes libtinfo.so.5 to be explicitly linked (added to mconf's
DT_NEEDED) for the symbol to be resolved.

See <https://fedoraproject.org/wiki/UnderstandingDSOLinkChange> for a general
description of ld's behavior.

(Of course this is only needed to run `make menuconfig`.  Normal preconfigured
builds don't need this.)

diff -Naur src.orig/scripts/kconfig/lxdialog/check-lxdialog.sh src/scripts/kconfig/lxdialog/check-lxdialog.sh
--- src.orig/scripts/kconfig/lxdialog/check-lxdialog.sh
+++ src/scripts/kconfig/lxdialog/check-lxdialog.sh
@@ -10,7 +10,7 @@
 		for lib in ncursesw ncurses curses ; do
 			$cc -print-file-name=lib${lib}.${ext} | grep -q /
 			if [ $? -eq 0 ]; then
-				echo "-l${lib}"
+				echo "-l${lib} -ltinfo"
 				exit
 			fi
 		done