From 04a411fe2272a21c687766d7ff94431b93bb090b Mon Sep 17 00:00:00 2001 From: Andrzej Janik Date: Sat, 18 Sep 2021 20:22:47 +0000 Subject: [PATCH] Have an implementation for vprintf --- README.md | 4 ++-- ptx/lib/zluda_ptx_impl.bc | Bin 33884 -> 34052 bytes ptx/lib/zluda_ptx_impl.cl | 7 +++++++ ptx/src/translate.rs | 6 ++++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 953c7c7..42d0b92 100644 --- a/README.md +++ b/README.md @@ -76,8 +76,8 @@ You should install most recent run-time an developer driver packages as outlined If you are building on Linux you must also symlink (or rename) the ZLUDA output binaries after ZLUDA build finishes: ``` ln -s libnvcuda.so target/release/libcuda.so -ln -s libcuda.so target/release/libcuda.so.1 -ln -s libnvidia-ml.so target/release/libnvml.so +ln -s libnvcuda.so target/release/libcuda.so.1 +ln -s libnvml.so target/release/libnvidia-ml.so ``` ## Contributing diff --git a/ptx/lib/zluda_ptx_impl.bc b/ptx/lib/zluda_ptx_impl.bc index e2f956d0976bca4d2113a9f5fffe1a46f8e6f3cf..2d194c40c4406fc81c0a2b832e37afad1928fce4 100644 GIT binary patch delta 3442 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 diff --git a/ptx/lib/zluda_ptx_impl.cl b/ptx/lib/zluda_ptx_impl.cl index 0870fb5..86bb593 100644 --- a/ptx/lib/zluda_ptx_impl.cl +++ b/ptx/lib/zluda_ptx_impl.cl @@ -335,3 +335,10 @@ void FUNC(__assertfail)( __attribute__((unused)) __private ulong* charSize ) { } + +uint FUNC(vprintf)( + __attribute__((unused)) __generic void* format, + __attribute__((unused)) __generic void* valist +) { + return 0; +} diff --git a/ptx/src/translate.rs b/ptx/src/translate.rs index 66fae15..297588a 100644 --- a/ptx/src/translate.rs +++ b/ptx/src/translate.rs @@ -1163,9 +1163,11 @@ fn translate_function<'input, 'a>( ) -> Result>, TranslateError> { let import_as = match &f.func_directive { ast::MethodDeclaration { - name: ast::MethodName::Func("__assertfail"), + name: ast::MethodName::Func(func_name), .. - } => Some("__zluda_ptx_impl____assertfail".to_owned()), + } if *func_name == "__assertfail" || *func_name == "vprintf" => { + Some([ZLUDA_PTX_PREFIX, func_name].concat()) + } _ => None, }; let (str_resolver, fn_resolver, fn_decl) = id_defs.start_fn(&f.func_directive)?;