ADIOS2
ADIOS2 copied to clipboard
dill fails to compile on aarch64: requires update from upstream
Arm Compiler for Linux (ACfL 23.10) and recent LLVM compilers now error on implicit function declaration whilst building for aarch64.
With 2.9.2 and 2.10.0-rc1:
HAS_FCNTL -DHAS_GETADDRINFO -DHAS_GETHOSTBYADDR_R -DHAS_GETHOSTBYNAME_R -DHAS_GETNAMEINFO -DHAS_INET_NTOP -DHAS_INET_PTON -DHAS_MSGHDR_FLAGS -DHAS_POLL -DHAS_SOCKLEN_T -DMPICH_SKIP_
MPICXX -DOMPI_SKIP_MPICXX -Denet_EXPORTS -I/tmp/ec2-user/spack-stage/spack-stage-adios2-2.9.2-iph22u4sk64qkbjcepsmqvr3myouweuj/spack-src/thirdparty/enet/enet/include -I/tmp/ec2-user
/spack-stage/spack-stage-adios2-2.9.2-iph22u4sk64qkbjcepsmqvr3myouweuj/spack-build-iph22u4/thirdparty/enet/enet -Wimplicit-function-declaration -w -O3 -DNDEBUG -std=gnu99 -fPIC -MD
-MT thirdparty/enet/enet/CMakeFiles/enet.dir/unix.c.o -MF CMakeFiles/enet.dir/unix.c.o.d -o CMakeFiles/enet.dir/unix.c.o -c /tmp/ec2-user/spack-stage/spack-stage-adios2-2.9.2-iph22u
4sk64qkbjcepsmqvr3myouweuj/spack-src/thirdparty/enet/enet/unix.c
>> 495 /tmp/ec2-user/spack-stage/spack-stage-adios2-2.9.2-iph22u4sk64qkbjcepsmqvr3myouweuj/spack-src/thirdparty/dill/dill/arm8.c:1523:5: error: call to undeclared function 'arm8_rt_call_li
nk'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
496 1523 | arm8_rt_call_link(s->p->code_base, &s->p->call_table);
497 | ^
498 /tmp/ec2-user/spack-stage/spack-stage-adios2-2.9.2-iph22u4sk64qkbjcepsmqvr3myouweuj/spack-src/thirdparty/dill/dill/arm8.c:1523:5: note: did you mean 'arm8_call_link'?
499 /tmp/ec2-user/spack-stage/spack-stage-adios2-2.9.2-iph22u4sk64qkbjcepsmqvr3myouweuj/spack-src/thirdparty/dill/dill/arm8.c:1521:1: note: 'arm8_call_link' declared here
500 1523 | arm8_call_link(dill_stream s)
501 | ^
502 1524 | {
503 1525 | arm8_rt_call_link(s->p->code_base, &s->p->call_table);
504 | ~~~~~~~~~~~~~~~~~
505 | arm8_call_link
506 1 error generated.
>> 507 make[2]: *** [thirdparty/dill/dill/CMakeFiles/dill.dir/build.make:220: thirdparty/dill/dill/CMakeFiles/dill.dir/arm8.c.o] Error 1
508 make[2]: *** Waiting for unfinished jobs....
Upstream dill has fixed this: https://github.com/GTkorvo/dill/commit/7ad7eab8d96c088ba9b312c583a7510270345d88
I have tested that patch, and it allows ADIOS2 to compile.
Thanks, PRs #4005 and #4006 pull this change into ADIOS master and 2.10-rc. It looks like this fix was manually patched into 2.9 (which was incompatible with the dill release that had this), but then we never updated dill in the master branch.