If CONFIG_INITRAMFS_SOURCE contains relative paths inside the source tree (e.g. in a defconfig pointing to arch-specific files), the corresponding file system entries are not found when building outside the source tree. Prefix all simple paths (paths not starting with "/", "../", or "./") with $(srctree) to fix this. Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> --- This issue happens when building an OpenRISC defconfig from git://openrisc.net/jonas/linux. Mainline doesn't have the OpenRISC initramfs. Questions: 1. Is this an acceptable solution for mainline? 2. My make-foo is limited. is there a better way to accomplish this, than by prefixing all paths and removing the prefixes again where they're not wanted? usr/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/usr/Makefile b/usr/Makefile index e767f019accf..2170c38936ce 100644 --- a/usr/Makefile +++ b/usr/Makefile @@ -41,6 +41,12 @@ hostprogs-y := gen_init_cpio initramfs := $(CONFIG_SHELL) $(srctree)/scripts/gen_initramfs_list.sh ramfs-input := $(if $(filter-out "",$(CONFIG_INITRAMFS_SOURCE)), \ $(shell echo $(CONFIG_INITRAMFS_SOURCE)),-d) +ifneq ("$(ramfs-input)", "-d") +ramfs-input := $(patsubst %, $(srctree)/%, $(ramfs-input)) +ramfs-input := $(patsubst $(srctree)//%, /%, $(ramfs-input)) +ramfs-input := $(patsubst $(srctree)/../%, ../%, $(ramfs-input)) +ramfs-input := $(patsubst $(srctree)/./%, ./%, $(ramfs-input)) +endif ramfs-args := \ $(if $(CONFIG_INITRAMFS_ROOT_UID), -u $(CONFIG_INITRAMFS_ROOT_UID)) \ $(if $(CONFIG_INITRAMFS_ROOT_GID), -g $(CONFIG_INITRAMFS_ROOT_GID)) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html