[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: make broken on OSX 10.5.8
From: |
Carl Sorensen |
Subject: |
Re: make broken on OSX 10.5.8 |
Date: |
Sun, 30 Oct 2011 04:45:17 +0000 |
User-agent: |
Microsoft-MacOutlook/14.13.0.110805 |
On 10/29/11 9:23 PM, "Graham Percival" <address@hidden> wrote:
>On Sat, Oct 29, 2011 at 11:34:35PM +0000, Carl Sorensen wrote:
>> I think I figured it out. The OSX compiler doesn't have a built in
>> std::vector namespace, so we use the vector class in flower/.
>
>That sounds weird. Are you on lion, and does that default to llvm
>instead of gcc ? If so, you might need to explicitly add -lstdc++
>to the linker stage. (I discovered that in artifastring; no idea
>if that applies to lilypond as well but I wouldn't be surprised)
>If you're still on gcc, then what version of gcc doesn't supply
>std::vector ?
>
>I really think this can be fixed by explicitly including a header
>and/or linking to a library.
No, I'm on Leopard.
In flower/include/std-vector.hh we see:
70 #if HAVE_STL_DATA_METHOD
71 #include <vector>
72 #else /* !HAVE_STL_DATA_METHOD */
73 #define vector __flower_vector
74 #include <vector>
75 #undef vector
7
In my config.log, I see the following:
347 configure:5124: checking for stl.data () method
348 configure:5145: g++ -c -I/opt/local/include -O2 -finline-functions
-g -pipe conftest.cpp >&5
349 conftest.cpp:9:1: warning: "PACKAGE_NAME" redefined
350 conftest.cpp:2:1: warning: this is the location of the previous
definition
351 conftest.cpp:23: error: 'class std::vector<int, std::allocator<int>
>' has no member named 'data'
352 configure:5145: $? = 1
353 configure: failed program was:
354 | /* confdefs.h */
355 | #define PACKAGE_NAME ""
356 | #define PACKAGE_TARNAME ""
357 | #define PACKAGE_VERSION ""
358 | #define PACKAGE_STRING ""
359 | #define PACKAGE_BUGREPORT ""
360 | #define PACKAGE_URL ""
361 | #define PACKAGE "lilypond"
362 | #define PACKAGE_NAME "LilyPond"
363 | #define TOPLEVEL_VERSION "2.15.17"
364 | #define DIRSEP '/'
365 | #define PATHSEP ':'
366 | #define DATADIR "/Users/Carl/lilypond/share"
367 | #define BUILD_PACKAGE_DATADIR
"/Users/Carl/lilypond/out/share/lilypond"
368 | #define LIBDIR "NONE/lib"
369 | #define BUILD_PACKAGE_LIBDIR "/Users/Carl/lilypond/out/lib/lilypond"
370 | #define NDEBUG 1
371 | /* end confdefs.h. */
372 |
373 | #include <vector>
374 | using namespace std;
375 | vector <int> v;
376 | void *p = v.data ();
377 |
378 | int
379 | main ()
380 | {
381 |
382 | ;
383 | return 0;
384 | }
385 configure:5152: result: no
And HAVE_STL_DATA_METHOD is not defined in config.status
So I think my fix is actually correct, although there may be a way to get
my system to have the data method.
Thanks,
Carl