YottaDB / YDB

Mirrored from https://gitlab.com/YottaDB/DB/YDB
Other
76 stars 37 forks source link

Get YottaDB builds working on Arch linux where system iocb structure layout changed recently after a system patch #125

Closed nars1 closed 6 years ago

nars1 commented 6 years ago

The system header file involved is /usr/include/linux/aio_abi.h and the structure involved is struct iocb. This header file is found in the linux-libc-dev package on Ubuntu/Debian linux-api-headers package on Arch kernel-headers package on RHEL/CentOS The version of linux-api-headers package afer the system patch was 4.14.8-1. This had a different layout than the one which was copied over to the YottaDB codebase. And that caused compile time errors. To avoid this issue (and future issues with structure layout changes), the change done was to keep the system "struct iocb" structure as a member of the aiocb structure defined in the YottaDB codebase. Because of this change, some usages of members in the system iocb structure had to be changed to have an extra structure member dereference. But this meant no structure layout assumptions like before. With these changes, the build on Arch linux passed fine (and the other platforms continued to build fine).