libstdc++ has nothing to do with MAC_OS_X_VERSION_MAX_ALLOWED, this macro is needed so that error will be produced if some function introduced after 10.6 release is used in code instead of failing in runtime (it has already happened once). Why do you insist on using macports g++? Anyway, it's your time to waste, so go ahead and test it yourself.
On Tue, 5 Feb 2013 13:18:42 +0100 Jeroen Hegeman <[email protected]> wrote: > Hi Parafin, > > It looks like you have already spent quite some time tuning Darktable for OS > X. My respect and thanks! > > Since I could not easily find out what this MAC_OS_X_VERSION_MAX_ALLOWED > macro is used for in Darktable, I gave it a try and a) removed it, and > removed the instructions in the build system to build against the system > libstdc++. Darktable then built fine with GCC 4.6.3 from MacPorts. From one > of your comments in the Darktable blog I suspected that I would now see > crashes due to two different versions of libstdc++ being loaded, but so far > so good. Darktable opens, imports images and applies color filters without > problems. > > I'll give things a more thorough test later this week when I'm home and see > if I run into problems. > > Best regards, > Jeroen > > > > On Feb 5, 2013, at 12:48, Jeroen Hegeman wrote: > > > Hi, > > > > Thanks! With your hint I have now found where this is specified as well. > > I'm assuming this forcing of the system libstdc++ has to do with the use of > > the MAC_OS_X_VERSION_MAX_ALLOWED macro (specified a little lower in > > CMakeLists.txt)? > > > > So what exactly are the functions that are not available in 10.6 and later > > that would otherwise be used? And what are they used for and how does that > > work in 10.6 and later then? > > > > Cheers, > > Jeroen > > > > > > > > > > > > On Feb 5, 2013, at 12:21, parafin wrote: > > > >> Hi. > >> > >> You shouldn't build DT with non-system C++ compiler because you have to > >> link to system libstdc++ (build system tries to make sure that you're > >> linking against /usr/lib/libstdc++.dylib, not any other, that's why > >> you're seeing this error). You can however use GCC from macports as C > >> compiler, set CC=gcc-mp-4.6 and don't touch CXX. > >> > >> On Tue, 5 Feb 2013 10:39:16 +0100 > >> Jeroen Hegeman <[email protected]> wrote: > >> > >>> Dear DT'ers, > >>> > >>> This is probably something related to my system, not to Darktable itself, > >>> but I'm hoping to find someone here who has seen this before (or knows > >>> how to dig further). > >>> > >>> I'm trying to build Darktable from the Git master, on OS X 10.7.5 with a > >>> MacPorts install of GCC 4.6.3. > >>> However, linking of libdarktable.dylib fails with the following complaint: > >>> > >>>> Linking C shared library libdarktable.dylib > >>>> Undefined symbols for architecture x86_64: > >>>> "std::ctype<char>::_M_widen_init() const", referenced from: > >>>> LibRaw_file_datastream::gets(char*, int) in > >>>> liblibraw_r.a(libraw_datastream.cpp.o) > >>>> ld: symbol(s) not found for architecture x86_64 > >>>> collect2: ld returned 1 exit status > >>> > >>> Now gcc -v tells me that it's configured with > >>> '--libdir=/opt/local/lib/gcc46' and both > >>> /opt/local/lib/gcc46/libstdc++.6.dylib and > >>> /opt/local/lib/gcc46/libstdc++.dylib are symlinks to > >>> /opt/local/lib/libstdc++.6.dylib. And this appears to be a 64-bit lib, > >>> with the required symbol in there: > >>> > >>>> $ file /opt/local/lib/libstdc++.6.dylib > >>>> /opt/local/lib/libstdc++.6.dylib: Mach-O 64-bit dynamically linked > >>>> shared library > >>>> > >>>> $ nm /opt/local/lib/libstdc++.6.dylib | grep -i wide | c++filt > >>>> 00000000000169a0 T std::ctype<char>::_M_widen_init() const > >>>> 0000000000042470 t std::ctype<char>::widen(char const*, char const*, > >>>> char*) const > >>>> 0000000000042450 t std::ctype<char>::widen(char) const > >>>> 00000000000312e0 t __ZNKSt5ctypeIcE5widenEc.part.24 > >>>> 0000000000016e90 t std::ctype<char>::do_widen(char const*, char const*, > >>>> char*) const > >>>> 0000000000016e00 t std::ctype<char>::do_widen(char) const > >>>> 00000000000259a0 T std::ctype<wchar_t>::do_widen(char const*, char > >>>> const*, wchar_t*) const > >>>> 0000000000025990 T std::ctype<wchar_t>::do_widen(char) const > >>>> 0000000000028fb0 T std::basic_ios<char, std::char_traits<char> > >>>> >::widen(char) const > >>>> 00000000000298d0 T std::basic_ios<wchar_t, std::char_traits<wchar_t> > >>>> >::widen(char) const > >>> > >>> This probably means I'm not searching in the same place as the linker. > >>> Does anybody know what I'm doing wrong here? Or how to investigate > >>> further? > >>> > >>> Any hints would be appreciated! > >>> > >>> Best regards, > >>> Jeroen > >>> ------------------------------------------------------------------------------ > >>> Free Next-Gen Firewall Hardware Offer > >>> Buy your Sophos next-gen firewall before the end March 2013 > >>> and get the hardware for free! Learn more. > >>> http://p.sf.net/sfu/sophos-d2d-feb > >>> _______________________________________________ > >>> Darktable-users mailing list > >>> [email protected] > >>> https://lists.sourceforge.net/lists/listinfo/darktable-users > > > > ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ Darktable-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/darktable-users
