Can't compile OLS under uClibc

8 views
Skip to first unread message

Mr Dini

unread,
Dec 30, 2017, 6:05:25 PM12/30/17
to OpenLiteSpeed Development
Hi,

I wanted to compile the latest OLS release, but because the aio.h header doesn't exist under uClibc, and these functions aren't implemented, the compilation fails:

```
make[3]: Entering directory '/i-data/bf835951/build/openlitespeed-1.4.28/src/http'
g++ -DHAVE_CONFIG_H -I. -I../../src -I../../openssl/include/ -I../../include -I../../src -I../../ssl/include -I../../src -I../../include -I/ffp/include -I/usr/local -I/ffp -I/ffp/pkg -I/usr/include -I/i-data/bf835951/build/openlitespeed-1.4.28/udns-0.4/ -g -O2 -D_GLIBCXX_USE_CXX11_ABI=0 -fstack-protector -MT rewriteengine.o -MD -MP -MF .deps/rewriteengine.Tpo -c -o rewriteengine.o rewriteengine.cpp
In file included from ../../src/http/httpsession.h:23:0,
from rewriteengine.cpp:24:
../../src/edio/aiooutputstream.h:24:17: fatal error: aio.h: No such file or directory
#include <aio.h>
^
compilation terminated.
Makefile:514: recipe for target 'rewriteengine.o' failed
make[3]: *** [rewriteengine.o] Error 1
```

Can you please fix it?

Thanks!

Mr Dini

unread,
Jan 3, 2018, 3:58:38 PM1/3/18
to OpenLiteSpeed Development
I just patched uClibc to support aio stubs. I looked on the glibc source, and it also use stubs, not real implementations. I Can only see one in musl.

If I use just stubs, the webserver will work?

George Wang

unread,
Jan 3, 2018, 4:38:48 PM1/3/18
to OpenLiteSpeed Development
It uses aio_write(), if aio_write() in libc is implemented with a direct syscall, then it should work with uClibc when do the similar thing as glibc. 
The wrost case is that you do not configure OLS to use AIO for logging. 
Reply all
Reply to author
Forward
0 new messages