Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 14 Aug 2018 00:50:17 +0000 (17:50 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 14 Aug 2018 00:50:17 +0000 (17:50 -0700)
Pull x86 vdso update from Thomas Gleixner:
 "Use LD to link the VDSO libs instead of indirecting trough CC which
  causes build failures with Clang"

* 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86: vdso: Use $LD instead of $CC to link

1  2 
arch/x86/entry/vdso/Makefile

index b9ed1aa53a26e5eb62cc21dfaae956a52ab6d1fe,42c6c1bea4f46ef220728223441424e46d94e2e6..9f695f517747e409868226b0c7aea4afb29215ec
@@@ -46,10 -46,8 +46,8 @@@ targets += $(vdso_img_sodbg) $(vdso_img
  
  CPPFLAGS_vdso.lds += -P -C
  
- VDSO_LDFLAGS_vdso.lds = -m64 -Wl,-soname=linux-vdso.so.1 \
-                       -Wl,--no-undefined \
-                       -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096 \
-                       $(DISABLE_LTO)
+ VDSO_LDFLAGS_vdso.lds = -m elf_x86_64 -soname linux-vdso.so.1 --no-undefined \
+                       -z max-page-size=4096 -z common-page-size=4096
  
  $(obj)/vdso64.so.dbg: $(obj)/vdso.lds $(vobjs) FORCE
        $(call if_changed,vdso)
@@@ -58,7 -56,9 +56,7 @@@ HOST_EXTRACFLAGS += -I$(srctree)/tools/
  hostprogs-y                   += vdso2c
  
  quiet_cmd_vdso2c = VDSO2C  $@
 -define cmd_vdso2c
 -      $(obj)/vdso2c $< $(<:%.dbg=%) $@
 -endef
 +      cmd_vdso2c = $(obj)/vdso2c $< $(<:%.dbg=%) $@
  
  $(obj)/vdso-image-%.c: $(obj)/vdso%.so.dbg $(obj)/vdso%.so $(obj)/vdso2c FORCE
        $(call if_changed,vdso2c)
@@@ -93,10 -93,8 +91,8 @@@ CFLAGS_REMOVE_vvar.o = -p
  #
  
  CPPFLAGS_vdsox32.lds = $(CPPFLAGS_vdso.lds)
- VDSO_LDFLAGS_vdsox32.lds = -Wl,-m,elf32_x86_64 \
-                          -Wl,-soname=linux-vdso.so.1 \
-                          -Wl,-z,max-page-size=4096 \
-                          -Wl,-z,common-page-size=4096
+ VDSO_LDFLAGS_vdsox32.lds = -m elf32_x86_64 -soname linux-vdso.so.1 \
+                          -z max-page-size=4096 -z common-page-size=4096
  
  # x32-rebranded versions
  vobjx32s-y := $(vobjs-y:.o=-x32.o)
@@@ -121,7 -119,7 +117,7 @@@ $(obj)/vdsox32.so.dbg: $(obj)/vdsox32.l
        $(call if_changed,vdso)
  
  CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds)
- VDSO_LDFLAGS_vdso32.lds = -m32 -Wl,-m,elf_i386 -Wl,-soname=linux-gate.so.1
+ VDSO_LDFLAGS_vdso32.lds = -m elf_i386 -soname linux-gate.so.1
  
  targets += vdso32/vdso32.lds
  targets += vdso32/note.o vdso32/system_call.o vdso32/sigreturn.o
@@@ -155,13 -153,13 +151,13 @@@ $(obj)/vdso32.so.dbg: FORCE 
  # The DSO images are built using a special linker script.
  #
  quiet_cmd_vdso = VDSO    $@
-       cmd_vdso = $(CC) -nostdlib -o $@ \
+       cmd_vdso = $(LD) -nostdlib -o $@ \
                       $(VDSO_LDFLAGS) $(VDSO_LDFLAGS_$(filter %.lds,$(^F))) \
-                      -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
+                      -$(filter %.lds,$^) $(filter %.o,$^) && \
                 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
  
- VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=both) \
-       $(call cc-ldoption, -Wl$(comma)--build-id) -Wl,-Bsymbolic $(LTO_CFLAGS)
+ VDSO_LDFLAGS = -shared $(call ld-option, --hash-style=both) \
+       $(call ld-option, --build-id) -Bsymbolic
  GCOV_PROFILE := n
  
  #