xref: /OK3568_Linux_fs/buildroot/package/nvidia-driver/0001-use-LDFLAGS.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunkernel: use LDFLAGS when linking modules
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunCurrently, linking module objects is simply using $(LD), assuming that
4*4882a593Smuzhiyunthe default emulation is correct for the current architecture.
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunHowever, that might not be the case when the toolchain default is not
7*4882a593Smuzhiyunthe same as the current arch. For example, if the toolchain defaults to
8*4882a593Smuzhiyuni386 and is capable of x86_64, and we're targetting x86_64 (or the
9*4882a593Smuzhiyunopposite), the link would fail because the ld emulation is incorrect:
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun    .../i686-pc-linux-gnu-ld: Relocatable linking with relocations from
12*4882a593Smuzhiyun    format elf64-x86-64 (.../nvidia-driver-370.23/kernel/nvidia/nv-frontend.o)
13*4882a593Smuzhiyun    to format elf32-i386 (.../nvidia-driver-370.23/kernel/nvidia/nv-interface.o)
14*4882a593Smuzhiyun    is not supported
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunAdd use of $(LDFLAGS) when doing the link, as the kernel provides the
17*4882a593Smuzhiyunproper emulation in those.
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunSigned-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun---
22*4882a593SmuzhiyunIssue reported upstream:
23*4882a593Smuzhiyun    https://devtalk.nvidia.com/default/topic/958653/
24*4882a593Smuzhiyun
25*4882a593Smuzhiyundiff -durN nvidia-driver-370.23.orig/kernel/nvidia/nvidia.Kbuild nvidia-driver-370.23/kernel/nvidia/nvidia.Kbuild
26*4882a593Smuzhiyun--- nvidia-driver-370.23.orig/kernel/nvidia/nvidia.Kbuild	2016-08-09 01:57:50.000000000 +0200
27*4882a593Smuzhiyun+++ nvidia-driver-370.23/kernel/nvidia/nvidia.Kbuild	2016-08-20 12:25:02.780233423 +0200
28*4882a593Smuzhiyun@@ -87,7 +87,7 @@
29*4882a593Smuzhiyun always += $(NVIDIA_INTERFACE)
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun $(obj)/$(NVIDIA_INTERFACE): $(addprefix $(obj)/,$(NVIDIA_OBJECTS))
32*4882a593Smuzhiyun-	$(LD) -r -o $@ $^
33*4882a593Smuzhiyun+	$(LD) $(LDFLAGS) -r -o $@ $^
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun #
37*4882a593Smuzhiyundiff -durN nvidia-driver-370.23.orig/kernel/nvidia-modeset/nvidia-modeset.Kbuild nvidia-driver-370.23/kernel/nvidia-modeset/nvidia-modeset.Kbuild
38*4882a593Smuzhiyun--- nvidia-driver-370.23.orig/kernel/nvidia-modeset/nvidia-modeset.Kbuild	2016-08-09 01:43:19.000000000 +0200
39*4882a593Smuzhiyun+++ nvidia-driver-370.23/kernel/nvidia-modeset/nvidia-modeset.Kbuild	2016-08-20 12:25:39.596772662 +0200
40*4882a593Smuzhiyun@@ -70,7 +70,7 @@
41*4882a593Smuzhiyun always += $(NVIDIA_MODESET_INTERFACE)
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun $(obj)/$(NVIDIA_MODESET_INTERFACE): $(addprefix $(obj)/,$(NVIDIA_MODESET_OBJECTS))
44*4882a593Smuzhiyun-	$(LD) -r -o $@ $^
45*4882a593Smuzhiyun+	$(LD) $(LDFLAGS) -r -o $@ $^
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun #
48*4882a593Smuzhiyun # Register the conftests needed by nvidia-modeset.ko
49