[package - main-amd64-default][audio/cardinal] Failed for cardinal-23.10 in build
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 26 Feb 2024 11:57:11 UTC
You are receiving this mail as a port that you maintain is failing to build on the FreeBSD package build server. Please investigate the failure and submit a PR to fix build. Maintainer: yuri@FreeBSD.org Log URL: https://pkg-status.freebsd.org/beefy18/data/main-amd64-default/p43e3af5f5763_sf5f08e41aa/logs/cardinal-23.10.log Build URL: https://pkg-status.freebsd.org/beefy18/build.html?mastername=main-amd64-default&build=p43e3af5f5763_sf5f08e41aa Log: =>> Building audio/cardinal build started at Mon Feb 26 11:14:50 UTC 2024 port directory: /usr/ports/audio/cardinal package name: cardinal-23.10 building for: FreeBSD main-amd64-default-job-11 15.0-CURRENT FreeBSD 15.0-CURRENT 1500014 amd64 maintained by: yuri@FreeBSD.org Makefile datestamp: -rw-r--r-- 1 root wheel 1739 Feb 8 01:01 /usr/ports/audio/cardinal/Makefile Ports top last git commit: 43e3af5f576 Ports top unclean checkout: no Port dir last git commit: 656aaecdac6 Port dir unclean checkout: no Poudriere version: poudriere-git-3.4.1-1-g1e9f97d6 Host OSVERSION: 1500006 Jail OSVERSION: 1500014 Job Id: 11 !!! Jail is newer than host. (Jail: 1500014, Host: 1500006) !!! !!! This is not supported. !!! !!! Host kernel must be same or newer than jail. !!! !!! Expect build failures. !!! ---Begin Environment--- SHELL=/bin/sh OSVERSION=1500014 UNAME_v=FreeBSD 15.0-CURRENT 1500014 UNAME_r=15.0-CURRENT BLOCKSIZE=K MAIL=/var/mail/root MM_CHARSET=UTF-8 LANG=C.UTF-8 STATUS=1 HOME=/root PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin MAKE_OBJDIR_CHECK_WRITABLE=0 LOCALBASE=/usr/local USER=root POUDRIERE_NAME=poudriere-git LIBEXECPREFIX=/usr/local/libexec/poudriere POUDRIERE_VERSION=3.4.1-1-g1e9f97d6 MASTERMNT=/usr/local/poudriere/data/.m/main-amd64-default/ref LC_COLLATE=C POUDRIERE_BUILD_TYPE=bulk PACKAGE_BUILDING=yes SAVED_TERM= OUTPUT_REDIRECTED_STDERR=4 OUTPUT_REDIRECTED=1 PWD=/usr/local/poudriere/data/.m/main-amd64-default/11/.p OUTPUT_REDIRECTED_STDOUT=3 P_PORTS_FEATURES=FLAVORS SUBPACKAGES SELECTED_OPTIONS MASTERNAME=main-amd64-default SCRIPTPREFIX=/usr/local/share/poudriere SCRIPTNAME=bulk.sh OLDPWD=/usr/local/poudriere/data/.m/main-amd64-default/ref/.p/pool POUDRIERE_PKGNAME=poudriere-git-3.4.1-1-g1e9f97d6 SCRIPTPATH=/usr/local/share/poudriere/bulk.sh POUDRIEREPATH=/usr/local/bin/poudriere ---End Environment--- ---Begin Poudriere Port Flags/Env--- PORT_FLAGS= PKGENV= FLAVOR= MAKE_ARGS= ---End Poudriere Port Flags/Env--- ---Begin OPTIONS List--- ===> The following configuration options are available for cardinal-23.10: DOCS=on: Build and/or install documentation LTO=off: Use Link-Time Optimization ===> Use 'make config' to modify these settings ---End OPTIONS List--- --MAINTAINER-- yuri@FreeBSD.org --End MAINTAINER-- --CONFIGURE_ARGS-- --End CONFIGURE_ARGS-- --CONFIGURE_ENV-- MAKE=gmake PKG_CONFIG=pkgconf PYTHON="/usr/local/bin/python3.9" SDL2_CONFIG=/usr/local/bin/sdl2-config XDG_DATA_HOME=/wrkdirs/usr/ports/audio/cardinal/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/audio/cardinal/work XDG_CACHE_HOME=/wrkdirs/usr/ports/audio/cardinal/work/.cache HOME=/wrkdirs/usr/ports/audio/cardinal/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/audio/cardinal/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/audio/cardinal/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig SHELL=/bin/sh CONFIG_SHELL=/bin/sh CMAKE_PREFIX_PATH="/usr/local" --End CONFIGURE_ENV-- --MAKE_ENV-- LD_PRELOAD=/usr/lib/libpthread.so SDL2_CONFIG=/usr/local/bin/sdl2-config XDG_DATA_HOME=/wrkdirs/usr/ports/audio/cardinal/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/audio/cardinal/work XDG_CACHE_HOME=/wrkdirs/usr/ports/audio/cardinal/work/.cache HOME=/wrkdirs/usr/ports/audio/cardinal/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/audio/cardinal/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/audio/cardinal/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local LOCALBASE=/usr/local CC="/usr/local/llvm15/bin/clang" CFLAGS="-O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing " CPP="/usr/local/llvm15/bin/clang-cpp" CPPFLAGS="-isystem /usr/local/include" LDFLAGS=" -lpffft -lexecinfo -fstack-protector-strong -L/usr/local/lib " LIBS="" CXX="/usr/local/llvm15/b in/clang++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -I/usr/local/include/pffft -isystem /usr/local/include " BSD_INSTALL_PROGRAM="install -s -m 555" BSD_INSTALL_LIB="install -s -m 0644" BSD_INSTALL_SCRIPT="install -m 555" BSD_INSTALL_DATA="install -m 0644" BSD_INSTALL_MAN="install -m 444" --End MAKE_ENV-- --PLIST_SUB-- PORTDOCS="" PYTHON_INCLUDEDIR=include/python3.9 PYTHON_LIBDIR=lib/python3.9 PYTHON_PLATFORM=freebsd15 PYTHON_SITELIBDIR=lib/python3.9/site-packages PYTHON_SUFFIX=39 PYTHON_EXT_SUFFIX=.cpython-39 PYTHON_VER=3.9 PYTHON_VERSION=python3.9 PYTHON2="@comment " PYTHON3="" OSREL=15.0 PREFIX=%D LOCALBASE=/usr/local RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/cardinal" EXAMPLESDIR="share/examples/cardinal" DATADIR="share/cardinal" WWWDIR="www/cardinal" ETCDIR="etc/cardinal" --End PLIST_SUB-- --SUB_LIST-- PYTHON_INCLUDEDIR=/usr/local/include/python3.9 PYTHON_LIBDIR=/usr/local/lib/python3.9 PYTHON_PLATFORM=freebsd15 PYTHON_SITELIBDIR=/usr/local/lib/python3.9/site-packages PYTHON_SUFFIX=39 PYTHON_EXT_SUFFIX=.cpython-39 PYTHON_VER=3.9 PYTHON_VERSION=python3.9 PYTHON2="@comment " PYTHON3="" PREFIX=/usr/local LOCALBASE=/usr/local DATADIR=/usr/local/share/cardinal DOCSDIR=/usr/local/share/doc/cardinal EXAMPLESDIR=/usr/local/share/examples/cardinal WWWDIR=/usr/local/www/cardinal ETCDIR=/usr/local/etc/cardinal --End SUB_LIST-- ---Begin make.conf--- USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs PORTSDIR=/usr/ports PACKAGES=/packages DISTDIR=/distfiles PACKAGE_BUILDING=yes PACKAGE_BUILDING_FLAVORS=yes #### #### # XXX: We really need this but cannot use it while 'make checksum' does not # try the next mirror on checksum failure. It currently retries the same # failed mirror and then fails rather then trying another. It *does* # try the next if the size is mismatched though. #MASTER_SITE_FREEBSD=yes # Build ALLOW_MAKE_JOBS_PACKAGES with 3 jobs MAKE_JOBS_NUMBER=3 #### Misc Poudriere #### .include "/etc/make.conf.ports_env" GID=0 UID=0 ---End make.conf--- --Resource limits-- cpu time (seconds, -t) unlimited file size (512-blocks, -f) unlimited data seg size (kbytes, -d) 33554432 stack size (kbytes, -s) 524288 core file size (512-blocks, -c) unlimited max memory size (kbytes, -m) unlimited locked memory (kbytes, -l) unlimited max user processes (-u) 89999 open files (-n) 8192 virtual mem size (kbytes, -v) unlimited swap limit (kbytes, -w) unlimited socket buffer size (bytes, -b) unlimited pseudo-terminals (-p) unlimited kqueues (-k) unlimited umtx shared locks (-o) unlimited --End resource limits-- =======================<phase: check-sanity >============================ ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> License GPLv3 accepted by the user =========================================================================== =======================<phase: pkg-depends >============================ ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> cardinal-23.10 depends on file: /usr/local/sbin/pkg - not found ===> Installing existing package /packages/All/pkg-1.20.9_1.pkg [main-amd64-default-job-11] Installing pkg-1.20.9_1... [main-amd64-default-job-11] Extracting pkg-1.20.9_1: .......... done ===> cardinal-23.10 depends on file: /usr/local/sbin/pkg - found ===> Returning to build of cardinal-23.10 =========================================================================== =======================<phase: fetch-depends >============================ ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =======================<phase: fetch >============================ ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> License GPLv3 accepted by the user ===> Fetching all distfiles required by cardinal-23.10 for building =========================================================================== =======================<phase: checksum >============================ ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> License GPLv3 accepted by the user ===> Fetching all distfiles required by cardinal-23.10 for building => SHA256 Checksum OK for cardinal-23.10.tar.xz. =========================================================================== =======================<phase: extract-depends>============================ ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =======================<phase: extract >============================ ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> License GPLv3 accepted by the user ===> Fetching all distfiles required by cardinal-23.10 for building ===> Extracting for cardinal-23.10 => SHA256 Checksum OK for cardinal-23.10.tar.xz. =========================================================================== =======================<phase: patch-depends >============================ ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 =========================================================================== =======================<phase: patch >============================ ===== env: NO_DEPENDS=yes USER=root UID=0 GID=0 ===> Patching for cardinal-23.10 ===> Applying FreeBSD patches for cardinal-23.10 from /usr/ports/audio/cardinal/files =========================================================================== =======================<phase: build-depends >============================ ===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0 ===> cardinal-23.10 depends on file: /usr/local/include/FuzzySearchDatabase.hpp - not found ===> Installing existing package /packages/All/fuzzysearchdatabase-g20201005.pkg [main-amd64-default-job-11] Installing fuzzysearchdatabase-g20201005... [main-amd64-default-job-11] Extracting fuzzysearchdatabase-g20201005: .... done ===> cardinal-23.10 depends on file: /usr/local/include/FuzzySearchDatabase.hpp - found ===> Returning to build of cardinal-23.10 ===> cardinal-23.10 depends on executable: bash - not found ===> Installing existing package /packages/All/bash-5.2.26_1.pkg [main-amd64-default-job-11] Installing bash-5.2.26_1... [main-amd64-default-job-11] `-- Installing gettext-runtime-0.22.3_1... [main-amd64-default-job-11] | `-- Installing indexinfo-0.3.1... [main-amd64-default-job-11] | `-- Extracting indexinfo-0.3.1: .... done <snip> Compiling Rack/src/app/CircularShadow.cpp Compiling Rack/src/app/Knob.cpp Compiling Rack/src/app/LedDisplay.cpp Compiling Rack/src/app/LightWidget.cpp Compiling Rack/src/app/ModuleLightWidget.cpp Compiling Rack/src/app/MultiLightWidget.cpp Compiling Rack/src/app/ParamWidget.cpp Compiling Rack/src/app/PortWidget.cpp Compiling Rack/src/app/RackScrollWidget.cpp Compiling Rack/src/app/RackWidget.cpp Compiling Rack/src/app/RailWidget.cpp Compiling Rack/src/app/SliderKnob.cpp Compiling Rack/src/app/SvgButton.cpp Compiling Rack/src/app/SvgKnob.cpp Compiling Rack/src/app/SvgPanel.cpp Compiling Rack/src/app/SvgPort.cpp Compiling Rack/src/app/SvgScrew.cpp Compiling Rack/src/app/SvgSlider.cpp Compiling Rack/src/app/SvgSwitch.cpp Compiling Rack/src/app/Switch.cpp Compiling Rack/src/engine/Cable.cpp Compiling Rack/src/engine/LightInfo.cpp Compiling Rack/src/engine/Module.cpp Compiling Rack/src/engine/ParamQuantity.cpp Compiling Rack/src/engine/PortInfo.cpp Compiling Rack/src/plugin/Plugin.cpp Compiling Rack/src/ui/Button.cpp Compiling Rack/src/ui/ChoiceButton.cpp Compiling Rack/src/ui/Label.cpp Compiling Rack/src/ui/List.cpp Compiling Rack/src/ui/Menu.cpp Compiling Rack/src/ui/MenuEntry.cpp Compiling Rack/src/ui/MenuItem.cpp Compiling Rack/src/ui/MenuLabel.cpp Compiling Rack/src/ui/MenuOverlay.cpp Compiling Rack/src/ui/MenuSeparator.cpp Compiling Rack/src/ui/OptionButton.cpp Compiling Rack/src/ui/ProgressBar.cpp Compiling Rack/src/ui/RadioButton.cpp Compiling Rack/src/ui/ScrollWidget.cpp Compiling Rack/src/ui/Scrollbar.cpp Compiling Rack/src/ui/SequentialLayout.cpp Compiling Rack/src/ui/Slider.cpp Compiling Rack/src/ui/TextField.cpp Compiling Rack/src/ui/Tooltip.cpp Compiling Rack/src/ui/common.cpp Compiling Rack/src/widget/FramebufferWidget.cpp Compiling Rack/src/widget/SvgWidget.cpp Compiling Rack/src/widget/Widget.cpp Compiling Rack/src/widget/ZoomWidget.cpp Compiling Rack/src/widget/event.cpp Compiling Rack/src/window/Svg.cpp gmake HEADLESS=true rack-headless.a gmake[3]: Entering directory '/wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src' Compiling AsyncDialog.cpp Compiling CardinalModuleWidget.cpp Compiling custom/asset.cpp Creating rack.a Compiling custom/dep.cpp Compiling custom/library.cpp Compiling custom/network.cpp Compiling custom/osdialog.cpp Compiling override/blendish.c Compiling override/context.cpp Compiling override/minblep.cpp Compiling override/plugin.cpp In file included from override/minblep.cpp:28: In file included from /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src/Rack/include/dsp/minblep.hpp:2: In file included from /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src/Rack/include/dsp/common.hpp:4: In file included from /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src/Rack/include/simd/functions.hpp:2: In file included from /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/include/simd/Vector.hpp:31: In file included from /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/include/simd-compat/pmmintrin.h:35: /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src/Rack/dep/simde/simde/x86/sse3.h:404:11: warning: '_mm_loaddup_pd' macro redefined [-Wmacro-redefined] # define _mm_loaddup_pd(mem_addr) simde_mm_loaddup_pd(mem_addr) ^ /usr/local/llvm15/lib/clang/15.0.7/include/pmmintrin.h:231:16: note: previous definition is here #define _mm_loaddup_pd(dp) _mm_load1_pd(dp) ^ Compiling override/Engine.cpp 1 warning generated. Compiling override/Model.cpp Compiling override/ModuleWidget.cpp In file included from override/Engine.cpp:35: In file included from /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/include/simd-compat/pmmintrin.h:35: /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src/Rack/dep/simde/simde/x86/sse3.h:404:11: warning: '_mm_loaddup_pd' macro redefined [-Wmacro-redefined] # define _mm_loaddup_pd(mem_addr) simde_mm_loaddup_pd(mem_addr) ^ /usr/local/llvm15/lib/clang/15.0.7/include/pmmintrin.h:231:16: note: previous definition is here #define _mm_loaddup_pd(dp) _mm_load1_pd(dp) ^ Compiling override/OpenGlWidget.cpp 1 warning generated. Compiling override/Scene.cpp Compiling Rack/dep/osdialog/osdialog.c Compiling Rack/dep/tinyexpr/tinyexpr.c Compiling Rack/src/Quantity.cpp Compiling Rack/src/color.cpp Compiling Rack/src/history.cpp Compiling Rack/src/logger.cpp Compiling Rack/src/patch.cpp Compiling Rack/src/random.cpp Compiling Rack/src/settings.cpp Compiling Rack/src/string.cpp Compiling Rack/src/system.cpp Compiling Rack/src/tag.cpp Compiling Rack/src/app/Browser.cpp Compiling Rack/src/app/CableWidget.cpp Compiling Rack/src/app/CircularShadow.cpp Compiling Rack/src/app/Knob.cpp Compiling Rack/src/app/LedDisplay.cpp Compiling Rack/src/app/LightWidget.cpp Compiling Rack/src/app/ModuleLightWidget.cpp Compiling Rack/src/app/MultiLightWidget.cpp Compiling Rack/src/app/ParamWidget.cpp Compiling Rack/src/app/PortWidget.cpp Compiling Rack/src/app/RackScrollWidget.cpp Compiling Rack/src/app/RackWidget.cpp Compiling Rack/src/app/RailWidget.cpp Compiling Rack/src/app/SliderKnob.cpp Compiling Rack/src/app/SvgButton.cpp Compiling Rack/src/app/SvgKnob.cpp Compiling Rack/src/app/SvgPanel.cpp Compiling Rack/src/app/SvgPort.cpp Compiling Rack/src/app/SvgScrew.cpp Compiling Rack/src/app/SvgSlider.cpp Compiling Rack/src/app/SvgSwitch.cpp Compiling Rack/src/app/Switch.cpp Compiling Rack/src/engine/Cable.cpp Compiling Rack/src/engine/LightInfo.cpp Compiling Rack/src/engine/Module.cpp Compiling Rack/src/engine/ParamQuantity.cpp Compiling Rack/src/engine/PortInfo.cpp Compiling Rack/src/plugin/Plugin.cpp Compiling Rack/src/ui/Button.cpp Compiling Rack/src/ui/ChoiceButton.cpp Compiling Rack/src/ui/Label.cpp Compiling Rack/src/ui/List.cpp Compiling Rack/src/ui/Menu.cpp Compiling Rack/src/ui/MenuEntry.cpp Compiling Rack/src/ui/MenuItem.cpp Compiling Rack/src/ui/MenuLabel.cpp Compiling Rack/src/ui/MenuOverlay.cpp Compiling Rack/src/ui/MenuSeparator.cpp Compiling Rack/src/ui/OptionButton.cpp Compiling Rack/src/ui/ProgressBar.cpp Compiling Rack/src/ui/RadioButton.cpp Compiling Rack/src/ui/ScrollWidget.cpp Compiling Rack/src/ui/Scrollbar.cpp Compiling Rack/src/ui/SequentialLayout.cpp Compiling Rack/src/ui/Slider.cpp Compiling Rack/src/ui/TextField.cpp Compiling Rack/src/ui/Tooltip.cpp Compiling Rack/src/ui/common.cpp Compiling Rack/src/widget/FramebufferWidget.cpp Compiling Rack/src/widget/SvgWidget.cpp Compiling Rack/src/widget/Widget.cpp Compiling Rack/src/widget/ZoomWidget.cpp Compiling Rack/src/widget/event.cpp Compiling Rack/src/window/Svg.cpp Creating rack-headless.a gmake[3]: Leaving directory '/wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src' gmake -C Cardinal gmake[3]: Entering directory '/wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src/Cardinal' Compiling CardinalPlugin.cpp Compiling CardinalCommon.cpp Compiling CardinalRemote.cpp Compiling common.cpp In file included from CardinalCommon.cpp:71: In file included from /usr/local/include/lo/lo.h:29: /usr/local/include/lo/lo_types.h:85:28: error: typedef redefinition with different types ('struct lo_server_ *' vs 'void *') typedef struct lo_server_ *lo_server; ^ /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src/CardinalCommon.hpp:90:15: note: previous definition is here typedef void* lo_server; ^ In file included from CardinalCommon.cpp:71: In file included from /usr/local/include/lo/lo.h:29: /usr/local/include/lo/lo_types.h:92:35: error: typedef redefinition with different types ('struct lo_server_thread_ *' vs 'void *') typedef struct lo_server_thread_ *lo_server_thread; ^ /wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src/CardinalCommon.hpp:91:15: note: previous definition is here typedef void* lo_server_thread; ^ Compiling CardinalUI.cpp 2 errors generated. Compiling glfw.cpp gmake[3]: *** [../../dpf/Makefile.plugins.mk:393: ../../build/Cardinal/CardinalCommon.cpp.o] Error 1 gmake[3]: *** Waiting for unfinished jobs.... gmake[3]: Leaving directory '/wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src/Cardinal' gmake[2]: *** [Makefile:128: all] Error 2 gmake[2]: Leaving directory '/wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10/src' gmake[1]: *** [Makefile:139: cardinal] Error 2 gmake[1]: Leaving directory '/wrkdirs/usr/ports/audio/cardinal/work/cardinal-23.10' ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make: stopped in /usr/ports/audio/cardinal