* [PATCH] reproducible builds: strip embedded file paths @ 2021-11-19 1:05 Vagrant Cascadian 2021-11-21 16:40 ` Xiang W 0 siblings, 1 reply; 11+ messages in thread From: Vagrant Cascadian @ 2021-11-19 1:05 UTC (permalink / raw) To: opensbi A recent commit 12753d22563f7d2d01f2c6644c7b66b06eb5c90f introduced a use of __FILE__ to display the file in some debugging output. Unfortunately, the use of __FILE__ can embed the absolute build path in the resulting binary, resulting in different binaries depending on which path the build was performed in. All previous versions tested in Debian built reproducibly: https://tests.reproducible-builds.org/debian/history/amd64/opensbi.html The attached patch passes -ffile-prefix-map to CFLAGS in the top-level Makefile, which should strip the top-level build path from the resulting build. This should be supported in both gcc 8 and clang 10. This patch was also submitted as a pull request: https://github.com/riscv-software-src/opensbi/pull/229 Please CC me with any concerns or questions. Thanks! live well, vagrant -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Pass-ffile-prefix-map-to-ensure-reproducible-builds-.patch Type: text/x-diff Size: 948 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/opensbi/attachments/20211118/b4f783cc/attachment.bin> -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 227 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/opensbi/attachments/20211118/b4f783cc/attachment.sig> ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-19 1:05 [PATCH] reproducible builds: strip embedded file paths Vagrant Cascadian @ 2021-11-21 16:40 ` Xiang W 2021-11-21 16:45 ` Jessica Clarke 2021-11-21 19:20 ` Vagrant Cascadian 0 siblings, 2 replies; 11+ messages in thread From: Xiang W @ 2021-11-21 16:40 UTC (permalink / raw) To: opensbi ? 2021-11-18???? 17:05 -0800?Vagrant Cascadian??? > > Unfortunately, the use of __FILE__ can embed the absolute build path > in > the resulting binary, resulting in different binaries depending on > which > path the build was performed in. Under what scenarios will absolute paths be embed. Regards, Xiang W ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-21 16:40 ` Xiang W @ 2021-11-21 16:45 ` Jessica Clarke 2021-11-21 19:20 ` Vagrant Cascadian 1 sibling, 0 replies; 11+ messages in thread From: Jessica Clarke @ 2021-11-21 16:45 UTC (permalink / raw) To: opensbi On 21 Nov 2021, at 16:40, Xiang W <wxjstz@126.com> wrote: > > ? 2021-11-18???? 17:05 -0800?Vagrant Cascadian??? >> >> Unfortunately, the use of __FILE__ can embed the absolute build path >> in >> the resulting binary, resulting in different binaries depending on >> which >> path the build was performed in. > > Under what scenarios will absolute paths be embed. As Vagrant said: "A recent commit 12753d22563f7d2d01f2c6644c7b66b06eb5c90f introduced a use of __FILE__ to display the file in some debugging output.? The lazy BUG macro, added in that commit, uses __FILE__. Jess ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-21 16:40 ` Xiang W 2021-11-21 16:45 ` Jessica Clarke @ 2021-11-21 19:20 ` Vagrant Cascadian 2021-11-22 1:45 ` Xiang W 1 sibling, 1 reply; 11+ messages in thread From: Vagrant Cascadian @ 2021-11-21 19:20 UTC (permalink / raw) To: opensbi On 2021-11-22, Xiang W. wrote: > ? 2021-11-18???? 17:05 -0800?Vagrant Cascadian??? >> >> Unfortunately, the use of __FILE__ can embed the absolute build path >> in >> the resulting binary, resulting in different binaries depending on >> which >> path the build was performed in. > > Under what scenarios will absolute paths be embed. In each of the directories below, I built using the same toolchain from the same git commit... $ cd /home/vagrant/src/opensbi/opensbi1 $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n PLATFORM=generic ... $ strings build/platform/generic/firmware/fw_dynamic.bin | grep /home/vagrant /home/vagrant/src/opensbi/opensbi1/lib/sbi/riscv_asm.c $ cd /home/vagrant/src/opensbi/opensbi2 $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n PLATFORM=generic ... $ strings build/platform/generic/firmware/fw_dynamic.bin | grep /home/vagrant /home/vagrant/src/opensbi/opensbi2/lib/sbi/riscv_asm.c With the patch applied: $ cd /home/vagrant/src/opensbi/opensbi3 $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n PLATFORM=generic ... $ strings build/platform/generic/firmware/fw_dynamic.bin | grep /home/vagrant $ strings build/platform/generic/firmware/fw_dynamic.bin | grep riscv_asm.c ./lib/sbi/riscv_asm.c A relative path within the source should be sufficient for the debug message to properly identify the relevent source files... An alternate approach would be to not use __FILE__ at all, but that would probably take more code than passing -ffile-prefix-map at compile time. Thanks! live well, vagrant ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-21 19:20 ` Vagrant Cascadian @ 2021-11-22 1:45 ` Xiang W 2021-11-22 3:59 ` Vagrant Cascadian 0 siblings, 1 reply; 11+ messages in thread From: Xiang W @ 2021-11-22 1:45 UTC (permalink / raw) To: opensbi ? 2021-11-21???? 11:20 -0800?Vagrant Cascadian??? > of the directories below, I built using the same toolchain from > the same git commit... > > $ cd /home/vagrant/src/opensbi/opensbi1 > $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n > PLATFORM=generic > ... > $ strings build/platform/generic/firmware/fw_dynamic.bin | grep > /home/vagrant > /home/vagrant/src/opensbi/opensbi1/lib/sbi/riscv_asm.c > > $ cd /home/vagrant/src/opensbi/opensbi2 > $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n > PLATFORM=generic > ... > $ strings build/platform/generic/firmware/fw_dynamic.bin | grep > /home/vagrant > /home/vagrant/src/opensbi/opensbi2/lib/sbi/riscv_asm.c > > > With the patch applied: > > $ cd /home/vagrant/src/opensbi/opensbi3 This is because the source file uses the absolute path when compiling, you can use the relative path by modifying the Makefile diff --git a/Makefile b/Makefile index 8623c1c..d017534 100644 --- a/Makefile +++ b/Makefile @@ -361,7 +361,7 @@ compile_cc_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ -MM $(2) >> $(1) || rm -f $(1) compile_cc = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ echo " CC $(subst $(build_dir)/,,$(1))"; \ - $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c $(2) - o $(1) + $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c $(subst $(src_dir)/,,$(2)) -o $(1) compile_as_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ echo " AS-DEP $(subst $(build_dir)/,,$(1))"; \ printf %s `dirname $(1)`/ > $(1) && \ Regards, Xiang W ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-22 1:45 ` Xiang W @ 2021-11-22 3:59 ` Vagrant Cascadian 2021-11-22 4:43 ` Anup Patel 0 siblings, 1 reply; 11+ messages in thread From: Vagrant Cascadian @ 2021-11-22 3:59 UTC (permalink / raw) To: opensbi On 2021-11-22, Xiang W. wrote: > ? 2021-11-21???? 11:20 -0800?Vagrant Cascadian??? >> of the directories below, I built using the same toolchain from >> the same git commit... >> >> $ cd /home/vagrant/src/opensbi/opensbi1 >> $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n >> PLATFORM=generic >> ... >> $ strings build/platform/generic/firmware/fw_dynamic.bin | grep >> /home/vagrant >> /home/vagrant/src/opensbi/opensbi1/lib/sbi/riscv_asm.c ... > This is because the source file uses the absolute path when compiling, > you can use the relative path by modifying the Makefile > > diff --git a/Makefile b/Makefile > index 8623c1c..d017534 100644 > --- a/Makefile > +++ b/Makefile > @@ -361,7 +361,7 @@ compile_cc_dep = $(CMD_PREFIX)mkdir -p `dirname > $(1)`; \ > -MM $(2) >> $(1) || rm -f $(1) > compile_cc = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ > echo " CC $(subst $(build_dir)/,,$(1))"; \ > - $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c $(2) - > o $(1) > + $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c > $(subst $(src_dir)/,,$(2)) -o $(1) > compile_as_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ > echo " AS-DEP $(subst $(build_dir)/,,$(1))"; \ > printf %s `dirname $(1)`/ > $(1) && \ That solves the issue and is probably better than passing more compiler arguments, thanks! live well, vagrant -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 227 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/opensbi/attachments/20211121/3ea4d4ac/attachment.sig> ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-22 3:59 ` Vagrant Cascadian @ 2021-11-22 4:43 ` Anup Patel 2021-11-22 5:44 ` Xiang W 0 siblings, 1 reply; 11+ messages in thread From: Anup Patel @ 2021-11-22 4:43 UTC (permalink / raw) To: opensbi On Mon, Nov 22, 2021 at 10:02 AM Vagrant Cascadian <vagrant@reproducible-builds.org> wrote: > > On 2021-11-22, Xiang W. wrote: > > ? 2021-11-21???? 11:20 -0800?Vagrant Cascadian??? > >> of the directories below, I built using the same toolchain from > >> the same git commit... > >> > >> $ cd /home/vagrant/src/opensbi/opensbi1 > >> $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n > >> PLATFORM=generic > >> ... > >> $ strings build/platform/generic/firmware/fw_dynamic.bin | grep > >> /home/vagrant > >> /home/vagrant/src/opensbi/opensbi1/lib/sbi/riscv_asm.c > ... > > This is because the source file uses the absolute path when compiling, > > you can use the relative path by modifying the Makefile > > > > diff --git a/Makefile b/Makefile > > index 8623c1c..d017534 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -361,7 +361,7 @@ compile_cc_dep = $(CMD_PREFIX)mkdir -p `dirname > > $(1)`; \ > > -MM $(2) >> $(1) || rm -f $(1) > > compile_cc = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ > > echo " CC $(subst $(build_dir)/,,$(1))"; \ > > - $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c $(2) - > > o $(1) > > + $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c > > $(subst $(src_dir)/,,$(2)) -o $(1) > > compile_as_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ > > echo " AS-DEP $(subst $(build_dir)/,,$(1))"; \ > > printf %s `dirname $(1)`/ > $(1) && \ > > That solves the issue and is probably better than passing more compiler > arguments, thanks! This will only work if we are compiling from the OpenSBI source directory itself. What if users compile OpenSBI with a different current directory using "make -C <opensbi_source_path>". I guess passing compiler argument will allow "make -C <opensbi_source_path>". Regards, Anup > > > live well, > vagrant > -- > opensbi mailing list > opensbi at lists.infradead.org > http://lists.infradead.org/mailman/listinfo/opensbi ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-22 4:43 ` Anup Patel @ 2021-11-22 5:44 ` Xiang W 2021-11-27 1:48 ` Vagrant Cascadian 0 siblings, 1 reply; 11+ messages in thread From: Xiang W @ 2021-11-22 5:44 UTC (permalink / raw) To: opensbi ? 2021-11-22???? 10:13 +0530?Anup Patel??? > On Mon, Nov 22, 2021 at 10:02 AM Vagrant Cascadian > <vagrant@reproducible-builds.org> wrote: > > > > On 2021-11-22, Xiang W. wrote: > > > ? 2021-11-21???? 11:20 -0800?Vagrant Cascadian??? > > > > of the directories below, I built using the same toolchain from > > > > the same git commit... > > > > > > > > $ cd /home/vagrant/src/opensbi/opensbi1 > > > > $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n > > > > PLATFORM=generic > > > > ... > > > > $ strings build/platform/generic/firmware/fw_dynamic.bin | grep > > > > /home/vagrant > > > > /home/vagrant/src/opensbi/opensbi1/lib/sbi/riscv_asm.c > > ... > > > This is because the source file uses the absolute path when > > > compiling, > > > you can use the relative path by modifying the Makefile > > > > > > diff --git a/Makefile b/Makefile > > > index 8623c1c..d017534 100644 > > > --- a/Makefile > > > +++ b/Makefile > > > @@ -361,7 +361,7 @@ compile_cc_dep = $(CMD_PREFIX)mkdir -p > > > `dirname > > > $(1)`; \ > > > ???????????? -MM $(2) >> $(1) || rm -f $(1) > > > ?compile_cc = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ > > > ?????????? echo " CC??????? $(subst $(build_dir)/,,$(1))"; \ > > > -????????? $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c > > > $(2) - > > > o $(1) > > > +????????? $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c > > > $(subst $(src_dir)/,,$(2)) -o $(1) > > > ?compile_as_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ > > > ?????????? echo " AS-DEP??? $(subst $(build_dir)/,,$(1))"; \ > > > ?????????? printf %s `dirname $(1)`/ > $(1) && \ > > > > That solves the issue and is probably better than passing more > > compiler > > arguments, thanks! > > This will only work if we are compiling from the OpenSBI source > directory > itself. What if users compile OpenSBI with a different current > directory > using "make -C <opensbi_source_path>". I guess passing compiler > argument will allow "make -C <opensbi_source_path>". make -C <directory> will switch the path to <directory> first, so the result is the same. Regards, Xiang W > > Regards, > Anup > > > > > > > live well, > > ? vagrant > > -- > > opensbi mailing list > > opensbi at lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/opensbi ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-22 5:44 ` Xiang W @ 2021-11-27 1:48 ` Vagrant Cascadian 2021-11-27 4:20 ` Anup Patel 2021-11-27 11:46 ` Xiang W 0 siblings, 2 replies; 11+ messages in thread From: Vagrant Cascadian @ 2021-11-27 1:48 UTC (permalink / raw) To: opensbi On 2021-11-22, Xiang W. wrote: > ? 2021-11-22???? 10:13 +0530?Anup Patel??? >> On Mon, Nov 22, 2021 at 10:02 AM Vagrant Cascadian >> <vagrant@reproducible-builds.org> wrote: >> > >> > On 2021-11-22, Xiang W. wrote: >> > > ? 2021-11-21???? 11:20 -0800?Vagrant Cascadian??? >> > > > of the directories below, I built using the same toolchain from >> > > > the same git commit... >> > > > >> > > > $ cd /home/vagrant/src/opensbi/opensbi1 >> > > > $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n >> > > > PLATFORM=generic >> > > > ... >> > > > $ strings build/platform/generic/firmware/fw_dynamic.bin | grep >> > > > /home/vagrant >> > > > /home/vagrant/src/opensbi/opensbi1/lib/sbi/riscv_asm.c >> > ... >> > > This is because the source file uses the absolute path when >> > > compiling, >> > > you can use the relative path by modifying the Makefile >> > > >> > > diff --git a/Makefile b/Makefile >> > > index 8623c1c..d017534 100644 >> > > --- a/Makefile >> > > +++ b/Makefile >> > > @@ -361,7 +361,7 @@ compile_cc_dep = $(CMD_PREFIX)mkdir -p >> > > `dirname >> > > $(1)`; \ >> > > ???????????? -MM $(2) >> $(1) || rm -f $(1) >> > > ?compile_cc = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ >> > > ?????????? echo " CC??????? $(subst $(build_dir)/,,$(1))"; \ >> > > -????????? $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c >> > > $(2) - >> > > o $(1) >> > > +????????? $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c >> > > $(subst $(src_dir)/,,$(2)) -o $(1) >> > > ?compile_as_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ >> > > ?????????? echo " AS-DEP??? $(subst $(build_dir)/,,$(1))"; \ >> > > ?????????? printf %s `dirname $(1)`/ > $(1) && \ >> > >> > That solves the issue and is probably better than passing more >> > compiler >> > arguments, thanks! >> >> This will only work if we are compiling from the OpenSBI source >> directory >> itself. What if users compile OpenSBI with a different current >> directory >> using "make -C <opensbi_source_path>". I guess passing compiler >> argument will allow "make -C <opensbi_source_path>". > > make -C <directory> will switch the path to <directory> first, so the > result is the same. Any outstanding concerns with proposing the patch by Xiang W to pass relative directories instead of the original patch I submitted? Should it be submitted by Xiang W or should I merge the commit message from the original patch and submit it myself? Thanks! live well, vagrant -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 227 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/opensbi/attachments/20211126/7eb1c7fd/attachment.sig> ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-27 1:48 ` Vagrant Cascadian @ 2021-11-27 4:20 ` Anup Patel 2021-11-27 11:46 ` Xiang W 1 sibling, 0 replies; 11+ messages in thread From: Anup Patel @ 2021-11-27 4:20 UTC (permalink / raw) To: opensbi ?On 27/11/21, 8:24 AM, "opensbi on behalf of Vagrant Cascadian" <opensbi-bounces at lists.infradead.org on behalf of vagrant@reproducible-builds.org> wrote: On 2021-11-22, Xiang W. wrote: > ? 2021-11-22???? 10:13 +0530?Anup Patel??? >> On Mon, Nov 22, 2021 at 10:02 AM Vagrant Cascadian >> <vagrant@reproducible-builds.org> wrote: >> > >> > On 2021-11-22, Xiang W. wrote: >> > > ? 2021-11-21???? 11:20 -0800?Vagrant Cascadian??? >> > > > of the directories below, I built using the same toolchain from >> > > > the same git commit... >> > > > >> > > > $ cd /home/vagrant/src/opensbi/opensbi1 >> > > > $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n >> > > > PLATFORM=generic >> > > > ... >> > > > $ strings build/platform/generic/firmware/fw_dynamic.bin | grep >> > > > /home/vagrant >> > > > /home/vagrant/src/opensbi/opensbi1/lib/sbi/riscv_asm.c >> > ... >> > > This is because the source file uses the absolute path when >> > > compiling, >> > > you can use the relative path by modifying the Makefile >> > > >> > > diff --git a/Makefile b/Makefile >> > > index 8623c1c..d017534 100644 >> > > --- a/Makefile >> > > +++ b/Makefile >> > > @@ -361,7 +361,7 @@ compile_cc_dep = $(CMD_PREFIX)mkdir -p >> > > `dirname >> > > $(1)`; \ >> > > -MM $(2) >> $(1) || rm -f $(1) >> > > compile_cc = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ >> > > echo " CC $(subst $(build_dir)/,,$(1))"; \ >> > > - $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c >> > > $(2) - >> > > o $(1) >> > > + $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c >> > > $(subst $(src_dir)/,,$(2)) -o $(1) >> > > compile_as_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ >> > > echo " AS-DEP $(subst $(build_dir)/,,$(1))"; \ >> > > printf %s `dirname $(1)`/ > $(1) && \ >> > >> > That solves the issue and is probably better than passing more >> > compiler >> > arguments, thanks! >> >> This will only work if we are compiling from the OpenSBI source >> directory >> itself. What if users compile OpenSBI with a different current >> directory >> using "make -C <opensbi_source_path>". I guess passing compiler >> argument will allow "make -C <opensbi_source_path>". > > make -C <directory> will switch the path to <directory> first, so the > result is the same. Any outstanding concerns with proposing the patch by Xiang W to pass relative directories instead of the original patch I submitted? Should it be submitted by Xiang W or should I merge the commit message from the original patch and submit it myself? [Anup] Change the patch subject to "Makefile: strip embedded file paths" and send v2 patch. [Anup] Please use "git send-email" to send patch to opensbi mailing list. You will have to join the mailing list before posting because it allows posting by mailing list members only. Regards, Anup Thanks! live well, vagrant ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] reproducible builds: strip embedded file paths 2021-11-27 1:48 ` Vagrant Cascadian 2021-11-27 4:20 ` Anup Patel @ 2021-11-27 11:46 ` Xiang W 1 sibling, 0 replies; 11+ messages in thread From: Xiang W @ 2021-11-27 11:46 UTC (permalink / raw) To: opensbi ? 2021-11-26???? 17:48 -0800?Vagrant Cascadian??? > On 2021-11-22, Xiang W. wrote: > > ? 2021-11-22???? 10:13 +0530?Anup Patel??? > > > On Mon, Nov 22, 2021 at 10:02 AM Vagrant Cascadian > > > <vagrant@reproducible-builds.org> wrote: > > > > > > > > On 2021-11-22, Xiang W. wrote: > > > > > ? 2021-11-21???? 11:20 -0800?Vagrant Cascadian??? > > > > > > of the directories below, I built using the same toolchain > > > > > > from > > > > > > the same git commit... > > > > > > > > > > > > $ cd /home/vagrant/src/opensbi/opensbi1 > > > > > > $ CROSS_COMPILE=riscv64-linux-gnu- make V=1 FW_PAYLOAD=n > > > > > > PLATFORM=generic > > > > > > ... > > > > > > $ strings build/platform/generic/firmware/fw_dynamic.bin | > > > > > > grep > > > > > > /home/vagrant > > > > > > /home/vagrant/src/opensbi/opensbi1/lib/sbi/riscv_asm.c > > > > ... > > > > > This is because the source file uses the absolute path when > > > > > compiling, > > > > > you can use the relative path by modifying the Makefile > > > > > > > > > > diff --git a/Makefile b/Makefile > > > > > index 8623c1c..d017534 100644 > > > > > --- a/Makefile > > > > > +++ b/Makefile > > > > > @@ -361,7 +361,7 @@ compile_cc_dep = $(CMD_PREFIX)mkdir -p > > > > > `dirname > > > > > $(1)`; \ > > > > > ???????????? -MM $(2) >> $(1) || rm -f $(1) > > > > > ?compile_cc = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ > > > > > ?????????? echo " CC??????? $(subst $(build_dir)/,,$(1))"; \ > > > > > -????????? $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c > > > > > $(2) - > > > > > o $(1) > > > > > +????????? $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c > > > > > $(subst $(src_dir)/,,$(2)) -o $(1) > > > > > ?compile_as_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ > > > > > ?????????? echo " AS-DEP??? $(subst $(build_dir)/,,$(1))"; \ > > > > > ?????????? printf %s `dirname $(1)`/ > $(1) && \ > > > > > > > > That solves the issue and is probably better than passing more > > > > compiler > > > > arguments, thanks! > > > > > > This will only work if we are compiling from the OpenSBI source > > > directory > > > itself. What if users compile OpenSBI with a different current > > > directory > > > using "make -C <opensbi_source_path>". I guess passing compiler > > > argument will allow "make -C <opensbi_source_path>". > > > > make -C <directory> will switch the path to <directory> first, so > > the > > result is the same. > > Any outstanding concerns with proposing the patch by Xiang W to pass > relative directories instead of the original patch I submitted? > > Should it be submitted by Xiang W or should I merge the commit > message > from the original patch and submit it myself? I just made a suggestion, you can submit it. Regards, Xiang W > > Thanks! > > > live well, > ? vagrant ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2021-11-27 11:46 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-11-19 1:05 [PATCH] reproducible builds: strip embedded file paths Vagrant Cascadian 2021-11-21 16:40 ` Xiang W 2021-11-21 16:45 ` Jessica Clarke 2021-11-21 19:20 ` Vagrant Cascadian 2021-11-22 1:45 ` Xiang W 2021-11-22 3:59 ` Vagrant Cascadian 2021-11-22 4:43 ` Anup Patel 2021-11-22 5:44 ` Xiang W 2021-11-27 1:48 ` Vagrant Cascadian 2021-11-27 4:20 ` Anup Patel 2021-11-27 11:46 ` Xiang W
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox