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

윤지영 jy910.yun at samsung.com
Fri Dec 9 03:05:54 GMT 2016




 
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.


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