[yocto] Building on MacOS X

Mark Hatle mark.hatle at windriver.com
Thu Jan 12 14:59:03 PST 2017


On 1/12/17 11:41 AM, Roger Smith wrote:
>  I have Parallels (running on El Capitan the one before Sierra)  and ubuntu 14
>  running my current build environment on a MacBook Pro, but boy is the build
> slow… I also worked at Apple for 19 years on drivers inside MacOS X/iOS, so I am
> more than motivated to have this working natively rather than inside any
> container or disk space hogging environment.  As I mentioned I am working with
> the Intel Aero compute board, so slogging though all this fat to build an image
> is a productivity killer.

So take from this.. there is desire for oe/bitbake to work natively.  Most
people don't have the skill or free time to do the work.  A number of us started
it at one time or another and made enough progress to say "ya I think it's
possible" and then ran out of time.

As far as I know pseudo and the security introduced in 10.11 that affect
preloading is likely the biggest technical problem...  everything else is just
"it's not Linux".

--Mark

> I think most of the  incompatibilities between Linux and os x (which btw is
> coming from the ios side of the fence unfortunately), can be mitigated with boot
> args or via the command line . Apple’s compiler team had to make llvm compatible
> with gcc, so I am surprised if in 2017, there are compiler issues to building
> for an x86_64 platform with llvm on the Mac . That’s the kind of bug Apple likes
> to fix promptly.. 
> 
> As I mentioned, I tried to simply source the oe-init-build-env, and got an error
> that the readlink command that yocto is using is incompatible with the bsd
> version of readlink built into os x. 
> 
> i.e when I run .
> 
> source oe-init-build-env
> 
> I get the error
> 
> readlink: illegal option -- f
> 
> Which is because on OS X readlink doesn’t specify -f
> 
> YNOPSIS
>      stat [-FLnq] [-f format| -l | -r | -s | -x] [-t timefmt] [file...]
>      readlink [-n] [file...]
> 
> I didn’t want to go through this level of change in the Yocto sources if (1)
> people don’t care to take changes or (2) it had already been done before.. I was
> curious how far down this rabbit hole people had gone before..
> 
> Roger
> 
> 
>> On Jan 12, 2017, at 8:50 AM, Andrea Galbusera <gizero at gmail.com
>> <mailto:gizero at gmail.com>> wrote:
>>
>> On Thu, Jan 12, 2017 at 5:21 PM, Belisko Marek <marek.belisko at gmail.com
>> <mailto:marek.belisko at gmail.com>> wrote:
>>
>>     On Thu, Jan 12, 2017 at 4:39 PM, Tim Orling
>>     <timothy.t.orling at linux.intel.com
>>     <mailto:timothy.t.orling at linux.intel.com>> wrote:
>>     > You can also build using Docker containers:
>>     > https://github.com/crops/docker-win-mac-docs/wiki
>>     <https://github.com/crops/docker-win-mac-docs/wiki>
>>     Well the re is other limitation about slow filesystem access from
>>     docker on osx. There is workaround to use nfs but it's not possible to
>>     use nfs for building yocto - so it's kind of chicken-egg problem ;)
>>
>>
>> I shortly tested the CROPS docker-based setup after watching some presentation
>> at ELCE 2016 in Berlin. It basically worked but I experienced the filesystem
>> slowness your are talking about. I ended up waiting hours to see a simple
>> core-image-minimal build complete (even after giving more cores to docker).
>> One more point is that slightly more complex build scenarios, i.e. building
>> resin.os, also required tweaking docker run parameters for the build container
>> in order to give bitbake access to features like loop devices it needed (not
>> always easily debuggable issues indeed). Turned out I decided to stick with
>> more canonical linux based environments for the moment.
>>
>> Anyway, the technology behind CROPS is *very* interesting to me, and I'd like
>> to hear from people closely involved (Tim?) what the state of the art is and
>> what we can expect to see in the near future. IIRC, the roadmap for Yocto 2.3
>> release was supposed to resurrect the Eclipse plugin and adopt CROPS as an
>> alternative for running eSDK in a seamless way on different development host
>> OSs. Beside from the images on docker hub and the github projects that didn't
>> have high activity in the latest months, I hardly find discussions and
>> documentation on the whole approach. Isn't this hot enough anymore or are
>> there big issues that will prevent this technology from taking off. I often
>> manage SDKs for Windows-minded developers and I strongly yearn to find a
>> better approach to help them feel at home while building stuff for OE/Yocto
>> based systems... 
>>
>>  
>>
>>     >
>>     > On Jan 12, 2017, at 7:34 AM, Burton, Ross <ross.burton at intel.com
>>     <mailto:ross.burton at intel.com>> wrote:
>>     >
>>     >
>>     > On 12 January 2017 at 15:14, Roger Smith <roger at sentientblue.com
>>     <mailto:roger at sentientblue.com>> wrote:
>>     >>
>>     >> Is there any documentation for running the Yocto build system on Mac OS X
>>     >> or macOS as Apple now calls it? I am working with the Intel Aero board.
>>     >> Before I go down the rabbit hole of fixing issues like this one (and I am
>>     >> using the bash shell), I’d like to know if anyone has build it on os x
>>     >> before.
>>     >
>>     >
>>     > If you install all of the GNU tools using brew or similar and put them first
>>     > on $PATH then you can get bitbake started.  Then you need to stub out the
>>     > linux-specific bits in bitbake.  I've previously started on this work
>>     > already
>>     >
>>     (http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=ross/darwin
>>     <http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=ross/darwin>).
>>     > The next step is figuring out how to configure OE to build and link natively
>>     > on OSX using LLVM instead of GCC.
>>     >
>>     > However all of this is mostly academic because in Sierra (iirc) onwards
>>     > there is tighter security on processes, which means that pseudo won't work
>>     > even if you port it to macOS.
>>     >
>>     > So unless you fancy some non-trivial engineering the short version is just
>>     > use something like Docker to run a Linux system on your Mac.
>>     >
>>     > Ross
>>     > --
>>     > _______________________________________________
>>     > yocto mailing list
>>     > yocto at yoctoproject.org <mailto:yocto at yoctoproject.org>
>>     > https://lists.yoctoproject.org/listinfo/yocto
>>     <https://lists.yoctoproject.org/listinfo/yocto>
>>     >
>>     >
>>     >
>>     > --
>>     > _______________________________________________
>>     > yocto mailing list
>>     > yocto at yoctoproject.org <mailto:yocto at yoctoproject.org>
>>     > https://lists.yoctoproject.org/listinfo/yocto
>>     <https://lists.yoctoproject.org/listinfo/yocto>
>>     >
>>
>>     marek
>>
>>     --
>>     as simple and primitive as possible
>>     -------------------------------------------------
>>     Marek Belisko - OPEN-NANDRA
>>     Freelance Developer
>>
>>     Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
>>     Tel: +421 915 052 184 <tel:%2B421%20915%20052%20184>
>>     skype: marekwhite
>>     twitter: #opennandra
>>     web: http://open-nandra.com <http://open-nandra.com/>
>>     --
>>     _______________________________________________
>>     yocto mailing list
>>     yocto at yoctoproject.org <mailto:yocto at yoctoproject.org>
>>     https://lists.yoctoproject.org/listinfo/yocto
>>     <https://lists.yoctoproject.org/listinfo/yocto>
>>
>>
>> -- 
>> _______________________________________________
>> yocto mailing list
>> yocto at yoctoproject.org <mailto:yocto at yoctoproject.org>
>> https://lists.yoctoproject.org/listinfo/yocto
> 
> 
> 




More information about the yocto mailing list