busybox: Move libresolv detection to LEDE Makefile

Since the LEDE nslookup applet is already specific to LEDE, move the
libresolv detection into the busybox Makefile that LEDE uses.

This fixes builds with external toolchains that don't automatically
search for headers and/or libraries without being told so.

Fixes: de5b8e5d2f ("busybox: add musl compatible nslookup replacement")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
This commit is contained in:
Florian Fainelli 2017-04-12 09:02:30 -07:00 committed by Jo-Philipp Wich
parent 9437fbb7ab
commit 449880e0ff
2 changed files with 6 additions and 18 deletions

View File

@ -85,6 +85,12 @@ ifdef CONFIG_BUSYBOX_CONFIG_PAM
LDLIBS += pam pam_misc pthread
endif
ifdef CONFIG_BUSYBOX_DEFAULT_NSLOOKUP_LEDE
ifeq ($(CONFIG_USE_GLIBC),y)
LDLIBS += resolv
endif
endif
define Build/Compile
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
CC="$(TARGET_CC)" \

View File

@ -12,28 +12,10 @@ and the libresolv primitives to parse received DNS responses.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
---
Makefile.flags | 6 +
networking/nslookup_lede.c | 869 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 875 insertions(+)
create mode 100644 networking/nslookup_lede.c
diff --git a/Makefile.flags b/Makefile.flags
index 65021de..096ab77 100644
--- a/Makefile.flags
+++ b/Makefile.flags
@@ -134,6 +134,12 @@ else
LDLIBS += m
endif
+# nslookup_lede might need the resolv library
+RESOLV_AVAILABLE := $(shell echo 'int main(void){res_init();return 0;}' >resolvtest.c; $(CC) $(CFLAGS) -include resolv.h -lresolv -o /dev/null resolvtest.c >/dev/null 2>&1 && echo "y"; rm resolvtest.c)
+ifeq ($(RESOLV_AVAILABLE),y)
+LDLIBS += resolv
+endif
+
# libpam may use libpthread, libdl and/or libaudit.
# On some platforms that requires an explicit -lpthread, -ldl, -laudit.
# However, on *other platforms* it fails when some of those flags
diff --git a/networking/nslookup_lede.c b/networking/nslookup_lede.c
new file mode 100644
index 0000000..fe927ad