[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 

Reply via email to