tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: FireFox 10.0.1 pkg for testing

So I had a look and there are two problems.

First: the linker does not follow NEEDED entries in shared objects. For
whatever reason (contrary to the documentation) adding the
--copy-dt-needed option did not solve it in my experiments, but just
adding the  required libs past -lnss fixes most unresolved symbols:

  -lnss3 -lplc4 -lplds4 -lnspr4 -lnssutil3

instead of just


The second issue is a bit trickier. If you look at the object generated,
you see:

> objdump -t ipc/chromium/process_util_bsd.o|fgrep kvm
0000000000000000         *UND*  0000000000000000 .hidden kvm_open
0000000000000000         *UND*  0000000000000000 .hidden kvm_getprocs
0000000000000000         *UND*  0000000000000000 .hidden kvm_close

Now this of course is plain wrong. The cause is a bug in /usr/include/cdefs.h:

#define     __BEGIN_DECLS   extern "C" {

This needs to explicitly set the visibility, here is the NetBSD variant of

#if defined(__cplusplus)
#define __BEGIN_EXTERN_C        extern "C" {
#  define __BEGIN_PUBLIC_DECLS  \
        _Pragma("GCC visibility push(default)") __BEGIN_EXTERN_C
#define __BEGIN_DECLS           __BEGIN_PUBLIC_DECLS

Since you can not easily fix this for all existing installs out there
without a time machine, I'd suggest you add something similar around
the #include <kvm.h> for DragonFly in process_util_bsd.cpp.

I am not sure how to best fix the library dependeny issue inside pkgsrc,
but you probably can do that easily. The source patch for the second problem
should be easy, let me know if you want me to handle it.


Home | Main Index | Thread Index | Old Index