Closed StephanieSunshine closed 8 years ago
So currently Solaris isn't a platform actively supported or tested. It looks like setjmp
is not available in the same way it is on other unix like systems we support.
It would be cool if we could get it to work on Solaris, but afaik no developer has access to such a machine. If you're able to fix the problem we can incorporate a fix for it.
I'm happy to provide some resources for someone to debug this. Open Solaris and it's variants have been freely available for quite some time. Anyone can install any of the Open Solaris variants and repeat my results within hours. LLVM was the only thing that took a while to compile and it installed fine. I used SmartOS: http://en.wikipedia.org/wiki/SmartOS
Looks like there's a conversation started around SmartOS support for Travis at travis-ci/travis-ci#1368.
@FuzzySunshine Do you think you'd be able to setup a Vagrant image with Open Solaris for testing?
If someone wants to send a PR to fix this issue, please feel free to do so.
I hit this in my project, and I have Solaris to investigate on (Solaris 11 in a VirtualBox VM on Windows HyperV.)
Solaris does this:
#ifdef __cplusplus
extern "C" {
namespace std {
#endif
int setjmp(...);
int _setjmp(..);
int sigsetjmp(...)
#ifdef __cplusplus
} // std
} // extern C
using std::setjmp;
using std::sigsetjmp;
// no using std::_setjmp
#endif
This seems like an accident. They should either have the using, or put it outside of std.
In my case, and I suggest for you, I think we should use sigsetjmp
.
It has been in Posix since 1990.
_setjmp
is non-standard compat etc.
It does seem like a minor Solaris header bug.
You could ifdef Solaris or something, or just sigsetjmp
for all systems (except Windows).
Compiling as C would of course work, for some projects.
Hi I'm trying to compile Rubinius pulled from the git repo as of tonight within a Solaris zone and I keep getting the same error. I've tried the current git repo and the last two releases. I first attempted this with Ruby 1.9.3-xxx installed, but after reading on the Rubinius website, I restarted the template with a fresh Ruby 2.0.0-xxx install. They all error out in the same place:
Installed packages:
I built LLVM from source as it wasn't in the repos, using LLVM-3.3