Re: [PATCH] xfsprogs: fix static build problems caused by liburcu

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jan 08, 2022 at 02:57:39PM -0500, Theodore Ts'o wrote:
> The liburcu library has a dependency on pthreads.  Hence, in order for
> static builds of xfsprogs to work, $(LIBPTHREAD) needs to appear
> *after* $(LUBURCU) in LLDLIBS.  Otherwise, static links of xfs_* will
> fail due to undefined references of pthread_create, pthread_exit,
> et. al.
> 
> Signed-off-by: Theodore Ts'o <tytso@xxxxxxx>

Ugh, I keep forgetting that ld wants library dependencies in reverse
order nowadays...

Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx>

--D

> ---
>  copy/Makefile      | 4 ++--
>  db/Makefile        | 4 ++--
>  growfs/Makefile    | 4 ++--
>  logprint/Makefile  | 4 ++--
>  mdrestore/Makefile | 3 +--
>  mkfs/Makefile      | 4 ++--
>  repair/Makefile    | 2 +-
>  scrub/Makefile     | 4 ++--
>  8 files changed, 14 insertions(+), 15 deletions(-)
> 
> diff --git a/copy/Makefile b/copy/Makefile
> index 1b00cd0d..55160f84 100644
> --- a/copy/Makefile
> +++ b/copy/Makefile
> @@ -9,8 +9,8 @@ LTCOMMAND = xfs_copy
>  CFILES = xfs_copy.c
>  HFILES = xfs_copy.h
>  
> -LLDLIBS = $(LIBXFS) $(LIBXLOG) $(LIBFROG) $(LIBUUID) $(LIBPTHREAD) $(LIBRT) \
> -	  $(LIBURCU)
> +LLDLIBS = $(LIBXFS) $(LIBXLOG) $(LIBFROG) $(LIBUUID) $(LIBRT) $(LIBURCU) \
> +	  $(LIBPTHREAD)
>  LTDEPENDENCIES = $(LIBXFS) $(LIBXLOG) $(LIBFROG)
>  LLDFLAGS = -static-libtool-libs
>  
> diff --git a/db/Makefile b/db/Makefile
> index 5c017898..b2e01174 100644
> --- a/db/Makefile
> +++ b/db/Makefile
> @@ -18,8 +18,8 @@ CFILES = $(HFILES:.h=.c) btdump.c btheight.c convert.c info.c namei.c \
>  	timelimit.c
>  LSRCFILES = xfs_admin.sh xfs_ncheck.sh xfs_metadump.sh
>  
> -LLDLIBS	= $(LIBXFS) $(LIBXLOG) $(LIBFROG) $(LIBUUID) $(LIBRT) $(LIBPTHREAD) \
> -	  $(LIBURCU)
> +LLDLIBS	= $(LIBXFS) $(LIBXLOG) $(LIBFROG) $(LIBUUID) $(LIBRT) $(LIBURCU) \
> +	  $(LIBPTHREAD)
>  LTDEPENDENCIES = $(LIBXFS) $(LIBXLOG) $(LIBFROG)
>  LLDFLAGS += -static-libtool-libs
>  
> diff --git a/growfs/Makefile b/growfs/Makefile
> index 08601de7..2f4cc66a 100644
> --- a/growfs/Makefile
> +++ b/growfs/Makefile
> @@ -9,8 +9,8 @@ LTCOMMAND = xfs_growfs
>  
>  CFILES = xfs_growfs.c
>  
> -LLDLIBS = $(LIBXFS) $(LIBXCMD) $(LIBFROG) $(LIBUUID) $(LIBRT) $(LIBPTHREAD) \
> -	  $(LIBURCU)
> +LLDLIBS = $(LIBXFS) $(LIBXCMD) $(LIBFROG) $(LIBUUID) $(LIBRT) $(LIBURCU) \
> +	  $(LIBPTHREAD)
>  
>  ifeq ($(ENABLE_EDITLINE),yes)
>  LLDLIBS += $(LIBEDITLINE) $(LIBTERMCAP)
> diff --git a/logprint/Makefile b/logprint/Makefile
> index cdedbd0d..bbbed5d2 100644
> --- a/logprint/Makefile
> +++ b/logprint/Makefile
> @@ -12,8 +12,8 @@ CFILES = logprint.c \
>  	 log_copy.c log_dump.c log_misc.c \
>  	 log_print_all.c log_print_trans.c log_redo.c
>  
> -LLDLIBS	= $(LIBXFS) $(LIBXLOG) $(LIBFROG) $(LIBUUID) $(LIBRT) $(LIBPTHREAD) \
> -	  $(LIBURCU)
> +LLDLIBS	= $(LIBXFS) $(LIBXLOG) $(LIBFROG) $(LIBUUID) $(LIBRT) $(LIBURCU) \
> +	  $(LIBPTHREAD)
>  LTDEPENDENCIES = $(LIBXFS) $(LIBXLOG) $(LIBFROG)
>  LLDFLAGS = -static-libtool-libs
>  
> diff --git a/mdrestore/Makefile b/mdrestore/Makefile
> index 8f28ddab..4a932efb 100644
> --- a/mdrestore/Makefile
> +++ b/mdrestore/Makefile
> @@ -8,8 +8,7 @@ include $(TOPDIR)/include/builddefs
>  LTCOMMAND = xfs_mdrestore
>  CFILES = xfs_mdrestore.c
>  
> -LLDLIBS = $(LIBXFS) $(LIBFROG) $(LIBRT) $(LIBPTHREAD) $(LIBUUID) \
> -	  $(LIBURCU)
> +LLDLIBS = $(LIBXFS) $(LIBFROG) $(LIBRT) $(LIBUUID) $(LIBURCU) $(LIBPTHREAD)
>  LTDEPENDENCIES = $(LIBXFS) $(LIBFROG)
>  LLDFLAGS = -static
>  
> diff --git a/mkfs/Makefile b/mkfs/Makefile
> index 811ba9db..9f6a4fad 100644
> --- a/mkfs/Makefile
> +++ b/mkfs/Makefile
> @@ -10,8 +10,8 @@ LTCOMMAND = mkfs.xfs
>  HFILES =
>  CFILES = proto.c xfs_mkfs.c
>  
> -LLDLIBS += $(LIBXFS) $(LIBXCMD) $(LIBFROG) $(LIBRT) $(LIBPTHREAD) $(LIBBLKID) \
> -	$(LIBUUID) $(LIBINIH) $(LIBURCU)
> +LLDLIBS += $(LIBXFS) $(LIBXCMD) $(LIBFROG) $(LIBRT) $(LIBBLKID) \
> +	$(LIBUUID) $(LIBINIH) $(LIBURCU) $(LIBPTHREAD)
>  LTDEPENDENCIES += $(LIBXFS) $(LIBXCMD) $(LIBFROG)
>  LLDFLAGS = -static-libtool-libs
>  
> diff --git a/repair/Makefile b/repair/Makefile
> index 47536ca1..2c40e59a 100644
> --- a/repair/Makefile
> +++ b/repair/Makefile
> @@ -72,7 +72,7 @@ CFILES = \
>  	xfs_repair.c
>  
>  LLDLIBS = $(LIBXFS) $(LIBXLOG) $(LIBXCMD) $(LIBFROG) $(LIBUUID) $(LIBRT) \
> -	$(LIBPTHREAD) $(LIBBLKID) $(LIBURCU)
> +	$(LIBBLKID) $(LIBURCU) $(LIBPTHREAD)
>  LTDEPENDENCIES = $(LIBXFS) $(LIBXLOG) $(LIBXCMD) $(LIBFROG)
>  LLDFLAGS = -static-libtool-libs
>  
> diff --git a/scrub/Makefile b/scrub/Makefile
> index 849e3afd..fd6bb679 100644
> --- a/scrub/Makefile
> +++ b/scrub/Makefile
> @@ -71,8 +71,8 @@ spacemap.c \
>  vfs.c \
>  xfs_scrub.c
>  
> -LLDLIBS += $(LIBHANDLE) $(LIBFROG) $(LIBPTHREAD) $(LIBICU_LIBS) $(LIBRT) \
> -	$(LIBURCU)
> +LLDLIBS += $(LIBHANDLE) $(LIBFROG) $(LIBICU_LIBS) $(LIBRT) $(LIBURCU) \
> +	$(LIBPTHREAD)
>  LTDEPENDENCIES += $(LIBHANDLE) $(LIBFROG)
>  LLDFLAGS = -static
>  
> -- 
> 2.31.0
> 



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux