Message ID | 1384467283-14806-1-git-send-email-geert@linux-m68k.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 11/15/2013 03:44 AM, Geert Uytterhoeven wrote: > 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@linux-m68k.org> > --- > This issue happens when building an OpenRISC defconfig from > git://openrisc.net/jonas/linux. Mainline doesn't have the OpenRISC > initramfs. +1. This applies to ARC defconfig too. > > 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)) > -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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))
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@linux-m68k.org> --- 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(+)