summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Moyer <jmoyer@redhat.com>2005-08-01 17:55:04 +0000
committerJeff Moyer <jmoyer@redhat.com>2005-08-01 17:55:04 +0000
commit0c155c6fc88adb208eb8859ec2ec302311300453 (patch)
tree3b1f767fc8f9baf9f42c215166133b7ecce9e9ed
parentcd7f29ea28a6e8235dbe73ac09d026880bd6fdbd (diff)
downloadlibaio-0c155c6fc88adb208eb8859ec2ec302311300453.tar.gz
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.
-rw-r--r--src/syscall-ia64.h1
1 files changed, 1 insertions, 0 deletions
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" \