The subject states exactly what I'm suggesting. The reason is the fallback value for $(srctree) of "." doesn't work properly in several places under some conditions. In particular in several places a pattern of "$(srctree)/$(src)" is used. If $(srctree) ends up with the value "." and $(src) ends up with the value `pwd`, the build breaks. This can be triggered via in-tree/out-of-tree build mechanisms. As such, assuming $(srctree) includes the trailing slash and setting the fallback for $(srctree) to "" fixes things. This is untested, I'm proposing this since I wanted to use a build approach which triggers this. This is really a single patch, but it has been split into 3 to emphasize where the real work is done. I'm suspicious of the fallback settings of $(srctree) found in several Makefiles. This might be a distinct workaround for the same situation. I was wondering about adjusting some of those comments too. I think $(src) needs similar treatment, but that is rather messier. Note, this is basically untested. I'm hopeful this actually works, but if it breaks then this was mostly to alert the maintainers of this troublesome condition. Elliott Mitchell (3): build: add trailing slash to $(srctree) build: modify uses of $(srctree) to assume trailing slash build: change $(srctree) to empty for current directory Documentation/Makefile | 48 +++--- Documentation/devicetree/bindings/Makefile | 18 +-- Documentation/userspace-api/media/Makefile | 10 +- Makefile | 152 +++++++++--------- arch/alpha/boot/Makefile | 2 +- arch/alpha/kernel/syscalls/Makefile | 4 +- arch/arc/Makefile | 2 +- arch/arc/boot/dts/Makefile | 2 +- arch/arm/Makefile | 4 +- arch/arm/boot/Makefile | 2 +- arch/arm/boot/compressed/Makefile | 2 +- arch/arm/mach-dove/Makefile | 2 +- arch/arm/mach-mv78xx0/Makefile | 2 +- arch/arm/mach-mvebu/Makefile | 2 +- arch/arm/mach-orion5x/Makefile | 2 +- arch/arm/mach-s3c/Makefile | 2 +- arch/arm/plat-orion/Makefile | 2 +- arch/arm/tools/Makefile | 6 +- arch/arm/vdso/Makefile | 2 +- arch/arm64/Makefile | 2 +- arch/arm64/boot/Makefile | 2 +- arch/arm64/kernel/pi/Makefile | 6 +- arch/arm64/kernel/vdso/Makefile | 4 +- arch/arm64/kernel/vdso32/Makefile | 2 +- arch/arm64/kvm/Makefile | 6 +- arch/arm64/kvm/hyp/Makefile | 2 +- arch/csky/Makefile | 2 +- arch/csky/boot/dts/Makefile | 2 +- arch/csky/kernel/vdso/Makefile | 4 +- arch/loongarch/boot/Makefile | 2 +- arch/loongarch/kvm/Makefile | 4 +- arch/loongarch/vdso/Makefile | 4 +- arch/m68k/kernel/syscalls/Makefile | 4 +- arch/microblaze/kernel/syscalls/Makefile | 4 +- arch/mips/Makefile | 18 +-- arch/mips/Makefile.postlink | 2 +- arch/mips/boot/Makefile | 2 +- arch/mips/boot/compressed/Makefile | 4 +- arch/mips/kernel/syscalls/Makefile | 6 +- arch/mips/kvm/Makefile | 2 +- arch/mips/vdso/Makefile | 6 +- arch/nios2/boot/dts/Makefile | 2 +- arch/parisc/Makefile | 4 +- arch/parisc/kernel/syscalls/Makefile | 4 +- arch/parisc/kernel/vdso32/Makefile | 2 +- arch/parisc/kernel/vdso64/Makefile | 2 +- arch/powerpc/Makefile | 30 ++-- arch/powerpc/Makefile.postlink | 10 +- arch/powerpc/boot/Makefile | 32 ++-- arch/powerpc/boot/dts/Makefile | 2 +- arch/powerpc/boot/dts/fsl/Makefile | 2 +- arch/powerpc/kernel/syscalls/Makefile | 4 +- arch/powerpc/kernel/vdso/Makefile | 6 +- arch/powerpc/kvm/Makefile | 2 +- arch/powerpc/platforms/cell/spufs/Makefile | 4 +- arch/riscv/Makefile | 12 +- arch/riscv/Makefile.postlink | 4 +- arch/riscv/boot/Makefile | 2 +- arch/riscv/kernel/compat_vdso/Makefile | 2 +- arch/riscv/kernel/pi/Makefile | 8 +- arch/riscv/kernel/vdso/Makefile | 4 +- arch/riscv/kvm/Makefile | 4 +- arch/riscv/purgatory/Makefile | 16 +- arch/s390/Makefile | 2 +- arch/s390/boot/Makefile | 2 +- arch/s390/kernel/syscalls/Makefile | 4 +- arch/s390/kernel/vdso32/Makefile | 4 +- arch/s390/kernel/vdso64/Makefile | 4 +- arch/s390/kvm/Makefile | 2 +- arch/s390/purgatory/Makefile | 4 +- arch/s390/tools/Makefile | 2 +- arch/sh/Makefile | 2 +- arch/sh/kernel/syscalls/Makefile | 4 +- arch/sparc/kernel/syscalls/Makefile | 4 +- arch/sparc/vdso/Makefile | 4 +- arch/um/Makefile | 22 +-- arch/um/drivers/Makefile | 2 +- arch/um/kernel/Makefile | 4 +- arch/um/kernel/skas/Makefile | 2 +- arch/um/os-Linux/Makefile | 2 +- arch/um/os-Linux/drivers/Makefile | 2 +- arch/um/os-Linux/skas/Makefile | 2 +- arch/um/scripts/Makefile.rules | 2 +- arch/x86/Makefile | 6 +- arch/x86/Makefile.postlink | 2 +- arch/x86/Makefile.um | 2 +- arch/x86/boot/Makefile | 6 +- arch/x86/boot/compressed/Makefile | 6 +- arch/x86/entry/syscalls/Makefile | 8 +- arch/x86/entry/vdso/Makefile | 6 +- arch/x86/kernel/Makefile | 2 +- arch/x86/kernel/cpu/Makefile | 2 +- arch/x86/kvm/Makefile | 4 +- arch/x86/lib/Makefile | 4 +- arch/x86/mm/Makefile | 2 +- arch/x86/purgatory/Makefile | 4 +- arch/x86/realmode/rm/Makefile | 2 +- arch/x86/tools/Makefile | 14 +- arch/x86/um/Makefile | 2 +- arch/x86/um/os-Linux/Makefile | 2 +- arch/x86/um/vdso/Makefile | 2 +- arch/xtensa/Makefile | 2 +- arch/xtensa/boot/boot-redboot/Makefile | 2 +- arch/xtensa/boot/dts/Makefile | 2 +- arch/xtensa/boot/lib/Makefile | 4 +- arch/xtensa/kernel/syscalls/Makefile | 4 +- certs/Makefile | 4 +- drivers/Makefile | 2 +- drivers/accessibility/speakup/Makefile | 2 +- drivers/base/firmware_loader/builtin/Makefile | 2 +- drivers/block/rnbd/Makefile | 2 +- drivers/crypto/chelsio/Makefile | 2 +- drivers/crypto/intel/iaa/Makefile | 2 +- drivers/crypto/intel/qat/qat_420xx/Makefile | 2 +- drivers/crypto/intel/qat/qat_4xxx/Makefile | 2 +- drivers/crypto/intel/qat/qat_c3xxx/Makefile | 2 +- drivers/crypto/intel/qat/qat_c3xxxvf/Makefile | 2 +- drivers/crypto/intel/qat/qat_c62x/Makefile | 2 +- drivers/crypto/intel/qat/qat_c62xvf/Makefile | 2 +- .../crypto/intel/qat/qat_dh895xcc/Makefile | 2 +- .../crypto/intel/qat/qat_dh895xccvf/Makefile | 2 +- drivers/crypto/marvell/octeontx2/Makefile | 2 +- drivers/cxl/core/Makefile | 2 +- drivers/firmware/efi/libstub/Makefile | 6 +- drivers/firmware/efi/libstub/Makefile.zboot | 4 +- drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- drivers/gpu/drm/arm/display/komeda/Makefile | 4 +- drivers/gpu/drm/i915/Makefile | 8 +- drivers/gpu/drm/imagination/Makefile | 2 +- drivers/gpu/drm/msm/Makefile | 8 +- drivers/gpu/drm/xe/Makefile | 18 +-- drivers/hid/amd-sfh-hid/Makefile | 2 +- drivers/hid/bpf/Makefile | 2 +- drivers/hid/intel-ish-hid/Makefile | 2 +- drivers/iio/humidity/Makefile | 2 +- drivers/infiniband/hw/bnxt_re/Makefile | 2 +- drivers/infiniband/hw/cxgb4/Makefile | 4 +- drivers/infiniband/hw/hns/Makefile | 2 +- drivers/infiniband/hw/ocrdma/Makefile | 2 +- drivers/infiniband/hw/usnic/Makefile | 2 +- drivers/media/common/b2c2/Makefile | 4 +- drivers/media/dvb-frontends/Makefile | 4 +- drivers/media/dvb-frontends/drx39xyj/Makefile | 2 +- drivers/media/i2c/ccs/Makefile | 2 +- drivers/media/mmc/siano/Makefile | 2 +- drivers/media/pci/b2c2/Makefile | 2 +- drivers/media/pci/bt8xx/Makefile | 4 +- drivers/media/pci/cx18/Makefile | 4 +- drivers/media/pci/cx23885/Makefile | 4 +- drivers/media/pci/cx88/Makefile | 4 +- drivers/media/pci/ddbridge/Makefile | 4 +- drivers/media/pci/dm1105/Makefile | 2 +- drivers/media/pci/ivtv/Makefile | 4 +- drivers/media/pci/mantis/Makefile | 2 +- drivers/media/pci/netup_unidvb/Makefile | 2 +- drivers/media/pci/ngene/Makefile | 4 +- drivers/media/pci/pluto2/Makefile | 2 +- drivers/media/pci/pt1/Makefile | 4 +- drivers/media/pci/pt3/Makefile | 4 +- drivers/media/pci/saa7134/Makefile | 6 +- drivers/media/pci/saa7146/Makefile | 2 +- drivers/media/pci/saa7164/Makefile | 4 +- drivers/media/pci/smipcie/Makefile | 4 +- drivers/media/pci/ttpci/Makefile | 6 +- drivers/media/platform/mediatek/mdp/Makefile | 2 +- .../media/platform/st/sti/c8sectpfe/Makefile | 4 +- drivers/media/spi/Makefile | 2 +- drivers/media/tuners/Makefile | 2 +- drivers/media/usb/as102/Makefile | 2 +- drivers/media/usb/au0828/Makefile | 4 +- drivers/media/usb/b2c2/Makefile | 2 +- drivers/media/usb/cx231xx/Makefile | 4 +- drivers/media/usb/dvb-usb-v2/Makefile | 6 +- drivers/media/usb/dvb-usb/Makefile | 6 +- drivers/media/usb/em28xx/Makefile | 4 +- drivers/media/usb/go7007/Makefile | 2 +- drivers/media/usb/gspca/gl860/Makefile | 2 +- drivers/media/usb/gspca/m5602/Makefile | 2 +- drivers/media/usb/gspca/stv06xx/Makefile | 2 +- drivers/media/usb/pvrusb2/Makefile | 4 +- drivers/media/usb/siano/Makefile | 2 +- drivers/media/usb/ttusb-budget/Makefile | 2 +- drivers/media/v4l2-core/Makefile | 4 +- .../net/ethernet/aquantia/atlantic/Makefile | 2 +- .../chelsio/inline_crypto/ch_ipsec/Makefile | 4 +- .../chelsio/inline_crypto/ch_ktls/Makefile | 2 +- .../chelsio/inline_crypto/chtls/Makefile | 4 +- drivers/net/ethernet/chelsio/libcxgb/Makefile | 2 +- drivers/net/ethernet/freescale/dpaa/Makefile | 2 +- drivers/net/ethernet/freescale/fman/Makefile | 2 +- drivers/net/ethernet/fungible/funeth/Makefile | 2 +- drivers/net/ethernet/hisilicon/hns3/Makefile | 8 +- .../ethernet/marvell/octeontx2/nic/Makefile | 2 +- .../net/ethernet/microchip/lan966x/Makefile | 2 +- .../net/ethernet/microchip/sparx5/Makefile | 2 +- drivers/net/wan/Makefile | 2 +- .../broadcom/brcm80211/brcmfmac/Makefile | 4 +- .../broadcom/brcm80211/brcmfmac/bca/Makefile | 6 +- .../broadcom/brcm80211/brcmfmac/cyw/Makefile | 6 +- .../broadcom/brcm80211/brcmfmac/wcc/Makefile | 6 +- .../broadcom/brcm80211/brcmsmac/Makefile | 6 +- .../broadcom/brcm80211/brcmutil/Makefile | 2 +- .../net/wireless/intel/iwlwifi/dvm/Makefile | 2 +- .../net/wireless/intel/iwlwifi/mei/Makefile | 2 +- .../net/wireless/intel/iwlwifi/mvm/Makefile | 2 +- .../wireless/realtek/rtl818x/rtl8180/Makefile | 2 +- .../wireless/realtek/rtl818x/rtl8187/Makefile | 2 +- drivers/pinctrl/renesas/Makefile | 24 +-- drivers/scsi/aic7xxx/Makefile | 12 +- drivers/scsi/csiostor/Makefile | 2 +- drivers/scsi/cxgbi/Makefile | 2 +- drivers/scsi/libsas/Makefile | 2 +- drivers/scsi/pcmcia/Makefile | 2 +- drivers/staging/media/atomisp/Makefile | 2 +- drivers/staging/media/av7110/Makefile | 8 +- drivers/staging/rtl8723bs/Makefile | 2 +- drivers/target/iscsi/cxgbit/Makefile | 6 +- drivers/tty/serial/8250/Makefile | 2 +- drivers/usb/gadget/function/Makefile | 4 +- drivers/usb/gadget/legacy/Makefile | 6 +- drivers/usb/storage/Makefile | 2 +- drivers/vdpa/mlx5/Makefile | 2 +- fs/hostfs/Makefile | 2 +- fs/iomap/Makefile | 2 +- fs/unicode/Makefile | 14 +- fs/xfs/Makefile | 4 +- init/Makefile | 2 +- kernel/Makefile | 2 +- kernel/bpf/Makefile | 2 +- kernel/bpf/preload/Makefile | 2 +- kernel/gcov/Makefile | 2 +- lib/Makefile | 16 +- lib/raid6/Makefile | 2 +- net/wireless/Makefile | 2 +- rust/Makefile | 14 +- samples/bpf/Makefile | 24 +-- samples/coresight/Makefile | 2 +- samples/hid/Makefile | 16 +- scripts/Makefile | 6 +- scripts/Makefile.asm-generic | 8 +- scripts/Makefile.build | 22 +-- scripts/Makefile.clean | 2 +- scripts/Makefile.defconf | 16 +- scripts/Makefile.dtbinst | 2 +- scripts/Makefile.headersinst | 10 +- scripts/Makefile.lib | 22 +-- scripts/Makefile.modfinal | 4 +- scripts/Makefile.modinst | 6 +- scripts/Makefile.modpost | 4 +- scripts/Makefile.package | 22 +-- scripts/Makefile.vdsoinst | 2 +- scripts/Makefile.vmlinux | 6 +- scripts/Makefile.vmlinux_o | 8 +- scripts/basic/Makefile | 2 +- scripts/dtc/Makefile | 6 +- scripts/gcc-plugins/Makefile | 2 +- scripts/gdb/linux/Makefile | 2 +- scripts/genksyms/Makefile | 4 +- scripts/kconfig/Makefile | 22 +-- scripts/selinux/genheaders/Makefile | 4 +- scripts/selinux/mdp/Makefile | 4 +- security/apparmor/Makefile | 8 +- security/selinux/Makefile | 2 +- security/tomoyo/Makefile | 2 +- tools/bootconfig/Makefile | 6 +- tools/bpf/Makefile | 16 +- tools/bpf/bpftool/Makefile | 24 +-- tools/bpf/resolve_btfids/Makefile | 12 +- tools/build/Makefile | 8 +- tools/build/Makefile.build | 2 +- tools/build/Makefile.feature | 2 +- tools/build/Makefile.include | 6 +- tools/build/tests/ex/Makefile | 4 +- tools/counter/Makefile | 8 +- tools/gpio/Makefile | 6 +- tools/hv/Makefile | 6 +- tools/iio/Makefile | 6 +- tools/include/nolibc/Makefile | 4 +- tools/lib/api/Makefile | 14 +- tools/lib/bpf/Makefile | 22 +-- tools/lib/perf/Makefile | 26 +-- tools/lib/subcmd/Makefile | 10 +- tools/lib/symbol/Makefile | 14 +- tools/lib/thermal/Makefile | 26 +-- tools/objtool/Makefile | 18 +-- tools/pci/Makefile | 6 +- tools/perf/Makefile.config | 22 +-- tools/perf/Makefile.perf | 136 ++++++++-------- tools/perf/arch/arm64/Makefile | 6 +- tools/perf/arch/loongarch/Makefile | 6 +- tools/perf/arch/mips/Makefile | 2 +- tools/perf/arch/powerpc/Makefile | 2 +- tools/perf/arch/s390/Makefile | 2 +- tools/perf/arch/x86/Makefile | 2 +- tools/power/acpi/Makefile.config | 10 +- tools/power/acpi/Makefile.rules | 2 +- tools/power/acpi/tools/acpidump/Makefile | 2 +- tools/power/acpi/tools/pfrut/Makefile | 2 +- tools/power/x86/intel-speed-select/Makefile | 10 +- tools/spi/Makefile | 6 +- tools/testing/selftests/nolibc/Makefile | 14 +- tools/thermal/lib/Makefile | 24 +-- tools/thermal/thermal-engine/Makefile | 14 +- tools/thermal/thermometer/Makefile | 10 +- tools/usb/Makefile | 8 +- usr/Makefile | 2 +- usr/include/Makefile | 4 +- 307 files changed, 960 insertions(+), 960 deletions(-) -- 2.39.2