From 371bf3954680bac23a32ead2194c579bdc78f537 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sat, 27 Jun 2015 14:25:43 +0200 Subject: [PATCH] screen: fix autoconf misdetection The configure script shipped by screen uses the presence of `elf.h` and `-lelf` as indicator for an SVR4 system which implies a `#define BUGGYGETLOGIN`. The SVR4 `getlogin()` replacement function does not compile with a musl toolchain and we do not want it anyway, so patch configure to remove the broken SVR4 detection logic. Signed-off-by: Jo-Philipp Wich --- utils/screen/Makefile | 6 ++- utils/screen/patches/200-musl-compat.patch | 47 ++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/utils/screen/Makefile b/utils/screen/Makefile index 634121424..5879e37a6 100644 --- a/utils/screen/Makefile +++ b/utils/screen/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=screen PKG_VERSION:=4.2.1 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@GNU/screen @@ -40,6 +40,10 @@ define Build/Configure ) # XXX: memmove() works well with overlapped memory areas echo "#define USEMEMMOVE 1" >>$(PKG_BUILD_DIR)/config.h + ifeq ($(CONFIG_USE_MUSL),y) + # XXX: assume a working getlogin() for musl + echo "#undef BUGGYGETLOGIN" >>$(PKG_BUILD_DIR)/config.h + endif endef define Package/screen/install diff --git a/utils/screen/patches/200-musl-compat.patch b/utils/screen/patches/200-musl-compat.patch index 2586bb984..5bbc9d0ea 100644 --- a/utils/screen/patches/200-musl-compat.patch +++ b/utils/screen/patches/200-musl-compat.patch @@ -1,3 +1,50 @@ +--- a/configure ++++ b/configure +@@ -4154,44 +4154,6 @@ fi + rm -f conftest* + + +-oldlibs="$LIBS" +-LIBS="$LIBS -lelf" +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking SVR4..." >&5 +-$as_echo "$as_me: checking SVR4..." >&6;} +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +-#include +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_fn_c_check_header_mongrel "$LINENO" "dwarf.h" "ac_cv_header_dwarf_h" "$ac_includes_default" +-if test "x$ac_cv_header_dwarf_h" = xyes; then : +- $as_echo "#define SVR4 1" >>confdefs.h +- $as_echo "#define BUGGYGETLOGIN 1" >>confdefs.h +- +-else +- ac_fn_c_check_header_mongrel "$LINENO" "elf.h" "ac_cv_header_elf_h" "$ac_includes_default" +-if test "x$ac_cv_header_elf_h" = xyes; then : +- $as_echo "#define SVR4 1" >>confdefs.h +- $as_echo "#define BUGGYGETLOGIN 1" >>confdefs.h +- +-fi +- +- +-fi +- +- +- +-else +- LIBS="$oldlibs" +-fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + for ac_header in stropts.h string.h strings.h --- a/utmp.c +++ b/utmp.c @@ -33,6 +33,7 @@