mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-18 21:05:26 +00:00
libtool: bump to 2.4.6
This updates libtool to its current release, from 2015. Current patches were renumbered and given a description text. The fix in 160-passthrough-ssp.patch is no longer needed. A patch to speed up build was cherry-picked, and another openwrt specific patch was needed to not use quotes in $(SHELL), to acommodate our "SHELL=/usr/bin/env bash" usage. The already present call to ./bootstrap ensures that generated files are refreshed, so the patches are applied only to their sources. Also, that bootstrap call was adjusted to run at the appropriate time when QUILT=1. Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
This commit is contained in:
parent
8c863f604d
commit
c377d874be
@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libtool
|
||||
PKG_CPE_ID:=cpe:/a:gnu:libtool
|
||||
PKG_VERSION:=2.4.2
|
||||
PKG_VERSION:=2.4.6
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
|
||||
PKG_HASH:=1d7b6862c1ed162e327f083a6f78f40eae29218f0db8c38393d61dab764c4407
|
||||
PKG_HASH:=7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f
|
||||
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
||||
@ -24,7 +24,12 @@ HOST_CONFIGURE_VARS += \
|
||||
define Host/Prepare
|
||||
$(call Host/Prepare/Default)
|
||||
(cd $(STAGING_DIR_HOST)/share/aclocal/ && rm -f libtool.m4 ltdl.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4)
|
||||
(cd $(HOST_BUILD_DIR); $(AM_TOOL_PATHS) ./bootstrap)
|
||||
$(if $(QUILT),,(cd $(HOST_BUILD_DIR); touch README-release; $(AM_TOOL_PATHS) ./bootstrap --skip-git --skip-po --force))
|
||||
endef
|
||||
|
||||
define Host/Configure
|
||||
$(if $(QUILT),(cd $(HOST_BUILD_DIR); touch README-release; $(AM_TOOL_PATHS) ./bootstrap --skip-git --skip-po --force))
|
||||
$(call Host/Configure/Default)
|
||||
endef
|
||||
|
||||
define Host/Install
|
||||
|
@ -1,46 +1,24 @@
|
||||
--- a/libltdl/config/general.m4sh
|
||||
+++ b/libltdl/config/general.m4sh
|
||||
@@ -45,15 +45,22 @@ progpath="$0"
|
||||
M4SH_VERBATIM([[
|
||||
: ${CP="cp -f"}
|
||||
test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
|
||||
-: ${EGREP="@EGREP@"}
|
||||
-: ${FGREP="@FGREP@"}
|
||||
-: ${GREP="@GREP@"}
|
||||
: ${LN_S="@LN_S@"}
|
||||
: ${MAKE="make"}
|
||||
: ${MKDIR="mkdir"}
|
||||
: ${MV="mv -f"}
|
||||
: ${RM="rm -f"}
|
||||
-: ${SED="@SED@"}
|
||||
+if test -n "$STAGING_DIR"; then
|
||||
+ : ${EGREP="$STAGING_DIR/../host/bin/grep -E"}
|
||||
+ : ${FGREP="$STAGING_DIR/../host/bin/grep -F"}
|
||||
+ : ${GREP="$STAGING_DIR/../host/bin/grep"}
|
||||
+ : ${SED="$STAGING_DIR/../host/bin/sed"}
|
||||
+else
|
||||
+ : ${EGREP="@EGREP@"}
|
||||
+ : ${FGREP="@FGREP@"}
|
||||
+ : ${GREP="@GREP@"}
|
||||
+ : ${SED="@SED@"}
|
||||
+fi
|
||||
: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
|
||||
: ${Xsed="$SED -e 1s/^X//"}
|
||||
|
||||
From ca10caa502f971f90d8c041aa2476de54ef0ce2b Mon Sep 17 00:00:00 2001
|
||||
From: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
Date: Tue, 20 Jul 2021 16:41:11 -0300
|
||||
Subject: openwrt: make relocatable, search resources relative to STAGING_DIR
|
||||
|
||||
This was originally commited to openwrt by Jo-Philipp Wich
|
||||
<jow@openwrt.org>.
|
||||
|
||||
(adjusted to v2.4.6)
|
||||
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
|
||||
--- a/libtoolize.in
|
||||
+++ b/libtoolize.in
|
||||
@@ -334,15 +334,22 @@ as_unset=as_fn_unset
|
||||
@@ -40,11 +40,18 @@
|
||||
|
||||
: ${CP="cp -f"}
|
||||
test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
|
||||
: ${AUTOCONF="autoconf"}
|
||||
: ${AUTOMAKE="automake"}
|
||||
-: ${EGREP="@EGREP@"}
|
||||
-: ${FGREP="@FGREP@"}
|
||||
-: ${GREP="@GREP@"}
|
||||
: ${LN_S="@LN_S@"}
|
||||
: ${MAKE="make"}
|
||||
: ${MKDIR="mkdir"}
|
||||
: ${MV="mv -f"}
|
||||
: ${RM="rm -f"}
|
||||
-: ${SED="@SED@"}
|
||||
+if test -n "$STAGING_DIR"; then
|
||||
+ : ${EGREP="$STAGING_DIR/../host/bin/grep -E"}
|
||||
@ -53,58 +31,12 @@
|
||||
+ : ${GREP="@GREP@"}
|
||||
+ : ${SED="@SED@"}
|
||||
+fi
|
||||
: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
|
||||
: ${Xsed="$SED -e 1s/^X//"}
|
||||
|
||||
@@ -2487,10 +2494,17 @@ func_check_macros ()
|
||||
|
||||
# Locations for important files:
|
||||
prefix=@prefix@
|
||||
- datadir=@datadir@
|
||||
- pkgdatadir=@pkgdatadir@
|
||||
- pkgltdldir=@pkgdatadir@
|
||||
- aclocaldir=@aclocaldir@
|
||||
+ if test -n "$STAGING_DIR"; then
|
||||
+ datadir="$STAGING_DIR/../host/share"
|
||||
+ pkgdatadir="$STAGING_DIR/../host/share/libtool"
|
||||
+ pkgltdldir="$STAGING_DIR/../host/share/libtool"
|
||||
+ aclocaldir="$STAGING_DIR/../host/share/aclocal"
|
||||
+ else
|
||||
+ datadir=@datadir@
|
||||
+ pkgdatadir=@pkgdatadir@
|
||||
+ pkgltdldir=@pkgdatadir@
|
||||
+ aclocaldir=@aclocaldir@
|
||||
+ fi
|
||||
auxdir=
|
||||
macrodir=
|
||||
configure_ac=configure.in
|
||||
--- a/libtoolize.m4sh
|
||||
+++ b/libtoolize.m4sh
|
||||
@@ -1453,10 +1453,17 @@ func_check_macros ()
|
||||
|
||||
# Locations for important files:
|
||||
prefix=@prefix@
|
||||
- datadir=@datadir@
|
||||
- pkgdatadir=@pkgdatadir@
|
||||
- pkgltdldir=@pkgdatadir@
|
||||
- aclocaldir=@aclocaldir@
|
||||
+ if test -n "$STAGING_DIR"; then
|
||||
+ datadir="$STAGING_DIR/../host/share"
|
||||
+ pkgdatadir="$STAGING_DIR/../host/share/libtool"
|
||||
+ pkgltdldir="$STAGING_DIR/../host/share/libtool"
|
||||
+ aclocaldir="$STAGING_DIR/../host/share/aclocal"
|
||||
+ else
|
||||
+ datadir=@datadir@
|
||||
+ pkgdatadir=@pkgdatadir@
|
||||
+ pkgltdldir=@pkgdatadir@
|
||||
+ aclocaldir=@aclocaldir@
|
||||
+ fi
|
||||
auxdir=
|
||||
macrodir=
|
||||
configure_ac=configure.in
|
||||
--- a/libltdl/m4/libtool.m4
|
||||
+++ b/libltdl/m4/libtool.m4
|
||||
@@ -907,9 +907,8 @@ dnl AC_DEFUN([AC_LIBTOOL_RC], [])
|
||||
## -------------------------- ##
|
||||
--- a/m4/libtool.m4
|
||||
+++ b/m4/libtool.m4
|
||||
@@ -929,9 +929,8 @@ dnl AC_DEFUN([AC_LIBTOOL_RC], [])
|
||||
# ----------------
|
||||
m4_defun([_LT_TAG_COMPILER],
|
||||
[AC_REQUIRE([AC_PROG_CC])dnl
|
||||
@ -115,7 +47,7 @@
|
||||
_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
|
||||
_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
|
||||
|
||||
@@ -7660,9 +7659,9 @@ m4_defun([_LT_DECL_EGREP],
|
||||
@@ -8160,9 +8159,9 @@ m4_defun([_LT_DECL_EGREP],
|
||||
[AC_REQUIRE([AC_PROG_EGREP])dnl
|
||||
AC_REQUIRE([AC_PROG_FGREP])dnl
|
||||
test -z "$GREP" && GREP=grep
|
||||
@ -128,7 +60,7 @@
|
||||
dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
|
||||
AC_SUBST([GREP])
|
||||
])
|
||||
@@ -7695,9 +7694,8 @@ AC_SUBST([DLLTOOL])
|
||||
@@ -8195,9 +8194,8 @@ AC_SUBST([DLLTOOL])
|
||||
# as few characters as possible. Prefer GNU sed if found.
|
||||
m4_defun([_LT_DECL_SED],
|
||||
[AC_PROG_SED
|
||||
|
@ -1,83 +1,56 @@
|
||||
--- a/libltdl/config/ltmain.m4sh
|
||||
+++ b/libltdl/config/ltmain.m4sh
|
||||
@@ -5731,8 +5731,14 @@ func_mode_link ()
|
||||
absdir="$abs_ladir"
|
||||
libdir="$abs_ladir"
|
||||
From 67ffe8e8582a7ba1f1d1307a419098e6dd88bdaf Mon Sep 17 00:00:00 2001
|
||||
From: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
Date: Tue, 20 Jul 2021 16:41:11 -0300
|
||||
Subject: openwrt: cross-compilation path adjustments
|
||||
|
||||
Comments from the patch:
|
||||
|
||||
Adding 'libdir' from the .la file to our library search paths
|
||||
breaks crosscompilation horribly. We cheat here and don't add
|
||||
it, instead adding the path where we found the .la. -CL
|
||||
|
||||
OE sets installed=no in staging. We need to look in $objdir and $absdir,
|
||||
preferring $objdir. RP 31/04/2008
|
||||
|
||||
This was originally commited to openwrt by Jo-Philipp Wich
|
||||
<jow@openwrt.org>.
|
||||
|
||||
(adjusted to v2.4.6)
|
||||
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
|
||||
--- a/build-aux/ltmain.in
|
||||
+++ b/build-aux/ltmain.in
|
||||
@@ -6049,8 +6049,14 @@ func_mode_link ()
|
||||
absdir=$abs_ladir
|
||||
libdir=$abs_ladir
|
||||
else
|
||||
- dir="$lt_sysroot$libdir"
|
||||
- absdir="$lt_sysroot$libdir"
|
||||
- dir=$lt_sysroot$libdir
|
||||
- absdir=$lt_sysroot$libdir
|
||||
+ # Adding 'libdir' from the .la file to our library search paths
|
||||
+ # breaks crosscompilation horribly. We cheat here and don't add
|
||||
+ # it, instead adding the path where we found the .la. -CL
|
||||
+ dir="$lt_sysroot$abs_ladir"
|
||||
+ absdir="$abs_ladir"
|
||||
+ libdir="$abs_ladir"
|
||||
+ #dir="$libdir"
|
||||
+ #absdir="$lt_sysroot$libdir"
|
||||
+ #dir=$lt_sysroot$libdir
|
||||
+ #absdir=$lt_sysroot$libdir
|
||||
fi
|
||||
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
|
||||
test yes = "$hardcode_automatic" && avoidtemprpath=yes
|
||||
else
|
||||
@@ -6130,8 +6136,6 @@ func_mode_link ()
|
||||
add="$libdir/$linklib"
|
||||
@@ -6448,8 +6454,6 @@ func_mode_link ()
|
||||
add=$libdir/$linklib
|
||||
fi
|
||||
else
|
||||
- # We cannot seem to hardcode it, guess we'll fake it.
|
||||
- add_dir="-L$libdir"
|
||||
- add_dir=-L$libdir
|
||||
# Try looking first in the location we're being installed to.
|
||||
if test -n "$inst_prefix_dir"; then
|
||||
case $libdir in
|
||||
@@ -6286,7 +6290,17 @@ func_mode_link ()
|
||||
@@ -6604,7 +6608,17 @@ func_mode_link ()
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
- path="-L$absdir/$objdir"
|
||||
+ # OE sets installed=no in staging. We need to look in $objdir and $absdir,
|
||||
+ # preferring $objdir. RP 31/04/2008
|
||||
+ if test -f "$absdir/$objdir/$depdepl" ; then
|
||||
+ depdepl="$absdir/$objdir/$depdepl"
|
||||
+ path="-L$absdir/$objdir"
|
||||
+ elif test -f "$absdir/$depdepl" ; then
|
||||
+ depdepl="$absdir/$depdepl"
|
||||
+ path="-L$absdir"
|
||||
+ else
|
||||
+ path="-L$absdir/$objdir"
|
||||
+ fi
|
||||
;;
|
||||
esac
|
||||
else
|
||||
--- a/libltdl/config/ltmain.sh
|
||||
+++ b/libltdl/config/ltmain.sh
|
||||
@@ -6518,8 +6518,14 @@ func_mode_link ()
|
||||
absdir="$abs_ladir"
|
||||
libdir="$abs_ladir"
|
||||
else
|
||||
- dir="$lt_sysroot$libdir"
|
||||
- absdir="$lt_sysroot$libdir"
|
||||
+ # Adding 'libdir' from the .la file to our library search paths
|
||||
+ # breaks crosscompilation horribly. We cheat here and don't add
|
||||
+ # it, instead adding the path where we found the .la. -CL
|
||||
+ dir="$lt_sysroot$abs_ladir"
|
||||
+ absdir="$abs_ladir"
|
||||
+ libdir="$abs_ladir"
|
||||
+ #dir="$libdir"
|
||||
+ #absdir="$lt_sysroot$libdir"
|
||||
fi
|
||||
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
|
||||
else
|
||||
@@ -6917,8 +6923,6 @@ func_mode_link ()
|
||||
add="$libdir/$linklib"
|
||||
fi
|
||||
else
|
||||
- # We cannot seem to hardcode it, guess we'll fake it.
|
||||
- add_dir="-L$libdir"
|
||||
# Try looking first in the location we're being installed to.
|
||||
if test -n "$inst_prefix_dir"; then
|
||||
case $libdir in
|
||||
@@ -7073,7 +7077,17 @@ func_mode_link ()
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
- path="-L$absdir/$objdir"
|
||||
- path=-L$absdir/$objdir
|
||||
+ # OE sets installed=no in staging. We need to look in $objdir and $absdir,
|
||||
+ # preferring $objdir. RP 31/04/2008
|
||||
+ if test -f "$absdir/$objdir/$depdepl" ; then
|
||||
|
@ -1,20 +1,33 @@
|
||||
--- a/libltdl/config/ltmain.m4sh
|
||||
+++ b/libltdl/config/ltmain.m4sh
|
||||
@@ -6120,7 +6120,6 @@ func_mode_link ()
|
||||
test "$hardcode_direct_absolute" = no; then
|
||||
add="$libdir/$linklib"
|
||||
elif test "$hardcode_minus_L" = yes; then
|
||||
- add_dir="-L$libdir"
|
||||
add="-l$name"
|
||||
elif test "$hardcode_shlibpath_var" = yes; then
|
||||
case :$finalize_shlibpath: in
|
||||
--- a/libltdl/config/ltmain.sh
|
||||
+++ b/libltdl/config/ltmain.sh
|
||||
@@ -6907,7 +6907,6 @@ func_mode_link ()
|
||||
test "$hardcode_direct_absolute" = no; then
|
||||
add="$libdir/$linklib"
|
||||
elif test "$hardcode_minus_L" = yes; then
|
||||
- add_dir="-L$libdir"
|
||||
add="-l$name"
|
||||
elif test "$hardcode_shlibpath_var" = yes; then
|
||||
From 375833af93999f8b0a747c8a1dfa3ec8d347743d Mon Sep 17 00:00:00 2001
|
||||
From: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
Date: Tue, 20 Jul 2021 16:52:37 -0300
|
||||
Subject: openwrt: don't use target dir for relinking
|
||||
|
||||
This was originally commited to openwrt by Jo-Philipp Wich
|
||||
<jow@openwrt.org>.
|
||||
|
||||
(adjusted to v2.4.6)
|
||||
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
|
||||
--- a/build-aux/ltmain.in
|
||||
+++ b/build-aux/ltmain.in
|
||||
@@ -6434,13 +6434,13 @@ func_mode_link ()
|
||||
add_dir=
|
||||
add=
|
||||
# Finalize command for both is simple: just hardcode it.
|
||||
- if test yes = "$hardcode_direct" &&
|
||||
- test no = "$hardcode_direct_absolute"; then
|
||||
- add=$libdir/$linklib
|
||||
- elif test yes = "$hardcode_minus_L"; then
|
||||
+ if test "$hardcode_direct" = yes &&
|
||||
+ test "$hardcode_direct_absolute" = no; then
|
||||
+ add="$libdir/$linklib"
|
||||
+ elif test "$hardcode_minus_L" = yes; then
|
||||
add_dir=-L$libdir
|
||||
- add=-l$name
|
||||
- elif test yes = "$hardcode_shlibpath_var"; then
|
||||
+ add="-l$name"
|
||||
+ elif test "$hardcode_shlibpath_var" = yes; then
|
||||
case :$finalize_shlibpath: in
|
||||
*":$libdir:"*) ;;
|
||||
*) func_append finalize_shlibpath "$libdir:" ;;
|
||||
|
@ -1,24 +1,26 @@
|
||||
--- a/libltdl/config/ltmain.m4sh
|
||||
+++ b/libltdl/config/ltmain.m4sh
|
||||
@@ -2183,6 +2183,9 @@ func_mode_install ()
|
||||
From 7f2b8a1ab4fa1475eeeddfb84eb5b92594bfce43 Mon Sep 17 00:00:00 2001
|
||||
From: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
Date: Tue, 20 Jul 2021 16:54:12 -0300
|
||||
Subject: openwrt: strip unsave directories from relink command
|
||||
|
||||
strip unsave directories from relink command, nuke every -L that looks
|
||||
like /usr/lib or /lib
|
||||
|
||||
This was originally commited to openwrt by Jo-Philipp Wich
|
||||
<jow@openwrt.org>.
|
||||
|
||||
(adjusted to v2.4.6)
|
||||
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
|
||||
--- a/build-aux/ltmain.in
|
||||
+++ b/build-aux/ltmain.in
|
||||
@@ -2382,6 +2382,9 @@ func_mode_install ()
|
||||
relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
|
||||
fi
|
||||
|
||||
+ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/lib[^[:space:]]*%%"`
|
||||
+ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/usr/lib[^[:space:]]*%%"`
|
||||
+
|
||||
func_warning "relinking \`$file'"
|
||||
func_warning "relinking '$file'"
|
||||
func_show_eval "$relink_command" \
|
||||
'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
|
||||
--- a/libltdl/config/ltmain.sh
|
||||
+++ b/libltdl/config/ltmain.sh
|
||||
@@ -2973,6 +2973,9 @@ func_mode_install ()
|
||||
relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
|
||||
fi
|
||||
|
||||
+ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/lib[^[:space:]]*%%"`
|
||||
+ relink_command=`$ECHO "$relink_command" | $SED "s%-L[[:space:]]*/usr/lib[^[:space:]]*%%"`
|
||||
+
|
||||
func_warning "relinking \`$file'"
|
||||
func_show_eval "$relink_command" \
|
||||
'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
|
||||
'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
|
||||
|
@ -1,3 +1,8 @@
|
||||
From 1b45c3c0d6682be7f4876b620780ee246a5acbaa Mon Sep 17 00:00:00 2001
|
||||
From: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
Date: Tue, 20 Jul 2021 16:56:16 -0300
|
||||
Subject: openwrt: remove trailing slash in install destdir
|
||||
|
||||
A command like /bin/sh ../../i586-poky-linux-libtool --mode=install /usr/bin/install -c gck-roots-store-standalone.la '/media/data1/builds/poky1/tmp/work/core2-poky-linux/gnome-keyring-2.26.1-r1/image/usr/lib/gnome-keyring/standalone/' fails (e.g. gnome-keyring or pulseaudio)
|
||||
|
||||
This is because libdir has a trailing slash which breaks the comparision.
|
||||
@ -9,28 +14,12 @@ Merged a patch received from Gary Thomas <gary@mlbassoc.com>
|
||||
Date: 2010/07/12
|
||||
Nitin A Kamble <nitin.a.kamble@intel.com>
|
||||
|
||||
--- a/libltdl/config/ltmain.m4sh
|
||||
+++ b/libltdl/config/ltmain.m4sh
|
||||
@@ -2167,8 +2167,15 @@ func_mode_install ()
|
||||
func_append dir "$objdir"
|
||||
|
||||
if test -n "$relink_command"; then
|
||||
+ # Strip any trailing slash from the destination.
|
||||
+ func_stripname '' '/' "$libdir"
|
||||
+ destlibdir=$func_stripname_result
|
||||
+
|
||||
+ func_stripname '' '/' "$destdir"
|
||||
+ s_destdir=$func_stripname_result
|
||||
+
|
||||
# Determine the prefix the user has applied to our future dir.
|
||||
- inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
|
||||
+ inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`
|
||||
|
||||
# Don't allow the user to place us outside of our expected
|
||||
# location b/c this prevents finding dependent libraries that
|
||||
--- a/libltdl/config/ltmain.sh
|
||||
+++ b/libltdl/config/ltmain.sh
|
||||
@@ -2954,8 +2954,15 @@ func_mode_install ()
|
||||
(adjusted to v2.4.6)
|
||||
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
|
||||
--- a/build-aux/ltmain.in
|
||||
+++ b/build-aux/ltmain.in
|
||||
@@ -2363,8 +2363,15 @@ func_mode_install ()
|
||||
func_append dir "$objdir"
|
||||
|
||||
if test -n "$relink_command"; then
|
@ -0,0 +1,72 @@
|
||||
From 879578d3f4dc9bc42aa433b1fb6b584564f83617 Mon Sep 17 00:00:00 2001
|
||||
From: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
Date: Wed, 21 Jul 2021 13:38:24 -0300
|
||||
Subject: openwrt: don't quote $(SHELL) in Makefile.am
|
||||
|
||||
This allows to use SHELL="env bash" to get a controlled enviroment.
|
||||
|
||||
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -46,7 +46,7 @@ EXTRA_LTLIBRARIES =
|
||||
# Using 'cd' in backquotes may print the directory name, use this instead:
|
||||
lt__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
|
||||
-git_version_gen = '$(SHELL)' '$(aux_dir)/git-version-gen' '--fallback' '$(VERSION)' '.tarball-version'
|
||||
+git_version_gen = $(SHELL) '$(aux_dir)/git-version-gen' '--fallback' '$(VERSION)' '.tarball-version'
|
||||
rebuild = rebuild=:; revision=`$(lt__cd) $(srcdir) && $(git_version_gen) | $(SED) 's|-.*$$||'`
|
||||
|
||||
|
||||
@@ -301,7 +301,7 @@ libtool: $(ltmain_sh) $(config_status) $
|
||||
if test 0 = '$(AM_DEFAULT_VERBOSITY)' && test 1 != '$(V)'; \
|
||||
then echo " GEN " $@; \
|
||||
else echo '$(SHELL) $(top_builddir)/config.status "$@"'; fi; \
|
||||
- cd '$(top_builddir)' && '$(SHELL)' ./config.status '$@'; \
|
||||
+ cd '$(top_builddir)' && $(SHELL) ./config.status '$@'; \
|
||||
fi
|
||||
|
||||
|
||||
@@ -788,13 +788,13 @@ testsuite_deps_uninstalled = $(testsuite
|
||||
# Hook the test suite into the check rule
|
||||
check-local: $(testsuite_deps_uninstalled)
|
||||
$(AM_V_at)$(CD_TESTDIR); \
|
||||
- CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
|
||||
+ CONFIG_SHELL=$(SHELL) $(SHELL) "$$abs_srcdir/$(TESTSUITE)" \
|
||||
$(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) $(TESTSUITEFLAGS)
|
||||
|
||||
# Run the test suite on the *installed* tree.
|
||||
installcheck-local: $(testsuite_deps)
|
||||
$(AM_V_at)$(CD_TESTDIR); \
|
||||
- CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
|
||||
+ CONFIG_SHELL=$(SHELL) $(SHELL) "$$abs_srcdir/$(TESTSUITE)" \
|
||||
$(TESTS_ENVIRONMENT) $(INSTALLCHECK_ENVIRONMENT) $(TESTSUITEFLAGS) \
|
||||
AUTOTEST_PATH='$(exec_prefix)/bin'
|
||||
|
||||
@@ -806,7 +806,7 @@ check-noninteractive-old:
|
||||
.PHONY: check-noninteractive-new
|
||||
check-noninteractive-new: $(testsuite_deps_uninstalled)
|
||||
$(AM_V_at)$(CD_TESTDIR); \
|
||||
- CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
|
||||
+ CONFIG_SHELL=$(SHELL) $(SHELL) "$$abs_srcdir/$(TESTSUITE)" \
|
||||
$(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) \
|
||||
-k '!interactive' INNER_TESTSUITEFLAGS=',!interactive' \
|
||||
$(TESTSUITEFLAGS)
|
||||
@@ -815,7 +815,7 @@ check-noninteractive-new: $(testsuite_de
|
||||
.PHONY: check-interactive
|
||||
check-interactive: $(testsuite_deps_uninstalled)
|
||||
$(AM_V_at)$(CD_TESTDIR); \
|
||||
- CONFIG_SHELL='$(SHELL)' '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" \
|
||||
+ CONFIG_SHELL=$(SHELL) $(SHELL) "$$abs_srcdir/$(TESTSUITE)" \
|
||||
$(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) \
|
||||
-k interactive -k recursive INNER_TESTSUITEFLAGS=',interactive' \
|
||||
$(TESTSUITEFLAGS)
|
||||
@@ -827,7 +827,7 @@ check-noninteractive: check-noninteracti
|
||||
clean-local:
|
||||
-$(CD_TESTDIR); \
|
||||
test -f "$$abs_srcdir/$(TESTSUITE)" && \
|
||||
- '$(SHELL)' "$$abs_srcdir/$(TESTSUITE)" --clean
|
||||
+ $(SHELL) "$$abs_srcdir/$(TESTSUITE)" --clean
|
||||
|
||||
## An empty target to depend on when a rule needs to always run
|
||||
## whenever it is visited.
|
@ -0,0 +1,224 @@
|
||||
From 3adadb568fbf15d952bd25a005b6a9afb7e59dc7 Mon Sep 17 00:00:00 2001
|
||||
From: Pavel Raiskup <praiskup@redhat.com>
|
||||
Date: Sun, 4 Oct 2015 21:55:03 +0200
|
||||
Subject: libtool: mitigate the $sed_quote_subst slowdown
|
||||
|
||||
When it is reasonably possible, use shell implementation for
|
||||
quoting.
|
||||
|
||||
References:
|
||||
http://lists.gnu.org/archive/html/libtool/2015-03/msg00005.html
|
||||
http://lists.gnu.org/archive/html/libtool/2015-02/msg00000.html
|
||||
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20006
|
||||
|
||||
* gl/build-aux/funclib.sh (func_quote): New function that can be
|
||||
used as substitution for '$SED $sed_quote_subst' call.
|
||||
* build-aux/ltmain.in (func_emit_wrapper): Use func_quote instead
|
||||
of '$SED $sed_quote_subst'.
|
||||
(func_mode_link): Likewise.
|
||||
* NEWS: Document.
|
||||
* bootstrap: Sync with funclib.sh.
|
||||
|
||||
(cherry picked from commit 32f0df9835ac15ac17e04be57c368172c3ad1d19)
|
||||
(skipping NEWS change)
|
||||
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
|
||||
--- a/bootstrap
|
||||
+++ b/bootstrap
|
||||
@@ -230,7 +230,7 @@ vc_ignore=
|
||||
|
||||
# Source required external libraries:
|
||||
# Set a version string for this script.
|
||||
-scriptversion=2015-01-20.17; # UTC
|
||||
+scriptversion=2015-10-04.22; # UTC
|
||||
|
||||
# General shell script boiler plate, and helper functions.
|
||||
# Written by Gary V. Vaughan, 2004
|
||||
@@ -1257,6 +1257,57 @@ func_relative_path ()
|
||||
}
|
||||
|
||||
|
||||
+# func_quote ARG
|
||||
+# --------------
|
||||
+# Aesthetically quote one ARG, store the result into $func_quote_result. Note
|
||||
+# that we keep attention to performance here (so far O(N) complexity as long as
|
||||
+# func_append is O(1)).
|
||||
+func_quote ()
|
||||
+{
|
||||
+ $debug_cmd
|
||||
+
|
||||
+ func_quote_result=$1
|
||||
+
|
||||
+ case $func_quote_result in
|
||||
+ *[\\\`\"\$]*)
|
||||
+ case $func_quote_result in
|
||||
+ *'*'*|*'['*)
|
||||
+ func_quote_result=`$ECHO "$func_quote_result" | $SED "$sed_quote_subst"`
|
||||
+ return 0
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
+ func_quote_old_IFS=$IFS
|
||||
+ for _G_char in '\' '`' '"' '$'
|
||||
+ do
|
||||
+ # STATE($1) PREV($2) SEPARATOR($3)
|
||||
+ set start "" ""
|
||||
+ func_quote_result=dummy"$_G_char$func_quote_result$_G_char"dummy
|
||||
+ IFS=$_G_char
|
||||
+ for _G_part in $func_quote_result
|
||||
+ do
|
||||
+ case $1 in
|
||||
+ quote)
|
||||
+ func_append func_quote_result "$3$2"
|
||||
+ set quote "$_G_part" "\\$_G_char"
|
||||
+ ;;
|
||||
+ start)
|
||||
+ set first "" ""
|
||||
+ func_quote_result=
|
||||
+ ;;
|
||||
+ first)
|
||||
+ set quote "$_G_part" ""
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ IFS=$func_quote_old_IFS
|
||||
+ done
|
||||
+ ;;
|
||||
+ *) ;;
|
||||
+ esac
|
||||
+}
|
||||
+
|
||||
+
|
||||
# func_quote_for_eval ARG...
|
||||
# --------------------------
|
||||
# Aesthetically quote ARGs to be evaled later.
|
||||
@@ -1273,12 +1324,8 @@ func_quote_for_eval ()
|
||||
func_quote_for_eval_unquoted_result=
|
||||
func_quote_for_eval_result=
|
||||
while test 0 -lt $#; do
|
||||
- case $1 in
|
||||
- *[\\\`\"\$]*)
|
||||
- _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
|
||||
- *)
|
||||
- _G_unquoted_arg=$1 ;;
|
||||
- esac
|
||||
+ func_quote "$1"
|
||||
+ _G_unquoted_arg=$func_quote_result
|
||||
if test -n "$func_quote_for_eval_unquoted_result"; then
|
||||
func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
|
||||
else
|
||||
--- a/build-aux/ltmain.in
|
||||
+++ b/build-aux/ltmain.in
|
||||
@@ -3356,7 +3356,8 @@ else
|
||||
if test \"\$libtool_execute_magic\" != \"$magic\"; then
|
||||
file=\"\$0\""
|
||||
|
||||
- qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
|
||||
+ func_quote "$ECHO"
|
||||
+ qECHO=$func_quote_result
|
||||
$ECHO "\
|
||||
|
||||
# A function that is used when there is no print builtin or printf.
|
||||
@@ -8618,8 +8619,8 @@ EOF
|
||||
relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
|
||||
fi
|
||||
done
|
||||
- relink_command="(cd `pwd`; $relink_command)"
|
||||
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
|
||||
+ func_quote "(cd `pwd`; $relink_command)"
|
||||
+ relink_command=$func_quote_result
|
||||
fi
|
||||
|
||||
# Only actually do things if not in dry run mode.
|
||||
@@ -8865,7 +8866,8 @@ EOF
|
||||
done
|
||||
# Quote the link command for shipping.
|
||||
relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
|
||||
- relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
|
||||
+ func_quote "$relink_command"
|
||||
+ relink_command=$func_quote_result
|
||||
if test yes = "$hardcode_automatic"; then
|
||||
relink_command=
|
||||
fi
|
||||
--- a/build-aux/funclib.sh
|
||||
+++ b/build-aux/funclib.sh
|
||||
@@ -1,5 +1,5 @@
|
||||
# Set a version string for this script.
|
||||
-scriptversion=2015-01-20.17; # UTC
|
||||
+scriptversion=2015-10-04.22; # UTC
|
||||
|
||||
# General shell script boiler plate, and helper functions.
|
||||
# Written by Gary V. Vaughan, 2004
|
||||
@@ -1026,6 +1026,57 @@ func_relative_path ()
|
||||
}
|
||||
|
||||
|
||||
+# func_quote ARG
|
||||
+# --------------
|
||||
+# Aesthetically quote one ARG, store the result into $func_quote_result. Note
|
||||
+# that we keep attention to performance here (so far O(N) complexity as long as
|
||||
+# func_append is O(1)).
|
||||
+func_quote ()
|
||||
+{
|
||||
+ $debug_cmd
|
||||
+
|
||||
+ func_quote_result=$1
|
||||
+
|
||||
+ case $func_quote_result in
|
||||
+ *[\\\`\"\$]*)
|
||||
+ case $func_quote_result in
|
||||
+ *[\[\*\?]*)
|
||||
+ func_quote_result=`$ECHO "$func_quote_result" | $SED "$sed_quote_subst"`
|
||||
+ return 0
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
+ func_quote_old_IFS=$IFS
|
||||
+ for _G_char in '\' '`' '"' '$'
|
||||
+ do
|
||||
+ # STATE($1) PREV($2) SEPARATOR($3)
|
||||
+ set start "" ""
|
||||
+ func_quote_result=dummy"$_G_char$func_quote_result$_G_char"dummy
|
||||
+ IFS=$_G_char
|
||||
+ for _G_part in $func_quote_result
|
||||
+ do
|
||||
+ case $1 in
|
||||
+ quote)
|
||||
+ func_append func_quote_result "$3$2"
|
||||
+ set quote "$_G_part" "\\$_G_char"
|
||||
+ ;;
|
||||
+ start)
|
||||
+ set first "" ""
|
||||
+ func_quote_result=
|
||||
+ ;;
|
||||
+ first)
|
||||
+ set quote "$_G_part" ""
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+ IFS=$func_quote_old_IFS
|
||||
+ done
|
||||
+ ;;
|
||||
+ *) ;;
|
||||
+ esac
|
||||
+}
|
||||
+
|
||||
+
|
||||
# func_quote_for_eval ARG...
|
||||
# --------------------------
|
||||
# Aesthetically quote ARGs to be evaled later.
|
||||
@@ -1042,12 +1093,8 @@ func_quote_for_eval ()
|
||||
func_quote_for_eval_unquoted_result=
|
||||
func_quote_for_eval_result=
|
||||
while test 0 -lt $#; do
|
||||
- case $1 in
|
||||
- *[\\\`\"\$]*)
|
||||
- _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
|
||||
- *)
|
||||
- _G_unquoted_arg=$1 ;;
|
||||
- esac
|
||||
+ func_quote "$1"
|
||||
+ _G_unquoted_arg=$func_quote_result
|
||||
if test -n "$func_quote_for_eval_unquoted_result"; then
|
||||
func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
|
||||
else
|
@ -1,12 +0,0 @@
|
||||
diff -ur libtool-2.4.orig/libltdl/config/ltmain.m4sh libtool-2.4/libltdl/config/ltmain.m4sh
|
||||
--- libtool-2.4.orig/libltdl/config/ltmain.m4sh 2015-06-18 10:46:15.499996979 +0200
|
||||
+++ libtool-2.4/libltdl/config/ltmain.m4sh 2015-06-18 10:48:24.686882213 +0200
|
||||
@@ -5076,7 +5076,7 @@
|
||||
# -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
|
||||
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
|
||||
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
||||
- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
|
||||
+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*)
|
||||
func_quote_for_eval "$arg"
|
||||
arg="$func_quote_for_eval_result"
|
||||
func_append compile_command " $arg"
|
@ -1,112 +1,24 @@
|
||||
--- a/libltdl/config/general.m4sh
|
||||
+++ b/libltdl/config/general.m4sh
|
||||
@@ -359,7 +359,7 @@ opt_warning=:
|
||||
# name if it has been set yet.
|
||||
func_echo ()
|
||||
{
|
||||
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
|
||||
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
|
||||
From 90707200efadc8e230635c7c204c9c272cbc8631 Mon Sep 17 00:00:00 2001
|
||||
From: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
Date: Tue, 20 Jul 2021 17:01:03 -0300
|
||||
Subject: openwrt: add openwrt branding
|
||||
|
||||
This prepends program name with "OpenWrt-".
|
||||
|
||||
This was originally commited to openwrt by Jo-Philipp Wich
|
||||
<jow@openwrt.org>.
|
||||
|
||||
(adjusted to v2.4.6)
|
||||
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||
|
||||
--- a/build-aux/ltmain.in
|
||||
+++ b/build-aux/ltmain.in
|
||||
@@ -82,7 +82,7 @@ func_echo ()
|
||||
IFS=$nl
|
||||
for _G_line in $_G_message; do
|
||||
IFS=$func_echo_IFS
|
||||
- $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
|
||||
+ $ECHO "OpenWrt-$progname${opt_mode+: $opt_mode}: $_G_line"
|
||||
done
|
||||
IFS=$func_echo_IFS
|
||||
}
|
||||
|
||||
# func_verbose arg...
|
||||
@@ -385,14 +385,14 @@ func_echo_all ()
|
||||
# Echo program name prefixed message to standard error.
|
||||
func_error ()
|
||||
{
|
||||
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
|
||||
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
|
||||
}
|
||||
|
||||
# func_warning arg...
|
||||
# Echo program name prefixed warning message to standard error.
|
||||
func_warning ()
|
||||
{
|
||||
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
|
||||
+ $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
|
||||
|
||||
# bash bug again:
|
||||
:
|
||||
--- a/libltdl/config/ltmain.sh
|
||||
+++ b/libltdl/config/ltmain.sh
|
||||
@@ -439,7 +439,7 @@ opt_warning=:
|
||||
# name if it has been set yet.
|
||||
func_echo ()
|
||||
{
|
||||
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
|
||||
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
|
||||
}
|
||||
|
||||
# func_verbose arg...
|
||||
@@ -465,14 +465,14 @@ func_echo_all ()
|
||||
# Echo program name prefixed message to standard error.
|
||||
func_error ()
|
||||
{
|
||||
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
|
||||
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
|
||||
}
|
||||
|
||||
# func_warning arg...
|
||||
# Echo program name prefixed warning message to standard error.
|
||||
func_warning ()
|
||||
{
|
||||
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
|
||||
+ $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
|
||||
|
||||
# bash bug again:
|
||||
:
|
||||
--- a/libtoolize.in
|
||||
+++ b/libtoolize.in
|
||||
@@ -648,7 +648,7 @@ opt_warning=:
|
||||
# name if it has been set yet.
|
||||
func_echo ()
|
||||
{
|
||||
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
|
||||
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
|
||||
}
|
||||
|
||||
# func_verbose arg...
|
||||
@@ -674,14 +674,14 @@ func_echo_all ()
|
||||
# Echo program name prefixed message to standard error.
|
||||
func_error ()
|
||||
{
|
||||
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
|
||||
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
|
||||
}
|
||||
|
||||
# func_warning arg...
|
||||
# Echo program name prefixed warning message to standard error.
|
||||
func_warning ()
|
||||
{
|
||||
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
|
||||
+ $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
|
||||
|
||||
# bash bug again:
|
||||
:
|
||||
--- a/tests/defs.in
|
||||
+++ b/tests/defs.in
|
||||
@@ -596,7 +596,7 @@ opt_warning=:
|
||||
# name if it has been set yet.
|
||||
func_echo ()
|
||||
{
|
||||
- $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
|
||||
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }$*"
|
||||
}
|
||||
|
||||
# func_verbose arg...
|
||||
@@ -622,14 +622,14 @@ func_echo_all ()
|
||||
# Echo program name prefixed message to standard error.
|
||||
func_error ()
|
||||
{
|
||||
- $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
|
||||
+ $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
|
||||
}
|
||||
|
||||
# func_warning arg...
|
||||
# Echo program name prefixed warning message to standard error.
|
||||
func_warning ()
|
||||
{
|
||||
- $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
|
||||
+ $opt_warning && $ECHO "OpenWrt-$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
|
||||
|
||||
# bash bug again:
|
||||
:
|
||||
|
Loading…
Reference in New Issue
Block a user