Skip site navigation (1)Skip section navigation (2)
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>