apptainer / apptainer

Apptainer: Application containers for Linux
https://apptainer.org
Other
1.1k stars 138 forks source link

compilation of apptainer on Nvidia ARM Grace CPU failed #2435

Closed BeHom closed 1 month ago

BeHom commented 2 months ago

Version of Apptainer

What version of Apptainer (or Singularity) are you using? Run tried v1.3.2 and v1.3.3 with go version go1.21.0 linux/arm64 and go version go1.23.0 linux/arm64

Expected behavior

should finish make without errors

What did you expect to see when you do...? make no errors and compiled apptainer

Actual behavior

 GEN GO DEP /root/apptainer/builddir/starter.deps
 GEN GO DEP /root/apptainer/builddir/apptainer.deps
 GEN /root/apptainer/scripts/go-generate
# runtime/internal/sys
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:9:7: len8tab redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:76:7: other declaration of len8tab
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:32:6: Len64 redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:99:6: other declaration of Len64
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:50:7: m0 redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:117:7: other declaration of m0
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:51:7: m1 redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:118:7: other declaration of m1
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:52:7: m2 redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:119:7: other declaration of m2
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:55:6: OnesCount64 redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:122:6: other declaration of OnesCount64
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:86:6: LeadingZeros64 redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:153:6: other declaration of LeadingZeros64
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:89:6: LeadingZeros8 redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:156:6: other declaration of LeadingZeros8
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:92:6: Len8 redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:159:6: other declaration of Len8
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:101:6: Prefetch redeclared in this block
        /usr/local/go/src/runtime/internal/sys/intrinsics.go:200:6: other declaration of Prefetch
/usr/local/go/src/runtime/internal/sys/intrinsics_common.go:101:6: too many errors
# internal/chacha8rand
/usr/local/go/src/internal/chacha8rand/chacha8_arm64.s:19: ABI selector only permitted when compiling runtime, reference was to "\"\".block"
asm: assembly of /usr/local/go/src/internal/chacha8rand/chacha8_arm64.s failed
make: *** [Makefile:520: /root/apptainer/scripts/go-generate] Error 1

Steps to reproduce this behavior

Use Nvidia Grace-Hopper system. Install ubuntu 22.04. with arm64 flavor. Download and install go for arm64 Download apptainer from git (differnent versions used, see abvove) call ``./mconfig -p /usr/local Configuring for projectapptainer' with languages: C, Golang => running pre-basechecks project specific checks ... => running base system checks ... checking: host C compiler... cc checking: host C++ compiler... c++ checking: host Go compiler (at least version 1.20)... /usr/local/go/bin/go checking: host C compiler option -Wall... yes checking: host C compiler option -Werror... yes checking: host C compiler option -Wfatal-errors... yes checking: host C compiler option -Wno-unknown-warning-option... yes checking: host C compiler option -Wstrict-prototypes... yes checking: host C compiler option -Wpointer-arith... yes checking: host C compiler option -Wbad-function-cast... yes checking: host C compiler option -Woverlength-strings... yes checking: host C compiler option -Wframe-larger-than=2047... yes checking: host C compiler option -Wno-sign-compare... yes checking: host C compiler option -Wclobbered... yes checking: host C compiler option -Wempty-body... yes checking: host C compiler option -Wmissing-parameter-type... yes checking: host C compiler option -Wtype-limits... yes checking: host C compiler option -Wunused-parameter... yes checking: host C compiler option -Wunused-but-set-parameter... yes checking: host C compiler option -Wno-discarded-qualifiers... yes checking: host C compiler option -Wno-incompatible-pointer-types... yes checking: host C compiler option -pipe... yes checking: host C compiler option -fmessage-length=0... yes checking: host C compiler option -fPIC... yes checking: host ar' path... ar checking: hostld' path... ld checking: host ranlib' path... ranlib checking: hostobjcopy' path... objcopy checking: target C compiler... cc checking: target C++ compiler... c++ checking: target ar' path... ar checking: targetld' path... ld checking: target ranlib' path... ranlib checking: targetobjcopy' path... objcopy checking: host compiles static binaries... yes checking: target compiles static binaries... yes checking: host os type... unix checking: host architecture... aarch64 checking: target architecture... aarch64 checking: host architecture word size... 64 checking: target architecture word size... 64 checking: project version... 1.3.2 checking: project short version... 1.3.2 checking: unprivileged user namespaces... enabled. Implying --without-suid => running post-basechecks project specific checks ... checking: namespace: CLONE_NEWPID... yes checking: namespace: CLONE_FS... yes checking: namespace: CLONE_NEWNS... yes checking: namespace: CLONE_NEWUSER... yes checking: namespace: CLONE_NEWIPC... yes checking: namespace: CLONE_NEWNET... yes checking: namespace: CLONE_NEWUTS... yes checking: namespace: CLONE_NEWCGROUP... yes checking: feature: NO_NEW_PRIVS... yes checking: feature: MS_SLAVE... yes checking: feature: MS_REC... yes checking: feature: MS_PRIVATE... yes checking: user capabilities... yes checking: header linux/securebits.h... yes checking: header linux/capability.h... yes checking: libseccomp+headers... yes => generating fragments ... => building Makefile ... => generating apptainer.spec ... => project apptainer setup with :

How can others reproduce this issue/problem?

What OS/distro are you running

arm64 flavor of Ununtu 22.04.

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

How did you install Apptainer

Write here how you installed Apptainer (or Singularity). Eg. RPM, source. from source see above.

DrDaveD commented 2 months ago

That looks like a problem with the go installation, not apptainer. I suggest using a newer version. Also be sure you follow all the steps in INSTALL.md for building on Ubuntu.

BeHom commented 1 month ago

Tried already latest version go1.23.0 linux/arm64. And yes followed the install instructions. Did a test with go and it fails. Will try to get the go guys involed. You can close the topic here.

BeHom commented 1 month ago

Just to let you know. Fixed it. removed the entire Go installation and reinstalled it with latest version.