From 0c155c6fc88adb208eb8859ec2ec302311300453 Mon Sep 17 00:00:00 2001 From: Jeff Moyer Date: Mon, 1 Aug 2005 17:55:04 +0000 Subject: Initial problem description: I have an application that optionally can use kernel async IO (libaio.so). As this is optional, I don't want to link the application with -laio, as otherwise all users have to install libaio RPM. Therefore, I'm loading libaio.so at runtime via dlopen(), and get the required function addresses via dlvsym(). Basically, I need io_queue_init(), io_submit(), and io_getevents(). This works fine on all supported platforms except IA64. It turns out the __ia64_raw_syscall macro did not include a .proc directive, which was causing this problem. The fix is to simply add a one line change to that macro. --- src/syscall-ia64.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/syscall-ia64.h b/src/syscall-ia64.h index 2f6a01a..52ce9dd 100644 --- a/src/syscall-ia64.h +++ b/src/syscall-ia64.h @@ -7,6 +7,7 @@ #define __ia64_raw_syscall(fname, sname) \ __asm__ (".text\n" \ ".globl " SYMSTR(fname) "\n" \ + ".proc " SYMSTR(fname) "\n" \ SYMSTR(fname) ":\n" \ " mov r15=" SYMSTR( __NR_ ## sname ) "\n" \ " break 0x100000\n" \ -- cgit v1.2.1