pkgsrc-Bugs archive

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

Re: pkg/40347: sysutils/dbus compilation errros - NetBSD 4.0



>  kre%munnari.OZ.AU@localhost wrote:
>  > dbus-sysdeps-unix.c: In function '_dbus_read_credentials_socket':
>  > dbus-sysdeps-unix.c:1213: error: invalid application of 'sizeof' to
>  > incomplete type 'struct cmsgcred'
>  > dbus-sysdeps-unix.c:1251: error: invalid application of 'sizeof' to
>  > incomplete type 'struct cmsgcred'
>  > gmake[3]: ***  
>
>  That's me who broke it. Sorry about that. Please try the patch from here:
>  http://leaf.dragonflybsd.org/~hasso/pkgsrc-sysutils-dbus-borking.patch

I see an additional problem on NetBSD/macppc 4.0: when trying to
run dbus-daemon (without args it should just print the usage
message), the run-time linker instead prints out:

  Unsupported relocation type 6 in non-PLT relocations

and the program does not run.  This causes sysutils/dbus-glib to
fail to build for NetBSD/macppc 4.0, because it tries to run the
dbus-daemon executable which is part of the dbus package.

It turns out that the origin of this problem is that the dbus
configure script tests to see if gcc accepts the -fPIE and -pie
compilation and linking flags, and gcc does.  However, that
apparently doesn't mean that we universally supports running such
executables on all our platforms.  Therefore, after getting some
hints from some other developers, I've come to the conclusion
that the following addition to the package's Makefile seems to be
the right thing:

# Package tries to use these if gcc accepts them, but that doesn't
# mean that we universally can *run* the executables
BUILDLINK_TRANSFORM+=  rm:-fPIE
BUILDLINK_TRANSFORM+=  rm:-pie

This will create a C compiler wrapper script which removes those
options from the compilation before actually invoking the compiler.

I added those lines right after the existing BUILDLINK_TRANSFORM
setting.  With those lines in place, and the patch quoted above
applied, the new dbus builds and I get the usage message instead
of the above run-time linker error message when I start
dbus-daemon.

I've also applied a similar patch to a NetBSD/i386 4.0 system I
have (on the older dbus version, the one in 2008Q4), and there
doesn't appear to be any noticeable change introduced by the
above addition; dbus-daemon still runs and prints the usage
message if given no arguments.

Best regards,

- Havard


Home | Main Index | Thread Index | Old Index