Page 1 of 1

Cross-compiling 32-bit make help needed

Posted: Mon Oct 07, 2024 1:03 pm
by peebee

Can anyone help?

Woof-CE kernels are built on Github
Github only provides 64-bit runners (hosts)
32-bit kernels built via Github Actions are 32-bit but the linux-sources produced contain 64-bit binaries

Woof-CE kernel kit has some (old) mechanisms for doing ARM cross-compiles and examples of config files for same.
However these do not seem to work for 32-bit x86 cross compiles

So......... is there a mechanism to pass to make a request that a 32-bit compile should be done?
By googling I have seen suggestions such as:
make ARCH=i386 CROSS_COMPILE=i686-linux-gnu-

but these don't work giving:
make ARCH=i386 CROSS_COMPILE=i686-linux-gnu- oldconfig
scripts/Kconfig.include:39: C compiler 'i686-linux-gnu-gcc' not found

Any ideas anybody??
Thanks


Re: Cross-compiling make help needed

Posted: Mon Oct 07, 2024 6:26 pm
by Keef

Code: Select all

export CFLAGS=-m32

might do it, but possibly some 32 bit libs as well.

https://stackoverflow.com/questions/127 ... -gcc-cmake


Re: Cross-compiling 32-bit make help needed

Posted: Fri Oct 11, 2024 12:59 pm
by peebee

I have tried everything I can think of ........... and still get 64-bit binaries.

I'm attaching (remove .false.gz or open as text):
the kernel kit config file: build.conf
the kernel kit build script: build.sh
the Makefile - see lines 375 & 633 & 442
and a cut down log produced when attempting to build 32-bit kernel 6.1 at:
https://github.com/peabee/woof-CE/tree/crosstest

Search the log for 'scripts'

Is HOSTCC somehow not getting set to -m32 ?????

Any other advice? (thanks keef)


Re: Cross-compiling 32-bit make help needed

Posted: Sat Oct 12, 2024 1:34 am
by ozsouth

@peebee - Using my kerkit32, which works (pm'd to you), in my build.conf, I enable pae, but don't use SET_MAKE_COMMAND, as my build32.sh says "SET_MAKE_COMMAND is used for cross compiling ARM kernels".


Re: Cross-compiling 32-bit make help needed

Posted: Sat Oct 12, 2024 10:24 am
by peebee

I found:
https://patchwork.kernel.org/project/li ... omium.org/

Which says:
CC: for building tools that run on the target machine
HOSTCC: for building tools that run on the build machine

and:
most tools are target tools, not host tools.