#14 Add support for LoongArch
Closed 2 years ago by renyehui. Opened 2 years ago by renyehui.
Unknown source master  into  master

file modified
+2 -2
@@ -18,8 +18,8 @@

  #define SYS_eventfd 318

  #elif defined(__alpha__)

  #define SYS_eventfd 478

- #elif defined(__aarch64__) || defined(__riscv)

- /* arm64 and riscv do not implement eventfd, only eventfd2 */

+ #elif defined(__aarch64__) || defined(__loongarch__) || defined(__riscv)

+ /* these recent architectures do not implement eventfd, only eventfd2 */

  #define USE_EVENTFD2

  #ifndef SYS_eventfd2

  #define SYS_eventfd2 19

file modified
+1 -1
@@ -7,7 +7,7 @@

  Source: %{name}-%{version}.tar.gz

  BuildRoot: %{_tmppath}/%{name}-root

  # Fix ExclusiveArch as we implement this functionality on more architectures

- ExclusiveArch: i386 x86_64 ia64 s390 s390x ppc ppc64 ppc64pseries ppc64iseries alpha alphaev6 %{arm}

+ ExclusiveArch: i386 x86_64 ia64 s390 s390x ppc ppc64 ppc64pseries ppc64iseries alpha alphaev6 %{arm} loongarch64

  

  %description

  The Linux-native asynchronous I/O facility ("async I/O", or "aio") has a

file modified
+3 -1
@@ -53,7 +53,8 @@

  /* little endian, 32 bits */

  #if defined(__i386__) || (defined(__arm__) && !defined(__ARMEB__)) || \

      defined(__sh__) || defined(__bfin__) || defined(__MIPSEL__) || \

-     defined(__cris__) || (defined(__riscv) && __riscv_xlen == 32) || \

+     defined(__cris__) || defined(__loongarch32) || \

+     (defined(__riscv) && __riscv_xlen == 32) || \

      (defined(__GNUC__) && defined(__BYTE_ORDER__) && \

           __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG__ == 4)

  #define PADDED(x, y)	x; unsigned y
@@ -63,6 +64,7 @@

  /* little endian, 64 bits */

  #elif defined(__ia64__) || defined(__x86_64__) || defined(__alpha__) || \

        (defined(__aarch64__) && defined(__AARCH64EL__)) || \

+       defined(__loongarch64) || \

        (defined(__riscv) && __riscv_xlen == 64) || \

        (defined(__GNUC__) && defined(__BYTE_ORDER__) && \

            __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG__ == 8)

file modified
+1 -1
@@ -27,7 +27,7 @@

  #include "syscall-arm.h"

  #elif defined(__sparc__)

  #include "syscall-sparc.h"

- #elif defined(__aarch64__) || defined(__riscv)

+ #elif defined(__aarch64__) || defined(__loongarch__) || defined(__riscv)

  #include "syscall-generic.h"

  #else

  #warning "using system call numbers from sys/syscall.h"

Edit
harness/cases/16.t
libaio.spec
src/libaio.h
src/syscall.h
Add support for LoongArch

Did you test this? Please post the output from 'make partcheck' on this new architecture.

Hello,
The log of "make partcheck" has been sent to the mailbox of "linux-aio@kvack.org", please check it carefully, thank you!

Hello, "linux-aio@kvack.org" email failed to send, please provide your email address, I will send you the log of "make partcheck", thank you!

yehui ren pagure@pagure.io writes:

renyehui commented on the pull-request: Add support for LoongArch that you are following:
Hello, "linux-aio@kvack.org" email failed to send, please provide your email address, I will send you the log of "make partcheck", thank you!

To reply, visit the link below or just reply to this email
https://pagure.io/libaio/pull-request/14
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You can use the above link, or use the web interface to add a comment or
modify the pull request.

Thanks,
Jeff

Hello, the log of'make partcheck' is as follows:
make[1]: 进入目录“/home/uos/pagure/libaio/src”
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_init.ol io_queue_init.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_release.ol io_queue_release.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_wait.ol io_queue_wait.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_run.ol io_queue_run.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_getevents.ol io_getevents.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_submit.ol io_submit.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_cancel.ol io_cancel.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_setup.ol io_setup.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_destroy.ol io_destroy.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_pgetevents.ol io_pgetevents.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o raw_syscall.ol raw_syscall.c
cc -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o compat-0_1.ol compat-0_1.c
rm -f libaio.a
ar r libaio.a io_queue_init.ol io_queue_release.ol io_queue_wait.ol io_queue_run.ol io_getevents.ol io_submit.ol io_cancel.ol io_setup.ol io_destroy.ol io_pgetevents.ol raw_syscall.ol compat-0_1.ol
ranlib libaio.a
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_init.os io_queue_init.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_release.os io_queue_release.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_wait.os io_queue_wait.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_queue_run.os io_queue_run.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_getevents.os io_getevents.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_submit.os io_submit.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_cancel.os io_cancel.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_setup.os io_setup.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_destroy.os io_destroy.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o io_pgetevents.os io_pgetevents.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o raw_syscall.os raw_syscall.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -c -o compat-0_1.os compat-0_1.c
cc -shared -g -fomit-frame-pointer -O2 -Wall -I. -fPIC -Wl,--version-script=libaio.map -Wl,-soname=libaio.so.1 -o libaio.so.1.0.1 io_queue_init.os io_queue_release.os io_queue_wait.os io_queue_run.os io_getevents.os io_submit.os io_cancel.os io_setup.os io_destroy.os io_pgetevents.os raw_syscall.os compat-0_1.os
make[1]: 离开目录“/home/uos/pagure/libaio/src”
make[1]: 进入目录“/home/uos/pagure/libaio/harness”
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/2.t\" -o cases/2.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -Wno-stringop-overflow -DTEST_NAME=\"cases/3.t\" -o cases/3.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/4.t\" -o cases/4.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/5.t\" -o cases/5.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/6.t\" -o cases/6.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/7.t\" -o cases/7.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/11.t\" -o cases/11.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/12.t\" -o cases/12.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/13.t\" -o cases/13.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/14.t\" -o cases/14.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/15.t\" -o cases/15.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/16.t\" -o cases/16.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/17.t\" -o cases/17.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/18.t\" -o cases/18.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/19.t\" -o cases/19.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/20.t\" -o cases/20.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/21.t\" -o cases/21.p main.c ../src/libaio.a -lpthread
cc -Wall -Werror -I../src -g -O2 -DTEST_NAME=\"cases/22.t\" -o cases/22.p main.c ../src/libaio.a -lpthread
mkdir testdir
rm -f testdir/rofile
echo "test" >testdir/rofile
chmod 400 testdir/rofile
rm -f testdir/rwfile
echo "test" >testdir/rwfile
chmod 600 testdir/rwfile
rm -f testdir/wofile
echo "test" >testdir/wofile
chmod 200 testdir/wofile
./runtests.sh cases/2.p cases/3.p cases/4.p cases/5.p cases/6.p cases/7.p cases/11.p cases/12.p cases/13.p cases/14.p cases/15.p cases/16.p cases/17.p cases/18.p cases/19.p cases/20.p cases/21.p cases/22.p
Test run starting at 2021年 06月 11日 星期五 13:32:46 CST
Starting cases/2.p
expect -14: io_setup(-1000, 0xffffffff81000000) = -14 [Bad address]
expect -14: io_setup( 1000, 0xffffffff81000000) = -14 [Bad address]
expect -14: io_setup( 0, 0xffffffff81000000) = -14 [Bad address]
expect -22: io_setup(-1000, 0xfffba945a8) = -22 [Invalid argument]
expect -22: io_setup( -1, 0xfffba945a8) = -22 [Invalid argument]
expect -22: io_setup( 0, 0xfffba945a8) = -22 [Invalid argument]
expect 0: io_setup( 1, 0xfffba945a8) = 0 [Success]
expect -22: io_setup( 1, 0xfffba945a8) = -22 [Invalid argument]
test cases/2.t completed PASSED.
Completed cases/2.p with 0.
Starting cases/3.p
expect -22: io_submit(0xffffffffffffffff, 1, 0xfffbf4e8c0) = -22 [Invalid argument]
expect 0: io_submit(0xfff73a8000, 0, 0xfffbf4e8c0) = 0 [Success]
expect -14: io_submit(0xfff73a8000, 1, (nil)) = -14 [Bad address]
expect -14: io_submit(0xfff73a8000, 1, 0xffffffffffffffff) = -14 [Bad address]
expect -14: io_submit(0xfff73a8000, 2, 0xfffbf4e8d0) = -14 [Bad address]
expect -14: io_submit(0xfff73a8000, 2, 0xfffbf4e8e0) = -14 [Bad address]
expect -22: io_submit(0xfff73a8000, -1, 0xfffbf4e8c0) = -22 [Invalid argument]
test cases/3.t completed PASSED.
Completed cases/3.p with 0.
Starting cases/4.p
expect -9: (w), res = sync_submit: io_submit res=-9 [Bad file descriptor]
-9 [Bad file descriptor]
expect -9: (r), res = sync_submit: io_submit res=-9 [Bad file descriptor]
-9 [Bad file descriptor]
expect 512: (w), res = 512 [Success]
expect 512: (r), res = 512 [Success]
expect -22: (r), res = sync_submit: io_submit res=-22 [Invalid argument]
-22 [Invalid argument]
expect -22: (w), res = sync_submit: io_submit res=-22 [Invalid argument]
-22 [Invalid argument]
expect 0: (r), res = 0 [Success]
expect 4: (w), res = 4 [Success]
expect 4: (w), res = 4 [Success]
expect 8: (r), res = 8 [Success]
read after append: [12345678]
expect -14: (r), res = sync_submit: io_submit res=-14 [Bad address]
-14 [Bad address]
expect -14: (w), res = sync_submit: io_submit res=-14 [Bad address]
-14 [Bad address]
expect -14: (w), res = -14 [Bad address]
test cases/4.t completed PASSED.
Completed cases/4.p with 0.
Starting cases/5.p
expect 512: (w), res = 512 [Success]
expect 512: (r), res = 512 [Success]
expect 512: (r), res = 512 [Success]
expect 512: (w), res = 512 [Success]
expect 512: (w), res = 512 [Success]
expect -14: (r), res = -14 [Bad address]
expect 512: (r), res = 512 [Success]
expect -14: (w), res = -14 [Bad address]
test cases/5.t completed PASSED.
Completed cases/5.p with 0.
Starting cases/6.p
size = 8198112
expect 805306368: (w), res = 805306368 [Success]
expect 805306368: (r), res = 805306368 [Success]
test cases/6.t completed PASSED.
Completed cases/6.p with 0.
Starting cases/7.p
expect 512: (w), res = 512 [Success]
expect 512: (r), res = 512 [Success]
expect 511: (w), res = 511 [Success]
expect 511: (r), res = 511 [SuCompleted cases/7.p with 0.
Starting cases/11.p
completed 1000000 out of 1000000 writes
completed 1000000 out of 1000000 reads
test cases/11.t completed PASSED.
Completed cases/11.p with 0.
Starting cases/12.p
expect 0: io_submit(0xfff51a4000, 0, (nil)) = 0 [Success]
expect -22: io_submit(0xfff51a4000, 0, (nil)) = -22 [Invalid argument]
child exited with status 0
test cases/12.t completed PASSED.
Completed cases/12.p with 0.
Starting cases/13.p
expect 8: io_submit(0xfff641c000, 8, 0xfffbe41fc0) = 8 []
event[0]: write[0] okay, returned: 1048576 [okay]
event[1]: write[1] okay, returned: 1048576 [okay]
event[2]: write[2] okay, returned: 1048576 [okay]
event[3]: write[3] okay, returned: 1048576 [okay]
event[4]: write[4] okay, returned: 1048576 [okay]
event[5]: write[5] okay, returned: 1048576 [okay]
event[6]: write[6] okay, returned: 1048576 [okay]
event[7]: write[7] okay, returned: 1048576 [okay]
test cases/13.t completed PASSED.
Completed cases/13.p with 0.
Starting cases/14.p
expect 0: io_submit(0xfff6d00000, 0, (nil)) = 0 [Success]
child exited with status 0
test cases/14.t completed PASSED.
Completed cases/14.p with 0.
Starting cases/15.p
expect 5120: (>), res = 5120 [Success]
Checking memory: [Success]
expect 5120: (<), res = 5120 [Success]
expect 4608: (>), res = 4608 [Success]
Checking memory: [Success]
expect 4608: (<), res = 4608 [Success]
Checking memory: [Success]
test cases/15.t completed PASSED.
Completed cases/15.p with 0.
Starting cases/16.p
eventfd write test [SUCCESS]
eventfd read test [SUCCESS]
test cases/16.t completed PASSED.
Completed cases/16.p with 0.
Starting cases/17.p
aio ring size: 511
MAX_IOS: 510, IO_GETEVENTS
Submitting: 510
Submitted: 496
Submitting: 14
Submitted too much, that's okay
Completed: 496
Submitting: 14
Submitted: 14
Completed: 14
Verifying...
OK
MAX_IOS: 511, IO_GETEVENTS
Submitting: 511
Submitted: 496
Submitting: 15
Submitted too much, that's okay
Completed: 496
Submitting: 15
Submitted: 15
Completed: 15
Verifying...
OK
MAX_IOS: 512, IO_GETEVENTS
Submitting: 512
Submitted: 496
Submitting: 16
Submitted too much, that's okay
Completed: 496
Submitting: 16
Submitted: 16
Completed: 16
Verifying...
OK
MAX_IOS: 1022, IO_GETEVENTS
Submitting: 1022
Submitted: 496
Submitting: 526
Submitted too much, that's okay
Completed: 496
Submitting: 526
Submitted: 496
Submitting: 30
Submitted too much, that's okay
Completed: 496
Submitting: 30
Submitted: 30
Completed: 30
Verifying...
OK
MAX_IOS: 2044, IO_GETEVENTS
Submitting: 2044
Submitted: 496
Submitting: 1548
Submitted too much, that's okay
Completed: 496
Submitting: 1548
Submitted: 496
Submitting: 1052
Submitted too much, that's okay
Completed: 496
Submitting: 1052
Submitted: 496
Submitting: 556
Submitted too much, that's okay
Completed: 496
Submitting: 556
Submitted: 496
Submitting: 60
Submitted too much, that's okay
Completed: 496
Submitting: 60
Submitted: 60
Completed: 60
Verifying...
OK
MAX_IOS: 510, USER_GETEVENTS
Submitting: 510
Submitted: 496
Submitting: 14
Submitted too much, that's okay
Completed: 496
Submitting: 14
Submitted: 14
Completed: 14
Verifying...
OK
MAX_IOS: 511, USER_GETEVENTS
Submitting: 511
Submitted: 496
Submitting: 15
Submitted too much, that's okay
Completed: 496
Submitting: 15
Submitted: 15
Completed: 15
Verifying...
OK
MAX_IOS: 512, USER_GETEVENTS
Submitting: 512
Submitted: 496
Submitting: 16
Submitted too much, that's okay
Completed: 496
Submitting: 16
Submitted: 16
Completed: 16
Verifying...
OK
MAX_IOS: 1022, USER_GETEVENTS
Submitting: 1022
Submitted: 496
Submitting: 526
Submitted too much, that's okay
Completed: 496
Submitting: 526
Submitted: 496
Submitting: 30
Submitted too much, that's okay
Completed: 496
Submitting: 30
Submitted: 30
Completed: 30
Verifying...
OK
MAX_IOS: 2044, USER_GETEVENTS
Submitting: 2044
Submitted: 496
Submitting: 1548
Submitted too much, that's okay
Completed: 496
Submitting: 1548
Submitted: 496
Submitting: 1052
Submitted too much, that's okay
Completed: 496
Submitting: 1052
Submitted: 496
Submitting: 556
Submitted too much, that's okay
Completed: 496
Submitting: 556
Submitted: 496
Submitting: 60
Submitted too much, that's okay
Completed: 496
Submitting: 60
Submitted: 60
Completed: 60
Verifying...
OK
test cases/17.t completed PASSED.
Completed cases/17.p with 0.
Starting cases/18.p
test cases/18.t completed PASSED.
Completed cases/18.p with 0.
Starting cases/19.p
test cases/19.t completed PASSED.
Completed cases/19.p with 0.
Starting cases/20.p
aio_max_nr: 65536
Creating 65536 ioctx-s with 1 events each...
Successfully created 65511 io_context-s
Last io_setup call returned -12 (Cannot allocate memory)
Creating 32768 ioctx-s with 2 events each...
Successfully created 32768 io_context-s
Creating 16384 ioctx-s with 4 events each...
Successfully created 16384 io_context-s
Creating 8192 ioctx-s with 8 events each...
Successfully created 8192 io_context-s
Creating 4096 ioctx-s with 16 events each...
Successfully created 4096 io_context-s
Creating 2048 ioctx-s with 32 events each...
Successfully created 2048 io_context-s
Creating 1024 ioctx-s with 64 events each...
Successfully created 1024 io_context-s
Creating 512 ioctx-s with 128 events each...
Successfully created 512 io_context-s
Creating 256 ioctx-s with 256 events each...
Successfully created 256 io_context-s
Creating 128 ioctx-s with 512 events each...
Successfully created 128 io_context-s
Creating 64 ioctx-s with 1024 events each...
Successfully created 64 io_context-s
Creating 32 ioctx-s with 2048 events each...
Successfully created 32 io_context-s
Creating 16 ioctx-s with 4096 events each...
Successfully created 16 io_context-s
Creating 8 ioctx-s with 8192 events each...
Successfully created 8 io_context-s
Creating 4 ioctx-s with 16384 events each...
Successfully created 4 io_context-s
Creating 2 ioctx-s with 32768 events each...
Successfully created 2 io_context-s
Creating 1 ioctx-s with 65536 events each...
Successfully created 1 io_context-s
test cases/20.t completed PASSED.
Completed cases/20.p with 0.
Starting cases/21.p
test cases/21.t completed PASSED.
Completed cases/21.p with 0.
Starting cases/22.p
test cases/22.t completed PASSED.
Completed cases/22.p with 0.
Pass: 18 Fail: 0 Skip: 0
Test run complete at 2021年 06月 11日 星期五 13:33:43 CST
make[1]: 离开目录“/home/uos/pagure/libaio/harness”

Hello, please help review, thank you!

Sorry to interrupt, please check whether the log meets the requirements and whether the source code modification can be merged, thank you!

Hello, please take the time to help with the review, thank you very much!

Sorry for the delay. The test results look good, but could you confirm
that the test harness was run on a LoongArch system? Unfortunately,
it's not clear from the test harness output what architecture was being
tested.

Thanks!
Jeff

Hello, the following is my operation, can you prove that it was done on the "loongarch" system:

uos@LA-35-P5:~/pagure/libaio.new$ ls
ChangeLog COPYING harness INSTALL libaio libaio.spec Makefile man README.md src TODO usr
uos@LA-35-P5:~/pagure/libaio.new$ cd usr/
uos@LA-35-P5:~/pagure/libaio.new/usr$ ls
include lib
uos@LA-35-P5:~/pagure/libaio.new/usr$ cd lib/
uos@LA-35-P5:~/pagure/libaio.new/usr/lib$ ls
libaio.a libaio.so libaio.so.1 libaio.so.1.0.1
uos@LA-35-P5:~/pagure/libaio.new/usr/lib$ readelf -h libaio.so
ELF 头:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
类别: ELF64
数据: 2 补码,小端序 (little endian)
版本: 1 (current)
OS/ABI: UNIX - System V
ABI 版本: 0
类型: DYN (共享目标文件)
系统架构: Loongarch
版本: 0x1
入口点地址: 0x8f0
程序头起点: 64 (bytes into file)
Start of section headers: 45704 (bytes into file)
标志: 0x3, LP64
本头的大小: 64 (字节)
程序头大小: 56 (字节)
Number of program headers: 6
节头大小: 64 (字节)
节头数量: 33
字符串表索引节头: 32

Thank you !

Hello, can you please check if the information I provided can be proved, thank you!

The changes look good. The commit messages should have more descriptive subjects. For example, this is what git log --oneline looks like for your commits:

27be155 Update src/syscall.h
57ac7d8 Update src/libaio.h
2671848 Update libaio.spec
c2cee4d Update harness/cases/16.t

Please change them to something like this:

Use generic syscall number schema for loongarch
Add endian detection and bit width detection for loongarch
Add loongarch to supported architectures in libaio.spec
cases/16.t: loongarch only supports eventfd2

And please add your Developer Certificate of Origin (Signed-off-by) to each commit.

Once that's done, I'll go ahead and merge the changes. Thanks a lot for working on this!

Hello, I previously modified the source code online, and then submitted a merge request. I tried to modify the description information online, but it was unsuccessful. I would like to ask you how to modify the description information? Thank you!

yehui ren pagure@pagure.io writes:

renyehui commented on the pull-request: Add support for LoongArch that you are following:
Hello, I previously modified the source code online, and then submitted a merge request. I tried to modify the description information online, but it was unsuccessful. I would like to ask you how to modify the description information? Thank you!

https://docs.pagure.org/pagure/usage/pull_requests.html#updating-your-pull-request

Let me know if that helps. In your case, you will have to force push
your updates, since you are replacing the commits in your pull request
with new ones.

If you can't figure out how to update your existing pull request, you
can close it and create a new one.

I hope this doesn't cuase you too much trouble. Thanks again for
working on this support.

Cheers,
Jeff

Pull-Request has been closed by renyehui

2 years ago

Hello, please check my new submission: https://pagure.io/libaio/pull-request/15, please review again, thank you!