Fix lcf generation for empty RELs
Also, handle alignment of 0 in rel make
This commit is contained in:
parent
bf0d1a823f
commit
e1c80655b7
|
@ -64,7 +64,7 @@ pub fn generate_ldscript_partial(
|
|||
template: Option<&str>,
|
||||
force_active: &[String],
|
||||
) -> Result<String> {
|
||||
let section_defs = obj
|
||||
let mut section_defs = obj
|
||||
.sections
|
||||
.iter()
|
||||
.map(|(_, s)| {
|
||||
|
@ -73,6 +73,12 @@ pub fn generate_ldscript_partial(
|
|||
})
|
||||
.join("\n ");
|
||||
|
||||
// Some RELs have no entry point (`.text` was stripped) so mwld requires at least an empty
|
||||
// `.init` section to be present in the linker script, for some reason.
|
||||
if obj.entry.is_none() {
|
||||
section_defs = format!(".init :{{}}\n {}", section_defs);
|
||||
}
|
||||
|
||||
let mut force_files = Vec::with_capacity(obj.link_order.len());
|
||||
for unit in &obj.link_order {
|
||||
let obj_path = obj_path_for_unit(&unit.name);
|
||||
|
|
|
@ -774,6 +774,7 @@ where
|
|||
.and_then(|v| v.get(permitted_section_idx))
|
||||
.cloned()
|
||||
.unwrap_or(section.align() as u32)
|
||||
.max(1)
|
||||
}
|
||||
|
||||
let mut align = file
|
||||
|
|
Loading…
Reference in New Issue