Date: Mon, 14 Dec 2020 21:48:44 -0800 From: Mark Millard <marklmi@yahoo.com> To: FreeBSD ports <freebsd-ports@freebsd.org> Subject: Re: math/suitesparse from ports head -r557893 fails for armv7 by default: "/usr/local/bin/ld: cannot find -lomp" Message-ID: <71175328-345B-490E-861A-71A05030631A@yahoo.com> In-Reply-To: <CB5955ED-AF69-48F1-818F-3B87FD0425E1@yahoo.com> References: <CB5955ED-AF69-48F1-818F-3B87FD0425E1@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2020-Dec-14, at 13:34, Mark Millard <marklmi at yahoo.com> wrote: > This was on aarch64 doing a build targeting armv7 via poudriere --but = might apply to other platforms that by default do not have LLVM's OpenMP = runtime: >=20 > WITHOUT_OPENMP > Set to not build LLVM's OpenMP runtime. >=20 > This is a default setting on arm/armv6, arm/armv7, = mips/mips, > mips/mips64, powerpc/powerpc, riscv/riscv64 and = riscv/riscv64sf. >=20 > # poudriere jail -jFBSDFSSDjailArmV7 -i > Jail name: FBSDFSSDjailArmV7 > Jail version: 13.0-CURRENT > Jail arch: arm.armv7 > Jail method: null > Jail mount: /usr/obj/DESTDIRs/clang-armv7-installworld-poud > Jail fs: =20 > Jail updated: 2020-04-21 22:39:35 >=20 > /usr/obj/DESTDIRs/clang-armv7-installworld-poud is at: head -r368500 > (as is the containing aarch64 environment). >=20 > Apparently, armv7 (at least) requires a manual/explicit OPENMP=3Doff = configuration option for math/suitesparse . Is this intentional? >=20 >=20 > poudriere reported: >=20 > [02:42:51] [01] [00:00:00] Building math/suitesparse | = suitesparse-5.8.1 > [02:46:41] [01] [00:03:50] Saving math/suitesparse | suitesparse-5.8.1 = wrkdir > [02:46:45] [01] [00:03:54] Saved math/suitesparse | suitesparse-5.8.1 = wrkdir to: = /usr/local/poudriere/data/wrkdirs/FBSDFSSDjailArmV7-default/default/suites= parse-5.8.1.tar > [02:46:55] [01] [00:04:04] Finished math/suitesparse | = suitesparse-5.8.1: Failed: build > [02:46:59] [01] [00:04:08] Skipping math/eigen3 | eigen-3.3.8: = Dependent port math/suitesparse | suitesparse-5.8.1 failed > [02:46:59] [01] [00:04:08] Skipping multimedia/ffmpeg | = ffmpeg-4.3.1_9,1: Dependent port math/suitesparse | suitesparse-5.8.1 = failed > [02:46:59] [01] [00:04:08] Skipping multimedia/gstreamer1-libav | = gstreamer1-libav-1.16.2: Dependent port math/suitesparse | = suitesparse-5.8.1 failed > [02:46:59] [01] [00:04:08] Skipping multimedia/gstreamer1-plugins-core = | gstreamer1-plugins-core-1.16: Dependent port math/suitesparse | = suitesparse-5.8.1 failed > [02:46:59] [01] [00:04:08] Skipping x11/lumina | lumina-1.6.0,3: = Dependent port math/suitesparse | suitesparse-5.8.1 failed > [02:46:59] [01] [00:04:08] Skipping x11/lumina-core | = lumina-core-1.6.0: Dependent port math/suitesparse | suitesparse-5.8.1 = failed > [02:46:59] [01] [00:04:08] Skipping graphics/opencv-core | = opencv-core-3.4.1_37: Dependent port math/suitesparse | = suitesparse-5.8.1 failed > . . . > [02:48:20] Failed ports: math/suitesparse:build > [02:48:20] Skipped ports: graphics/opencv-core math/eigen3 = multimedia/ffmpeg multimedia/gstreamer1-libav = multimedia/gstreamer1-plugins-core x11/lumina x11/lumina-core >=20 > (That last gives a clue what types of things are blocked by the = failure.) >=20 > The log showed the -lomp issue: >=20 > . . . > /usr/local/bin/ranlib libcholmod.a > /usr/local/bin/ld: cannot find -lomp > c++: error: linker command failed with exit code 1 (use -v to see = invocation) > gmake[4]: *** [Makefile:544: = /wrkdirs/usr/ports/math/suitesparse/work/SuiteSparse-5.8.1/lib/libcholmod.= so.3.0.14] Error 1 > gmake[4]: Leaving directory = '/wrkdirs/usr/ports/math/suitesparse/work/SuiteSparse-5.8.1/CHOLMOD/Lib' > gmake[3]: *** [Makefile:31: library] Error 2 > gmake[3]: Leaving directory = '/wrkdirs/usr/ports/math/suitesparse/work/SuiteSparse-5.8.1/CHOLMOD/Lib' > gmake[2]: *** [Makefile:19: library] Error 2 > gmake[2]: Leaving directory = '/wrkdirs/usr/ports/math/suitesparse/work/SuiteSparse-5.8.1/CHOLMOD' > gmake[1]: *** [Makefile:135: library] Error 2 > gmake[1]: Leaving directory = '/wrkdirs/usr/ports/math/suitesparse/work/SuiteSparse-5.8.1' > =3D=3D=3D> Compilation failed unexpectedly. > Try to set MAKE_JOBS_UNSAFE=3Dyes and rebuild before reporting the = failure to > the maintainer. > *** Error code 1 > . . . >=20 > Other context details . . . >=20 > # svnlite info /usr/ports/ > Path: /usr/ports > Working Copy Root Path: /usr/ports > URL: svn://svn.freebsd.org/ports/head > Relative URL: ^/head > Repository Root: svn://svn.freebsd.org/ports > Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5 > Revision: 557893 > Node Kind: directory > Schedule: normal > Last Changed Author: manu > Last Changed Rev: 557893 > Last Changed Date: 2020-12-13 03:53:57 -0800 (Sun, 13 Dec 2020) >=20 > # uname -apKU > FreeBSD FBSDmacch 13.0-CURRENT FreeBSD 13.0-CURRENT #47 r368500M: Thu = Dec 10 03:15:10 PST 2020 = root@FBSDFHUGE:/usr/obj/cortexA72_clang/arm64.aarch64/usr/src/arm64.aarch6= 4/sys/GENERIC-NODBG arm64 aarch64 1300131 1300131 >=20 An explicit use of OPTIONS_FILE_UNSET+=3DOPENMP in the below was = sufficient to allow the build: # more = /usr/local/etc/poudriere.d/FBSDFSSDjailArmV7-options/math_suitesparse/opti= ons=20 # This file is auto-generated by 'make config'. # Options for suitesparse-5.8.1 _OPTIONS_READ=3Dsuitesparse-5.8.1 _FILE_COMPLETE_OPTIONS_LIST=3DDEMOS DOCS TBB ATLAS GOTOBLAS NETLIB = OPENBLAS OPTIONS_FILE_UNSET+=3DDEMOS OPTIONS_FILE_SET+=3DDOCS OPTIONS_FILE_SET+=3DTBB OPTIONS_FILE_UNSET+=3DATLAS OPTIONS_FILE_UNSET+=3DGOTOBLAS OPTIONS_FILE_UNSET+=3DNETLIB OPTIONS_FILE_SET+=3DOPENBLAS OPTIONS_FILE_UNSET+=3DOPENMP Note that for armv7 config had not even listed OPENMP as an option. Yet = UNSET'ing it seems to be required for a by-default WITHOUT_OPENMP = context in order for the build to work. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?71175328-345B-490E-861A-71A05030631A>