On Tue, Oct 04, 2022 at 12:45:50PM +0100, Stuart Henderson wrote:
> On 2022/09/09 22:06, Brad Smith wrote:
> > Here is an update to OpenAL 1.22.2.
> 
> I guess this is a maintainer timeout by now?
> 
> It probably makes sense to disable picking up pipewire too
> (ALSOFT_BACKEND_PIPEWIRE)

No response so far.

 
Index: Makefile
===================================================================
RCS file: /home/cvs/ports/audio/openal/Makefile,v
retrieving revision 1.60
diff -u -p -u -p -r1.60 Makefile
--- Makefile    11 Mar 2022 18:20:22 -0000      1.60
+++ Makefile    4 Oct 2022 14:39:33 -0000
@@ -1,13 +1,12 @@
 COMMENT =      cross-platform 3D audio API
 
-V =            1.21.1
-EPOCH =                0
+V =            1.22.2
 DISTNAME =     openal-soft-$V
 PKGNAME =      openal-$V
-REVISION =     3
+EPOCH =                0
 CATEGORIES =   audio
 
-SHARED_LIBS =  openal  4.1
+SHARED_LIBS =  openal  4.2
 
 HOMEPAGE =     https://openal-soft.org/
 
@@ -29,6 +28,8 @@ CONFIGURE_ARGS =-DCMAKE_BUILD_TYPE=OpenB
                -DALSOFT_UTILS=On \
                -DALSOFT_EXAMPLES=Off \
                -DALSOFT_REQUIRE_SNDIO=On \
+               -DALSOFT_RTKIT=Off \
+               -DALSOFT_BACKEND_PIPEWIRE=Off \
                -DALSOFT_BACKEND_WAVE=Off \
                -DALSOFT_CPUEXT_SSE=Off \
                -DALSOFT_CPUEXT_SSE2=Off \
Index: distinfo
===================================================================
RCS file: /home/cvs/ports/audio/openal/distinfo,v
retrieving revision 1.13
diff -u -p -u -p -r1.13 distinfo
--- distinfo    25 Jul 2021 17:33:48 -0000      1.13
+++ distinfo    9 Sep 2022 23:10:40 -0000
@@ -1,2 +1,2 @@
-SHA256 (openal-soft-1.21.1.tar.bz2) = 
yK12fpoyMN9mdWohzI6/IYqdRyiPJRQBSDIgTmZq9dg=
-SIZE (openal-soft-1.21.1.tar.bz2) = 524787
+SHA256 (openal-soft-1.22.2.tar.bz2) = 
rpTMlc2na3zG6S44wlMa+CFI5209iM6Zbikooep8PSA=
+SIZE (openal-soft-1.22.2.tar.bz2) = 606151
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: /home/cvs/ports/audio/openal/patches/patch-CMakeLists_txt,v
retrieving revision 1.11
diff -u -p -u -p -r1.11 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt        11 Mar 2022 18:20:22 -0000      1.11
+++ patches/patch-CMakeLists_txt        9 Sep 2022 23:11:22 -0000
@@ -1,7 +1,7 @@
 Index: CMakeLists.txt
 --- CMakeLists.txt.orig
 +++ CMakeLists.txt
-@@ -1398,7 +1398,7 @@ endif()
+@@ -1508,7 +1508,7 @@ endif()
  
  if(ALSOFT_INSTALL_CONFIG)
      install(FILES alsoftrc.sample
Index: patches/patch-alc_alconfig_cpp
===================================================================
RCS file: /home/cvs/ports/audio/openal/patches/patch-alc_alconfig_cpp,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 patch-alc_alconfig_cpp
--- patches/patch-alc_alconfig_cpp      11 Mar 2022 18:20:22 -0000      1.3
+++ patches/patch-alc_alconfig_cpp      9 Sep 2022 23:11:20 -0000
@@ -1,7 +1,7 @@
 Index: alc/alconfig.cpp
 --- alc/alconfig.cpp.orig
 +++ alc/alconfig.cpp
-@@ -318,7 +318,7 @@ void ReadALConfig()
+@@ -364,7 +364,7 @@ void ReadALConfig()
  
  void ReadALConfig()
  {
Index: patches/patch-alc_backends_sndio_cpp
===================================================================
RCS file: patches/patch-alc_backends_sndio_cpp
diff -N patches/patch-alc_backends_sndio_cpp
--- patches/patch-alc_backends_sndio_cpp        11 Mar 2022 18:20:22 -0000      
1.6
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,461 +0,0 @@
-Simplify channel handling in the sndio backend
-620836f173ae6fc4505d0634984e0f2c46166367
-
-Use non-block mode for sndio capture
-1fd4c865fc084f134363db5155361d5483679235
-
-Fix crashes in SndioCapture::recordProc
-a4b0a3d7b3ec271243cfda4780e567e49f2b37b7
-
-Use a local unique_ptr array instead of a struct member
-for the sndio poll fds.
-2df78e49b1359e7603e3816270737c68cccd5b05
-
-Index: alc/backends/sndio.cpp
---- alc/backends/sndio.cpp.orig
-+++ alc/backends/sndio.cpp
-@@ -22,6 +22,7 @@
- 
- #include "backends/sndio.h"
- 
-+#include <poll.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -43,7 +44,12 @@ namespace {
- 
- static const char sndio_device[] = "SndIO Default";
- 
-+struct SioPar : public sio_par {
-+    SioPar() { sio_initpar(this); }
- 
-+    void clear() { sio_initpar(this); }
-+};
-+
- struct SndioPlayback final : public BackendBase {
-     SndioPlayback(ALCdevice *device) noexcept : BackendBase{device} { }
-     ~SndioPlayback() override;
-@@ -56,6 +62,7 @@ struct SndioPlayback final : public BackendBase {
-     void stop() override;
- 
-     sio_hdl *mSndHandle{nullptr};
-+    uint mFrameStep{};
- 
-     al::vector<al::byte> mBuffer;
- 
-@@ -74,39 +81,29 @@ SndioPlayback::~SndioPlayback()
- 
- int SndioPlayback::mixerProc()
- {
--    sio_par par;
--    sio_initpar(&par);
--    if(!sio_getpar(mSndHandle, &par))
--    {
--        mDevice->handleDisconnect("Failed to get device parameters");
--        return 1;
--    }
-+    const size_t frameStep{mFrameStep};
-+    const size_t frameSize{frameStep * mDevice->bytesFromFmt()};
- 
--    const size_t frameStep{par.pchan};
--    const size_t frameSize{frameStep * par.bps};
--
-     SetRTPriority();
-     althrd_setname(MIXER_THREAD_NAME);
- 
-     while(!mKillNow.load(std::memory_order_acquire)
-         && mDevice->Connected.load(std::memory_order_acquire))
-     {
--        al::byte *WritePtr{mBuffer.data()};
--        size_t len{mBuffer.size()};
-+        al::span<al::byte> buffer{mBuffer};
- 
--        mDevice->renderSamples(WritePtr, static_cast<uint>(len/frameSize), 
frameStep);
--        while(len > 0 && !mKillNow.load(std::memory_order_acquire))
-+        mDevice->renderSamples(buffer.data(), static_cast<uint>(buffer.size() 
/ frameSize),
-+            frameStep);
-+        while(!buffer.empty() && !mKillNow.load(std::memory_order_acquire))
-         {
--            size_t wrote{sio_write(mSndHandle, WritePtr, len)};
-+            size_t wrote{sio_write(mSndHandle, buffer.data(), buffer.size())};
-             if(wrote == 0)
-             {
-                 ERR("sio_write failed\n");
-                 mDevice->handleDisconnect("Failed to write playback samples");
-                 break;
-             }
--
--            len -= wrote;
--            WritePtr += wrote;
-+            buffer = buffer.subspan(wrote);
-         }
-     }
- 
-@@ -131,26 +128,12 @@ void SndioPlayback::open(const char *name)
- 
- bool SndioPlayback::reset()
- {
--    sio_par par;
--    sio_initpar(&par);
-+    SioPar par;
- 
--    par.rate = mDevice->Frequency;
--    switch(mDevice->FmtChans)
-+    auto tryfmt = mDevice->FmtType;
-+retry_params:
-+    switch(tryfmt)
-     {
--    case DevFmtMono   : par.pchan = 1; break;
--    case DevFmtQuad   : par.pchan = 4; break;
--    case DevFmtX51Rear: // fall-through - "Similar to 5.1, except using rear 
channels instead of sides"
--    case DevFmtX51    : par.pchan = 6; break;
--    case DevFmtX61    : par.pchan = 7; break;
--    case DevFmtX71    : par.pchan = 8; break;
--
--    // fall back to stereo for Ambi3D
--    case DevFmtAmbi3D : // fall-through
--    case DevFmtStereo : par.pchan = 2; break;
--    }
--
--    switch(mDevice->FmtType)
--    {
-     case DevFmtByte:
-         par.bits = 8;
-         par.sig = 1;
-@@ -159,7 +142,6 @@ bool SndioPlayback::reset()
-         par.bits = 8;
-         par.sig = 0;
-         break;
--    case DevFmtFloat:
-     case DevFmtShort:
-         par.bits = 16;
-         par.sig = 1;
-@@ -168,6 +150,7 @@ bool SndioPlayback::reset()
-         par.bits = 16;
-         par.sig = 0;
-         break;
-+    case DevFmtFloat:
-     case DevFmtInt:
-         par.bits = 32;
-         par.sig = 1;
-@@ -177,70 +160,64 @@ bool SndioPlayback::reset()
-         par.sig = 0;
-         break;
-     }
-+    par.bps = SIO_BPS(par.bits);
-     par.le = SIO_LE_NATIVE;
-+    par.msb = 1;
- 
-+    par.rate = mDevice->Frequency;
-+    par.pchan = mDevice->channelsFromFmt();
-+
-     par.round = mDevice->UpdateSize;
-     par.appbufsz = mDevice->BufferSize - mDevice->UpdateSize;
-     if(!par.appbufsz) par.appbufsz = mDevice->UpdateSize;
- 
--    if(!sio_setpar(mSndHandle, &par) || !sio_getpar(mSndHandle, &par))
--    {
--        ERR("Failed to set device parameters\n");
--        return false;
--    }
-+    try {
-+        if(!sio_setpar(mSndHandle, &par))
-+            throw al::backend_exception{al::backend_error::DeviceError,
-+                "Failed to set device parameters"};
- 
--    if(par.bits != par.bps*8)
--    {
--        ERR("Padded samples not supported (%u of %u bits)\n", par.bits, 
par.bps*8);
--        return false;
--    }
--    if(par.le != SIO_LE_NATIVE)
--    {
--        ERR("Non-native-endian samples not supported (got %s-endian)\n",
--            par.le ? "little" : "big");
--        return false;
--    }
-+        par.clear();
-+        if(!sio_getpar(mSndHandle, &par))
-+            throw al::backend_exception{al::backend_error::DeviceError,
-+                "Failed to get device parameters"};
- 
--    mDevice->Frequency = par.rate;
--
--    if(par.pchan < 2)
--    {
--        if(mDevice->FmtChans != DevFmtMono)
--        {
--            WARN("Got %u channel for %s\n", par.pchan, 
DevFmtChannelsString(mDevice->FmtChans));
--            mDevice->FmtChans = DevFmtMono;
--        }
-+        if(par.bps > 1 && par.le != SIO_LE_NATIVE)
-+            throw al::backend_exception{al::backend_error::DeviceError,
-+                "%s-endian samples not supported", par.le ? "Little" : "Big"};
-+        if(par.bits < par.bps*8 && !par.msb)
-+            throw al::backend_exception{al::backend_error::DeviceError,
-+                "MSB-padded samples not supported (%u of %u bits)", par.bits, 
par.bps*8};
-+        if(par.pchan < 1)
-+            throw al::backend_exception{al::backend_error::DeviceError,
-+                "No playback channels on device"};
-     }
--    else if((par.pchan == 2 && mDevice->FmtChans != DevFmtStereo)
--        || par.pchan == 3
--        || (par.pchan == 4 && mDevice->FmtChans != DevFmtQuad)
--        || par.pchan == 5
--        || (par.pchan == 6 && mDevice->FmtChans != DevFmtX51 && 
mDevice->FmtChans != DevFmtX51Rear)
--        || (par.pchan == 7 && mDevice->FmtChans != DevFmtX61)
--        || (par.pchan == 8 && mDevice->FmtChans != DevFmtX71)
--        || par.pchan > 8)
--    {
--        WARN("Got %u channels for %s\n", par.pchan, 
DevFmtChannelsString(mDevice->FmtChans));
--        mDevice->FmtChans = DevFmtStereo;
-+    catch(al::backend_exception &e) {
-+        if(tryfmt == DevFmtShort)
-+            throw;
-+        par.clear();
-+        tryfmt = DevFmtShort;
-+        goto retry_params;
-     }
- 
--    if(par.bits == 8 && par.sig == 1)
--        mDevice->FmtType = DevFmtByte;
--    else if(par.bits == 8 && par.sig == 0)
--        mDevice->FmtType = DevFmtUByte;
--    else if(par.bits == 16 && par.sig == 1)
--        mDevice->FmtType = DevFmtShort;
--    else if(par.bits == 16 && par.sig == 0)
--        mDevice->FmtType = DevFmtUShort;
--    else if(par.bits == 32 && par.sig == 1)
--        mDevice->FmtType = DevFmtInt;
--    else if(par.bits == 32 && par.sig == 0)
--        mDevice->FmtType = DevFmtUInt;
-+    if(par.bps == 1)
-+        mDevice->FmtType = (par.sig==1) ? DevFmtByte : DevFmtUByte;
-+    else if(par.bps == 2)
-+        mDevice->FmtType = (par.sig==1) ? DevFmtShort : DevFmtUShort;
-+    else if(par.bps == 4)
-+        mDevice->FmtType = (par.sig==1) ? DevFmtInt : DevFmtUInt;
-     else
-+        throw al::backend_exception{al::backend_error::DeviceError,
-+            "Unhandled sample format: %s %u-bit", 
(par.sig?"signed":"unsigned"), par.bps*8};
-+
-+    mFrameStep = par.pchan;
-+    if(par.pchan != mDevice->channelsFromFmt())
-     {
--        ERR("Unhandled sample format: %s %u-bit\n", 
(par.sig?"signed":"unsigned"), par.bits);
--        return false;
-+        WARN("Got %u channel%s for %s\n", par.pchan, (par.pchan==1)?"":"s",
-+            DevFmtChannelsString(mDevice->FmtChans));
-+        if(par.pchan < 2) mDevice->FmtChans = DevFmtMono;
-+        else mDevice->FmtChans = DevFmtStereo;
-     }
-+    mDevice->Frequency = par.rate;
- 
-     setDefaultChannelOrder();
- 
-@@ -287,6 +264,11 @@ void SndioPlayback::stop()
- }
- 
- 
-+/* TODO: This could be improved by avoiding the ring buffer and record thread,
-+ * counting the available samples with the sio_onmove callback and reading
-+ * directly from the device. However, this depends on reasonable support for
-+ * capture buffer sizes apps may request.
-+ */
- struct SndioCapture final : public BackendBase {
-     SndioCapture(ALCdevice *device) noexcept : BackendBase{device} { }
-     ~SndioCapture() override;
-@@ -323,40 +305,65 @@ int SndioCapture::recordProc()
- 
-     const uint frameSize{mDevice->frameSizeFromFmt()};
- 
-+    int nfds_pre{sio_nfds(mSndHandle)};
-+    if(nfds_pre <= 0)
-+    {
-+        mDevice->handleDisconnect("Incorrect return value from sio_nfds(): 
%d", nfds_pre);
-+        return 1;
-+    }
-+
-+    auto fds = std::make_unique<pollfd[]>(static_cast<uint>(nfds_pre));
-+
-     while(!mKillNow.load(std::memory_order_acquire)
-         && mDevice->Connected.load(std::memory_order_acquire))
-     {
--        auto data = mRing->getWriteVector();
--        size_t todo{data.first.len + data.second.len};
--        if(todo == 0)
-+        /* Wait until there's some samples to read. */
-+        const int nfds{sio_pollfd(mSndHandle, fds.get(), POLLIN)};
-+        if(nfds <= 0)
-         {
--            static char junk[4096];
--            sio_read(mSndHandle, junk,
--                minz(sizeof(junk)/frameSize, mDevice->UpdateSize)*frameSize);
-+            mDevice->handleDisconnect("Failed to get polling fds: %d", nfds);
-+            break;
-+        }
-+        int pollres{::poll(fds.get(), static_cast<uint>(nfds), 2000)};
-+        if(pollres < 0)
-+        {
-+            if(errno == EINTR) continue;
-+            mDevice->handleDisconnect("Poll error: %s", strerror(errno));
-+            break;
-+        }
-+        if(pollres == 0)
-             continue;
-+
-+        const int revents{sio_revents(mSndHandle, fds.get())};
-+        if((revents&POLLHUP))
-+        {
-+            mDevice->handleDisconnect("Got POLLHUP from poll events");
-+            break;
-         }
-+        if(!(revents&POLLIN))
-+            continue;
- 
--        size_t total{0u};
--        data.first.len  *= frameSize;
--        data.second.len *= frameSize;
--        todo = minz(todo, mDevice->UpdateSize) * frameSize;
--        while(total < todo)
-+        auto data = mRing->getWriteVector();
-+        al::span<al::byte> buffer{data.first.buf, data.first.len*frameSize};
-+        while(!buffer.empty())
-         {
--            if(!data.first.len)
--                data.first = data.second;
-+            size_t got{sio_read(mSndHandle, buffer.data(), buffer.size())};
-+            if(got == 0) break;
- 
--            size_t got{sio_read(mSndHandle, data.first.buf, minz(todo-total, 
data.first.len))};
--            if(!got)
-+            mRing->writeAdvance(got / frameSize);
-+            buffer = buffer.subspan(got);
-+            if(buffer.empty())
-             {
--                mDevice->handleDisconnect("Failed to read capture samples");
--                break;
-+                data = mRing->getWriteVector();
-+                buffer = {data.first.buf, data.first.len*frameSize};
-             }
--
--            data.first.buf += got;
--            data.first.len -= got;
--            total += got;
-         }
--        mRing->writeAdvance(total / frameSize);
-+        if(buffer.empty())
-+        {
-+            /* Got samples to read, but no place to store it. Drop it. */
-+            static char junk[4096];
-+            sio_read(mSndHandle, junk, sizeof(junk) - 
(sizeof(junk)%frameSize));
-+        }
-     }
- 
-     return 0;
-@@ -371,76 +378,80 @@ void SndioCapture::open(const char *name)
-         throw al::backend_exception{al::backend_error::NoDevice, "Device name 
\"%s\" not found",
-             name};
- 
--    mSndHandle = sio_open(nullptr, SIO_REC, 0);
-+    mSndHandle = sio_open(nullptr, SIO_REC, true);
-     if(mSndHandle == nullptr)
-         throw al::backend_exception{al::backend_error::NoDevice, "Could not 
open backend device"};
- 
--    sio_par par;
--    sio_initpar(&par);
--
-+    SioPar par;
-     switch(mDevice->FmtType)
-     {
-     case DevFmtByte:
--        par.bps = 1;
-+        par.bits = 8;
-         par.sig = 1;
-         break;
-     case DevFmtUByte:
--        par.bps = 1;
-+        par.bits = 8;
-         par.sig = 0;
-         break;
-     case DevFmtShort:
--        par.bps = 2;
-+        par.bits = 16;
-         par.sig = 1;
-         break;
-     case DevFmtUShort:
--        par.bps = 2;
-+        par.bits = 16;
-         par.sig = 0;
-         break;
-     case DevFmtInt:
--        par.bps = 4;
-+        par.bits = 32;
-         par.sig = 1;
-         break;
-     case DevFmtUInt:
--        par.bps = 4;
-+        par.bits = 32;
-         par.sig = 0;
-         break;
-     case DevFmtFloat:
-         throw al::backend_exception{al::backend_error::DeviceError,
-             "%s capture samples not supported", 
DevFmtTypeString(mDevice->FmtType)};
-     }
--    par.bits = par.bps * 8;
-+    par.bps = SIO_BPS(par.bits);
-     par.le = SIO_LE_NATIVE;
--    par.msb = SIO_LE_NATIVE ? 0 : 1;
-+    par.msb = 1;
-     par.rchan = mDevice->channelsFromFmt();
-     par.rate = mDevice->Frequency;
- 
-     par.appbufsz = maxu(mDevice->BufferSize, mDevice->Frequency/10);
--    par.round = minu(par.appbufsz, mDevice->Frequency/40);
-+    par.round = minu(par.appbufsz/2, mDevice->Frequency/40);
- 
--    mDevice->UpdateSize = par.round;
--    mDevice->BufferSize = par.appbufsz;
--
-     if(!sio_setpar(mSndHandle, &par) || !sio_getpar(mSndHandle, &par))
-         throw al::backend_exception{al::backend_error::DeviceError,
-             "Failed to set device praameters"};
- 
--    if(par.bits != par.bps*8)
-+    if(par.bps > 1 && par.le != SIO_LE_NATIVE)
-         throw al::backend_exception{al::backend_error::DeviceError,
-+            "%s-endian samples not supported", par.le ? "Little" : "Big"};
-+    if(par.bits < par.bps*8 && !par.msb)
-+        throw al::backend_exception{al::backend_error::DeviceError,
-             "Padded samples not supported (got %u of %u bits)", par.bits, 
par.bps*8};
- 
--    if(!((mDevice->FmtType == DevFmtByte && par.bits == 8 && par.sig != 0)
--        || (mDevice->FmtType == DevFmtUByte && par.bits == 8 && par.sig == 0)
--        || (mDevice->FmtType == DevFmtShort && par.bits == 16 && par.sig != 0)
--        || (mDevice->FmtType == DevFmtUShort && par.bits == 16 && par.sig == 
0)
--        || (mDevice->FmtType == DevFmtInt && par.bits == 32 && par.sig != 0)
--        || (mDevice->FmtType == DevFmtUInt && par.bits == 32 && par.sig == 0))
--        || mDevice->channelsFromFmt() != par.rchan || mDevice->Frequency != 
par.rate)
-+    auto match_fmt = [](DevFmtType fmttype, const sio_par &par) -> bool
-+    {
-+        return (fmttype == DevFmtByte && par.bps == 1 && par.sig != 0)
-+            || (fmttype == DevFmtUByte && par.bps == 1 && par.sig == 0)
-+            || (fmttype == DevFmtShort && par.bps == 2 && par.sig != 0)
-+            || (fmttype == DevFmtUShort && par.bps == 2 && par.sig == 0)
-+            || (fmttype == DevFmtInt && par.bps == 4 && par.sig != 0)
-+            || (fmttype == DevFmtUInt && par.bps == 4 && par.sig == 0);
-+    };
-+    if(!match_fmt(mDevice->FmtType, par) || mDevice->channelsFromFmt() != 
par.rchan
-+        || mDevice->Frequency != par.rate)
-         throw al::backend_exception{al::backend_error::DeviceError,
-             "Failed to set format %s %s %uhz, got %c%u %u-channel %uhz 
instead",
-             DevFmtTypeString(mDevice->FmtType), 
DevFmtChannelsString(mDevice->FmtChans),
--            mDevice->Frequency, par.sig?'s':'u', par.bits, par.rchan, 
par.rate};
-+            mDevice->Frequency, par.sig?'s':'u', par.bps*8, par.rchan, 
par.rate};
- 
-     mRing = RingBuffer::Create(mDevice->BufferSize, par.bps*par.rchan, false);
-+    mDevice->BufferSize = static_cast<uint>(mRing->writeSpace());
-+    mDevice->UpdateSize = par.round;
- 
-     setDefaultChannelOrder();
- 
Index: patches/patch-common_threads_cpp
===================================================================
RCS file: patches/patch-common_threads_cpp
diff -N patches/patch-common_threads_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-common_threads_cpp    10 Sep 2022 01:38:28 -0000
@@ -0,0 +1,34 @@
+Recognize void(pthread_t,const char*)
+e6fe5bc33485211b03242a193eb9a981916efee1
+
+Index: common/threads.cpp
+--- common/threads.cpp.orig
++++ common/threads.cpp
+@@ -100,7 +100,8 @@ namespace {
+ 
+ using setname_t1 = int(*)(const char*);
+ using setname_t2 = int(*)(pthread_t, const char*);
+-using setname_t3 = int(*)(pthread_t, const char*, void*);
++using setname_t3 = void(*)(pthread_t, const char*);
++using setname_t4 = int(*)(pthread_t, const char*, void*);
+ 
+ void setname_caller(setname_t1 func, const char *name)
+ { func(name); }
+@@ -109,6 +110,9 @@ void setname_caller(setname_t2 func, const char *name)
+ { func(pthread_self(), name); }
+ 
+ void setname_caller(setname_t3 func, const char *name)
++{ func(pthread_self(), name); }
++
++void setname_caller(setname_t4 func, const char *name)
+ { func(pthread_self(), "%s", static_cast<void*>(const_cast<char*>(name))); }
+ 
+ } // namespace
+@@ -125,6 +129,7 @@ void althrd_setname(const char *name)
+     std::ignore = static_cast<void(*)(setname_t1,const 
char*)>(&setname_caller);
+     std::ignore = static_cast<void(*)(setname_t2,const 
char*)>(&setname_caller);
+     std::ignore = static_cast<void(*)(setname_t3,const 
char*)>(&setname_caller);
++    std::ignore = static_cast<void(*)(setname_t4,const 
char*)>(&setname_caller);
+ }
+ 
+ #ifdef __APPLE__
Index: pkg/PLIST
===================================================================
RCS file: /home/cvs/ports/audio/openal/pkg/PLIST,v
retrieving revision 1.13
diff -u -p -u -p -r1.13 PLIST
--- pkg/PLIST   11 Mar 2022 18:20:22 -0000      1.13
+++ pkg/PLIST   10 Sep 2022 01:41:10 -0000
@@ -9,8 +9,9 @@ include/AL/efx-presets.h
 include/AL/efx.h
 lib/cmake/
 lib/cmake/OpenAL/
-lib/cmake/OpenAL/OpenALConfig-openbsd.cmake
 lib/cmake/OpenAL/OpenALConfig.cmake
+lib/cmake/OpenAL/OpenALTargets-openbsd.cmake
+lib/cmake/OpenAL/OpenALTargets.cmake
 @lib lib/libopenal.so.${LIBopenal_VERSION}
 lib/pkgconfig/openal.pc
 share/examples/openal/

Reply via email to