Wednesday, October 31, 2018

Re: powerpc bulk build report

On Tue, 30 Oct 2018 23:45:14 -0600 (MDT)
landry@openbsd.org wrote:

> bulk build on macppc-1.ports.openbsd.org
> started on Fri Oct 12 09:46:26 MDT 2018
> finished at Tue Oct 30 18:15:58 MDT 2018

I recently built some packages on my OpenBSD/macppc machine,
and fixed failures in devel/vte3, textproc/mupdf, multimedia/x265.

> http://build-failures.rhaalovely.net//powerpc/2018-10-12/devel/vte3.log

ports-gcc can't build devel/vte3; this blocks x11/xfce4/terminal and
some other terminal emulators. I added a patch to build it (and get a
working xfce4-terminal). I mailed the patch to maintainers Jasper
Lievisse Adriaanse and Antoine Jacoutot on Monday 29 Oct 2018.

I don't know how to use cvs diff,
but here's a copy of patch-src_app_app_cc:
=begin
$OpenBSD$

Prevent error from ports-gcc.

app.cc:309:39: error: cannot convert 'const GdkRGBA {aka const _GdkRGBA}
to 'gdouble {aka double}' in initialization

Index: src/app/app.cc
--- src/app/app.cc.orig
+++ src/app/app.cc
@@ -306,7 +306,7 @@ class Options { (public)
else
alpha = get_alpha();

- GdkRGBA color{bg_color};
+ GdkRGBA color(bg_color);
color.alpha = alpha;
return color;
}
=end

> http://build-failures.rhaalovely.net//powerpc/2018-10-12/textproc/mupdf.log

mupdf's MD5 code is broken on all big-endian machines.
https://bugs.ghostscript.com/show_bug.cgi?id=699395

I added a small patch (not the one in the bug report) and mailed it to
maintainer Stuart Henderson on Monday. I don't know if MD5 works, but
I can open a few PDF files.

A copy of patch-thirdparty_lcms2_src_cmsmd5_c:
=begin
$OpenBSD$

Fix "error: 'ContextID' undeclared" on big-endian machines.
The argument will get ignored, so it can be NULL.

Index: thirdparty/lcms2/src/cmsmd5.c
--- thirdparty/lcms2/src/cmsmd5.c.orig
+++ thirdparty/lcms2/src/cmsmd5.c
@@ -33,7 +33,7 @@ void byteReverse(cmsUInt8Number * buf, cmsUInt32Number
{
do {

- cmsUInt32Number t = _cmsAdjustEndianess32(ContextID, *(cmsUInt32Number *) buf);
+ cmsUInt32Number t = _cmsAdjustEndianess32(NULL, *(cmsUInt32Number *) buf);
*(cmsUInt32Number *) buf = t;
buf += sizeof(cmsUInt32Number);

=end

> http://build-failures.rhaalovely.net//powerpc/2018-10-12/x11/xfce4/xfce4-whiskermenu.log

"error: expected primary-expression before '{' token"
I didn't fix this one. The '{' begins an initializer list. The error
is from base-gcc; this port might need C++11 and ports-gcc.

I got the error from xfce4-whiskermenu-2.3.0. CVS now has 2.3.0p0,
which adds a line "COMPILER = base-clang ports-gcc base-gcc", so it
will use ports-gcc and might have a chance to build. I have not tried
to build 2.3.0p0. I wonder if base-gcc should not be in COMPILER?

I forgot to contact maintainer Landry Breuil. I would have sent my
build log, but now I see that you already have one.


I have one more failure: multimedia/x265 version 2.9 is broken on all
non-x86 machines, https://bitbucket.org/multicoreware/x265/issues/442

That report has a patch; I mailed that patch (with my own comment) to
maintainer Brad Smith on Monday. I can build x265 but don't know if
it can encode or decode video.

A copy of patch-source_common_cpu_cpp:
=begin
$OpenBSD$

Move the definition of x265::detect512() outside of #if X265_ARCH_X86
to prevent a linker error on non-x86 platforms:
.../libx265.so.16.0: undefined reference to `x265::detect512()'

Patch from Adam Sampson,
https://bitbucket.org/multicoreware/x265/issues/442

Index: source/common/cpu.cpp
--- source/common/cpu.cpp.orig
+++ source/common/cpu.cpp
@@ -110,6 +110,11 @@ const cpu_name_t cpu_names[] =
{ "", 0 },
};

+bool detect512()
+{
+ return(enable512);
+}
+
#if X265_ARCH_X86

extern "C" {
@@ -123,10 +128,6 @@ uint64_t PFX(cpu_xgetbv)(int xcr);
#pragma warning(disable: 4309) // truncation of constant value

No comments:

Post a Comment