<p>Hi all,</p>
<p>I'm having trouble finding up-to-date information on how to cross compile go for MIPS; there appears to be little material to begin with, and furthermore the search results available are swamped with gccgo information and pre-1.5 toolchain setup.</p>
<p>I'd like to develop tools for OpenWRT based embedded systems such as <a href="http://www.black-swift.com">Black Swift</a>. When I run <code>file</code> on busybox to get build info, I got:</p>
<pre><code>$ file `which busybox`
/bin/busybox: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked (uses shared libs), corrupted section header size
</code></pre>
<p>What's the suggested way to set up a cross-compiler for mips these days that would help me compile to the above?</p>
<p>Thanks!</p>
<h3>Update on incomplete progress so far</h3>
<p>Here's what I have so far:</p>
<ol>
<li>Go doesn't natively support MIPS, which makes me sad.</li>
<li>GCCGO <em>might</em> support MIPS. I am lead to understand that building GCCGO involves building GCC with the configure directive <code>--enable-languages=go</code></li>
<li>For MIPS, the cleanest option to make a toolchain appears to be <a href="http://buildroot.uclibc.org/">Buildroot</a></li>
<li>Instructions <a href="http://docwiki.gumstix.org/index.php?title=Buildroot_on_Ubuntu">here</a> on setting up for Ubuntu, and <a href="http://www.uclibc.org/toolchains.html">here</a> on customising.
<ul>
<li>In this case, customisation means going to <code>buildroot-2015.08.1/package/gcc/gcc-final</code> and editing line 45 to read: <code>GCC_FINAL_CROSS_LANGUAGES-y = c go</code></li>
</ul></li>
<li>Then, running <code>make menuconfig</code> in the buildroot base directory and setting the target architecture and toolchain options. I set wchar support and a few other features that are likely nonessential.</li>
<li>Save menuconfig and exit.</li>
<li><code>make</code></li>
</ol>
<p>This is as far as I've gotten; the build is underway. Let's see can I get a gccgo crosscompiler for mips?</p>
<hr/>**评论:**<br/><br/>lapingvino: <pre><p>MIPS support is in the works for 1.6 afaik, you are right that it's only out there for GCCGO at the moment, and that seems to be a royal pain...</p></pre>cathalgarvey: <pre><p>A pain is right. The build failed, when I removed 'go' from the makefile and retried it worked. Now I have to debug a build failure in GCC. FML.</p>
<p><em>edit</em>: As <a href="http://www.sajalkayan.com/post/golang-openwrt-mips.html" rel="nofollow">others with more patience than I</a> have tried to get this working with bare success, I think I might hold out for real MIPS support in 1.6. The Black Swift supports Python (2.7, ugh) and for now that'll do, because life's too short for this crap.</p></pre>lapingvino: <pre><p>Maybe the best option would be to compile a GCC cross-compiler for MIPS on a non-MIPS system and compile your go programs for the MIPS target? Not as easy as the Go cross-compiler, true, but should be still possible...</p>
<p><a href="https://www.google.nl/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=gcc%20cross%20compile%20mips&es_th=1" rel="nofollow">https://www.google.nl/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=gcc%20cross%20compile%20mips&es_th=1</a> seems to have some good entries :)</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传