kbuild: explicitly specify the build id style
ld's --build-id defaults to "sha1" style, while lld defaults to "fast". The build IDs are very different between the two, which may confuse programs that reference them. Signed-off-by: Bill Wendling <morbo@google.com> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
548b8b5168
commit
a968433723
4
Makefile
4
Makefile
|
@ -982,8 +982,8 @@ KBUILD_CPPFLAGS += $(KCPPFLAGS)
|
||||||
KBUILD_AFLAGS += $(KAFLAGS)
|
KBUILD_AFLAGS += $(KAFLAGS)
|
||||||
KBUILD_CFLAGS += $(KCFLAGS)
|
KBUILD_CFLAGS += $(KCFLAGS)
|
||||||
|
|
||||||
KBUILD_LDFLAGS_MODULE += --build-id
|
KBUILD_LDFLAGS_MODULE += --build-id=sha1
|
||||||
LDFLAGS_vmlinux += --build-id
|
LDFLAGS_vmlinux += --build-id=sha1
|
||||||
|
|
||||||
ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
|
ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
|
||||||
LDFLAGS_vmlinux += $(call ld-option, -X,)
|
LDFLAGS_vmlinux += $(call ld-option, -X,)
|
||||||
|
|
|
@ -19,7 +19,7 @@ ccflags-y += -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO32
|
||||||
ldflags-$(CONFIG_CPU_ENDIAN_BE8) := --be8
|
ldflags-$(CONFIG_CPU_ENDIAN_BE8) := --be8
|
||||||
ldflags-y := -Bsymbolic --no-undefined -soname=linux-vdso.so.1 \
|
ldflags-y := -Bsymbolic --no-undefined -soname=linux-vdso.so.1 \
|
||||||
-z max-page-size=4096 -nostdlib -shared $(ldflags-y) \
|
-z max-page-size=4096 -nostdlib -shared $(ldflags-y) \
|
||||||
--hash-style=sysv --build-id \
|
--hash-style=sysv --build-id=sha1 \
|
||||||
-T
|
-T
|
||||||
|
|
||||||
obj-$(CONFIG_VDSO) += vdso.o
|
obj-$(CONFIG_VDSO) += vdso.o
|
||||||
|
|
|
@ -24,7 +24,7 @@ btildflags-$(CONFIG_ARM64_BTI_KERNEL) += -z force-bti
|
||||||
# routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
|
# routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
|
||||||
# preparation in build-time C")).
|
# preparation in build-time C")).
|
||||||
ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
|
ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
|
||||||
-Bsymbolic $(call ld-option, --no-eh-frame-hdr) --build-id -n \
|
-Bsymbolic $(call ld-option, --no-eh-frame-hdr) --build-id=sha1 -n \
|
||||||
$(btildflags-y) -T
|
$(btildflags-y) -T
|
||||||
|
|
||||||
ccflags-y := -fno-common -fno-builtin -fno-stack-protector -ffixed-x18
|
ccflags-y := -fno-common -fno-builtin -fno-stack-protector -ffixed-x18
|
||||||
|
|
|
@ -128,7 +128,7 @@ VDSO_LDFLAGS += -Wl,-Bsymbolic -Wl,--no-undefined -Wl,-soname=linux-vdso.so.1
|
||||||
VDSO_LDFLAGS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
|
VDSO_LDFLAGS += -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
|
||||||
VDSO_LDFLAGS += -nostdlib -shared -mfloat-abi=soft
|
VDSO_LDFLAGS += -nostdlib -shared -mfloat-abi=soft
|
||||||
VDSO_LDFLAGS += -Wl,--hash-style=sysv
|
VDSO_LDFLAGS += -Wl,--hash-style=sysv
|
||||||
VDSO_LDFLAGS += -Wl,--build-id
|
VDSO_LDFLAGS += -Wl,--build-id=sha1
|
||||||
VDSO_LDFLAGS += $(call cc32-ldoption,-fuse-ld=bfd)
|
VDSO_LDFLAGS += $(call cc32-ldoption,-fuse-ld=bfd)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ endif
|
||||||
# VDSO linker flags.
|
# VDSO linker flags.
|
||||||
ldflags-y := -Bsymbolic --no-undefined -soname=linux-vdso.so.1 \
|
ldflags-y := -Bsymbolic --no-undefined -soname=linux-vdso.so.1 \
|
||||||
$(filter -E%,$(KBUILD_CFLAGS)) -nostdlib -shared \
|
$(filter -E%,$(KBUILD_CFLAGS)) -nostdlib -shared \
|
||||||
-G 0 --eh-frame-hdr --hash-style=sysv --build-id -T
|
-G 0 --eh-frame-hdr --hash-style=sysv --build-id=sha1 -T
|
||||||
|
|
||||||
CFLAGS_REMOVE_vdso.o = -pg
|
CFLAGS_REMOVE_vdso.o = -pg
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ $(obj)/vdso.so.dbg: $(src)/vdso.lds $(obj-vdso) FORCE
|
||||||
# refer to these symbols in the kernel code rather than hand-coded addresses.
|
# refer to these symbols in the kernel code rather than hand-coded addresses.
|
||||||
|
|
||||||
SYSCFLAGS_vdso.so.dbg = -shared -s -Wl,-soname=linux-vdso.so.1 \
|
SYSCFLAGS_vdso.so.dbg = -shared -s -Wl,-soname=linux-vdso.so.1 \
|
||||||
-Wl,--build-id -Wl,--hash-style=both
|
-Wl,--build-id=sha1 -Wl,--hash-style=both
|
||||||
$(obj)/vdso-dummy.o: $(src)/vdso.lds $(obj)/rt_sigreturn.o FORCE
|
$(obj)/vdso-dummy.o: $(src)/vdso.lds $(obj)/rt_sigreturn.o FORCE
|
||||||
$(call if_changed,vdsold)
|
$(call if_changed,vdsold)
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ KBUILD_AFLAGS_64 += -m64 -s
|
||||||
KBUILD_CFLAGS_64 := $(filter-out -m64,$(KBUILD_CFLAGS))
|
KBUILD_CFLAGS_64 := $(filter-out -m64,$(KBUILD_CFLAGS))
|
||||||
KBUILD_CFLAGS_64 += -m64 -fPIC -shared -fno-common -fno-builtin
|
KBUILD_CFLAGS_64 += -m64 -fPIC -shared -fno-common -fno-builtin
|
||||||
ldflags-y := -fPIC -shared -nostdlib -soname=linux-vdso64.so.1 \
|
ldflags-y := -fPIC -shared -nostdlib -soname=linux-vdso64.so.1 \
|
||||||
--hash-style=both --build-id -T
|
--hash-style=both --build-id=sha1 -T
|
||||||
|
|
||||||
$(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_64)
|
$(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_64)
|
||||||
$(targets:%=$(obj)/%.dbg): KBUILD_AFLAGS = $(KBUILD_AFLAGS_64)
|
$(targets:%=$(obj)/%.dbg): KBUILD_AFLAGS = $(KBUILD_AFLAGS_64)
|
||||||
|
|
|
@ -115,7 +115,7 @@ quiet_cmd_vdso = VDSO $@
|
||||||
-T $(filter %.lds,$^) $(filter %.o,$^) && \
|
-T $(filter %.lds,$^) $(filter %.o,$^) && \
|
||||||
sh $(srctree)/$(src)/checkundef.sh '$(OBJDUMP)' '$@'
|
sh $(srctree)/$(src)/checkundef.sh '$(OBJDUMP)' '$@'
|
||||||
|
|
||||||
VDSO_LDFLAGS = -shared --hash-style=both --build-id -Bsymbolic
|
VDSO_LDFLAGS = -shared --hash-style=both --build-id=sha1 -Bsymbolic
|
||||||
GCOV_PROFILE := n
|
GCOV_PROFILE := n
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -176,7 +176,7 @@ quiet_cmd_vdso = VDSO $@
|
||||||
-T $(filter %.lds,$^) $(filter %.o,$^) && \
|
-T $(filter %.lds,$^) $(filter %.o,$^) && \
|
||||||
sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
|
sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
|
||||||
|
|
||||||
VDSO_LDFLAGS = -shared --hash-style=both --build-id \
|
VDSO_LDFLAGS = -shared --hash-style=both --build-id=sha1 \
|
||||||
$(call ld-option, --eh-frame-hdr) -Bsymbolic
|
$(call ld-option, --eh-frame-hdr) -Bsymbolic
|
||||||
GCOV_PROFILE := n
|
GCOV_PROFILE := n
|
||||||
|
|
||||||
|
|
|
@ -133,7 +133,7 @@ $(OUTPUT)/%:%.c
|
||||||
|
|
||||||
$(OUTPUT)/urandom_read: urandom_read.c
|
$(OUTPUT)/urandom_read: urandom_read.c
|
||||||
$(call msg,BINARY,,$@)
|
$(call msg,BINARY,,$@)
|
||||||
$(Q)$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS) -Wl,--build-id
|
$(Q)$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS) -Wl,--build-id=sha1
|
||||||
|
|
||||||
$(OUTPUT)/test_stub.o: test_stub.c $(BPFOBJ)
|
$(OUTPUT)/test_stub.o: test_stub.c $(BPFOBJ)
|
||||||
$(call msg,CC,,$@)
|
$(call msg,CC,,$@)
|
||||||
|
|
Loading…
Reference in New Issue