On Mon, 20 Jun 2022 at 14:59, Shengjing Zhu <z...@debian.org> wrote:

> On Mon, Jun 20, 2022 at 08:42:51AM +1200, Michael Hudson-Doyle wrote:
> > Ah yes but that patch doesn't actually work in practice. I've been slack
> on
> > this :(
> >
> > IIRC the problem with https://go-review.googlesource.com/c/go/+/339370
> is
> > that lto causes some of the references in the linked executable to
> > disappear, meaning cgo can't do the analysis it needs to do. It's a shame
> > because it's obviously a much cleaner patch...
> >
>
> However CL281314 has its own problem that causes several packages FTBFS
> (#982701, #982714, #982720, #982724, #982734)
>

I think that was a broken version of the patch -- the packages those bugs
affect build fine in Ubuntu now afaics -- but I haven't checked explicitly.


> If CL339370 has problem too, can we try another routine? Like disable lto
> in dh-golang?
>
> If I read doko's message right, we are only going to enable lto by default
> in dpkg-buildflags, not gcc itself. So hacking dh-golang looks more
> sensible to me.
>
> For example adding following line to dh-golang (I didn't test it though):
>
> diff --git a/lib/Debian/Debhelper/Buildsystem/golang.pm
> b/lib/Debian/Debhelper/Buildsystem/golang.pm
> index 60f725a..02f16fe 100644
> --- a/lib/Debian/Debhelper/Buildsystem/golang.pm
> +++ b/lib/Debian/Debhelper/Buildsystem/golang.pm
> @@ -369,6 +369,7 @@ sub _set_goproxy {
>  sub _set_cgo_flags {
>      my $bf = Dpkg::BuildFlags->new();
>      $bf->load_config();
> +    $bf->set_feature("optimize", "lto", 0)
>
>      my @flags = ( "CFLAGS", "CPPFLAGS", "CXXFLAGS", "FFLAGS", "LDFLAGS" );
>      foreach my $flag (@flags) {
>

If that works, it might be a better option for now indeed.

Cheers,
mwh

Reply via email to