Skip to content

Commit 22a3acc

Browse files
committed
Use the default rust mangling
1 parent e69f125 commit 22a3acc

File tree

6 files changed

+15
-8
lines changed

6 files changed

+15
-8
lines changed

Cargo.lock

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build_system/src/config.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,8 @@ impl ConfigInfo {
416416
rustflags.push(linker.to_string());
417417
}
418418
rustflags.extend_from_slice(&[
419-
"-Csymbol-mangling-version=v0".to_string(),
419+
// TODO: add this option only when not using the master feature.
420+
//"-Csymbol-mangling-version=v0".to_string(),
420421
"-Cdebuginfo=2".to_string(),
421422
format!("-Zcodegen-backend={}", self.cg_backend_path),
422423
]);

build_system/src/test.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,8 @@ fn asm_tests(env: &Env, args: &TestArg) -> Result<(), String> {
623623
&"tests/assembly/asm",
624624
&"--rustc-args",
625625
&format!(
626-
r#"-Zpanic-abort-tests -Csymbol-mangling-version=v0 \
626+
// TODO: add -Csymbol-mangling-version=v0 only when not using the master feature.
627+
r#"-Zpanic-abort-tests \
627628
-Zcodegen-backend="{pwd}/target/{channel}/librustc_codegen_gcc.{dylib_ext}" \
628629
--sysroot "{pwd}/build_sysroot/sysroot" -Cpanic=abort"#,
629630
pwd = std::env::current_dir()
@@ -1065,7 +1066,8 @@ where
10651066
println!("[TEST] rustc test suite");
10661067
env.insert("COMPILETEST_FORCE_STAGE0".to_string(), "1".to_string());
10671068
let rustc_args = format!(
1068-
"{} -Csymbol-mangling-version=v0 -Zcodegen-backend={} --sysroot {}",
1069+
// TODO: add -Csymbol-mangling-version=v0 only when not using the master feature.
1070+
"{} -Zcodegen-backend={} --sysroot {}",
10691071
env.get("TEST_FLAGS").unwrap_or(&String::new()),
10701072
args.config_info.cg_backend_path,
10711073
args.config_info.sysroot_path,

libgccjit.version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2fc8940e1
1+
89a92e561

src/declare.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,9 @@ fn declare_raw_fn<'gcc>(cx: &CodegenCx<'gcc, '_>, name: &str, _callconv: () /*ll
125125
let params: Vec<_> = param_types.into_iter().enumerate()
126126
.map(|(index, param)| cx.context.new_parameter(None, *param, &format!("param{}", index))) // TODO(antoyo): set name.
127127
.collect();
128-
let func = cx.context.new_function(None, cx.linkage.get(), return_type, &params, mangle_name(name), variadic);
128+
#[cfg(not(feature="master"))]
129+
let name = mangle_name(name);
130+
let func = cx.context.new_function(None, cx.linkage.get(), return_type, &params, &name, variadic);
129131
cx.functions.borrow_mut().insert(name.to_string(), func);
130132

131133
#[cfg(feature="master")]
@@ -180,7 +182,8 @@ fn declare_raw_fn<'gcc>(cx: &CodegenCx<'gcc, '_>, name: &str, _callconv: () /*ll
180182

181183
// FIXME(antoyo): this is a hack because libgccjit currently only supports alpha, num and _.
182184
// Unsupported characters: `$` and `.`.
183-
pub fn mangle_name(name: &str) -> String {
185+
#[cfg(not(feature="master"))]
186+
fn mangle_name(name: &str) -> String {
184187
name.replace(|char: char| {
185188
if !char.is_alphanumeric() && char != '_' {
186189
debug_assert!("$.*".contains(char), "Unsupported char in function name {}: {}", name, char);

src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,7 @@ fn new_context<'gcc, 'tcx>(tcx: TyCtxt<'tcx>) -> Context<'gcc> {
255255
}
256256
#[cfg(feature="master")]
257257
{
258+
context.set_allow_special_chars_in_func_names(true);
258259
let version = Version::get();
259260
let version = format!("{}.{}.{}", version.major, version.minor, version.patch);
260261
context.set_output_ident(&format!("rustc version {} with libgccjit {}",

0 commit comments

Comments
 (0)