> -----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 <mark@xxxxxxxxx> > >> 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 <mark@xxxxxxxxx> > >> > >> 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. Thanks, Kazu > > Thanks, > Pingfan > > > > Thanks, > > Kazu > > > >> > >> Signed-off-by: Pingfan Liu <piliu@xxxxxxxxxx> > >> --- > >> Makefile | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/Makefile b/Makefile > >> index 1fdb628..df21b93 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 > >> -- > >> 2.7.5 > >> > > > > > > > > _______________________________________________ > > kexec mailing list > > kexec@xxxxxxxxxxxxxxxxxxx > > http://lists.infradead.org/mailman/listinfo/kexec > > > _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec