Hi Mark,
On Sat, Jan 31, 2026 at 02:49:53PM +0000, Mark Brown wrote:
> I was looking for some engagement from doko on the issues his upload had
> created there and any plan for cleaning it up in a minimally disruptive
> way, Aurelien seemed unenthusiastic about just uploading too. The whole
> thing does indicate a lack of urgency about keeping things in a good
> state.
Indeed, the state is a bit messy on the toolchain side. As I learned,
this also entangles linux, which would like to migrate 6.18 before
dropping s390. I hope that Matthias an Aurelien figure this out somehow.
> I had been hoping for some clarification from you there. The problem
> with your patch is that it is hard to understand what it is doing, it's
> at least three different changes mashed together which doesn't help. If
> you can either clarify the patch or provide a patch series which is more
> comprehensible I'll take a look, otherwise at some point I'll probably
> just write my own.
Thanks for stating this explicitly!
The one main change is the addition of -lz while linking minizip. I
think you pretty much nailed it yourself:
| One
| of the big bits is that the random change to -lz is I *think* there
| because almost all native build environments will end up working due to
| the host having a zlib while cross build (especially bootstrap)
| environments are more likely to be smaller so happen to show an issue
| which is masked.
Yes. I also think that it is fairly obvious that linking minizip
requires linking libz.so and nothing in there was previously doing it
explicitly.
The debian/rules changes do presently include a fair bit of cleanup that
you might or might not want to skip. For instance, you individually
assign a bit of DEB_HOST_* variables. "include
/usr/share/dpkg/architecture.mk" achieves the same. You can skip this.
Another change I added was moving -Wall -D_REENTRANT from CFLAGS to
DEB_CFLAGS_MAINT_APPEND. The latter variable influences dpkg-buildflags
and makes it emit those flags when it is asked for CFLAGS. Then dpkg's
buildflags.mk initializes CFLAGS and a few more. Again, you can skip
this.
Further down, you branch on the architecture values to determine a
suitable AR. This is replaced with dpkg's buildtools.mk. You can also
skip this.
I opted for exporting a few of these recognizing their use in several
commands. This is what reduces the main configure invocations removing
some of the repetition. This is also skippable.
The other crucial piece of the patch is replacing the minizip configure
invocation with dh_auto_configure --sourcedirectory=contrib/minizip.
Among other things, debhelper passes --build and --host flags. Besides
the addition of -lz, this is the main change needed to make things cross
buildable. If you prefer the explicit configure invocation, explicitly
pass
--build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
and it'll also fix cross compilation. You can pass these flags for
native builds without any harm.
The reduction of zlib configure invocations is repeated for multilibs.
Skippable as well.
Do you find this detailed explanation helpful? Would you prefer having
the two key changes as individual and minimal patches?
Helmut