Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] cmake fails to build on pi4
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM
View previous topic :: View next topic  
Author Message
blubberbaer
Tux's lil' helper
Tux's lil' helper


Joined: 15 Mar 2016
Posts: 81

PostPosted: Thu Nov 26, 2020 5:21 pm    Post subject: [SOLVED] cmake fails to build on pi4 Reply with quote

Dear all,

this is the output of emerge -u cmake

Code:

[ 99%] Linking CXX static library libCTestLib.a
cd /var/tmp/portage/dev-util/cmake-3.16.5/work/cmake-3.16.5_build/Source &&
/var/tmp/portage/dev-util/cmake-3.16.5/work/cmake-3.16.5/Bootstrap.cmk/cmake
-P CMakeFiles/CTestLib.dir/cmake_clean_target.cmake
cd /var/tmp/portage/dev-util/cmake-3.16.5/work/cmake-3.16.5_build/Source &&
/var/tmp/portage/dev-util/cmake-3.16.5/work/cmake-3.16.5/Bootstrap.cmk/cmake
-E cmake_link_script CMakeFiles/CTestLib.dir/link.txt --verbose=1
/usr/bin/aarch64-unknown-linux-gnu-ar qc libCTestLib.a
CMakeFiles/CTestLib.dir/cmCTest.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmProcess.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestBinPacker.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestBuildAndTestHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestBuildCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestBuildHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestConfigureCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestConfigureHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestCoverageCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestCoverageHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestCurl.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmParseMumpsCoverage.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmParseCacheCoverage.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmParseGTMCoverage.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmParseJacocoCoverage.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmParseBlanketJSCoverage.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmParsePHPCoverage.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmParseCoberturaCoverage.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmParseDelphiCoverage.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestEmptyBinaryDirectoryCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestGenericHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestHandlerCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestResourceAllocator.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestResourceSpec.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestLaunch.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestMemCheckCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestMemCheckHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestMultiProcessHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestReadCustomFilesCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestResourceGroupsLexerHelper.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestRunScriptCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestRunTest.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestScriptHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestSleepCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestStartCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestSubmitCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestSubmitHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestTestCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestTestHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestUpdateCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestUpdateHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestUploadCommand.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestUploadHandler.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestVC.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestGlobalVC.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestCVS.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestSVN.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestBZR.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestGIT.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestHG.cxx.o
CMakeFiles/CTestLib.dir/CTest/cmCTestP4.cxx.o
CMakeFiles/CTestLib.dir/LexerParser/cmCTestResourceGroupsLexer.cxx.o
/usr/bin/aarch64-unknown-linux-gnu-ranlib libCTestLib.a
make[2]: Leaving directory
'/var/tmp/portage/dev-util/cmake-3.16.5/work/cmake-3.16.5_build'
[ 99%] Built target CTestLib
make[1]: Leaving directory
'/var/tmp/portage/dev-util/cmake-3.16.5/work/cmake-3.16.5_build'
make: *** [Makefile:163: all] Error 2
* ERROR: dev-util/cmake-3.16.5::gentoo failed (compile phase):
*   emake failed


emerge --info

Code:

Portage 3.0.9 (python 3.7.9-final-0, default/linux/arm64/17.0, gcc-9.3.0, glibc-2.32-r2, 5.4.77-v8+ aarch64)
=================================================================
System uname: Linux-5.4.77-v8+-aarch64-with-gentoo-2.7
KiB Mem:     3888840 total,   2236132 free
KiB Swap:    4094972 total,   4094972 free
Timestamp of repository gentoo: Thu, 26 Nov 2020 15:30:01 +0000
Head commit of repository gentoo: 00acc6047ea36a8db362ee34ab540c72195dd6e9
Head commit of repository genpi64: d77bf950710736c54130ecc566238f05a3ba20cf

sh bash 5.0_p18
ld GNU ld (Gentoo 2.34 p6) 2.34.0
distcc 3.3.3 aarch64-unknown-linux-gnu [enabled]
app-shells/bash:          5.0_p18::gentoo
dev-lang/perl:            5.30.3::gentoo
dev-lang/python:          3.7.9::gentoo, 3.8.6::gentoo, 3.9.0::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/openrc:          0.42.1::gentoo
sys-apps/sandbox:         2.20::gentoo
sys-devel/autoconf:       2.69-r5::gentoo
sys-devel/automake:       1.16.2-r1::gentoo
sys-devel/binutils:       2.34-r2::gentoo
sys-devel/gcc:            9.3.0-r1::gentoo
sys-devel/gcc-config:     2.3.2-r1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 5.4-r1::gentoo (virtual/os-headers)
sys-libs/glibc:           2.32-r2::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-jobs: 1
    sync-rsync-extra-opts:
    sync-rsync-verify-metamanifest: yes

genpi64
    location: /var/db/repos/genpi64
    sync-type: git
    sync-uri: https://github.com/sakaki-/genpi64-overlay.git
    masters: gentoo
    priority: 100

ACCEPT_KEYWORDS="arm64"
ACCEPT_LICENSE="@FREE"
CBUILD="aarch64-unknown-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="aarch64-unknown-linux-gnu"
CONFIG_PROTECT="/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 -pipe"
DISTDIR="/var/cache/distfiles"
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_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg config-protect-if-modified distcc distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="C.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j4 -l4"
PKGDIR="/var/cache/binpkgs"
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"
USE="a52 acl alsa apache2 arm64 berkdb bzip2 cli crypt dri fortran gdbm http iconv ipv6 jack libass libglvnd libtirpc modplug mp3 mpeg mysql ncurses nls nptl ogg openmp opus oss pam pcre raspberry-pi readline rubberband seccomp speex split-usr ssh ssl tcpd theora twolame unicode v4l vaapi vorbis wavpack webp x264 xattr zlib" ADA_TARGET="gnat_2018" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file 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_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias session" APACHE2_MPMS="event" 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 navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" 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-2 php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python2_7 python3_7" RUBY_TARGETS="ruby25 ruby26" USERLAND="GNU" VIDEO_CARDS="fbdev vc4 v3d" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS


i've tested various versions on the pi4 (no crossdev)

cmake-3.16.5
cmake-3.17.4-r1


They all fail while linking libCTestLib.a


Any clues ?

blubberbaer

Swapped quote tags to code tags to preserve formatting -- NeddySeagoon


Last edited by blubberbaer on Sat Nov 28, 2020 5:56 pm; edited 1 time in total
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54315
Location: 56N 3W

PostPosted: Thu Nov 26, 2020 5:46 pm    Post subject: Reply with quote

blubberbaer,

Please put the entire log onto a pastebin site. That "Error 2" suggests that the real problem is further up the log. grep the log for "Error 1".

If it helps any my arm64 binhost has cmake-3.18.4 and cmake-3.19.0.
Feel free to help yourself.

I'll try dev-util/cmake-3.16.5. .... dev-util/cmake-3.16.5 builds for me. Trying 3.17.4-r1 now.

-- edit --
Both built and added to the binhost. We need to see your build log.

-- edit again --

Wild guess. 4G RAM ... MAKEOPTS="-j4 ... and C++.
You ran out of RAM and the OOM kicked in and killed one of your make threads.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
blubberbaer
Tux's lil' helper
Tux's lil' helper


Joined: 15 Mar 2016
Posts: 81

PostPosted: Thu Nov 26, 2020 7:59 pm    Post subject: Reply with quote

Dear NeddySeagoon,

i had to split up the build.log in a few smaller files. Sorry for that:

https://dpaste.com/HNLPNCF3T
https://dpaste.com/8CCTP5Z5N
https://dpaste.com/6L4U7YRU8
https://dpaste.com/AQ35TU3L6
https://dpaste.com/ACX93BM8S
https://dpaste.com/4DG3HLJ2Z
https://dpaste.com/7YNK3L87N
https://dpaste.com/GYWLS7K32

and the lines before error 1

Code:

[ 84%] Linking CXX executable ../bin/cmake
cd /var/tmp/portage/dev-util/cmake-3.18.3/work/cmake-3.18.3_build/Source && /var/tmp/portage/de
v-util/cmake-3.18.3/work/cmake-3.18.3/Bootstrap.cmk/cmake -E cmake_link_script CMakeFiles/cmake
.dir/link.txt --verbose=1
/usr/bin/aarch64-unknown-linux-gnu-g++ -O2 -pipe -Wl,-O1 -Wl,--as-needed CMakeFiles/cmake.dir/c
makemain.cxx.o CMakeFiles/cmake.dir/cmcmd.cxx.o -o ../bin/cmake  libCMakeLib.a libCMakeServerLi
b.a libCMakeLib.a kwsys/libcmsys.a -ldl ../Utilities/std/libcmstd.a /usr/lib64/libexpat.so -lz
/usr/lib64/libarchive.so /usr/lib64/libcurl.so /usr/lib64/libjsoncpp.so /usr/lib64/libuv.so /us
r/lib64/librhash.so -lpthread
/usr/lib/gcc/aarch64-unknown-linux-gnu/9.3.0/../../../../aarch64-unknown-linux-gnu/bin/ld: /usr
/lib64/libuv.so: undefined reference to `__aarch64_cas4_acq_rel'
collect2: error: ld returned 1 exit status
make[2]: *** [Source/CMakeFiles/cmake.dir/build.make:130: bin/cmake] Error 1
make[2]: Leaving directory '/var/tmp/portage/dev-util/cmake-3.18.3/work/cmake-3.18.3_build'
make[1]: *** [CMakeFiles/Makefile2:500: Source/CMakeFiles/cmake.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....


Many thanks,

blubberbaer

--edit--

this time i tried cmake-3.18.3 to build but it didn't work out ;-)
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54315
Location: 56N 3W

PostPosted: Thu Nov 26, 2020 9:58 pm    Post subject: Reply with quote

blubberbaer,

Its a linker error. I'm using the ~arm64 binutils, which is the package that provides the linker. You may want to try that.

binutils is slotted. The testing binutils will be an addition to your stable binutils.
You must use binutils-conf to choose the new binutils before it will be used.

Code:
$ binutils-config -l
 [1] aarch64-unknown-linux-gnu-2.34
 [2] aarch64-unknown-linux-gnu-2.35.1 *

_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
blubberbaer
Tux's lil' helper
Tux's lil' helper


Joined: 15 Mar 2016
Posts: 81

PostPosted: Fri Nov 27, 2020 7:06 pm    Post subject: Reply with quote

Dear all,

i've tried a few things to get rid of linking problem.

1) did as NeddySeagoon told me ...

update of binutils to binutils unstable (sys-devel/binutils-2.35.1-r1) .... didn't help ;-(

2) recompiled libuv.so

didn't help

3) switched to CFLAGS

-march=armv8-a+crc -mtune=cortex-a72 -ftree-vectorize -O2 -pipe

after that emerge -e system

didn't help

4) switched to aarch64-unknown-linux-gnu-10.2.0

didn't help but ..... the error out in the build.logs changed a bit ...

Code:
cd /var/tmp/portage/dev-util/cmake-3.18.3/work/cmake-3.18.3_build/Source/CursesDialog && /var/tmp/portage/dev-util/cmake-3.18.3/work/cmake-3.18.3/Bootstrap.cmk/cmake -E cmake_link_script CMak
eFiles/ccmake.dir/link.txt --verbose=1
/usr/bin/aarch64-unknown-linux-gnu-g++ -march=armv8-a+crc -mtune=cortex-a72 -ftree-vectorize -O2 -pipe -Wl,-O1 -Wl,--as-needed CMakeFiles/ccmake.dir/ccmake.cxx.o CMakeFiles/ccmake.dir/cmCurse
sBoolWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesCacheEntryComposite.cxx.o CMakeFiles/ccmake.dir/cmCursesColor.cxx.o CMakeFiles/ccmake.dir/cmCursesDummyWidget.cxx.o CMakeFiles/ccmake.dir/cmCur
sesFilePathWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesForm.cxx.o CMakeFiles/ccmake.dir/cmCursesLabelWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesLongMessageForm.cxx.o CMakeFiles/ccmake.dir/cmCu
rsesMainForm.cxx.o CMakeFiles/ccmake.dir/cmCursesOptionsWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesPathWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesStringWidget.cxx.o CMakeFiles/ccmake.dir/cmCu
rsesWidget.cxx.o -o ../../bin/ccmake  ../libCMakeLib.a /usr/lib64/libform.so -lncurses -ltinfo ../kwsys/libcmsys.a -ldl ../../Utilities/std/libcmstd.a /usr/lib64/libexpat.so -lz /usr/lib64/li
barchive.so /usr/lib64/libcurl.so /usr/lib64/libjsoncpp.so /usr/lib64/libuv.so /usr/lib64/librhash.so -lpthread
/usr/lib/gcc/aarch64-unknown-linux-gnu/10.2.0/../../../../aarch64-unknown-linux-gnu/bin/ld: ../../bin/ccmake: hidden symbol `__aarch64_cas4_acq_rel' in /usr/lib/gcc/aarch64-unknown-linux-gnu/
10.2.0/libgcc.a(cas_4_4.o) is referenced by DSO
/usr/lib/gcc/aarch64-unknown-linux-gnu/10.2.0/../../../../aarch64-unknown-linux-gnu/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status


need more hints ;-)


Many thanks,

blubberbaer
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54315
Location: 56N 3W

PostPosted: Fri Nov 27, 2020 8:50 pm    Post subject: Reply with quote

blubberbaer,

What does eix cmake say?
Code:
[I] dev-util/cmake
     Available versions:  (~)3.13.5^t 3.16.5^t{tbz2} 3.17.4-r1^t{tbz2} (~)3.18.4^t{tbz2} (~)3.18.5^t (~)3.19.0^t{tbz2} (~)3.19.1^t{tbz2} {doc emacs ncurses qt5 system-jsoncpp test}
     Installed versions:  3.19.1^t{tbz2}(10:39:33 27/11/20)(doc ncurses qt5 -emacs -test)
     Homepage:            https://cmake.org/
     Description:         Cross platform Make


It builds here with USE="doc ncurses qt5 -emacs -test"

You have
Code:
Package:    dev-util/cmake-3.18.3
Repository: myrepo
USE:        arm64 elibc_glibc kernel_linux ncurses userland_GNU

That raises a few eyebrowns. Repository: myrepo ... whats wrong with the gentoo cmake. That's what I use.

You only have USE=ncurses but I don't think is USE flag related.

Please try the in tree cmake.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
blubberbaer
Tux's lil' helper
Tux's lil' helper


Joined: 15 Mar 2016
Posts: 81

PostPosted: Sat Nov 28, 2020 8:35 am    Post subject: Reply with quote

Dear NeddySeagoon,

thanks for your reply. I have another rpi4 (sakaki image). Since cmake-3.18.3 was already removed from the tree I've copied the ebuild to my new non-sakaki gentoo rpi4. I hoped it would build. But it didn't. Anyway, i've tried with cmake-3.19.1 from the tree:

eix:

Code:

* dev-util/cmake
     Available versions:  (~)3.13.5^t 3.16.5^t 3.17.4-r1^t (~)3.18.3^t[1] (~)3.18.4^t (~)3.18.5^t (~)3.19.0^t (~)3.19.1^t {doc emacs ncurses qt5 system-jsoncpp test}
     Homepage:            https://cmake.org/
     Description:         Cross platform Make


equery uses dev-util/cmake

Code:


[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for dev-util/cmake-3.19.1:
 U I
 + - doc     : Add extra documentation (API, Javadoc, etc). It is recommended to enable per
               package instead of globally
 - - emacs   : Add support for GNU Emacs
 + + ncurses : Add ncurses support (console display library)
 - - qt5     : Add support for the Qt 5 application and UI framework
 - - test    : Enable dependencies and/or preparations necessary to run tests (usually
               controlled by FEATURES=test but can be toggled independently)


I've added +doc. +qt5 gave a circular dependencies

Code:

otal: 10 packages (10 new), Size of downloads: 186677 KiB

 * Error: circular dependencies:

(dev-qt/qtcore-5.15.1-r1:5/5.15.1::gentoo, ebuild scheduled for merge) depends on
 (dev-libs/double-conversion-3.1.5:0/3::gentoo, ebuild scheduled for merge) (buildtime_slot_op)
  (dev-util/cmake-3.19.1:0/0::gentoo, ebuild scheduled for merge) (buildtime)
   (dev-qt/qtcore-5.15.1-r1:5/5.15.1::gentoo, ebuild scheduled for merge) (buildtime)

It might be possible to break this cycle
by applying the following change:
- dev-util/cmake-3.19.1 (Change USE: -qt5)


The build log of cmake-3.19.1 shows the same failure


Code:


[ 88%] Linking CXX executable ../../bin/ccmake
cd /var/tmp/portage/dev-util/cmake-3.19.1/work/cmake-3.19.1_build/Source/CursesDialog && /var/tmp/portage/dev-util/cmake-3.19.1/work/cmake-3.19.1/Bootstrap.cmk/cmake -E cmake_link_script CMak
eFiles/ccmake.dir/link.txt --verbose=1
/usr/bin/aarch64-unknown-linux-gnu-g++ -march=armv8-a+crc -mtune=cortex-a72 -ftree-vectorize -O2 -pipe -Wl,-O1 -Wl,--as-needed CMakeFiles/ccmake.dir/ccmake.cxx.o CMakeFiles/ccmake.dir/cmCurse
sBoolWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesCacheEntryComposite.cxx.o CMakeFiles/ccmake.dir/cmCursesColor.cxx.o CMakeFiles/ccmake.dir/cmCursesDummyWidget.cxx.o CMakeFiles/ccmake.dir/cmCur
sesFilePathWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesForm.cxx.o CMakeFiles/ccmake.dir/cmCursesLabelWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesLongMessageForm.cxx.o CMakeFiles/ccmake.dir/cmCu
rsesMainForm.cxx.o CMakeFiles/ccmake.dir/cmCursesOptionsWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesPathWidget.cxx.o CMakeFiles/ccmake.dir/cmCursesStringWidget.cxx.o CMakeFiles/ccmake.dir/cmCu
rsesWidget.cxx.o -o ../../bin/ccmake  ../libCMakeLib.a /usr/lib64/libform.so -lncurses -ltinfo ../kwsys/libcmsys.a -ldl ../../Utilities/std/libcmstd.a /usr/lib64/libexpat.so -lz /usr/lib64/li
barchive.so /usr/lib64/libcurl.so /usr/lib64/libjsoncpp.so /usr/lib64/libuv.so /usr/lib64/librhash.so -lpthread
/usr/lib/gcc/aarch64-unknown-linux-gnu/10.2.0/../../../../aarch64-unknown-linux-gnu/bin/ld: ../../bin/ccmake: hidden symbol `__aarch64_cas4_acq_rel' in /usr/lib/gcc/aarch64-unknown-linux-gnu/
10.2.0/libgcc.a(cas_4_4.o) is referenced by DSO
/usr/lib/gcc/aarch64-unknown-linux-gnu/10.2.0/../../../../aarch64-unknown-linux-gnu/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [Source/CursesDialog/CMakeFiles/ccmake.dir/build.make:311: bin/ccmake] Error 1
make[2]: Leaving directory '/var/tmp/portage/dev-util/cmake-3.19.1/work/cmake-3.19.1_build'
make[1]: *** [CMakeFiles/Makefile2:646: Source/CursesDialog/CMakeFiles/ccmake.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 88%] Building CXX object Source/CMakeFiles/CTestLib.dir/CTest/cmParseMumpsCoverage.cxx.o


gcc-config -l

Code:

 gcc-config -l
 [1] aarch64-unknown-linux-gnu-9.3.0
 [2] aarch64-unknown-linux-gnu-10.2.0 *


binutils-config -l
Code:

 [1] aarch64-unknown-linux-gnu-2.34
 [2] aarch64-unknown-linux-gnu-2.35.1 *



Perhaps it is a libgcc problem (see build.log) because aarch64_cas4_acq_rel is a hidden symbol ?

Have a nice day,

blubberbaer
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54315
Location: 56N 3W

PostPosted: Sat Nov 28, 2020 9:55 am    Post subject: Reply with quote

blubberbaer,

It build for me on two different arm64 systems, both configured to produce Pi4 optimised code, so I'm at a bit of a loss.
I've not actually tried the build on a Pi yet though. That's my next step.

ebuilds are never gone. The current tree is in git. All the ebuilds since the change from CVS (2015?) can be recovered.
ebuilds that were in CVS are online too, back to the start of CVS in 2000. Almost the dawn of Gentoo.

If you want to ask in #gentoo-arm on freenode, I think the arm team will be interested.
You will need a registered nick to speak.

-- edit --

I don't think its a systematic problem or it would hit everyone, not just you. So far, this is the only report of the problem that I know of

-- edit more --

cmake-3.19.0 builds on an 8G Pi4 here with MAKEOPTS="-j5"
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
blubberbaer
Tux's lil' helper
Tux's lil' helper


Joined: 15 Mar 2016
Posts: 81

PostPosted: Sat Nov 28, 2020 3:38 pm    Post subject: Reply with quote

Dear Neddy Seagoon,

thanks. I will ask at #gentoo-arm.

Did another try. This time

compiler: aarch64-unknown-linux-gnu-8.4.0
MAKEPOPTS="-j1" emerge -u cmake
binutils: aarch64-unknown-linux-gnu-2.35.1

;-( still the same ...

now trying

compiler: aarch64-unknown-linux-gnu-10.2.0
MAKEPOPTS="-j1" emerge -u cmake
binutils: aarch64-unknown-linux-gnu-2.35.1


Many thanks anyway ....

blubberbaer
Back to top
View user's profile Send private message
blubberbaer
Tux's lil' helper
Tux's lil' helper


Joined: 15 Mar 2016
Posts: 81

PostPosted: Sat Nov 28, 2020 5:54 pm    Post subject: Reply with quote

Many thanks to #gentoo-arm ..... ;-)


Here are the instructions they gave to me :

1) Change CFLAGS in make.conf back to standard stuff. If i remember right, those are the default settings if you follow
https://wiki.gentoo.org/wiki/Raspberry_Pi_3_64_bit_Install

make.conf

Code:

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable before changing.
CHOST="aarch64-unknown-linux-gnu"
 


Having a peek at the genpi64 make.conf i switched them to #COMMON_FLAGS="-march=armv8-a+crc -mtune=cortex-a72 -ftree-vectorize -O2 -pipe" in between, that did not to work out

2) emerge -v1 libuv

since libuv failed on being linked with the rest, it should be rebuild

3) emerge -v1 cmake

;-)


Have fun,

blubberbaer
Back to top
View user's profile Send private message
maxim.251
Tux's lil' helper
Tux's lil' helper


Joined: 14 Jul 2012
Posts: 127

PostPosted: Wed Oct 26, 2022 8:59 am    Post subject: Reply with quote

I have exactly same problem on my PC mashine arm64 with 12G memory and 6 core AMD, and i am forced to compile cmake by hand, because only that option works. And installing it by hand. I do it now from almost 1 year.
My system was updated few times, and problem with CMAKE was still this same.
My common flags looks like this

Code:
#COMMON_FLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
#COMMON_FLAGS="-O2 -pipe "
COMMON_FLAGS="-O2 -pipe -march=native"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
CHOST="x86_64-pc-linux-gnu"
#CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX:PATH=~/local"


changing to proposed
Code:
COMMON_FLAGS="-O2 -pipe "

did not hep, still I get that error.[/quote]

Code:
[ 99%] Built target CTestLib
make[1]: Leaving directory '/var/tmp/portage/dev-util/cmake-3.23.3/work/cmake-3.23.3_build'


I did try reuse CMAKE_EXTRA_FLAGS because in the past I did put that line in make file for some reason, I don't remember why, but I have.
also without success.
Then I start playing with cmake flags
Code:
sudo USE="qt5 ncurses -static-libs"  emerge -av1 cmake


also did not work. I am thinking if " test " flag have something to do.
Full requirement of cmake use flag looks like this
Code:
dev-util/cmake-3.23.3 -ncurses -qt5 -doc -emacs -test -verify-sig -examples -java static-libs


end emerge is showing me that
Code:
dev-util/cmake-3.23.3:0/0::gentoo [3.22.4:0/3.1::gentoo] USE="ncurses%* -doc% -emacs% -qt5% -test% -verify-sig% (-examples%) (-java%*) (-static-libs%)"


If I try use test flag then emerge shows me
Code:
[ebuild   R    ] app-arch/libarchive-3.6.1:0/13::gentoo  USE="acl bzip2 e2fsprogs iconv lzma lzo xattr zstd* -blake2 -expat -lz4 -nettle -static-libs -verify-sig" ABI_X86="32 (64) (-x32)" 0 KiB
[ebuild  N     ] x11-apps/xhost-1.0.8::gentoo  USE="ipv6" 136 KiB
[ebuild   R    ] x11-base/xorg-server-21.1.4:0/21.1.4::gentoo  USE="systemd test* udev xorg xvfb* -debug (-elogind) -minimal (-selinux) -suid -unwind -xcsecurity -xephyr -xnest" 0 KiB
[ebuild     U  ] dev-util/cmake-3.23.3:0/0::gentoo [3.22.4:0/3.1::gentoo] USE="ncurses%* test%* -doc% -emacs% -qt5% -verify-sig% (-examples%) (-java%*) (-static-libs%)" 0 KiB

Total: 4 packages (1 upgrade, 1 new, 2 reinstalls), Size of downloads: 136 KiB

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by dev-util/cmake-3.23.3::gentoo[test]
# required by cmake (argument)
>=app-arch/libarchive-3.6.1 zstd
# required by dev-util/cmake-3.23.3::gentoo[test]
# required by cmake (argument)
>=x11-base/xorg-server-21.1.4 xvfb


But When I try compile I get error
Code:
!!! All ebuilds that could satisfy "app-arch/libarchive[zstd]" have been masked.
!!! One of the following masked packages is required to complete your request:
- app-arch/libarchive-3.6.1::gentoo (masked by: )


But this package when I am compiling by hand, it works without problems.

and after recompiling all packages needed for cmake " test " flag, and compile cmake it self with that flag, again this same problem.
Code:
/usr/bin/x86_64-pc-linux-gnu-ranlib libCTestLib.a

looks like something is wrong with compatibility with emerge setting compiling process, because compile cmake by hand works with no errors using package downloaded in partage temp directory.

And now, when I am updating @world, or compiling package witch use cmake in tree, I need exclude that package from recompiling.

And still I dont have idea how to solve that problem.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum