[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/42265: devel/libdaemon build complains (and fails) with undefined libc symbols (NetBSD 4.0/i386)
>Synopsis: devel/libdaemon build complains (and fails) with undefined
>libc symbols (NetBSD 4.0/i386)
>Arrival-Date: Wed Nov 04 14:55:00 +0000 2009
>Originator: Robert Elz
>Release: NetBSD 4.0 / i386
Prince of Songkla University
System: NetBSD jade.coe.psu.ac.th 4.0_STABLE NetBSD 4.0_STABLE
(JADE-1.696-20080517) #9: Fri May 23 18:55:13 ICT 2008
Attempting to build devel/libdaemon (libdaemon-0.14) fails with
many undefined symbol errors at the link stage - with the undefined
symbols all being things we'd expect to find in libc.
I use pkg_comp with libkver and NetBSD 4.0 sets installed
(except x* but that's irrelevant here). This is a fairly
good approximation to a pure, unmodified, NetBSD 4.0 installation.
In that environment I see ...
===> Building for libdaemon-0.14
Making all in libdaemon
.libs/dlog.o: In function `daemon_ident_from_argv0':
dlog.c:(.text+0x1b): undefined reference to `strrchr'
.libs/dlog.o: In function `daemon_logv':
dlog.c:(.text+0x4d): undefined reference to `__errno'
dlog.c:(.text+0x78): undefined reference to `openlog'
dlog.c:(.text+0x8c): undefined reference to `vsyslog'
dlog.c:(.text+0xa9): undefined reference to `__errno'
dlog.c:(.text+0xc5): undefined reference to `__sF'
dlog.c:(.text+0xce): undefined reference to `vfprintf'
dlog.c:(.text+0xd8): undefined reference to `fputc'
dlog.c:(.text+0xed): undefined reference to `__sF'
And many more similar errors (from lots of different
source files and functions) but all apparently libc symbols.
This doesn't appear to be something that pkgsrc is doing,
I get the same results if I build outside pkgsrc.
I have taken a look to see what the difference is between
this version of libdaemon (0.14) and the previous version (0.13)
which worked fine (well, built fine, I am not certain if I
have used any of the packages that use it, but probably).
Aside from large numbers of autodisaster changes, and a few
obvious bug fixes, I see very few changes, the one change I
do see that looks material is ...
< LIBDAEMON_VERSION_INFO = 4:0:4
> LDFLAGS_NOUNDEFINED = -Wl,--no-undefined
> LIBDAEMON_VERSION_INFO = 5:0:5
That's from libdaemon/Makefile - the (generated) Makefile for the
directory where the problems occur.
If I remove the "-Wl,--no-undefined" (outside pkgsrc for now)
the library builds fine. On the other hand, if I add "-lc"
as a library explicitly (instead of that change), it also
It seems obvious (which probably means it is wrong) that the
"--no-undefined" linker option is why we're getting undefined
symbols reported as errors - but it also seems obvious that this
is a deliberate change, and I also note that no-one else seems
to be observing any problems with this, so perhaps there's a
difference between NetBSD 4 and NetBSD 5 & current in this
Other random info that might perhaps help from what I have
discovered - libdaemon has its own libtool, pkgsrc claims to
replace use of that with the standard pkgsrc libtool (and
probably does, it is hard to tell) but in any case it makes
no difference (I deliberately and definitely replaced the
libtool script included with pkgsrc's libtool when I did a
build outside pkgsrc, and tried that, I also tried with the
libtool supplied, none of that made any difference).
Whether the right thing is to link against libc and keep
the "--no-undefined-symbols" check/error, or whether not linking
against libc (which would be done again when libdaemon is
used with any other application anyway, I would expect) and
then removing the deliberately added error check, and how
much of this should depend upon NetBSD 4 rather than simply
applying generally I really have no idea.
However, this package is needed for building quite a bit of
other stuff, so I have marked this as a high priority bug...
Main Index |
Thread Index |