On mag 05 13:21, Martin Husemann wrote: > No, but you may have the choice wich kernel/userland you want to run > on the same physical hardware. An example is my cubietruck: > I run it big-endian as: > > [~] martin@space-truckin > uname -p -m > evbarm earmv7hfeb > > but most people use exactly the same hardware to run earmv7hf (little endian) > instead. > > On this board the difference is a simple "set endianess" instruction early > in the kernel, but on some other machines it is a physical jumper on the > board. > > This is not a very typical case though.
It's the first time I "hear" (actually, read) about it. It offers great flexibility! > The "compat" cases are more common: on arm machines you can execute > binaries for eabi (the default) and oabi. On aarch64 machines you could > run aarch64 (native 64bit), eabi (new 32bit abi) or oabi (old 32bit abi). This way, MACHINE seems to represent the entirety of the hardware devices which compose a specific system. It doesn't (it can't!) change, of course. Then, given this "static" hardware, you may make some choices about endianness (as in the cubietruck example) and/or ABI (as in this compat example) and/or some other features: this determines the architecture, the instruction set you choose to build the kernel for (the instruction set you choose to run on the actual CPU), and this architecture is exactly MACHINE_ARCH. > I guess now you see the complex spread sheet and understand why you have > been confused initally - hope it got better during this thread ;-) Oh, I think (I hope!) yes, it's becoming to be more clear, I really couldn't figure it out before. Thank you so much :) Rocky