I successfully compiled LuaTeX trunk in the Alpine Docker container. Steps to reproduce: Start the Docker container using `sudo docker run -it alpine:edge` Inside the container: apk update apk add subversion bash gcc g++ make texinfo svn co --username anonsvn --password anonsvn https://serveur-svn.lri.fr/svn/modhel/luatex/trunk cd trunk ./build.sh --parallel --jit 2>&1 | tee out-linux-musl After that I have: /trunk # ldd build/texk/web2c/luatex /lib/ld-musl-x86_64.so.1 (0x7f60dedc9000) libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7f60dedc9000) /trunk # ldd build/texk/web2c/luajittex /lib/ld-musl-x86_64.so.1 (0x7f9814229000) libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7f9814229000) I could not yet test it because I'd have to create texmf.cnf and formats. On Sat, 2018-01-20 at 16:13 +1300, Henri Menke wrote:
Dear Luigi,
Thank you very much for taking the time to look into this. I was planning to attempt a native Alpine Linux build next week but the GCC wrapper is a great start. The error message is only a linking error, ffi compiles fine. It seems that luatex is not explicitly linked against libdl.so (which is automatically the case when using glibc aka libc6). In principle this should be easily fixed by adding "-ldl" to the linker flags.
Cheers, Henri
On 01/20/2018 01:33 AM, luigi scarso wrote:
On Fri, Jan 19, 2018 at 12:38 PM, Henri Menke
wrote: On 01/20/2018 12:22 AM, Mojca Miklavec wrote:
On 19 January 2018 at 11:40, Henri Menke wrote:
Dear list,
I'd like to support Linux platforms which use musl (https://www.musl-libc.org/) instead of glibc, like for instance Alpine Linux.
(Ubuntu 16.04) Following https://www.musl-libc.org/doc/1.0.0/manual.html
export PATH=/opt/musl/1.1.18/bin:$PATH export CC='musl-gcc' ./build.sh --parallel --jit 2>&1 | tee out-linux-musl
/opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/ffi.c:2747: undefined reference to `dlopen' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/ffi.c:2752: undefined reference to `dlopen' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/ffi.c:2760: undefined reference to `dlopen' liblua53ffi.a(liblua53ffi_a-ffi.o): In function `find_symbol': /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/ffi.c:2789: undefined reference to `dlsym' liblua53ffi.a(liblua53ffi_a-ffi.o): In function `setup_upvals': /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/ffi.c:3254: undefined reference to `dlopen' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/ffi.c:3255: undefined reference to `dlopen' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/ffi.c:3257: undefined reference to `dlopen' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/ffi.c:3259: undefined reference to `dlopen' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/ffi.c:3260: undefined reference to `dlopen' liblua53ffi.a(liblua53ffi_a-call.o): In function `reserve_code': /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/call.c:175: undefined reference to `dlsym' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/call.c:176: undefined reference to `dlsym' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/call.c:177: undefined reference to `dlsym' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/call.c:178: undefined reference to `dlsym' /opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luatexdir/lu affi/call.c:179: undefined reference to `dlsym' liblua53ffi.a(liblua53ffi_a- call.o):/opt/svn/temp/experimental/experimental/build/texk/web2c/../../../source/texk/web2c/luat exdir/luaffi/call.c:180: more undefined references to `dlsym' follow /opt/svn/temp/experimental/experimental/build/libs/lua53/.libs/libtexlua53.a(loadlib.o): In function `lsys_sym': /opt/svn/temp/experimental/experimental/build/libs/lua53/../../../source/libs/lua53/lua53- src/src/loadlib.c:135: undefined reference to `dlerror' /opt/svn/temp/experimental/experimental/build/libs/lua53/.libs/libtexlua53.a(loadlib.o): In function `lsys_load': /opt/svn/temp/experimental/experimental/build/libs/lua53/../../../source/libs/lua53/lua53- src/src/loadlib.c:127: undefined reference to `dlopen' /opt/svn/temp/experimental/experimental/build/libs/lua53/../../../source/libs/lua53/lua53- src/src/loadlib.c:128: undefined reference to `dlerror' /opt/svn/temp/experimental/experimental/build/libs/lua53/.libs/libtexlua53.a(loadlib.o): In function `lsys_unloadlib': /opt/svn/temp/experimental/experimental/build/libs/lua53/../../../source/libs/lua53/lua53- src/src/loadlib.c:122: undefined reference to `dlclose' collect2: error: ld returned 1 exit status Makefile:5489: recipe for target 'luatex53' failed make: *** [luatex53] Error 1 strip: 'build/texk/web2c/luajittex': No such file strip: 'build/texk/web2c/luatex53': No such file ls: cannot access 'build/texk/web2c/luajittex': No such file or directory mv: cannot stat 'build/texk/web2c/luatex53': No such file or directory ls: cannot access 'build/texk/web2c/luatex': No such file or directory
..ffi... next thing to fix :-)
(btw, the C++ compiler is native g++)