ADIOS2 icon indicating copy to clipboard operation
ADIOS2 copied to clipboard

dill fails to compile on aarch64: requires update from upstream

Open dslarm opened this issue 2 years ago • 1 comments

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.

dslarm avatar Jan 16 '24 10:01 dslarm

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.

eisenhauer avatar Jan 16 '24 14:01 eisenhauer