On Thu, Jan 27, 2022 at 09:05:32AM +0000, Richard W.M. Jones wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=2043092
This is not about the feature itself but about the way it has been
implemented.
During builds LDFLAGS is modified so it contains a build path,
something like:
-Wl,-dT,/builddir/build/BUILD/.package_note-rubygem-nio4r-2.5.2-6.fc36.x86_64.ld
Many builds embed/store LDFLAGS somewhere. For OCaml it gets embedded
in the ocamlopt binary, and in *.cma files. Similar sort of thing
happening in Ruby, Perl, Haskell, Python, ...
This isn't actually true, AFAIK. Python at least exports flags to
extensions, and it uses %extension_ldflags for this purpose. It is
been well known that exporting the flags that the interpreter was
compiled with itself causes problems, so
%extension_cflags/%extension_cxxflags/%extension_ldflags were
introduced for this purpose back in 2018 (rhbz#1543394).
So the best solution would be to update ocamlopt to use
%extension_*flags. (If it cannot be fixed like this, opting out of
the package note for ocaml is also an option, but it's not a nice
solution. Using %extension_*flags is good for other reasons too.)
But the problem is more general than this too. It also turns up in
some *.pc (pkgconf) files.
That's a bug too.
I think this change should be reverted until a cleaner way can be
found to implement it.
I'm all for making better, but please make concrete
proposals.
Just saying "revert, revert" because some corner case is not satisfied,
when a simple opt-out exists, is IMO not useful.
Zbyszek