On 12/07/2019 12:28 AM, Kazuhito Hagio wrote:
>> -----Original Message-----
>>
>> On 12/05/2019 06:36 AM, Kazuhito Hagio wrote:
>>> Hi Pingfan,
>>>
>>> Thank you for the patch.
>>>
>>>> -----Original Message-----
>>>> since the following commit, -lebl has been removed from elfutils.
>>>> commit b833c731359af12af9f16bcb621b3cdc170eafbc
>>>> Author: Mark Wielaard <m...@klomp.org>
>>>> Date:   Thu Aug 29 23:34:11 2019 +0200
>>>>
>>>>     libebl: Don't install libebl.a, libebl.h and remove backends from spec.
>>>>
>>>>     All archive members from libebl.a are now in libdw.a. We don't generate
>>>>     separate backend shared libraries anymore. So remove them from the
>>>>     elfutils.spec file.
>>>>
>>>>     Signed-off-by: Mark Wielaard <m...@klomp.org>
>>>>
>>>> So remove it from LIBS for makedumpfile
>>>
>>> It seems that this is ok with the latest elfutils, but with older ones?
>>> Is it possible to remove -lebl when elfutils does not have libebl.a?
>> I have no idea about it for now. The method to check version depends on
>> distribution. Is it doable by checking /usr/lib64/libebl ?
> 
> We have 'try-run' function written by Petr in the Makefile, which checks
> if clock_gettime() requies -lrt.  How about utilizing it like this?
> 
> diff --git a/Makefile b/Makefile
> index 1fdb6286e85d..d4d1fb563209 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -50,7 +50,7 @@ OBJ_PART=$(patsubst %.c,%.o,$(SRC_PART))
>  SRC_ARCH = arch/arm.c arch/arm64.c arch/x86.c arch/x86_64.c arch/ia64.c 
> arch/ppc64.c arch/s390x.c arch/ppc.c arch/sparc64.c
>  OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH))
>  
> -LIBS = -ldw -lbz2 -lebl -ldl -lelf -lz
> +LIBS = -ldw -lbz2 -ldl -lelf -lz
>  ifneq ($(LINKTYPE), dynamic)
>  LIBS := -static $(LIBS)
>  endif
> @@ -79,6 +79,11 @@ LINK_TEST_PROG="int clock_gettime(); int main(){ return 
> clock_gettime(); }"
>  LIBS := $(LIBS) $(call try-run,\
>       echo $(LINK_TEST_PROG) | $(CC) $(CFLAGS) -o "$$TMP" -x c -,,-lrt)
>  
> +# elfutils-0.178 or later does not install libebl.a.
> +LINK_TEST_PROG="int main() { return 0; }"
> +LIBS := $(LIBS) $(call try-run,\
> +     echo $(LINK_TEST_PROG) | $(CC) -o "$$TMP" -x c - -lebl,-lebl,)
> +
>  all: makedumpfile
>  
>  $(OBJ_PART): $(SRC_PART)
> 
> 
> If libebl.a does not exist (gcc with -lebl fails), it will not append
> -lebl to LIBS.
> 
Yes, it sounds a good idea.

Should I sumbit another patch or you will do by yourself?

Thanks,
Pingfan


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to