cross-compiling kernel using a 32-bit toolchain on a 64-bit machine

Mandeep Sandhu mandeepsandhu.chd at gmail.com
Tue Apr 7 12:24:51 EDT 2015


So I found the issue (it was a PIBKAC issue :/)

I was using sudo to try and build the kernel (this was due to a messed
up setup where the whole kernel src tree ended up being written by
root). When copy-pasting my command here, I missed copying the sudo
part and that was precisely the reason for the error. When invoking
sudo, I think the current shells environment variables are not copied
(probably due to security reasons) and that's why it was not picking
up the toolchain paths.

Once I fixed the permissions on the source tree and invoke make as
regular user, it started working.

Sorry about the noise, I should've figured this out earlier.



On Tue, Apr 7, 2015 at 9:15 AM, Lad, Prabhakar
<prabhakar.csengg at gmail.com> wrote:
> On Mon, Apr 6, 2015 at 11:50 PM, Mandeep Sandhu
> <mandeepsandhu.chd at gmail.com> wrote:
>> Hi All,
>>
>> I'm having trouble compiling my kernel using a 32-bit toolchain (for
>> ARM) on a 64-bit host (Ubuntu 14.10). The kernel version is 3.14.17.
>>
>> I understand that 32-bit binaries require "ia32-libs" (or equivalent)
>> for compiling on 64-bit hosts. I installed the required packages
>> (lib32z1 lib32ncurses5 lib32bz2-1.0 for Ubuntu 14.10), but still keep
>> getting errors:
>>
>> $ make CROSS_COMPILE=arm-none-linux-gnueabi- all
>> Makefile:616: Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR:
>> -fstack-protector not supported by compiler
>> make: arm-none-linux-gnueabi-gcc: Command not found
>
> Have built this toolchain or just downloaded from coudesourcery ?
> Go to the source where you downloaded toolchain (on your machine not
> the website)
> traverse to bin directory and try ./arm-none-linux-gnueabi-gcc --version.
>
> Cheers,
> --Prabhakar Lad



More information about the Kernelnewbies mailing list