/// Configures whether the compiler will emit position independent code.
///
- /// This option defaults to `false` for `windows-gnu` targets and
+ /// This option defaults to `false` for `windows-gnu` and `riscv` targets and
/// to `true` for all other targets.
pub fn pic(&mut self, pic: bool) -> &mut Build {
self.pic = Some(pic);
cmd.push_cc_arg("-ffunction-sections".into());
cmd.push_cc_arg("-fdata-sections".into());
}
- if self.pic.unwrap_or(!target.contains("windows-gnu")) {
+ // Disable generation of PIC on RISC-V for now: rust-lld doesn't support this yet
+ if self.pic.unwrap_or(!target.contains("windows-gnu") && !target.contains("riscv")) {
cmd.push_cc_arg("-fPIC".into());
// PLT only applies if code is compiled with PIC support,
// and only for ELF targets.