[PATCH v[3]] Makefile: Dereference symlinks on install

Anup Patel anup at brainfault.org
Sun May 21 21:02:05 PDT 2023


On Tue, May 16, 2023 at 8:04 AM Xiang W <wxjstz at 126.com> wrote:
>
> 在 2023-05-16星期二的 01:42 +0000,Filip Filmar写道:
> > Adds the `-L` flag (follow symlinks) to the `cp` commands used to
> > install `libsbi.a` and `include/sbi/*`.
> >
> > This should make no difference in regular compilation. However,
> > it does make a difference when compiling with bazel.  Namely,
> > bazel's sandboxing will turn all the source files into symlinks.
> > After installation with `cp` the destination files will be
> > symlinks pointing to the sandbox symlinks. As the sandbox files
> > are removed when compilation ends, the just-copied symlinks
> > become dangling symlinks.
> >
> > The resulting include files will be
> > unusable due to the dangling symlink issues. Adding `-L` when
> > copying ensures that the files obtained by executing the `install`
> > targets are always dereferenced to files, rather than symlinks,
> > eliminating this issue.
> >
> > Signed-off-by: Filip Filmar <fmil at google.com>
> > Reviewed-by: Xiang W <wxjstz at 126.com>

Somehow, this patch did not land in my inbox.

This looks good to me.

Reviewed-by: Anup Patel <anup at brainfault.org>

Applied this patch to the riscv/opensbi repo.

Thanks,
Anup

> Sorry, I probably didn't express myself clearly enough.
> What I wanted to say was:
> [PATCH] Makefile: Dereference symlinks on install
> [PATCH v2] Makefile: Dereference symlinks on install
> [PATCH v3] Makefile: Dereference symlinks on install
> ...
>
> Regards,
> Xiang W
> > ---
> >  Makefile | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/Makefile b/Makefile
> > index a26a39b..730dbd9 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -401,10 +401,10 @@ merge_deps = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
> >              cat $(2) > $(1)
> >  copy_file =  $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
> >              echo " COPY      $(subst $(build_dir)/,,$(1))"; \
> > -            cp -f $(2) $(1)
> > +            cp -L -f $(2) $(1)
> >  inst_file =  $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
> >              echo " INSTALL   $(subst $(install_root_dir)/,,$(1))"; \
> > -            cp -f $(2) $(1)
> > +            cp -L -f $(2) $(1)
> >  inst_file_list = $(CMD_PREFIX)if [ ! -z "$(4)" ]; then \
> >              mkdir -p $(1)/$(3); \
> >              for file in $(4) ; do \
> > @@ -413,12 +413,12 @@ inst_file_list = $(CMD_PREFIX)if [ ! -z "$(4)" ]; then \
> >              dest_dir=`dirname $$dest_file`; \
> >              echo " INSTALL   "$(3)"/"`echo $$rel_file`; \
> >              mkdir -p $$dest_dir; \
> > -            cp -f $$file $$dest_file; \
> > +            cp -L -f $$file $$dest_file; \
> >              done \
> >              fi
> >  inst_header_dir =  $(CMD_PREFIX)mkdir -p $(1); \
> >              echo " INSTALL   $(subst $(install_root_dir)/,,$(1))"; \
> > -            cp -rf $(2) $(1)
> > +            cp -L -rf $(2) $(1)
> >  compile_cpp_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
> >              echo " CPP-DEP   $(subst $(build_dir)/,,$(1))"; \
> >              printf %s `dirname $(1)`/  > $(1) && \
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi



More information about the opensbi mailing list