[package - 140releng-armv7-quarterly][math/PDL] Failed for PDL-2.084 in build

From: <pkg-fallout_at_FreeBSD.org>
Date: Thu, 28 Mar 2024 03:59:00 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:     sunpoet@FreeBSD.org
Log URL:        https://pkg-status.freebsd.org/ampere1/data/140releng-armv7-quarterly/2f4b45697768/logs/PDL-2.084.log
Build URL:      https://pkg-status.freebsd.org/ampere1/build.html?mastername=140releng-armv7-quarterly&build=2f4b45697768
Log:

=>> Building math/PDL
build started at Thu Mar 28 03:45:24 UTC 2024
port directory: /usr/ports/math/PDL
package name: PDL-2.084
building for: FreeBSD 140releng-armv7-quarterly-job-09 14.0-RELEASE-p5 FreeBSD 14.0-RELEASE-p5 1400097 arm
maintained by: sunpoet@FreeBSD.org
Makefile datestamp: -rw-r--r--  1 root wheel 5013 Jan 16 01:02 /usr/ports/math/PDL/Makefile
Ports top last git commit: 2f4b45697
Ports top unclean checkout: no
Port dir last git commit: 72cbe1a32
Port dir unclean checkout: no
Poudriere version: poudriere-git-3.4.1-1-g1e9f97d6
Host OSVERSION: 1500006
Jail OSVERSION: 1400097
Job Id: 09

---Begin Environment---
SHELL=/bin/sh
OSVERSION=1400097
UNAME_v=FreeBSD 14.0-RELEASE-p5 1400097
UNAME_r=14.0-RELEASE-p5
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/140releng-armv7-quarterly/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/140releng-armv7-quarterly/09/.p
OUTPUT_REDIRECTED_STDOUT=3
P_PORTS_FEATURES=FLAVORS SUBPACKAGES SELECTED_OPTIONS
MASTERNAME=140releng-armv7-quarterly
SCRIPTPREFIX=/usr/local/share/poudriere
SCRIPTNAME=bulk.sh
OLDPWD=/usr/local/poudriere/data/.m/140releng-armv7-quarterly/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 PDL-2.084:
     F77=on: Enable PDL::Minuit and PDL::Slatec
     FFTW=on: Enable PDL::FFTW
     GD=off: Enable PDL::IO::GD
     GSL=off: Enable PDL::GSL interface
     HDF=off: Enable PDL::IO::HDF interface
     OPENGL=off: Enable PDL::Graphics::TriD and OpenGL
     PGPLOT=on: Enable PDL::Graphics::PGPLOT
     PLPLOT=off: Enable PDL::Graphics::PLplot
     PROJ=off: Enable PDL::GIS::Proj interface
     READLINE=off: Use GNU readline
     SINK=off: Include PDL kitchen sink
===> Use 'make config' to modify these settings
---End OPTIONS List---

--MAINTAINER--
sunpoet@FreeBSD.org
--End MAINTAINER--

--CONFIGURE_ARGS--
INSTALLDIRS="site" CC="cc" CCFLAGS="-O2 -pipe  -fstack-protector-strong -fno-strict-aliasing " LD="cc" PREFIX="/usr/local"  INSTALLPRIVLIB="/usr/local/lib" INSTALLARCHLIB="/usr/local/lib"
--End CONFIGURE_ARGS--

--CONFIGURE_ENV--
MAKE=gmake ac_cv_path_PERL=/usr/local/bin/perl ac_cv_path_PERL_PATH=/usr/local/bin/perl  PERL_USE_UNSAFE_INC=1 XDG_DATA_HOME=/wrkdirs/usr/ports/math/PDL/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/math/PDL/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/math/PDL/work/.cache  HOME=/wrkdirs/usr/ports/math/PDL/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/math/PDL/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/math/PDL/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig SHELL=/bin/sh CONFIG_SHELL=/bin/sh PERL_EXTUTILS_AUTOINSTALL="--skipdeps" PERL_MM_USE_DEFAULT="YES"
--End CONFIGURE_ENV--

--MAKE_ENV--
PERL_USE_UNSAFE_INC=1 XDG_DATA_HOME=/wrkdirs/usr/ports/math/PDL/work  XDG_CONFIG_HOME=/wrkdirs/usr/ports/math/PDL/work  XDG_CACHE_HOME=/wrkdirs/usr/ports/math/PDL/work/.cache  HOME=/wrkdirs/usr/ports/math/PDL/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/math/PDL/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/math/PDL/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="cc" CFLAGS="-O2 -pipe  -fstack-protector-strong -fno-strict-aliasing "  CPP="cpp" CPPFLAGS=""  LDFLAGS=" -fstack-protector-strong " LIBS=""  CXX="c++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing  "  MANPREFIX="/usr/local" 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 064
4"  BSD_INSTALL_MAN="install  -m 444"
--End MAKE_ENV--

--PLIST_SUB--
 OSREL=14.0 PREFIX=%D LOCALBASE=/usr/local  RESETPREFIX=/usr/local LIB32DIR=lib PERL_VERSION=5.36.3  PERL_VER=5.36  PERL5_MAN1=lib/perl5/site_perl/man/man1  PERL5_MAN3=lib/perl5/site_perl/man/man3  SITE_PERL=lib/perl5/site_perl  SITE_ARCH=lib/perl5/site_perl/mach/5.36 DOCSDIR="share/doc/PDL"  EXAMPLESDIR="share/examples/PDL"  DATADIR="share/PDL"  WWWDIR="www/PDL"  ETCDIR="etc/PDL"
--End PLIST_SUB--

--SUB_LIST--
 PREFIX=/usr/local LOCALBASE=/usr/local  DATADIR=/usr/local/share/PDL DOCSDIR=/usr/local/share/doc/PDL EXAMPLESDIR=/usr/local/share/examples/PDL  WWWDIR=/usr/local/www/PDL ETCDIR=/usr/local/etc/PDL
--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)  524288
stack size              (kbytes, -s)  65536
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 ART10 GPLv1+ accepted by the user
===========================================================================
=======================<phase: pkg-depends    >============================
===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0
===>   PDL-2.084 depends on file: /usr/local/sbin/pkg - not found
===>   Installing existing package /packages/All/pkg-1.20.9.pkg
[140releng-armv7-quarterly-job-09] Installing pkg-1.20.9...
[140releng-armv7-quarterly-job-09] Extracting pkg-1.20.9: .......... done
===>   PDL-2.084 depends on file: /usr/local/sbin/pkg - found
===>   Returning to build of PDL-2.084
===========================================================================
=======================<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 ART10 GPLv1+ accepted by the user
===> Fetching all distfiles required by PDL-2.084 for building
===========================================================================
=======================<phase: checksum       >============================
===== env: NO_DEPENDS=yes USER=root UID=0 GID=0
===>  License ART10 GPLv1+ accepted by the user
===> Fetching all distfiles required by PDL-2.084 for building
=> SHA256 Checksum OK for PDL-2.084.tar.gz.
===========================================================================
=======================<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 ART10 GPLv1+ accepted by the user
===> Fetching all distfiles required by PDL-2.084 for building
===>  Extracting for PDL-2.084
=> SHA256 Checksum OK for PDL-2.084.tar.gz.
===========================================================================
=======================<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 PDL-2.084
===>  Applying FreeBSD patches for PDL-2.084 from /usr/ports/math/PDL/files
===========================================================================
=======================<phase: build-depends  >============================
===== env: USE_PACKAGE_DEPENDS_ONLY=1 USER=root UID=0 GID=0
===>   PDL-2.084 depends on package: p5-Devel-CheckLib>=1.01 - not found
===>   Installing existing package /packages/All/p5-Devel-CheckLib-1.16.pkg
[140releng-armv7-quarterly-job-09] Installing p5-Devel-CheckLib-1.16...
[140releng-armv7-quarterly-job-09] `-- Installing perl5-5.36.3_1...
[140releng-armv7-quarterly-job-09] `-- Extracting perl5-5.36.3_1: .......... done
[140releng-armv7-quarterly-job-09] Extracting p5-Devel-CheckLib-1.16: ......... done
===>   PDL-2.084 depends on package: p5-Devel-CheckLib>=1.01 - found
===>   Returning to build of PDL-2.084
===>   PDL-2.084 depends on package: p5-ExtUtils-Depends>=0.402 - not found
===>   Installing existing package /packages/All/p5-ExtUtils-Depends-0.8001.pkg
[140releng-armv7-quarterly-job-09] Installing p5-ExtUtils-Depends-0.8001...
[140releng-armv7-quarterly-job-09] Extracting p5-ExtUtils-Depends-0.8001: ....... done
===>   PDL-2.084 depends on package: p5-ExtUtils-Depends>=0.402 - found
<snip>
 7230 |    81 pb = pb + wg * p(i,j)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 81 at (1)
minuitlib/minuit.f:7231:72:

 7231 |    82 pbar(i) = pb - wg * p(i,jh)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 82 at (1)
minuitlib/minuit.f:7598:72:

 7598 |       if (si) 100,100,8
      |                                                                        1
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
minuitlib/minuit.f:7599:72:

 7599 |     8 s(i) = 1.0/dsqrt(si)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 8 at (1)
minuitlib/minuit.f:7601:72:

 7601 |       do 20 j= 1, n
      |                                                                        1
Warning: Fortran 2018 deleted feature: Shared DO termination label 20 at (1)
minuitlib/minuit.f:7602:72:

 7602 |    20 a(i,j) = a(i,j) *s(i)*s(j)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 20 at (1)
minuitlib/minuit.f:7612:72:

 7612 |       if(km1)100,50,40
      |                                                                        1
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
minuitlib/minuit.f:7616:72:

 7616 |    49 a(j,k)=0.
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 49 at (1)
minuitlib/minuit.f:7617:72:

 7617 |    50 if(k-n)51,60,100
      |                                                                        1
Warning: Fortran 2018 deleted feature: Arithmetic IF statement at (1)
minuitlib/minuit.f:7621:72:

 7621 |    59 a(k,j)=0.0
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 59 at (1)
minuitlib/minuit.f:7623:72:

 7623 |    60 do 65 j=1,n
      |                                                                        1
Warning: Fortran 2018 deleted feature: Shared DO termination label 65 at (1)
minuitlib/minuit.f:7624:72:

 7624 |       do 65 k=j,n
      |                                                                        1
Warning: Fortran 2018 deleted feature: Shared DO termination label 65 at (1)
minuitlib/minuit.f:7625:72:

 7625 |    65 a(j,k)=a(j,k)+pp(j)*q(k)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 65 at (1)
minuitlib/minuit.f:7628:72:

 7628 |       do 70 k= 1, j
      |                                                                        1
Warning: Fortran 2018 deleted feature: Shared DO termination label 70 at (1)
minuitlib/minuit.f:7630:72:

 7630 |    70 a(j,k) = a(k,j)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 70 at (1)
minuitlib/minuit.f:7819:72:

 7819 |             do 130 j= 1, i
      |                                                                        1
Warning: Fortran 2018 deleted feature: Shared DO termination label 130 at (1)
minuitlib/minuit.f:7822:72:

 7822 |   130          p(j,i) = p(i,j)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 130 at (1)
gfortran12 -c -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing  -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -o minuitlib/intracfalse.o minuitlib/intracfalse.f
rm -f ../../blib/arch/auto/PDL/Minuit/Minuit.so
LD_RUN_PATH="/usr/local/lib/gcc12/gcc/armv7-portbld-freebsd14.0/12.2.0/../../.." cc  -shared  -L/usr/local/lib/perl5/5.36/mach/CORE -lperl -L/usr/local/lib -fstack-protector-strong  Minuit.o pp-mninit.o pp-mn_abre.o pp-mn_cierra.o pp-mnparm.o pp-mnexcm.o pp-mnpout.o pp-mnstat.o pp-mnemat.o pp-mnerrs.o pp-mncont.o FCN.o minuitlib/futils.o minuitlib/minuit.o minuitlib/intracfalse.o  -o ../../blib/arch/auto/PDL/Minuit/Minuit.so  \
   -L/usr/local/lib/gcc12/gcc/armv7-portbld-freebsd14.0/12.2.0/../../.. -L/usr/lib -lgfortran -lm   \
  
ld: error: relocation R_ARM_MOVW_ABS_NC cannot be used against symbol '.LC0'; recompile with -fPIC
>>> defined in minuitlib/futils.o
>>> referenced by futils.f
>>>               minuitlib/futils.o:(abre_)

ld: error: relocation R_ARM_MOVW_ABS_NC cannot be used against symbol '.LANCHOR0'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnrn15_.part.0)

ld: error: relocation R_ARM_MOVT_ABS cannot be used against symbol '.LC0'; recompile with -fPIC
>>> defined in minuitlib/futils.o
>>> referenced by futils.f
>>>               minuitlib/futils.o:(abre_)

ld: error: relocation R_ARM_MOVT_ABS cannot be used against symbol '.LANCHOR0'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnrn15_.part.0)

ld: error: relocation R_ARM_ABS32 cannot be used against symbol '__stack_chk_guard'; recompile with -fPIC
>>> defined in /lib/libc.so.7
>>> referenced by futils.f
>>>               minuitlib/futils.o:(abre_)

ld: error: relocation R_ARM_MOVW_ABS_NC cannot be used against symbol 'mn7inx_'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mndxdi_)

ld: error: relocation R_ARM_MOVW_ABS_NC cannot be used against symbol '.LC0'; recompile with -fPIC
>>> defined in minuitlib/futils.o
>>> referenced by futils.f
>>>               minuitlib/futils.o:(cierra_)

ld: error: relocation R_ARM_MOVT_ABS cannot be used against symbol 'mn7inx_'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mndxdi_)

ld: error: relocation R_ARM_MOVT_ABS cannot be used against symbol '.LC0'; recompile with -fPIC
>>> defined in minuitlib/futils.o
>>> referenced by futils.f
>>>               minuitlib/futils.o:(cierra_)

ld: error: relocation R_ARM_MOVW_ABS_NC cannot be used against symbol 'mn7ext_'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mndxdi_)

ld: error: relocation R_ARM_ABS32 cannot be used against symbol '__stack_chk_guard'; recompile with -fPIC
>>> defined in /lib/libc.so.7
>>> referenced by futils.f
>>>               minuitlib/futils.o:(cierra_)

ld: error: relocation R_ARM_MOVT_ABS cannot be used against symbol 'mn7ext_'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mndxdi_)

ld: error: relocation R_ARM_MOVW_ABS_NC cannot be used against symbol 'mn7npr_'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnprin_)

ld: error: relocation R_ARM_MOVT_ABS cannot be used against symbol 'mn7npr_'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnprin_)

ld: error: relocation R_ARM_MOVW_ABS_NC cannot be used against symbol 'mn7iou_'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnprin_)

ld: error: relocation R_ARM_MOVW_ABS_NC cannot be used against symbol '.LC1'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnprin_)

ld: error: relocation R_ARM_MOVW_ABS_NC cannot be used against symbol '.LC0'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnprin_)

ld: error: relocation R_ARM_MOVT_ABS cannot be used against symbol 'mn7iou_'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnprin_)

ld: error: relocation R_ARM_MOVT_ABS cannot be used against symbol '.LC1'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnprin_)

ld: error: relocation R_ARM_MOVT_ABS cannot be used against symbol '.LC0'; recompile with -fPIC
>>> defined in minuitlib/minuit.o
>>> referenced by minuit.f
>>>               minuitlib/minuit.o:(mnprin_)

ld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[3]: *** [Makefile:470: ../../blib/arch/auto/PDL/Minuit/Minuit.so] Error 1
gmake[3]: Leaving directory '/wrkdirs/usr/ports/math/PDL/work/PDL-2.084/Libtmp/Minuit'
gmake[2]: *** [Makefile:506: subdirs] Error 2
gmake[2]: Leaving directory '/wrkdirs/usr/ports/math/PDL/work/PDL-2.084/Libtmp'
gmake[1]: *** [Makefile:552: subdirs] Error 2
gmake[1]: Leaving directory '/wrkdirs/usr/ports/math/PDL/work/PDL-2.084'
*** Error code 1

Stop.
make: stopped in /usr/ports/math/PDL