Without the RUSTFLAGS environment variable set, cargo looks at .cargo/config files in all parent directories. Such a file can contain a build.rustflags key that would then be applied to the bootloader build too. Since some rustflags can break the build (e.g. -C target-cpu=native), we should prevent that.
Creating a cargo/.config file with an empty build.rustflags key in the bootloader repository does not suffice for fixing this because cargo unifies arrays with the values defined in parent directories. So the only way to ensure that no rustflags are passed is to set the RUSTFLAGS environment variable to the empty string, exploiting the fact that it takes precedence over any build.rustflags key.
Without the
RUSTFLAGS
environment variable set, cargo looks at.cargo/config
files in all parent directories. Such a file can contain abuild.rustflags
key that would then be applied to the bootloader build too. Since some rustflags can break the build (e.g.-C target-cpu=native
), we should prevent that.Creating a
cargo/.config
file with an emptybuild.rustflags
key in the bootloader repository does not suffice for fixing this because cargo unifies arrays with the values defined in parent directories. So the only way to ensure that no rustflags are passed is to set the RUSTFLAGS environment variable to the empty string, exploiting the fact that it takes precedence over anybuild.rustflags
key.Fixes https://github.com/phil-opp/blog_os/issues/770