From d9a32b84e38fda935032338a0a4ae9438d48108d Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Tue, 23 Apr 2013 08:08:30 -0700 Subject: [PATCH] radeon/llvm: Fix segfault with a specifc libelf implementation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The libelf implementation that is distributed here: http://www.mr511.de/software/english.html requires calling elf_version() prior to calling elf_memory() Tested-by: Michel Dänzer --- src/gallium/drivers/radeon/radeon_llvm_emit.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/radeon/radeon_llvm_emit.cpp b/src/gallium/drivers/radeon/radeon_llvm_emit.cpp index 5b770d0fd05..55dad9b983c 100644 --- a/src/gallium/drivers/radeon/radeon_llvm_emit.cpp +++ b/src/gallium/drivers/radeon/radeon_llvm_emit.cpp @@ -159,6 +159,10 @@ radeon_llvm_compile(LLVMModuleRef M, struct radeon_llvm_binary *binary, char *elf_buffer; + /* One of the libelf implementations (http://www.mr511.de/software/english.htm) + * requires calling elf_version() before elf_memory(). + */ + elf_version(EV_CURRENT); elf_buffer = (char*)malloc(data.length()); memcpy(elf_buffer, data.c_str(), data.length()); -- 2.30.2