[Dev] Fix host architecture to x86_64 for building arm target

MyungJoo Ham myungjoo.ham at samsung.com
Mon Dec 12 03:49:25 GMT 2016


>On Mon, 12 Dec 2016 02:28:46 +0000
>MyungJoo Ham <myungjoo.ham at samsung.com> wrote:
>
>> >On Mon, 12 Dec 2016 01:43:37 +0000
>> >MyungJoo Ham <myungjoo.ham at samsung.com> wrote:
>> >  
>> []
>> >> 
>> >> In order to build dotnet-core runtime (coreclr) armv7l/Linux with
>> >> crosscompilers, the building environment should be x86-64. x86-32
>> >> simply cannot support it because dotnet-core runtime does not
>> >> support x86-32; you need to run dotnet-core itself to build
>> >> dotnet-core (to build mscorlib.dll for target arch)  
>> >
>> >this is what i don't get. MONO (which is what xamarin was actually
>> >build on top of) runs on armv7. even armv6. it also has run on i586
>> >for years and years. dotnetcore if it requires a jit to run (a CLR
>> >jit) ..then there already is one - MONO has had it for years.  
>> 
>> 
>> That was about cross-compiling. Even for MONO, crosscompiling MONO
>> is far-more faster than qemu-native-copmiling MONO. In Tizen OBS/GBS
>> environment, packages using GCC (including MONO) gets automatically
>> crosscompiling supports from qemu scripts. Our Tizen OBS/GBS simply
>> didn't enable that for LLVM, yet.
>
>not talking speed here. just "can it". of course running a qemu arm
>emulator on x86 to emulate arm binaries is silly (and we've been doing
>this for a long time for binaries that should have become native to the
>build host).
>
>what worries me is more "if you now built on an arm host or a mips host
>etc." what would happen? all the distro build systems and setups i have
>ever worked with would not have issues here. they will work. what i am
>wondering is if this is going to simply make parts of tizen "only able
>to be built on x86-64 as a cross-compile and in no other way" and THAT
>would be a big problem.
>
>i understand that some things need awfully huge amounts of ram to
>build. let's not combine that with an architecture issue.


I didn't say you cannot build dotnet-core arm at arm. I was saying why
they didn't want to build dotnet-core arm at arm. (and x86-32 cannot build it)


The real problem what JY met is that OBS/GBS runs x86-32 for armv7l
and x86-32 (not armv7l) does not support dotnet-core.
And if they give up using qemu-accel (or equivalent) for dotnet-core
(in fact, LLVM/Clang for qemu-accel), there is no issue.
They can simply build the whole dotnet-core with GBS/OBS, which
is already done and had been doing so for a while.


In short, you can build dotnet-core arm at arm, with or without GBS/OBS.
That's what Tizen dotnet-core folks had been doing for a while ago.
(I'd been building it in TM1 as well)

What I suppose JY and collegues trying to do is to avoid building it in ARM & x86-32 environment,
not because of the RAM size, but because of build efficiency with qemu-accel+cross-compiling.


Cheers,
MyungJoo



More information about the Dev mailing list