Re: Building clang/cling 3.5 for ROOT on Lion
On 08/04/14 01:48, Ryan Schmidt wrote: On Apr 7, 2014, at 18:09, Christopher Jones wrote: p.s. whats the most recent MacPorts clang compiler you can install on OSX10.7 ? clang 3.4 and earlier should build fine on 10.7. Indeed. They aren't quite the same thing though in the end, as on OSX 10.8 and newer it supports c++11, whereas on 10.7 it doesn't, because of the underlying system support. So the same clang34 compiler now builds root6 fine on OSX10.9, but fails on 10.7. My recollection of all the previous times c++11 has been discussed, can be summarised as there is no obvious way to support it cleanly on older OSX releases. So if an upstream package, as ROOT6 has, is actively only targetting c++11 supporting compilers, then effectively these ports cannot be used on older OSX releases now. Is that correct, or am I being overly pessimistic here ? cheers Chris ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Apr 8, 2014, at 03:06, Chris Jones jon...@hep.phy.cam.ac.uk wrote: On 08/04/14 01:48, Ryan Schmidt wrote: On Apr 7, 2014, at 18:09, Christopher Jones wrote: p.s. whats the most recent MacPorts clang compiler you can install on OSX10.7 ? clang 3.4 and earlier should build fine on 10.7. Indeed. They aren't quite the same thing though in the end, as on OSX 10.8 and newer it supports c++11, whereas on 10.7 it doesn't, because of the underlying system support. So the same clang34 compiler now builds root6 fine on OSX10.9, but fails on 10.7. My recollection of all the previous times c++11 has been discussed, can be summarised as there is no obvious way to support it cleanly on older OSX releases. So if an upstream package, as ROOT6 has, is actively only targetting c++11 supporting compilers, then effectively these ports cannot be used on older OSX releases now. Is that correct, or am I being overly pessimistic here ? Using latest gcc (currently gcc48) might be a way to support C++11 on OS X 10.9, but otherwise, with clang, C++11 requires 10.9+. ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
Indeed. They aren't quite the same thing though in the end, as on OSX 10.8 and newer it supports c++11, whereas on 10.7 it doesn't, because of the underlying system support. So the same clang34 compiler now builds root6 fine on OSX10.9, but fails on 10.7. My recollection of all the previous times c++11 has been discussed, can be summarised as there is no obvious way to support it cleanly on older OSX releases. So if an upstream package, as ROOT6 has, is actively only targetting c++11 supporting compilers, then effectively these ports cannot be used on older OSX releases now. Is that correct, or am I being overly pessimistic here ? Using latest gcc (currently gcc48) might be a way to support C++11 on OS X 10.9, but otherwise, with clang, C++11 requires 10.9+. Yes, I thought of that. But as I understanding it mixing libc++ and libstdc++ runtimes is an absolute no no when c++11 is involved, so the user would have to update their MacPorts settings to build *everything* with gcc(48) ? Chris ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Tue, Apr 8, 2014 at 10:12 AM, Chris Jones wrote: Indeed. They aren't quite the same thing though in the end, as on OSX 10.8 and newer it supports c++11, whereas on 10.7 it doesn't, because of the underlying system support. So the same clang34 compiler now builds root6 fine on OSX10.9, but fails on 10.7. My recollection of all the previous times c++11 has been discussed, can be summarised as there is no obvious way to support it cleanly on older OSX releases. So if an upstream package, as ROOT6 has, is actively only targetting c++11 supporting compilers, then effectively these ports cannot be used on older OSX releases now. Is that correct, or am I being overly pessimistic here ? Using latest gcc (currently gcc48) might be a way to support C++11 on OS X 10.9, but otherwise, with clang, C++11 requires 10.9+. Yes, I thought of that. But as I understanding it mixing libc++ and libstdc++ runtimes is an absolute no no when c++11 is involved, so the user would have to update their MacPorts settings to build *everything* with gcc(48) ? So would it work in theory if ROOT could be compiled without any external dependencies (other than Cocoa)? And is compiling it without external dependencies (and with some limited functionality) feasible at all? I checked and it seems that it's depending on CoreFoundation which depends on /usr/lib/libobjc.A.dylib, no libstdc++ (but OpenGL depends on /usr/lib/libstdc++.6.dylib and that's probably needed). Btw: what's the trick to make fortran-based libraries depend on /usr/lib/libstdc++.6.dylib in the current port (rather than on /opt/local/lib/libgcc/libgcc_s.1.dylib)? Mojca ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
Hi, On 08/04/14 10:14, Mojca Miklavec wrote: On Tue, Apr 8, 2014 at 10:12 AM, Chris Jones wrote: Indeed. They aren't quite the same thing though in the end, as on OSX 10.8 and newer it supports c++11, whereas on 10.7 it doesn't, because of the underlying system support. So the same clang34 compiler now builds root6 fine on OSX10.9, but fails on 10.7. My recollection of all the previous times c++11 has been discussed, can be summarised as there is no obvious way to support it cleanly on older OSX releases. So if an upstream package, as ROOT6 has, is actively only targetting c++11 supporting compilers, then effectively these ports cannot be used on older OSX releases now. Is that correct, or am I being overly pessimistic here ? Using latest gcc (currently gcc48) might be a way to support C++11 on OS X 10.9, but otherwise, with clang, C++11 requires 10.9+. Yes, I thought of that. But as I understanding it mixing libc++ and libstdc++ runtimes is an absolute no no when c++11 is involved, so the user would have to update their MacPorts settings to build *everything* with gcc(48) ? So would it work in theory if ROOT could be compiled without any external dependencies (other than Cocoa)? And is compiling it without external dependencies (and with some limited functionality) feasible at all? Not really within MacPorts. root in macports is designed to use various macports provided dependencies. Thats the benefit of using MacPorts... First try installing MacPorts gcc48, then use it to build root6 standalone, outside macports, without it finding any of Macports libraries (so move /local/local out the way for a while). If that works, you could try try building inside macports, but you will have to first mac sure to build *every* dependency root needs with gcc48 as well, instead of the normal default compiler. Honestly, this to me sounds like a lot of effort. I personally would be more inclined to invest that amount of effort in updating my system to 10.9. Ultimately, this is the only way to get a system that properly supports c++11... I checked and it seems that it's depending on CoreFoundation which depends on /usr/lib/libobjc.A.dylib, no libstdc++ (but OpenGL depends on /usr/lib/libstdc++.6.dylib and that's probably needed). Btw: what's the trick to make fortran-based libraries depend on /usr/lib/libstdc++.6.dylib in the current port (rather than on /opt/local/lib/libgcc/libgcc_s.1.dylib)? Fortran libraries do not need a C++ runtime at all ... If a library that contains fortran symbols is linking against a c++ runtime, it must be because it also contains C++ symbols. Chris Mojca ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On 2014-4-8 18:06 , Chris Jones wrote: On 08/04/14 01:48, Ryan Schmidt wrote: On Apr 7, 2014, at 18:09, Christopher Jones wrote: p.s. whats the most recent MacPorts clang compiler you can install on OSX10.7 ? clang 3.4 and earlier should build fine on 10.7. Indeed. They aren't quite the same thing though in the end, as on OSX 10.8 and newer it supports c++11, whereas on 10.7 it doesn't, because of the underlying system support. So the same clang34 compiler now builds root6 fine on OSX10.9, but fails on 10.7. My recollection of all the previous times c++11 has been discussed, can be summarised as there is no obvious way to support it cleanly on older OSX releases. So if an upstream package, as ROOT6 has, is actively only targetting c++11 supporting compilers, then effectively these ports cannot be used on older OSX releases now. Is that correct, or am I being overly pessimistic here ? You can actually use libc++ all the way back to 10.6 (with the libcxx port). The trick is that if you build root against libc++, then every library it uses via a C++ API must also be built against libc++, and likewise for every library that uses it via a C++ API. It sounds like root wants to use bundled copies of all its dependencies, which while suboptimal for all the usual reasons, does at least solve that side of the problem. I don't know if root exposes a C++ API for its dependents, but if it does, they could also be made to use libc++. So it's not impossible, just highly inconvenient. - Josh ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
You can actually use libc++ all the way back to 10.6 (with the libcxx port). The trick is that if you build root against libc++, then every library it uses via a C++ API must also be built against libc++, and likewise for every library that uses it via a C++ API. Yes, but that doesn't help here, as the libc++ on 10.6 does not support c++11 fully. See below. It sounds like root wants to use bundled copies of all its dependencies, which while suboptimal for all the usual reasons, does at least solve that side of the problem. I don't know if root exposes a C++ API for its dependents, but if it does, they could also be made to use libc++. Not really. ROOT will use external dependencies just fine. Its just ROOT6 has moved to a new interpreter based on clang, 'cling', and to build this ROOT6 does internally build parts of a clang release, which currently is I believe based on clang 3.5. They have also decided to fully embrace c++11 (I good thing) but this means root6 now only supports compilers that fully support c++11. That can be libc++ or libstdc++ (ROOT6 builds fine with gcc 4.8 on linux), it just has to be fully c++11 compliant... Chris ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On 2014-4-8 20:02 , Chris Jones wrote: You can actually use libc++ all the way back to 10.6 (with the libcxx port). The trick is that if you build root against libc++, then every library it uses via a C++ API must also be built against libc++, and likewise for every library that uses it via a C++ API. Yes, but that doesn't help here, as the libc++ on 10.6 does not support c++11 fully. Which parts doesn't it support? The description of the port specifically says that it is targeting C++11. - Josh ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On 08/04/14 11:26, Joshua Root wrote: On 2014-4-8 20:02 , Chris Jones wrote: You can actually use libc++ all the way back to 10.6 (with the libcxx port). The trick is that if you build root against libc++, then every library it uses via a C++ API must also be built against libc++, and likewise for every library that uses it via a C++ API. Yes, but that doesn't help here, as the libc++ on 10.6 does not support c++11 fully. Which parts doesn't it support? The description of the port specifically says that it is targeting C++11. I am only going on the reports I have seen from Mojca (I only have OSX10.9) but it appears std::move at least is not supported. Chris - Josh ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Tue, Apr 8, 2014 at 12:53 PM, Chris Jones wrote: On 08/04/14 11:26, Joshua Root wrote: On 2014-4-8 20:02 , Chris Jones wrote: You can actually use libc++ all the way back to 10.6 (with the libcxx port). The trick is that if you build root against libc++, then every library it uses via a C++ API must also be built against libc++, and likewise for every library that uses it via a C++ API. Yes, but that doesn't help here, as the libc++ on 10.6 does not support c++11 fully. Which parts doesn't it support? The description of the port specifically says that it is targeting C++11. I am only going on the reports I have seen from Mojca (I only have OSX10.9) but it appears std::move at least is not supported. I didn't say that libc++ doesn't work – I didn't try that at all (I'm not even sure I know how to do it; maybe I could create a new macports installation with instructions posted by Jeremy a while ago). I just said that using clang-3.4 doesn't help as that doesn't support all c++11 features needed by cling. Mojca ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Apr 8, 2014, at 03:12, Chris Jones wrote: Indeed. They aren't quite the same thing though in the end, as on OSX 10.8 and newer it supports c++11, whereas on 10.7 it doesn't, because of the underlying system support. So the same clang34 compiler now builds root6 fine on OSX10.9, but fails on 10.7. My recollection of all the previous times c++11 has been discussed, can be summarised as there is no obvious way to support it cleanly on older OSX releases. So if an upstream package, as ROOT6 has, is actively only targetting c++11 supporting compilers, then effectively these ports cannot be used on older OSX releases now. Is that correct, or am I being overly pessimistic here ? Using latest gcc (currently gcc48) might be a way to support C++11 on OS X 10.9, but otherwise, with clang, C++11 requires 10.9+. Yes, I thought of that. But as I understanding it mixing libc++ and libstdc++ runtimes is an absolute no no when c++11 is involved, so the user would have to update their MacPorts settings to build *everything* with gcc(48) ? The point is you wouldn’t be mixing C++ runtimes. On 10.8 and earlier, the C++ runtime is libstdc++, just as gcc48’s is. They’re different versions of libstdc++, but sometimes they’re similar enough to still work together. ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Tue, Apr 8, 2014 at 1:55 PM, Ryan Schmidt wrote: The point is you wouldn’t be mixing C++ runtimes. On 10.8 and earlier, the C++ runtime is libstdc++, just as gcc48’s is. They’re different versions of libstdc++, but sometimes they’re similar enough to still work together. Does that mean that it makes sense to report bugs/problems when binaries compiled with gcc48 crash (or when compilation crashes)? Would anyone care at all to look into these problems? Or just that it's worth trying ... and not be disappointed in case of problems? Mojca PS: It's not an issue of me personally upgrading the OS. I'll do that sooner or later. But it would be slightly suboptimal if the port only worked on 10.9. ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Apr 8, 2014, at 07:13, Mojca Miklavec wrote: On Tue, Apr 8, 2014 at 1:55 PM, Ryan Schmidt wrote: The point is you wouldn’t be mixing C++ runtimes. On 10.8 and earlier, the C++ runtime is libstdc++, just as gcc48’s is. They’re different versions of libstdc++, but sometimes they’re similar enough to still work together. Does that mean that it makes sense to report bugs/problems when binaries compiled with gcc48 crash (or when compilation crashes)? Would anyone care at all to look into these problems? Or just that it's worth trying ... and not be disappointed in case of problems? I’d say the latter. Whereas mixing libc++ and libstdc++ fails at compiling already, miking Apple’s old libstdc++ and gcc48’s new libstdc++ may work, or it may cause crashes; if the latter, that’s just the way it is. Mojca PS: It's not an issue of me personally upgrading the OS. I'll do that sooner or later. But it would be slightly suboptimal if the port only worked on 10.9. Personally, I feel that the cleanest solution is that C++11 code requires OS X 10.9 or later, unfortunately. ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
I didn't say that libc++ doesn't work – I didn't try that at all (I'm not even sure I know how to do it; maybe I could create a new macports installation with instructions posted by Jeremy a while ago). I just said that using clang-3.4 doesn't help as that doesn't support all c++11 features needed by cling. by using clang34 I believe you are implicitly using libc++ anyway... Chris ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
PS: It's not an issue of me personally upgrading the OS. I'll do that sooner or later. But it would be slightly suboptimal if the port only worked on 10.9. As a general point, I agree, only OSX10.9 has full c++11 support. However, upstream claim to be targeting 10.8 and 10.9, so I would hope it would work on OSX10.8 as well (to be tested sometime, by someone who has access to a 10.8 machine). Whilst not ideal, I think this is reasonable coverage (given root5 will remain available for all versions). Chris ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Apr 8, 2014, at 07:34, Chris Jones wrote: PS: It's not an issue of me personally upgrading the OS. I'll do that sooner or later. But it would be slightly suboptimal if the port only worked on 10.9. As a general point, I agree, only OSX10.9 has full c++11 support. However, upstream claim to be targeting 10.8 and 10.9, so I would hope it would work on OSX10.8 as well (to be tested sometime, by someone who has access to a 10.8 machine). Whilst not ideal, I think this is reasonable coverage (given root5 will remain available for all versions). Well, libc++ (with full C++11 support) is included in 10.8, it’s just not the default. As long as root doesn’t use any other libraries, it should build fine with that, if you instruct it to. But then any other software that wants to use root would have to do that as well. ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On 08/04/14 13:35, Ryan Schmidt wrote: On Apr 8, 2014, at 07:34, Chris Jones wrote: PS: It's not an issue of me personally upgrading the OS. I'll do that sooner or later. But it would be slightly suboptimal if the port only worked on 10.9. As a general point, I agree, only OSX10.9 has full c++11 support. However, upstream claim to be targeting 10.8 and 10.9, so I would hope it would work on OSX10.8 as well (to be tested sometime, by someone who has access to a 10.8 machine). Whilst not ideal, I think this is reasonable coverage (given root5 will remain available for all versions). Well, libc++ (with full C++11 support) is included in 10.8, it’s just not the default. As long as root doesn’t use any other libraries, it should build fine with that, if you instruct it to. But then any other software that wants to use root would have to do that as well. I see. Well, that might then cause problems as well :( ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On 2014-4-8 22:35 , Ryan Schmidt wrote: On Apr 8, 2014, at 07:34, Chris Jones wrote: PS: It's not an issue of me personally upgrading the OS. I'll do that sooner or later. But it would be slightly suboptimal if the port only worked on 10.9. As a general point, I agree, only OSX10.9 has full c++11 support. However, upstream claim to be targeting 10.8 and 10.9, so I would hope it would work on OSX10.8 as well (to be tested sometime, by someone who has access to a 10.8 machine). Whilst not ideal, I think this is reasonable coverage (given root5 will remain available for all versions). Well, libc++ (with full C++11 support) is included in 10.8, it’s just not the default. As long as root doesn’t use any other libraries, it should build fine with that, if you instruct it to. But then any other software that wants to use root would have to do that as well. Indeed, if you can get around the issues with using a non-default runtime on 10.8, then that should transfer pretty easily to 10.7 and 10.6 as well. - Josh ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On 08/04/14 13:41, Joshua Root wrote: On 2014-4-8 22:35 , Ryan Schmidt wrote: On Apr 8, 2014, at 07:34, Chris Jones wrote: PS: It's not an issue of me personally upgrading the OS. I'll do that sooner or later. But it would be slightly suboptimal if the port only worked on 10.9. As a general point, I agree, only OSX10.9 has full c++11 support. However, upstream claim to be targeting 10.8 and 10.9, so I would hope it would work on OSX10.8 as well (to be tested sometime, by someone who has access to a 10.8 machine). Whilst not ideal, I think this is reasonable coverage (given root5 will remain available for all versions). Well, libc++ (with full C++11 support) is included in 10.8, it’s just not the default. As long as root doesn’t use any other libraries, it should build fine with that, if you instruct it to. But then any other software that wants to use root would have to do that as well. Indeed, if you can get around the issues with using a non-default runtime on 10.8, then that should transfer pretty easily to 10.7 and 10.6 as well. Thats OK for a standalone build, but the whole point of having root in macports is to pick up various dependencies from Macports. This trick would then only work if the user built all of these dependencies against libc++ as well. SO unless MacPorts is planning on switch its 10.8 builds to by default use libc++, this doesn't help much with getting the port working on 10.8 Chris - Josh ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Tue, Apr 8, 2014 at 2:41 PM, Joshua Root wrote: On 2014-4-8 22:35 , Ryan Schmidt wrote: On Apr 8, 2014, at 07:34, Chris Jones wrote: PS: It's not an issue of me personally upgrading the OS. I'll do that sooner or later. But it would be slightly suboptimal if the port only worked on 10.9. As a general point, I agree, only OSX10.9 has full c++11 support. However, upstream claim to be targeting 10.8 and 10.9, so I would hope it would work on OSX10.8 as well (to be tested sometime, by someone who has access to a 10.8 machine). Whilst not ideal, I think this is reasonable coverage (given root5 will remain available for all versions). Well, libc++ (with full C++11 support) is included in 10.8, it’s just not the default. As long as root doesn’t use any other libraries, it should build fine with that, if you instruct it to. But then any other software that wants to use root would have to do that as well. Indeed, if you can get around the issues with using a non-default runtime on 10.8, then that should transfer pretty easily to 10.7 and 10.6 as well. OK, the following works for a simple test file (on the source code that originally fails when compiling ROOT with clang++-mp-3.4): clang++-mp-3.4 -std=c++11 -stdlib=libc++ test.cpp -o test otool -L test test: /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 28.4.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0) I'll see if I can manage to build the whole ROOT 6 with -stdlib=libc++ (without referencing any other piece from MacPorts). But that probably means that I shouldn't use OpenGL from the system, right? otool -L /System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL ... /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0) .. Mojca ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On 2014-4-8 22:48 , Mojca Miklavec wrote: I'll see if I can manage to build the whole ROOT 6 with -stdlib=libc++ (without referencing any other piece from MacPorts). But that probably means that I shouldn't use OpenGL from the system, right? otool -L /System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL ... /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0) .. Does OpenGL.framework expose a C++ API? (And does root use it?) - Josh ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Tue, Apr 8, 2014 at 2:46 PM, Chris Jones wrote: Thats OK for a standalone build, but the whole point of having root in macports is to pick up various dependencies from Macports. This trick would then only work if the user built all of these dependencies against libc++ as well. SO unless MacPorts is planning on switch its 10.8 builds to by default use libc++, this doesn't help much with getting the port working on 10.8 One option could be if 10.9 or later: use dependencies from MacPorts else: use just the built-in libraries without any advanced functionality or external libraries which is still better than having a nonfunctional port ... of course only if that works at all. Mojca ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On Tue, Apr 8, 2014 at 2:53 PM, Joshua Root wrote: On 2014-4-8 22:48 , Mojca Miklavec wrote: I'll see if I can manage to build the whole ROOT 6 with -stdlib=libc++ (without referencing any other piece from MacPorts). But that probably means that I shouldn't use OpenGL from the system, right? otool -L /System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL ... /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0) .. Does OpenGL.framework expose a C++ API? (And does root use it?) How do I know that? Here's a page with examples using OpenGL: http://root.cern.ch/root/htmldoc/tutorials/gl/index.html But I checked and it seems that OpenGL is optional. Mojca ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
On 08/04/14 13:52, Mojca Miklavec wrote: On Tue, Apr 8, 2014 at 2:46 PM, Chris Jones wrote: Thats OK for a standalone build, but the whole point of having root in macports is to pick up various dependencies from Macports. This trick would then only work if the user built all of these dependencies against libc++ as well. SO unless MacPorts is planning on switch its 10.8 builds to by default use libc++, this doesn't help much with getting the port working on 10.8 One option could be if 10.9 or later: use dependencies from MacPorts else: use just the built-in libraries without any advanced functionality or external libraries which is still better than having a nonfunctional port ... of course only if that works at all. Honestly, I think that is debatable. It would also make the port file a mess. You would have to find a way to prevent root from automatically finding the libraries under /opt/local. I suspect if you just remove all the dependencies, it will still find then. Honestly, I think you are flogging a dead horse a bit here. Unless you can find a clean way to get it working within MacPorts, my vote is just to flag root6 as only working on 10.9 (or 10.8, depending on if it works there or not) and beyond. Chris Mojca ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
I'll see if I can manage to build the whole ROOT 6 with -stdlib=libc++ (without referencing any other piece from MacPorts). But that probably means that I shouldn't use OpenGL from the system, right? Don't forget, you will also need to rebuild each and every port that root uses, that uses a c++ runtime against libc++ as well... Chris ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
SO unless MacPorts is planning on switch its 10.8 builds to by default use libc++, this doesn't help much with getting the port working on 10.8 At this time, we believe it is best to leave 10.8 and earlier on libstdc++, and use libc++ on 10.9 and later. There is a FAQ entry… Yes of course. I wasn't suggesting the policy should be changed, just I think it would be the only way to properly support c++11 on OSX10.8, if it where ever decided that was important enough to do. Sorry if that wasn't clear.. Chris ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
Hi, For me, I’m afraid, I think this means ROOT6 can only be properly supported on 10.8 or newer. As its only these OS versions that have c++11 support. If upstream have decided ROOT from version 6 onwards requires c++11 support, I am not going to second guess them. I previously had variants in the ROOT port that allowed users to build the C++ sources with gcc, but this lead to all the well know issues and was removed. I will not be adding it back. Unofficially, you might have luck on 10.7 with sudo port install root6 configure.compiler=macports-gcc-4.8 but given the issues, it will have to stay unofficial... Chris On 7 Apr 2014, at 11:13pm, Mojca Miklavec mo...@macports.org wrote: Hi, I would like to ask for advice about how to properly support building ROOT 6 (which builds clang/cling 3.5 as part of the installation) on Lion. I'm aware of http://trac.macports.org/wiki/FAQ#libcpp. But it's not clear to me if dependency on clang 3.5 means that one will be unable to to run ROOT 6 on 10.7 and earlier. Or if we just need to blacklist certain compilers. The first response from upstream was: ROOT6 requires C++11, which is supported (using libc++) on 10.8 and 10.9 e.g. with XCode 5.1. For 10.7 you can get GCC 4.7 or 4.8 from the usual Mac packagers, or build clang with libc++ yourself; either one should work but the former might be simpler. Mojca ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev smime.p7s Description: S/MIME cryptographic signature ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev
Re: Building clang/cling 3.5 for ROOT on Lion
p.s. whats the most recent MacPorts clang compiler you can install on OSX10.7 ? On 8 Apr 2014, at 12:03am, Christopher Jones jon...@hep.phy.cam.ac.uk wrote: Hi, For me, I’m afraid, I think this means ROOT6 can only be properly supported on 10.8 or newer. As its only these OS versions that have c++11 support. If upstream have decided ROOT from version 6 onwards requires c++11 support, I am not going to second guess them. I previously had variants in the ROOT port that allowed users to build the C++ sources with gcc, but this lead to all the well know issues and was removed. I will not be adding it back. Unofficially, you might have luck on 10.7 with sudo port install root6 configure.compiler=macports-gcc-4.8 but given the issues, it will have to stay unofficial... Chris On 7 Apr 2014, at 11:13pm, Mojca Miklavec mo...@macports.org wrote: Hi, I would like to ask for advice about how to properly support building ROOT 6 (which builds clang/cling 3.5 as part of the installation) on Lion. I'm aware of http://trac.macports.org/wiki/FAQ#libcpp. But it's not clear to me if dependency on clang 3.5 means that one will be unable to to run ROOT 6 on 10.7 and earlier. Or if we just need to blacklist certain compilers. The first response from upstream was: ROOT6 requires C++11, which is supported (using libc++) on 10.8 and 10.9 e.g. with XCode 5.1. For 10.7 you can get GCC 4.7 or 4.8 from the usual Mac packagers, or build clang with libc++ yourself; either one should work but the former might be simpler. Mojca ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev smime.p7s Description: S/MIME cryptographic signature ___ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev