NodeOS / nodeos-cross-toolchain

5 stars 6 forks source link

OS X Support #7

Closed joshgarde closed 8 years ago

joshgarde commented 8 years ago

More OS X support -

A few notes about this one:

piranna commented 8 years ago

I'm honestly surprised about the hard work you are doing, you rock! :-D

piranna commented 8 years ago

In order to get OS X to compile the Linux kernel, various header files needed to be extracted from libc and installed manually to OS X

This would be needed too on nodeos-cross-toolchain, I'm not sure if it would be easier to do it there...

joshgarde commented 8 years ago

I just want OS X support 😫

joshgarde commented 8 years ago

So the only problem that's really of concern is incompatible strip flags between Linux and Apple.

strip --strip-unneeded doesn't seem to have a Mac equivalent. http://www.manpages.info/macosx/strip.1.html http://linux.die.net/man/1/strip

Tell me if I'm missing something. Otherwise, would it be possible to just ignore it for the Mac port?

strip is part of binutils on MacPorts. Problem solved.

piranna commented 8 years ago

Could you be able to find and alternative flag? If not, maybe we can remove it or use a variable to use a linux version with it or a mac version without it... El 28/6/2016 10:29 PM, "joshgarde" notifications@github.com escribió:

So the only problem that's really of concern is incompatible strip flags between Linux and Apple.

strip --strip-unneeded doesn't seem to have a Mac equivalent. http://www.manpages.info/macosx/strip.1.html http://linux.die.net/man/1/strip

Tell me if I'm missing something. Otherwise, would it be possible to just ignore it for the Mac port?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/NodeOS/nodeos-cross-toolchain/pull/7#issuecomment-229172828, or mute the thread https://github.com/notifications/unsubscribe/AAgfvlSMYgxUd-wq3VgHobyEAaspO5wgks5qQYQTgaJpZM4JAAvG .

joshgarde commented 8 years ago

Could you be able to find and alternative flag? If not, maybe we can remove it or use a variable to use a linux version with it or a mac version without it...

Already addressed above.

joshgarde commented 8 years ago

The new commit copies the necessary glibc headers for OSX into the project path. It relies on a modified Makefile for Linux found at this repo: https://github.com/joshgarde/nodeos-kernel-headers

joshgarde commented 8 years ago

Just need to do Travis support and should be ready for a merge

joshgarde commented 8 years ago

Due to the verbosity of the OSX builds, Travis ends the builds prematurely.

The log length has exceeded the limit of 4 MB (this usually means that the test suite is raising the same exception over and over).

The job has been terminated

I might have to resort to using travis_wait as a temporary fix until something else can be done.

piranna commented 8 years ago

The new commit copies the necessary glibc headers for OSX into the project path.

That's cool! :-D

It relies on a modified Makefile for Linux found at this repo: https://github.com/joshgarde/nodeos-kernel-headers

Being so simple, could be the patch included in this repo instead? Or maybe better, would it be just enough just by setting the environment variable (here or at nodeos-barebones, not sure...)?

Due to the verbosity of the OSX builds, Travis ends the builds prematurely.

Is it getting 4mb also with the --silent flag? If so, maybe we can be able to redirect the standard output to /dev/null...

joshgarde commented 8 years ago

Being so simple, could be the patch included in this repo instead? Or maybe better, would it be just enough just by setting the environment variable (here or at nodeos-barebones, not sure...)?

I'm only using a separate repo so I can use download-manager's patch feature.

Is it getting 4mb also with the --silent flag? If so, maybe we can be able to redirect the standard output to /dev/null...

Better plan than travis_wait which decides to dump the entirety of the log file after an error.

piranna commented 8 years ago

I'm only using a separate repo so I can use download-manager's patch feature.

Download-manager also support to apply patches in the local filesystem ;-) Ok, we'll review this later when we got it working :-)

joshgarde commented 8 years ago

Also, Linux builds are failing on Travis, but I'm not sure why. Using GCC 4.8 & G++ 4.8 https://travis-ci.org/joshgarde/nodeos-cross-toolchain/builds/142172618

What's the build environment on semaphore?

piranna commented 8 years ago

What's the build environment on semaphore?

Ubuntu 14.04.

joshgarde commented 8 years ago

Well... We're now hitting the build timeout on Travis (50 minutes) 😞

joshgarde commented 8 years ago

https://travis-ci.org/joshgarde/nodeos-cross-toolchain/builds/142181768

piranna commented 8 years ago

That's why I stopped using Travis, is too slow. El 4/7/2016 21:16, "joshgarde" notifications@github.com escribió:

https://travis-ci.org/joshgarde/nodeos-cross-toolchain/builds/142181768

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/NodeOS/nodeos-cross-toolchain/pull/7#issuecomment-230343881, or mute the thread https://github.com/notifications/unsubscribe/AAgfvvg9qd7dxFTajopc9VAI0pgtA4T3ks5qSVwJgaJpZM4JAAvG .

joshgarde commented 8 years ago

So... What now?

piranna commented 8 years ago

So... What now?

SemaphoreCI seems to work correctly... maybe we could left Travis only for the OSX builds? Give it a try, maybe it works... Later we could see if we split the build process in several modules or not.

joshgarde commented 8 years ago

The build limit seems to apply to the workers individually. Building for Mac only doesn't look like it would make a difference.

piranna commented 8 years ago

The build limit seems to apply to the workers individually. Building for Mac only doesn't look like it would make a difference.

I think Travis split the CPU power between all the parallel builds.

joshgarde commented 8 years ago

Still hitting the time limit.

piranna commented 8 years ago

What about just testing against a single version of OSX? Or maybe search for another CI server with OSX support... El 5/7/2016 4:52, "joshgarde" notifications@github.com escribió:

Still hitting the time limit.

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/NodeOS/nodeos-cross-toolchain/pull/7#issuecomment-230377863, or mute the thread https://github.com/notifications/unsubscribe/AAgfvn7pIbGoKi1l6qZiCaxFCS0XFzGdks5qSccBgaJpZM4JAAvG .

joshgarde commented 8 years ago

Already tried building with only one worker with no success & free CI services for OS X seem non-existant apart from Travis. What if I just host a Jenkins CI on my machine? It's obviously not a long term solution, but it can work in the short term.

piranna commented 8 years ago

At this moment you are the only one using OSX, and by using prebuild module regular users would download precompiled binaries automatically, so it's ok for me. Don't know if a full Jenkins deployment it's needed or just to execute the build and the test...

joshgarde commented 8 years ago

If you just need to know if the build works, then I can just say when it does on my machine.

piranna commented 8 years ago

If you just need to know if the build works, then I can just say when it does on my machine.

Yes, it's enought :-) I would like to publish the prebuild images too, though...

joshgarde commented 8 years ago

^ Builds on my machine

Do you want me to upload my prebuild image?

piranna commented 8 years ago

Do you want me to upload my prebuild image? Hide all checks

Ok, it's fine.

piranna commented 8 years ago

@joshgarde when you have the prebuild image generated on the prebuilds folder tell me if you have permissions to upload it to a release.

joshgarde commented 8 years ago

@piranna I don't seem to have permission to upload to releases

piranna commented 8 years ago

Check it now.

joshgarde commented 8 years ago

I have the permissions now

joshgarde commented 8 years ago

Once semaphore is done, am I approved for a merge & preinstall release?

piranna commented 8 years ago

Yes you are. Be sure after that that it install correctly. El 5/7/2016 23:32, "joshgarde" notifications@github.com escribió:

Once semaphore is done, am I approved for a merge & preinstall release?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NodeOS/nodeos-cross-toolchain/pull/7#issuecomment-230609495, or mute the thread https://github.com/notifications/unsubscribe/AAgfvhpEAn7bEUK9Zzm58BWK1Gxr7iElks5qSs1ngaJpZM4JAAvG .

joshgarde commented 8 years ago

👍 Merged and uploaded release 🎉