Saturday, March 30, 2024

Re: UPDATE: OpenImageIO 2.5.9

On Sat, Mar 30, 2024 at 07:55:58PM +0000, Stuart Henderson wrote:
> On 2024/03/30 11:34, Stuart Henderson wrote:
> > On 2024/03/29 08:20, Stuart Henderson wrote:
> > > On 2024/03/28 21:51, Brad Smith wrote:
> > > > On Thu, Mar 28, 2024 at 04:12:55PM +0000, Stuart Henderson wrote:
> > > > > On 2024/03/25 23:07, Brad Smith wrote:
> > > > > > Here is an update to OpenImageIO 2.5.9.
> > > > >
> > > > > 2.4.17.0 is broken on i386 - 2.5.9 doesn't fix it
> > > >
> > > > I noticed a package missing on amd64 for the last two bulk builds but
> > > > haven't seen anything from naddy@ yet. It builds for me on my amd64
> > > > build host.
> > >
> > > That will have been due to the problem with the cmake update and
> > > tiff - it built on amd64 in the current bulk.
> > >
> > > > This appears to have something to do with the last commit to strutil_test.cpp.
> > > > Try the following..
> > >
> > > Will do.
> >
> > FAILED: src/libutil/CMakeFiles/strutil_test.dir/strutil_test.cpp.o
>
> oops, missed -p0 on the patch command. will try again in the next bulk.

I filed a bug report. Upstream provided a proper fix.


Index: Makefile
===================================================================
RCS file: /cvs/ports/graphics/openimageio/Makefile,v
retrieving revision 1.69
diff -u -p -u -p -r1.69 Makefile
--- Makefile 22 Mar 2024 12:25:32 -0000 1.69
+++ Makefile 30 Mar 2024 23:05:59 -0000
@@ -7,6 +7,7 @@ GH_ACCOUNT = AcademySoftwareFoundation
GH_PROJECT = OpenImageIO
GH_TAGNAME = v2.4.17.0
PKGNAME = ${DISTNAME:L}
+REVISION = 0

SHARED_LIBS += OpenImageIO 14.0 # 2.4.10
SHARED_LIBS += OpenImageIO_Util 9.0 # 2.4.10
Index: patches/patch-src_include_OpenImageIO_detail_farmhash_h
===================================================================
RCS file: patches/patch-src_include_OpenImageIO_detail_farmhash_h
diff -N patches/patch-src_include_OpenImageIO_detail_farmhash_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_include_OpenImageIO_detail_farmhash_h 30 Mar 2024 23:05:59 -0000
@@ -0,0 +1,15 @@
+fix: Restore internals of strhash to compile on 32 bit architectures
+https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4213
+
+Index: src/include/OpenImageIO/detail/farmhash.h
+--- src/include/OpenImageIO/detail/farmhash.h.orig
++++ src/include/OpenImageIO/detail/farmhash.h
+@@ -2097,7 +2097,7 @@ STATIC_INLINE uint64_t Hash64(const char* s, size_t le
+ // May change from time to time, may differ on different platforms, may differ
+ // depending on NDEBUG.
+ STATIC_INLINE size_t Hash(const char* s, size_t len) {
+- return sizeof(size_t) == 8 ? Hash64(s, len) : Hash32(s, len);
++ return sizeof(size_t) == 8 ? size_t(Hash64(s, len)) : size_t(Hash32(s, len));
+ }
+
+ // Hash function for a byte array. For convenience, a 64-bit seed is also
Index: patches/patch-src_include_OpenImageIO_strutil_h
===================================================================
RCS file: patches/patch-src_include_OpenImageIO_strutil_h
diff -N patches/patch-src_include_OpenImageIO_strutil_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_include_OpenImageIO_strutil_h 30 Mar 2024 23:05:59 -0000
@@ -0,0 +1,20 @@
+fix: Restore internals of strhash to compile on 32 bit architectures
+https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4213
+
+Index: src/include/OpenImageIO/strutil.h
+--- src/include/OpenImageIO/strutil.h.orig
++++ src/include/OpenImageIO/strutil.h
+@@ -370,11 +370,11 @@ std::string OIIO_UTIL_API wordwrap (string_view src, i
+
+
+ /// Our favorite "string" hash of a length of bytes. Currently, it is just
+-/// a wrapper for an inlined, constexpr (if C++ >= 14), Cuda-safe farmhash.
++/// a wrapper for an inlined, constexpr, Cuda-safe farmhash.
+ inline constexpr size_t
+ strhash (size_t len, const char *s)
+ {
+- return OIIO::farmhash::inlined::Hash(s, len);
++ return size_t(OIIO::farmhash::inlined::Hash64(s, len));
+ }
+
+
Index: patches/patch-src_libutil_strutil_test_cpp
===================================================================
RCS file: patches/patch-src_libutil_strutil_test_cpp
diff -N patches/patch-src_libutil_strutil_test_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_libutil_strutil_test_cpp 30 Mar 2024 23:05:59 -0000
@@ -0,0 +1,24 @@
+fix: Restore internals of strhash to compile on 32 bit architectures
+https://github.com/AcademySoftwareFoundation/OpenImageIO/pull/4213
+
+Index: src/libutil/strutil_test.cpp
+--- src/libutil/strutil_test.cpp.orig
++++ src/libutil/strutil_test.cpp
+@@ -346,13 +346,13 @@ void
+ test_hash()
+ {
+ using namespace Strutil;
+- OIIO_CHECK_EQUAL(strhash("foo"), 6150913649986995171);
+- OIIO_CHECK_EQUAL(strhash(std::string("foo")), 6150913649986995171);
+- OIIO_CHECK_EQUAL(strhash(string_view("foo")), 6150913649986995171);
++ OIIO_CHECK_EQUAL(strhash("foo"), size_t(6150913649986995171));
++ OIIO_CHECK_EQUAL(strhash(std::string("foo")), size_t(6150913649986995171));
++ OIIO_CHECK_EQUAL(strhash(string_view("foo")), size_t(6150913649986995171));
+ OIIO_CHECK_EQUAL(strhash(""), 0); // empty string hashes to 0
+ // Check longer hash and ensure that it's really constexpr
+ constexpr size_t hash = Strutil::strhash("much longer string");
+- OIIO_CHECK_EQUAL(hash, 16257490369375554819ULL);
++ OIIO_CHECK_EQUAL(hash, size_t(16257490369375554819ULL));
+ }
+
+

No comments:

Post a Comment