New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/go,cmd/link: "go build" doesn't rebuild the binary after build flags changed #63760
Comments
Please fill out the complete issue template, including the requested output from |
Hi, $aarch64-wrs-linux-go version $aarch64-wrs-linux-go env
$Complete build command line
NOTE:
|
The linker flags are supposed to be recorded in the cache key here: @sandy-lcq, can you set |
Hi, Here is reproduce steps and corresponding log:
NOTE:
|
Huh. I see the The output from
And in the So the only possibilities I can see are:
@sandy-lcq, can you confirm that the source code used to build your |
@bcmills Thanks. I find that my go command have an local patch, uncomments https://cs.opensource.google/go/go/+/refs/tags/go1.20.6:src/cmd/go/internal/work/exec.go;drc=c0ed873cd8259f16d0da67eee783fda49f45ef61;l=1302 and https://cs.opensource.google/go/go/+/refs/tags/go1.20.6:src/cmd/go/internal/work/exec.go;drc=c0ed873cd8259f16d0da67eee783fda49f45ef61;l=1597. After revert it, above issue cannot reproduce. So I will close this. |
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 7cd3a9019a38cc38496955ddffad886afe68e837) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 7cd3a9019a38cc38496955ddffad886afe68e837) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 7cd3a9019a38cc38496955ddffad886afe68e837) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 7cd3a9019a38cc38496955ddffad886afe68e837) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 7cd3a9019a38cc38496955ddffad886afe68e837) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: b440fc4b08bb6bfd78a6494fce2684ce113cd524) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 6d3db7abce1d4a55299b4c64ef1301a0d37a64fb) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 03665a7ef3d932fa1845ad7815d4643fc4038767) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 03665a7ef3d932fa1845ad7815d4643fc4038767) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 03665a7ef3d932fa1845ad7815d4643fc4038767) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 03665a7ef3d932fa1845ad7815d4643fc4038767) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 5c978d1b93ea9dcbd2c3571bd21656808ab4029e) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 5c978d1b93ea9dcbd2c3571bd21656808ab4029e) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 5c978d1b93ea9dcbd2c3571bd21656808ab4029e) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 73f67564c83ddb18fd11bbb10f5a3733d0d9bb63) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 6873c6cb000b24c1badd0fb8b5cd2d0a31a63096) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 6873c6cb000b24c1badd0fb8b5cd2d0a31a63096) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 (From OE-Core rev: 6873c6cb000b24c1badd0fb8b5cd2d0a31a63096) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
patch 0007-exec.go-do-not-write-linker-flags-into-buildids.patch removes linker flags from buildids for not breaking reproducibility, but it seems that this will make go not rebuild when linker flag changes, Refer [1]. So remove this oe-specific patch, and change to filter out build specific path from the linker flags [1] golang/go#63760 Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
I am doing cross compile with go, version 1.20.6.
Reproduce steps:
this command will generate an binary under builds/plugins/bin/brigde
Run go build -p 48 -v -ldflags="-r /usr/lib/go/pkg/linux_arm64_dynlink -I /usr/lib/ld-linux-aarch64.so.1 ..." ...
we can see the binary brigde still have the old dynamic linker, this will make bridge cannot run on target.
It seems like that "go build" only checks if the cached packagefile is changed, since we don't change any code in step 2, cached packagefile not changed, and bridge is still there, so it did not relink with the new dynamic linker. I think it should relink.
The text was updated successfully, but these errors were encountered: