When emerging docker on arm64 arch it fails with: > cgo: C compiler "x86_64-pc-linux-gnu-gcc" not found: exec: "x86_64-pc-linux-gnu-gcc": executable file not found in $PATH Issue is reproduced in both native env (RPi board) as well as in chroot-ed qemu env. If I cross-compile it on amd64 and then install on arm64 from binpkg then I got: > -bash: /usr/bin/docker: cannot execute binary file: Exec format error Reproducible: Always Steps to Reproduce: 1. emerge app-containers/docker Actual Results: ---> Making bundle: dynbinary (in bundles/dynbinary) Building: bundles/dynbinary-daemon/dockerd-20.10.12 GOOS="" GOARCH="" GOARM="" # runtime/cgo cgo: C compiler "x86_64-pc-linux-gnu-gcc" not found: exec: "x86_64-pc-linux-gnu-gcc": executable file not found in $PATH Expected Results: emerge should be OK emerge --info Portage 3.0.30 (python 3.9.9-final-0, default/linux/arm64/17.0, gcc-11.2.1, glibc-2.34-r4, 5.10.63-v8+ aarch64) ================================================================= System uname: Linux-5.10.63-v8+-aarch64-with-glibc2.34 KiB Mem: 3440512 total, 2498700 free KiB Swap: 1048572 total, 1048572 free Timestamp of repository gentoo: Sat, 08 Jan 2022 10:51:51 +0000 Head commit of repository gentoo: a04c5ec400cba428929a913af02ecd5927ed0328 Head commit of repository genpi-tools: fad1235510901211a5008f853c571272a838ec89 Head commit of repository genpi64: 2e6be3d047e50ffbb44dfd4f38e103fe85860d81 sh bash 5.1_p16 ld GNU ld (Gentoo 2.37_p1 p1) 2.37 distcc 3.4 aarch64-unknown-linux-gnu [disabled] app-misc/pax-utils: 1.3.3::gentoo app-shells/bash: 5.1_p16::gentoo dev-lang/perl: 5.34.0-r6::gentoo dev-lang/python: 3.9.9::gentoo, 3.10.1-r1::gentoo dev-util/cmake: 3.22.1::gentoo dev-util/meson: 0.60.3::gentoo sys-apps/baselayout: 2.8::gentoo sys-apps/openrc: 0.44.10::gentoo sys-apps/sandbox: 2.29::gentoo sys-devel/autoconf: 2.71-r1::gentoo sys-devel/automake: 1.16.5::gentoo sys-devel/binutils: 2.37_p1-r1::gentoo sys-devel/binutils-config: 5.4::gentoo sys-devel/gcc: 11.2.1_p20211127::gentoo sys-devel/gcc-config: 2.5-r1::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.15-r3::gentoo (virtual/os-headers) sys-libs/glibc: 2.34-r4::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: git sync-uri: https://github.com/gentoo-mirror/gentoo priority: -1000 genpi-tools location: /var/db/repos/genpi-tools sync-type: git sync-uri: https://github.com/GenPi64/genpi-tools.git masters: gentoo priority: 50 genpi64 location: /var/db/repos/genpi64 sync-type: git sync-uri: https://github.com/GenPi64/genpi64-overlay.git masters: gentoo priority: 100 Installed sets: @pi4, @standard ACCEPT_KEYWORDS="arm64 ~arm64" ACCEPT_LICENSE="@FREE curl" CBUILD="aarch64-unknown-linux-gnu" CFLAGS="-O2" CHOST="aarch64-unknown-linux-gnu" CONFIG_PROTECT="/boot/cmdline.txt /boot/config.txt /boot/startup.sh /etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2" DISTDIR="/var/cache/distfiles" EMERGE_DEFAULT_OPTS="--jobs=5 --load-average=4" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_C ONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-O2" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles getbinpk g ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms str ict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2" GENTOO_MIRRORS="http://gentoo.osuosl.org/ http://trumpetti.atm.tut.fi/gentoo/ http://distfiles.gentoo.org" LANG="en_GB.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j5 -l4" PKGDIR="/var/cache/binpkgs" PORTAGE_BINHOST="http://desna/aarch64-packages https://packages.genpi64.com/ https://fi.packages.genpi64.com/" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout= 180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" SHELL="/bin/bash" USE="acl arm64 bzip2 cli crypt dri fortran gdbm iconv ipv6 libglvnd libtirpc ncurses nls nptl openmp pam pcre readline seccomp split-usr ssl unicode xattr zlib" A DA_TARGET="gnat_2020" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_fil e authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_fi lter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vho st_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_ARM="edsp thumb thumb2 v4 v5 v6 v7 v8 vfp vfp-d32 vfpv3 vfpv4" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip na vcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES= "bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYT HON_TARGETS="python3_9" RUBY_TARGETS="ruby26 ruby27" USERLAND="GNU" VIDEO_CARDS="fbdev vc4 v3d" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTAL L_MASK, LC_ALL, LD, LEX, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTA GE_RSYNC_EXTRA_OPTS, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Created attachment 761774 [details] build.log
No idea off the top of my head. Built fine here on arm64. Will need gyakovlev. Can you share "env"?
# env SHELL=/bin/bash LESS=-R -M --shift 5 CONFIG_PROTECT_MASK=/etc/sandbox.d /etc/fonts/fonts.conf /etc/gentoo-release /etc/terminfo /etc/ca-certificates.conf /etc/revdep-rebuild DISTCC_VERBOSE=0 EDITOR=vim PWD=/root CONFIG_PROTECT=/usr/share/gnupg/qualified.txt /boot/config.txt /boot/cmdline.txt /boot/startup.sh LOGNAME=root DISTCC_TCP_CORK= MANPATH=/usr/share/gcc-data/aarch64-unknown-linux-gnu/11.2.1/man:/usr/share/binutils-data/aarch64-unknown-linux-gnu/2.37_p1/man:/usr/local/share/man:/usr/share/ma n UNCACHED_ERR_FD= HOME=/root LANG=en_GB.utf8 LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34; 42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01 ;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01 ;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:* .7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm =01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01; 35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35: *.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01 ;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.cfg=00;32:*.conf=00;32:*.diff=00;32:*.doc=00;32:*.ini=00;32:*.log=00;32:*.patch=00;32:*.pdf=00;32:*.ps=00;32:*.tex=00;32 :*.txt=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga =00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: OPENGL_PROFILE=xorg-x11 DISTCC_FALLBACK=1 DCC_EMAILLOG_WHOM_TO_BLAME= QT_GRAPHICSSYSTEM=raster INFOPATH=/usr/share/gcc-data/aarch64-unknown-linux-gnu/11.2.1/info:/usr/share/binutils-data/aarch64-unknown-linux-gnu/2.37_p1/info:/usr/share/info TERM=xterm-256color LESSOPEN=|lesspipe %s USER=root MANPAGER=manpager SHLVL=1 DISTCC_SAVE_TEMPS=0 PAGER=/usr/bin/less DISTCC_SSH= XSESSION=Xfce4 GCC_SPECS= DISTCC_ENABLE_DISCREPANCY_EMAIL= LC_COLLATE=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin _=/usr/bin/env
looks like your go is mis-behaving and somehow enters cross mode. but ofc it fails in CGO because no compiler available. what version of dev-lang/go? is it from ::gentoo repo? please send output of the following commands: go env go version
# equery l dev-lang/go * Searching for go in dev-lang ... [IP-] [ ] dev-lang/go-1.17.5:0/1.17.5 # go version go version go1.17.5 linux/arm64 # go env GO111MODULE="" GOARCH="arm64" GOBIN="" GOCACHE="/root/.cache/go-build" GOENV="/root/.config/go/env" GOEXE="" GOEXPERIMENT="" GOFLAGS="" GOHOSTARCH="arm64" GOHOSTOS="linux" GOINSECURE="" GOMODCACHE="/root/go/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/root/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/lib/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/lib/go/pkg/tool/linux_arm64" GOVCS="" GOVERSION="go1.17.5" GCCGO="gccgo" AR="ar" CC="x86_64-pc-linux-gnu-gcc" CXX="aarch64-unknown-linux-gnu-g++" CGO_ENABLED="1" GOMOD="/dev/null" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1470680700=/tmp/go-build -gno-record-gcc-s witches" Indeed this looks strange >CC="x86_64-pc-linux-gnu-gcc" >CXX="aarch64-unknown-linux-gnu-g++" Let me try to rebuild go
yeah as you see CC="x86_64-pc-linux-gnu-gcc" somehow made it into go. rebuild it without cross or distcc involved. but docker is certainly fine on arm64 if go compiler does not do that =) good luck.
you should be able to override it with go env -w "CC=aarch64-unknown-linux-gnu-gcc" but only for user that runs it. it writes own config to $HOME/.config/go/env but since this is happening for you in portage too it indicates that wrong default value got in and was hardcoded. it does react on changing CC from environment. CC=fake go env CC fake does not look like it gets overridden wrongly by portage environment though, as otherwise it would not show up for you running go as root. so everything points to binary so far.
Indeed. I had broken go. It was installed from binary which was cross-compiled in x86_64. Re-emerged go natively on arm64 and now docker build works fine. Thanks a lot for helping! Bug can be closed.
great to hear, you are welcome.