You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a regression of #983, directories in a repository
is symlinked by default. This is IMO not the correct behaviour as it will cause the object file and target
file to generate in the original repsitory folder, if the build system is a simple make or configure_make
that generates file in place. The respository is supposed to not get changed after analysis phase otherwise
it's no longer hermetic.
Assume I have a project, in the repository, something like execroot/_main/external/myrepo in path:
src/
src/main.c
Makefile
After the mentioned PR, in BUILD_TMPDIR we will have (something like external/myrepo/myproject.build_tmpdir in path):
src@ <symlink>
Makefile <symlink>
After this PR we end up writing main.o and main back to execroot/_main/external/myrepo/src.
This will further cause problem if a target are required to compile in both exec and target configuration,
a race condition will happen to create either artifacts with exec or target configuration, or fail the build
completely.
The text was updated successfully, but these errors were encountered:
fffonion
changed the title
Symlinking the directory should be disabled by default
Symlinking the sub directory should be disabled by default
Sep 11, 2024
As a regression of #983, directories in a repository
is symlinked by default. This is IMO not the correct behaviour as it will cause the object file and target
file to generate in the original repsitory folder, if the build system is a simple
make
orconfigure_make
that generates file in place. The respository is supposed to not get changed after analysis phase otherwise
it's no longer hermetic.
Assume I have a project, in the repository, something like
execroot/_main/external/myrepo
in path:After the mentioned PR, in
BUILD_TMPDIR
we will have (something likeexternal/myrepo/myproject.build_tmpdir
in path):After this PR we end up writing
main.o
andmain
back toexecroot/_main/external/myrepo/src
.This will further cause problem if a target are required to compile in both exec and target configuration,
a race condition will happen to create either artifacts with exec or target configuration, or fail the build
completely.
The text was updated successfully, but these errors were encountered: