Re: [libcxx22] fallout

Theo Buehler <[email protected]>
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
On Tue, Aug 25, 2026 at 09:55:53PM +0200, Rafael Sadowski wrote:
> On Fri Aug 21, 2026 at 02:15:34PM +0200, Theo Buehler wrote:
> > Here is the directly libcxx22-related breakage of my first bulk.
> > 
> > There may be a few more because mono got stuck with a weird error.  And
> > I did not try to build the V8 monsters: codex, deno, chromiums and a few
> > others because my machine isn't beefy enough. I don't think anything
> > super important is directly affected or hiding behind those. So as far
> > as ports are concerned, I think we can land libcxx22 whenever we want:
> > 
> > audio/ncmpcpp
> > audio/rubberband
> > cad/freecad
> > databases/mongodb/44
> > games/cataclysm-dda
> > games/dxx-rebirth
> > games/flightgear/base
> > games/keeperrl
> > mail/kopano/core
> > misc/subsurface
> > shells/fish/v3
> > textproc/lttoolbox
> > 
> > 
> > misc/subsurface
> > /usr/ports/pobj/subsurface-6.0.5459/subsurface-e0fbda77ef203a5a2539465e9fa44df56e2f5a9e/core/uemis-downloader.cpp:434:9: error: null passed to a callee that requires a non-null argument [-Werror,
> > -Wnonnull]
> >   434 |         return NULL;
> >       |                ^~~~
> 
> OK?
> 
> diff --git a/misc/subsurface/patches/patch-core_uemis-downloader_cpp b/misc/subsurface/patches/patch-core_uemis-downloader_cpp
> new file mode 100644
> index 00000000000..85c640885f3
> --- /dev/null
> +++ b/misc/subsurface/patches/patch-core_uemis-downloader_cpp
> @@ -0,0 +1,21 @@
> +Index: core/uemis-downloader.cpp
> +--- core/uemis-downloader.cpp.orig
> ++++ core/uemis-downloader.cpp
> +@@ -194,7 +194,7 @@ static struct dive *get_dive_by_uemis_diveid(device_da
> + 		if (object_id == d->dcs[0].diveid)
> + 			return d.get();
> + 	}
> +-	return NULL;
> ++	return {};

Maybe there is some C++ magic that fixes this, but I don't think this is
right. The return value is assigned to a non_owned_dive (since the
divelist is an owning_table containing unique_ptrs). Doesn't this leak?

> + }
> + 
> + /* send text to the importer progress bar */
> +@@ -431,7 +431,7 @@ static std::string first_object_id_val(std::string_vie
> + 			return res;
> + 		}
> + 	}
> +-	return NULL;
> ++	return {};

this seems fine.

> + }
> + 
> + /* ultra-simplistic; it doesn't deal with the case when the object_id is
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.