[EMAIL PROTECTED] writes: > I'm trying to compile lilypond and as of 0.64 version, > I have the following problem (I had it also with previous versions) : > when linking, the linker complains about some symbols that are > undefined : Does the attached message+patch work for you? You should run autoconf and configure after applying. PS. Could you address questions to the mailing list from now? --Multipart_Wed_May_13_17:34:46_1998-1 Content-Type: text/plain; charset=US-ASCII Jan Nieuwenhuizen <[EMAIL PROTECTED]> writes: > We expected to get a lot of positive reactions, but the awful > quietness made us even long for some bug-reports. Here you are :-) I finally found time to investigate the problems on IRIX5 and SunOS4. I found a simple test case that identifies systems that won't properly instantiate templates automatically, added the test to the configure.in script, and fixed template.cc so that it instantiates templates when needed. The Documentation/Makefile problem is still bugging me, BTW. -- Alexandre Oliva mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] http://www.dcc.unicamp.br/~oliva Universidade Estadual de Campinas, SP, Brasil --Multipart_Wed_May_13_17:34:46_1998-1 Content-Type: application/octet-stream; type=patch Content-Disposition: attachment; filename="lily.diff" Content-Transfer-Encoding: 7bit --- Documentation/Makefile~ Tue May 12 06:10:00 1998 +++ Documentation/Makefile Wed May 13 03:51:22 1998 @@ -47,9 +47,9 @@ cd $(depth); for i in $(README_TOPFILES); do \ ln -f $$i Documentation/$(outdir); done -$(outdir)/%$(DOTTEXT): $(depth)/%$(DOTTEXT) - rm -f $@ - ln $< $@ +#$(outdir)/%$(DOTTEXT): $(depth)/%$(DOTTEXT) +# rm -f $@ +# ln $< $@ README_TOPFILES=NEWS DEDICATION TODO ANNOUNCE-0.1 README_TXTFILES=$(addprefix $(outdir)/,$(addsuffix $(DOTTEXT), $(README_TOPFILES))) --- ./config.hh.in~ Sat Apr 18 21:40:29 1998 +++ ./config.hh.in Wed May 13 17:31:46 1998 @@ -9,3 +9,6 @@ /* define if you have snprintf */ #define HAVE_SNPRINTF 0 + +/* define if explicit instantiation is needed */ +#undef NEED_EXPLICIT_INSTANTIATION --- ./configure.in~ Tue May 12 07:10:01 1998 +++ ./configure.in Wed May 13 17:30:25 1998 @@ -60,6 +60,18 @@ AC_LANG_CPLUSPLUS +AC_CACHE_CHECK([whether explicit instantiation is needed], + lily_cv_need_explicit_instantiation, + AC_TRY_LINK([ +template <class T> struct foo { static int baz; }; +template <class T> int foo<T>::baz = 1; +], [ return foo<int>::baz; ], + lily_cv_need_explicit_instantiation=no, + lily_cv_need_explicit_instantiation=yes)) +if test x"$lily_cv_need_explicit_instantiation"x = x"yes"x; then + AC_DEFINE(NEED_EXPLICIT_INSTANTIATION) +fi + AC_ARG_ENABLE(printing, [ enable-printing turn on debug printing. Default: off], [printing_b=$enableval]) --- ./lib/template.cc~ Tue May 12 07:10:04 1998 +++ ./lib/template.cc Wed May 13 18:29:06 1998 @@ -6,18 +6,14 @@ (c) 1997--1998 Han-Wen Nienhuys <[EMAIL PROTECTED]> */ +#include "config.hh" #include "source-file.hh" #include "plist.tcc" #include "pcursor.tcc" #include "cursor.tcc" #include "list.tcc" -// #if!defined(__CYGWIN32__) && __GNUC_MINOR__ < 8 -// it seems irix (-Dsgi ?) and sunos (-Dsparc ?) - -// see comments in lily/template1.cc mi2mu/template9.cc - -#if (defined(__linux__) && (__GNUC_MINOR__ < 8)) +#ifdef NEED_EXPLICIT_INSTANTIATION LIST_INSTANTIATE (void *); #endif --- ./mi2mu/template9.cc~ Tue May 12 07:10:07 1998 +++ ./mi2mu/template9.cc Wed May 13 17:53:32 1998 @@ -30,29 +30,3 @@ POINTERLIST_INSTANTIATE(Mudela_voice); POINTERLIST_INSTANTIATE(Mudela_column); POINTERLIST_INSTANTIATE(Mudela_score); - -#if 0 -/* - what gcc version? - they're in lib/template.cc too, and break linux/gcc-2.7.2 - are you sure they must be here too? - - for now, i'll just change the switch in lib/template.cc - jcn - - */ - -#if defined (__linux__) && && __GNUC_MINOR__ < 8 - -#include "list.tcc" - -// template class List<void *>; -// template class Cursor<void *>; - -// this should work too, and -LIST_INSTANTIATE (void *); - -#endif - -#endif - --- ./lily/template1.cc~ Tue May 12 07:10:07 1998 +++ ./lily/template1.cc Wed May 13 17:53:11 1998 @@ -23,29 +23,3 @@ IPLC_INSTANTIATE(Score_elem); IPLC_INSTANTIATE(Spanner); IPLC_INSTANTIATE(Idealspacing); - -/* these are required at least on IRIX 5 and SunOS 4 */ - -#if 0 -/* - what gcc version? - they're in lib/template.cc too, and break linux/gcc-2.7.2 - are you sure they must be here too? - - for now, i'll just change the switch in lib/template.cc - jcn - */ - -#if defined (__linux__) && && __GNUC_MINOR__ < 8 - -#include "list.tcc" - -// template class List<void *>; -// template class Cursor<void *>; - -// this should work too, and -LIST_INSTANTIATE (void *); - -#endif - -#endif --Multipart_Wed_May_13_17:34:46_1998-1-- -- Han-Wen Nienhuys, [EMAIL PROTECTED] ** GNU LilyPond - The Music Typesetter http://www.cs.uu.nl/people/hanwen/lilypond/index.html