diff --git a/src/Makefile.am b/src/Makefile.am index 993dbfd..0668872 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -56,3 +56,13 @@ libsyslog_la_SOURCES = syslog.c syslog.h compat.h libsyslog_la_CPPFLAGS = $(AM_CPPFLAGS) -D_XOPEN_SOURCE=600 libsyslog_la_LDFLAGS = $(AM_LDFLAGS) -version-info 0:0:0 libsyslog_la_LIBADD = $(LTLIBOBJS) + +# Both libsyslog_la and syslogd/logger requires objects like lib/pidfile.o, for +# libsyslog_la, the objects should be compiled with -fPIC, but for +# syslogd/logger, it doesn't need -fPIC, so there is a race issue when the two +# different lib/pidfile.o are compiled at the same time, which would cause errors like: +# ld: syslogd-syslogd.o: in function `main': +# syslogd.c:417: undefined reference to `__pidfile' +# +# Make LIBOBJS depend on LTLIBOBJS to fix the problem. +$(LIBOBJS): $(LTLIBOBJS)