diff options
author | Jeff Moyer <jmoyer@redhat.com> | 2005-08-01 17:55:04 +0000 |
---|---|---|
committer | Jeff Moyer <jmoyer@redhat.com> | 2005-08-01 17:55:04 +0000 |
commit | 0c155c6fc88adb208eb8859ec2ec302311300453 (patch) | |
tree | 3b1f767fc8f9baf9f42c215166133b7ecce9e9ed | |
parent | cd7f29ea28a6e8235dbe73ac09d026880bd6fdbd (diff) | |
download | libaio-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.h | 1 |
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" \ |