Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Failure to build "current" emacs from pkgsrc on current
Andreas Gustafsson <gson%gson.org@localhost> writes:
> Riccardo Mottola wrote:
>> while doing a full update with today's pkgsrc con current, I get:
> [..]
>> /usr/pkgsrc/editors/emacs26/work/.buildlink/lib/libgdk-3.so: undefined
>> reference to `epoxy_has_glx'
>
> I believe this is a pkgsrc-current issue and not a NetBSD-current nor
> emacs-current issue, because I'm also getting the "undefined reference
> to `epoxy_has_glx'" when I try to build emacs25 after I updated pkgsrc
> (but not the OS) on a NetBSD 8.0/amd64 system.
Thanks - so this is almost certainly not a stray .h issue on Riccardo's
system.
> Also, I tried to reproduce the problem by building emacs25 on a
> freshly installed NetBSD-current system with no pre-existing
> packages, but there it built successfully.
And did it build libepoxy in this case?
[very fuzzy] This suggests that libepoxy is sometimes used if present in
an inconsistent way, perhaps due to shadowing of includes.
> On the 8.0 system where the emacs25 build fails, libgdk-3.so has
> a reference to epoxy_has_glx:
>
> $ nm /usr/pkg/lib/libgdk-3.so|grep epoxy_has_glx
> U epoxy_has_glx
> U epoxy_has_glx_extension
> $
>
> Adding -Wl,--verbose to the emacs25 link line, I see that it's
> trying to link libepoxy from /usr/X11R7/lib:
>
> libepoxy.so.0 needed by /usr/pkgsrc/editors/emacs25/work/.buildlink/lib/libgtk-3.so
> found libepoxy.so.0 at /usr/X11R7/lib/libepoxy.so.0
>
> which does not define expoxy_has_glx.
On my -7 system, there is no libepoxy in /usr/X11R7. That probably
explains why I don't see this.
On my -8 system, there is libepoxy in /usr/X11R7 which defines
epoxy_has_glx_extension but not epoxy_has_glx.
> On the -current system where the emacs25 build succeeds, libgdk-3.so
> does not have a reference to epoxy_has_glx:
>
> $ nm /usr/pkg/lib/libgdk-3.so|grep epoxy_has_glx
> U epoxy_has_glx_extension
> $
> I have no X11_TYPE definition in mk.conf, being of the firm conviction
> that the default settings need to work.
Agreed. Really both need to work.
It seems that there are perhaps different headers and in the bad case
the header with epoxy_has_glx is picked up but the lib without it is
used.
-8 has 1.3.1, and pkgsrc 1.4.3
So to resolve:
- I realize libepoxy is in different paths, but the shlib major is 0
in both cases, yet they define differenet symbols. That seemed
wrong at first, but pkgsrc has the extra and is newer, so it's not
actually wrong.
- We don't have a good way to force using the pkg vs native version of
many libs separately due to how
- I don't see a builtin.mk for epoxy. Adding one may finesse the
issue by having the base version be good enough and thus have the
pkg version not installed.
- we could add the symbol to base, or upgrade base epoxy. That's just
barely allowed, since the shlib major isn't changing.
- we could patch gtk3 to not use it, even if present, if it doesn't
add anything important.
Home |
Main Index |
Thread Index |
Old Index