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

Carsten Haitzler c.haitzler at samsung.com
Fri Dec 9 06:06:04 GMT 2016


On Fri, 09 Dec 2016 05:58:22 +0000
윤지영 <jy910.yun at samsung.com> wrote:

>  
>  
> --------- Original Message ---------
> Sender : 하이츨러 <c.haitzler at samsung.com> Master/S/W
> Platform팀(S/W센터)/삼성전자 Date   : 2016-12-09 14:34 (GMT+9)
> Title  : Re: [Dev] Fix host architecture to x86_64 for building arm
> target 
> On Fri, 09 Dec 2016 05:28:19 +0000
> 윤지영 <jy910.yun at samsung.com> wrote:
>  
> >    
> > > --------- Original Message ---------
> > > Sender : 하이츨러 <c.haitzler at samsung.com> Master/S/W
> > > Platform팀(S/W센터)/삼성전자 Date   : 2016-12-09 12:08 (GMT+9)
> > > Title  : Re: [Dev] Fix host architecture to x86_64 for building arm
> > > target 
> > > On Fri, 09 Dec 2016 03:05:54 +0000
> > > 윤지영 <jy910.yun at samsung.com> wrote:
> > >      
> > > >  
> > > > Dear all,
> > > >     
> > > > > is it x86-64 that it needs or just a large memory address space
> > > > > (like chromium for example)?      
> > > > 
> > > > .NET is a little different.
> > > > At present, .NET only provides toolchains for x86-64. To create arm
> > > > binaries for .NET runtime and libraries, x86-64 libraries are needed
> > > > in the GBS arm environment. To do so, we use the qemu-accel package
> > > > for x86_64, which installs the libraries for x86-64 in /emul/
> > > > directory on arm GBS environment and .NET toolchains link them.
> > > > 
> > > > We have tried to support .NET toolchains for arm. However, even if we
> > > > have .NET toolchains for arm, there is a high possibility of using
> > > > x86-64 toolchain as usual due to build speed issue. In the light of
> > > > our experience, it took more than 24 hours to build the runtime, but
> > > > it did not succeed.    
> > >  
> > > ok but it isn't something specific like "it uses x86-64 assembly and
> > > thus only works on x86-64". it's just a question of building the
> > > toolchain for arm or i586 or mips or any other architecture - right?    
>> > More specifically, it does not create a toolchain for arm.
> > The toolchain runs on x86_64 called 'dotnet' creates arm binaries and
> > C# managed dlls.  
>  
> > but can the toolchain be built for arm? can it run on arm? does it ONLY
> > run on x86-64 - why only on x86-64 if so?  
> 
> At present, the toolchain for arm is not available and we are trying
> to support it as soon as possible. If it is provided, it can, of
> course, run on arm. However, even though the toolchain for arm is
> provided, we are considering using the toolchain for x86_64 for build
> acceleration.

ok. so i'm curious... why is it "not provided" what needs to be done to
make it work? is this like luajit where it has architecture specific
assembly for it's core and so needs to be ported for each architecture?

> > > > Best regards.
> > > > Jiyoung Yun.
> > > >  
> > > >  
> > > > --------- Original Message ---------
> > > > Sender :
> > > >
> >하이츨러 <c.haitzler at samsung.com> Master/S/W Platform팀(S/W센터)/
> >> > 삼성전자 Date   : 2016-12-08 18:28 (GMT+9)
> >>> > Title  : Re: [Dev] Fix host architecture to x86_64 for building arm target 
> > > > On Thu, 08 Dec 2016 18:11:46 +0900
> > > > ____ <chan45.lee at samsung.com> wrote:
> > > >      
> > > > > Dear Tizen developers,
> > > > > 
> > > > > Currently we are using two host environments, as you know, i586 and
> > > > > x86_64. But, with i586, there are many kinds of requirements and
> > > > > problems. So I’d like to fix host architecture to x86_64 only.
> > > > > Please note that, it’s for only cross build environment for arm
> > > > > target not i586 and x86_64 target.
> > > > > 
> > > > > This change is applied from Dec 12 to all Tizen:3.0:* and Tizen:*
> > > > > project. Please see the details below.
> > > > > 
> > > > > Changes
> > > > > ========
> > > > > 
> > > > > fix host architecture to x86_64 when using qemu / qemu-accel /
> > > > > python-accel for arm target. It affects,
> > > > > - Tizen:3.0:Base and Tizen:3.0:[Mobile/Wearable/Common/IVI/TV]
> > > > > - Tizen:Base and Tizen:[Mobile/Wearable/Common/IVI/TV]
> > > > > 
> > > > > Reasons
> > > > > ========
> > > > > 
> > > > > 1. dotnet requirement
> > > > > - They must use x86_64 qemu / accel to build their some packages such
> > > > > as coreclr      
> > > >  
> > > > is it x86-64 that it needs or just a large memory address space (like
> > > > chromium for example)?
> > > >      
> > > > > 2. 64bit target requirement
> > > > > - It is necessary to use x86_64 qemu / accel for 64bit target.
> > > > > 3. Toolchain development
> > > > > - It’s hard to manage memory with i586 qemu / accel because Some
> > > > > toolchain technology such as LTO, Sanitizer family development needs
> > > > > large memory.
> > > > > 4. chromium-efl build failure
> > > > > - Same as 3). because sometimes it needs large memory to build.
> > > > >  
> > > > > Issues & Solutions
> > > > > ===================
> > > > >  
> > > > > 1. It doesn’t support i586 host
> > > > > - x86_64 qemu / qemu-accel / python-accel packages are installed to
> > > > > host, and they cannot be executed on i586 architecture.
> > > > > - Strongly recommended reinstalling x86_64 OS
> > > > > - For i586 GBS users, there is a guide using x86 qemu / qemu-accel /
> > > > > python accel. Please see the below guide
> > > > > - For i586 OSC users, I’m sorry I can’t help them. Please reinstall
> > > > > x86_64 OS. 
> > > > > Change date
> > > > > ============
> > > > > Next week (12/12~)
> > > > >  
> > > > >  
> > > > > GBS build guide for i586 GBS user
> > > > > ===================================
> > > > >  
> > > > > 1. copy build conf to local directory
> > > > > - You can find build conf at the below download server,
> > > > >   : e.g., for target-TM1, [hash]-build.conf.gz in
> > > > > http://download.tizen.org/snapshots/tizen/mobile/latest/repos/target-
> > > > > TM1/packages/repodata/
> > > > > - Or you can use below build conf after building once,
> > > > >   : /var/tmp/[userid]-gbs/[profile name in .gbs.conf].conf 
> > > > >   : [build root in .gbs.conf]/local/BUILD-ROOTS/scratch.*/[profile
> > > > > name in .gbs.conf].conf 
> > > > > 2. modify build_hostarch like below
> > > > > ------------------------------------------------
> > > > > …
> > > > > - %define build_hostarch x86_64
> > > > > + %define build_hostarch x86
> > > > > Macros:
> > > > > - %build_hostarch x86_64
> > > > > + %build_hostarch x86
> > > > > :Macros
> > > > > …
> > > > > ------------------------------------------------
> > > > > 
> > > > > 3. gbs build with local build conf
> > > > > ------------------------------------------------
> > > > > $ gbs build -A [arch] -D [build conf path/name]
> > > > > ------------------------------------------------
> > > > > 
> > > > > - e.g., 
> > > > > ------------------------------------------------ 
> > > > > $ gbs build -A armv7l -D ./public_3.0_mobile_tm1.conf
> > > > > ------------------------------------------------
> > > > > 
> > > > > - Or you can add ‘buildconf’ in .gbs.conf like,
> > > > > ------------------------------------------------
> > > > > [profile.profile name]
> > > > > + buildconf = [build conf path/name] 
> > > > > ------------------------------------------------
> > > > > 
> > > > > Thanks,
> > > > > Chan Lee
> > > > > 
> > > > > 
> > > > > _______________________________________________
> > > > > Dev mailing list
> > > > > Dev at lists.tizen.org
> > > > > https://lists.tizen.org/listinfo/dev      
> > > >  
> > > > _______________________________________________
> > > > Dev mailing list
> > > > Dev at lists.tizen.org
> > > > https://lists.tizen.org/listinfo/dev
> > > >      
> >    
>  


More information about the Dev mailing list