compilation error on CURRENT-20100118
Julien ÉLIE
julien at trigofacile.com
Thu Jan 21 20:34:12 UTC 2010
Hi Katsuhiro,
> cd backends && make all
> gcc -multiply_defined suppress -o inndf inndf.o
> /tmp/inn-CURRENT-20100118/storage/libstorage.a
> /tmp/inn-CURRENT-20100118/history/libinnhist.a
> /usr/bin/ld: Undefined symbols:
> _OVrealnow
> _OVstatall
> collect2: ld returned 1 exit status
> make[1]: *** [inndf] Error 1
> make: *** [all-backends] Error 2
>
> I can create inndf manually by adding ov.o at the end of the line,
> but it's just for workaround.
That's strange because libstorage.a should normally contain ov.o:
SOURCES = expire.c interface.c methods.c ov.c overdata.c overview.c \
ovmethods.c $(METHOD_SOURCES)
OBJECTS = $(SOURCES:.c=.o)
libstorage.a: $(OBJECTS)
ar r $@ $(OBJECTS)
$(RANLIB) libstorage.a
Why would we have to explicitly use another link to ov.o?
> overchan cannot be created and also
> storage/tradindexed/tdx-util not with the same problem.
What's the problem for tdx-util then?
> I just remember, a few years ago, I saw the same problem
> creating storage/buffindexed/buffindexed_d and added ov.o
> at the link stage.
I see that was when you added shared memory support on ovbuff.
+ buffindexed/shmem.o expire.o ov.o
Strange. Maybe a platform-specific issue?
(I have just tried on Debian without "ov.o" for buffindexed_d
and it worked fined.)
--
Julien ÉLIE
« As promised, here's the patch to do this. Not only is it good
(it compiles), but it is perfect (it boots). Up 9 minutes so far
without problems. » (Richard Gooch on linux-kernel)
More information about the inn-workers
mailing list