Message ID | 20180301125537.14160-1-pp@emlix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
[ Adding Robin ] Robin, does this fix the same issue as your recent patches? If so, I'd prefer this one because it doesn't need any new environment variables. On Thu, Mar 01, 2018 at 01:55:37PM +0100, Philipp Puschmann wrote: > For libelf with non-standard paths make use of pkg-config. > > Signed-off-by: Philipp Puschmann <pp@emlix.com> > --- > Makefile | 4 +++- > tools/objtool/Makefile | 8 ++++++-- > 2 files changed, 9 insertions(+), 3 deletions(-) > > diff --git a/Makefile b/Makefile > index 659a7780aeb3..31b296b0e941 100644 > --- a/Makefile > +++ b/Makefile > @@ -953,8 +953,10 @@ endif > export mod_sign_cmd > > ifdef CONFIG_STACK_VALIDATION > + LIBELF_LIBS = $(shell pkg-config --libs libelf 2> /dev/null || \ > + echo -lelf) > has_libelf := $(call try-run,\ > - echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) > + echo "int main() {}" | $(HOSTCC) -xc -o /dev/null $(LIBELF_LIBS) -,1,0) > ifeq ($(has_libelf),1) > objtool_target := tools/objtool FORCE > else > diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile > index e6acc281dd37..c565eff8c393 100644 > --- a/tools/objtool/Makefile > +++ b/tools/objtool/Makefile > @@ -27,12 +27,16 @@ OBJTOOL_IN := $(OBJTOOL)-in.o > > all: $(OBJTOOL) > > +LIBELF_LIBS = $(shell pkg-config --libs libelf 2> /dev/null || \ > + echo -lelf) > +LIBELF_INCLUDES = $(shell pkg-config --cflags libelf 2> /dev/null) > INCLUDES := -I$(srctree)/tools/include \ > -I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \ > - -I$(srctree)/tools/objtool/arch/$(ARCH)/include > + -I$(srctree)/tools/objtool/arch/$(ARCH)/include \ > + $(LIBELF_INCLUDES) > WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed > CFLAGS += -Wall -Werror $(WARNINGS) -fomit-frame-pointer -O2 -g $(INCLUDES) > -LDFLAGS += -lelf $(LIBSUBCMD) > +LDFLAGS += $(LIBELF_LIBS) $(LIBSUBCMD) > > # Allow old libelf to be used: > elfshdr := $(shell echo '\#include <libelf.h>' | $(CC) $(CFLAGS) -x c -E - | grep elf_getshdr) > -- > 2.16.1 >
2018-03-05, Josh Poimboeuf: > [ Adding Robin ] > > Robin, does this fix the same issue as your recent patches? If so, I'd > prefer this one because it doesn't need any new environment variables. Hi Josh, this looks like it would work. I need to do proper testing before confirmation. Also, I did not have time to work on a v3. I'll wait a bit to see where this goes first.
diff --git a/Makefile b/Makefile index 659a7780aeb3..31b296b0e941 100644 --- a/Makefile +++ b/Makefile @@ -953,8 +953,10 @@ endif export mod_sign_cmd ifdef CONFIG_STACK_VALIDATION + LIBELF_LIBS = $(shell pkg-config --libs libelf 2> /dev/null || \ + echo -lelf) has_libelf := $(call try-run,\ - echo "int main() {}" | $(HOSTCC) -xc -o /dev/null -lelf -,1,0) + echo "int main() {}" | $(HOSTCC) -xc -o /dev/null $(LIBELF_LIBS) -,1,0) ifeq ($(has_libelf),1) objtool_target := tools/objtool FORCE else diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile index e6acc281dd37..c565eff8c393 100644 --- a/tools/objtool/Makefile +++ b/tools/objtool/Makefile @@ -27,12 +27,16 @@ OBJTOOL_IN := $(OBJTOOL)-in.o all: $(OBJTOOL) +LIBELF_LIBS = $(shell pkg-config --libs libelf 2> /dev/null || \ + echo -lelf) +LIBELF_INCLUDES = $(shell pkg-config --cflags libelf 2> /dev/null) INCLUDES := -I$(srctree)/tools/include \ -I$(srctree)/tools/arch/$(HOSTARCH)/include/uapi \ - -I$(srctree)/tools/objtool/arch/$(ARCH)/include + -I$(srctree)/tools/objtool/arch/$(ARCH)/include \ + $(LIBELF_INCLUDES) WARNINGS := $(EXTRA_WARNINGS) -Wno-switch-default -Wno-switch-enum -Wno-packed CFLAGS += -Wall -Werror $(WARNINGS) -fomit-frame-pointer -O2 -g $(INCLUDES) -LDFLAGS += -lelf $(LIBSUBCMD) +LDFLAGS += $(LIBELF_LIBS) $(LIBSUBCMD) # Allow old libelf to be used: elfshdr := $(shell echo '\#include <libelf.h>' | $(CC) $(CFLAGS) -x c -E - | grep elf_getshdr)
For libelf with non-standard paths make use of pkg-config. Signed-off-by: Philipp Puschmann <pp@emlix.com> --- Makefile | 4 +++- tools/objtool/Makefile | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-)