Skip to content

Commit b74c51b

Browse files
committed
Reorganize/rename interim variables
1 parent c42447c commit b74c51b

File tree

1 file changed

+21
-20
lines changed

1 file changed

+21
-20
lines changed

build.rs

+21-20
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,18 @@ fn main() {
2626
process::exit(1);
2727
}
2828
});
29+
let kernel_file_name = kernel
30+
.file_name()
31+
.expect("KERNEL has no valid file name")
32+
.to_str()
33+
.expect("kernel file name not valid utf8");
2934

3035
// check that the kernel file exists
3136
assert!(
3237
kernel.exists(),
3338
format!("KERNEL does not exist: {}", kernel.display())
3439
);
3540

36-
let kernel_file_name = kernel
37-
.file_name()
38-
.expect("KERNEL has no valid file name")
39-
.to_str()
40-
.expect("kernel file name not valid utf8");
41-
let kernel_stripped_file_name = format!("kernel_stripped-{}", kernel_file_name);
42-
let kernel_stripped_file_name_replaced = kernel_stripped_file_name.replace('-', "_");
43-
let kernel_stripped_out_path = out_dir.join(&kernel_stripped_file_name);
44-
let kernel_out_path = out_dir.join(format!("kernel_bin-{}.o", kernel_file_name));
45-
let kernel_archive_path = out_dir.join(format!("libkernel_bin-{}.a", kernel_file_name));
46-
4741
// get access to llvm tools shipped in the llvm-tools-preview rustup component
4842
let llvm_tools = match llvm_tools::LlvmTools::new() {
4943
Ok(tools) => tools,
@@ -77,40 +71,47 @@ fn main() {
7771
}
7872

7973
// strip debug symbols from kernel for faster loading
74+
let stripped_kernel_file_name = format!("kernel_stripped-{}", kernel_file_name);
75+
let stripped_kernel = out_dir.join(&stripped_kernel_file_name);
8076
let objcopy = llvm_tools
8177
.tool(&llvm_tools::exe("llvm-objcopy"))
8278
.expect("llvm-objcopy not found in llvm-tools");
8379
let mut cmd = Command::new(&objcopy);
8480
cmd.arg("--strip-debug");
8581
cmd.arg(&kernel);
86-
cmd.arg(&kernel_stripped_out_path);
87-
let exit_status = cmd.status().expect("failed to run objcopy to strip debug symbols");
82+
cmd.arg(&stripped_kernel);
83+
let exit_status = cmd
84+
.status()
85+
.expect("failed to run objcopy to strip debug symbols");
8886
if !exit_status.success() {
8987
eprintln!("Error: Stripping debug symbols failed");
9088
process::exit(1);
9189
}
9290

9391
// wrap the kernel executable as binary in a new ELF file
92+
let stripped_kernel_file_name_replaced = stripped_kernel_file_name.replace('-', "_");
93+
let kernel_bin = out_dir.join(format!("kernel_bin-{}.o", kernel_file_name));
94+
let kernel_archive = out_dir.join(format!("libkernel_bin-{}.a", kernel_file_name));
9495
let mut cmd = Command::new(&objcopy);
9596
cmd.arg("-I").arg("binary");
9697
cmd.arg("-O").arg("elf64-x86-64");
9798
cmd.arg("--binary-architecture=i386:x86-64");
9899
cmd.arg("--rename-section").arg(".data=.kernel");
99100
cmd.arg("--redefine-sym").arg(format!(
100101
"_binary_{}_start=_kernel_start_addr",
101-
kernel_stripped_file_name_replaced
102+
stripped_kernel_file_name_replaced
102103
));
103104
cmd.arg("--redefine-sym").arg(format!(
104105
"_binary_{}_end=_kernel_end_addr",
105-
kernel_stripped_file_name_replaced
106+
stripped_kernel_file_name_replaced
106107
));
107108
cmd.arg("--redefine-sym").arg(format!(
108109
"_binary_{}_size=_kernel_size",
109-
kernel_stripped_file_name_replaced
110+
stripped_kernel_file_name_replaced
110111
));
111112
cmd.current_dir(&out_dir);
112-
cmd.arg(&kernel_stripped_file_name);
113-
cmd.arg(&kernel_out_path);
113+
cmd.arg(&stripped_kernel_file_name);
114+
cmd.arg(&kernel_bin);
114115
let exit_status = cmd.status().expect("failed to run objcopy");
115116
if !exit_status.success() {
116117
eprintln!("Error: Running objcopy failed");
@@ -128,8 +129,8 @@ fn main() {
128129
});
129130
let mut cmd = Command::new(ar);
130131
cmd.arg("crs");
131-
cmd.arg(&kernel_archive_path);
132-
cmd.arg(&kernel_out_path);
132+
cmd.arg(&kernel_archive);
133+
cmd.arg(&kernel_bin);
133134
let exit_status = cmd.status().expect("failed to run ar");
134135
if !exit_status.success() {
135136
eprintln!("Error: Running ar failed");

0 commit comments

Comments
 (0)