Messages in this thread |  | | From | Masahiro Yamada <> | | Date | Sun, 12 May 2024 22:14:40 +0900 | | Subject | Re: Incorrect thinlto cache directory path in Makefile |
| |
On Sun, May 12, 2024 at 10:04 PM Masahiro Yamada <masahiroy@kernel.org> wrote: > > +CC: Nathan > > > On Sat, May 11, 2024 at 8:18 PM Bagas Sanjaya <bagasdotme@gmail.com> wrote: > > > > Hi, > > > > Xu Zhen <xuzhen@fastmail.com> reported on Bugzilla (https://bugzilla.kernel.org/show_bug.cgi?id=218825) thinlto build directory problem (especially on > > DKMS modules). He wrote: > > > > > In Makefile, the ld flag `--thinlto-cache-dir' is set to > > > `$(extmod_prefix).thinlto-cache'. But at that time, the variable extmod_prefix > > > had not been assigned yet. Therefore, the thinlto cache dir is always created > > > in the current directory. > > > > > > Even worse, the cache dir cannot be deleted when executing `make clean'. This > > > is because its path was written as `$(KBUILD_EXTMOD)/.thinlto-cache' in the > > > clean: target. > > > > > > Some users have been troubled by it: https://github.com/dell/dkms/issues/292 > > > > > > This bug was introduced by commit dc5723b02e523b2c4a68667f7e28c65018f7202f > > > I agree this is a bug. > > > > > line 945: > KBUILD_LDFLAGS += --thinlto-cache-dir=$(extmod_prefix).thinlto-cache > > > line 1034: > KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments)
This one is probably OK because it is guarded by CONFIG_LD_IS_BFD, while LTO requires LD_IS_LLD.
I see another ld-option at 1043.
LDFLAGS_vmlinux += $(call ld-option,--pack-dyn-relocs=relr,-z pack-relative-relocs)
Maybe, this is related to the issue (although I did not attempt to reproduce it).
-- Best Regards Masahiro Yamada
|  |