Status of ARM64 Linux Desktop Chromium build?

5,404 views
Skip to first unread message

Arun Patole

unread,
Oct 20, 2015, 4:43:39 AM10/20/15
to chromi...@chromium.org
Hello,
I have been trying to cross compile chromium for ARM64 Desktop Linux and I am getting lot of errors. I tried with GCC as well as Clang. Is this configuration (Cross compiling for ARM64 Linux with target_arch=arm64) supported and working for anyone?

If it is working, please share parameters that needs to be passed to GYP_DEFINES, etc to get it working.

If it is still not complete, any idea what all is missing? Initial errors that I get are related to unsupported neon instructions and some syntax errors in asm files.

Here are some of the errors that I get:
1. /chrome/src/third_party/llvm-build/Release+Asserts/bin/../lib/clang/3.8.0/include/arm_neon.h:48:24: error: 'neon_vector_type' attribute is not supported for this target
2. ../../third_party/ffmpeg/libavutil/aarch64/bswap.h:38:13: error: invalid instruction mnemonic 'rev'
    __asm__("rev %w0, %w0" : "+r"(x));
3. ../../third_party/WebKit/Source/platform/heap/asm/SaveRegisters_arm64.S:42:21: error: unknown token in expression
        sub sp, sp, #96

Thanks
Arun

Egor Pasko

unread,
Oct 20, 2015, 7:31:50 AM10/20/15
to webkit...@gmail.com, chromium-dev
It is not a supported configuration. Probably nobody knows how much brokenness is there.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

Mike Frysinger

unread,
Oct 20, 2015, 10:27:13 AM10/20/15
to Egor Pasko, webkit...@gmail.com, chromium-dev
basically it needs someone to champion it and send patches :)
-mike

Srikumar B

unread,
Oct 21, 2015, 1:29:49 PM10/21/15
to Chromium-dev, pa...@google.com, webkit...@gmail.com
As the support for ARM64 linux is missing, We are trying to add the support into the chromium trunk.

Does any one from google know how to find out ARM64 version of sysroot image at http://storage.googleapis.com/chrome-linux-sysroot/toolchain/
We need SHA and revison details.


Sam Clegg

unread,
Oct 21, 2015, 2:25:53 PM10/21/15
to sriku...@gmail.com, Chromium-dev, Egor Pasko, webkit...@gmail.com
A sysroot for arm64 has not been created to uploaded. If you want to
add support for building an arm64 sysroot you will want add this new
configuration to the scripts at
https://chromium.googlesource.com/chromium/src/+/master/build/linux/sysroot_scripts/

cheers,
sam

Евгений Немцев

unread,
Oct 21, 2015, 2:58:54 PM10/21/15
to Chromium-dev, pa...@google.com, webkit...@gmail.com
)))

вторник, 20 октября 2015 г., 18:27:13 UTC+4 пользователь Mike Frysinger написал:

Stephen James

unread,
Nov 20, 2015, 9:39:03 AM11/20/15
to Chromium-dev
Anyone know of instructions on how one might run a 32bit version on 64bit? I built the 32bit version:

file chrome: chrome: ELF 32-bit LSB  shared object, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=6879059cd8fccb46412e49a634f0694821cfd233, not stripped

But when I load this up on (Linux xgene 3.13.0-57-generic #95-Ubuntu SMP Fri Jun 19 09:31:00 UTC 2015 aarch64 aarch64 aarch64 GNU/Linux) and
try to run it, it doesn't even recognize the file as executable.

ubuntu@xgene:~$ ls -l chrome
-rwxrwxr-x 1 ubuntu ubuntu 126938944 Nov 19 10:01 chrome
ubuntu@xgene:~$ ./chrome
-bash: ./chrome: No such file or directory
ubuntu@xgene:~$

Roland McGrath

unread,
Nov 20, 2015, 12:52:08 PM11/20/15
to sajam...@gmail.com, Chromium-dev
On Fri, Nov 20, 2015 at 6:39 AM, Stephen James <sajam...@gmail.com> wrote:
> Anyone know of instructions on how one might run a 32bit version on 64bit? I
> built the 32bit version:
>
> file chrome: chrome: ELF 32-bit LSB shared object, ARM, EABI5 version 1
> (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26,
> BuildID[sha1]=6879059cd8fccb46412e49a634f0694821cfd233, not stripped
>
> But when I load this up on (Linux xgene 3.13.0-57-generic #95-Ubuntu SMP Fri
> Jun 19 09:31:00 UTC 2015 aarch64 aarch64 aarch64 GNU/Linux) and
> try to run it, it doesn't even recognize the file as executable.
>
> ubuntu@xgene:~$ ls -l chrome
> -rwxrwxr-x 1 ubuntu ubuntu 126938944 Nov 19 10:01 chrome
> ubuntu@xgene:~$ ./chrome
> -bash: ./chrome: No such file or directory
> ubuntu@xgene:~$

This error almost always means that the dynamic linker was not found.
You need a variety of runtime libraries for ARM to be installed on the
system in the places expected.
How to get those installed on a Ubuntu AArch64 system is a Ubuntu
question, not a Chromium question.

Lei Zhang

unread,
Nov 20, 2015, 2:23:37 PM11/20/15
to Stephen James, Chromium-dev, Roland McGrath
Running "ldd chrome" can help you figure out what's missing, but it
likely remains a Ubuntu question for how to run 32-bit programs on a
64-bit system.

Stephen James

unread,
Nov 20, 2015, 3:20:34 PM11/20/15
to Chromium-dev, sajam...@gmail.com, mcgr...@chromium.org
Yes, I was able to install the armhf libs and get Chrome to run - although mesa had trouble installing so I ran --disable-gpu

Paweł Hajdan, Jr.

unread,
Nov 23, 2015, 7:42:58 AM11/23/15
to sajam...@gmail.com, Chromium-dev, Roland McGrath
Consider posting what specifically did you do - could be helpful for other folks (https://xkcd.com/979/).

Paweł

Stephen James

unread,
Nov 23, 2015, 8:10:34 AM11/23/15
to Chromium-dev, sajam...@gmail.com, mcgr...@chromium.org

sudo dpkg --add-architecture armhf

sudo apt-get install binutils:armhf

sudo apt-get install libglib2.0-0:armhf

sudo apt-get install libnss3:armhf

sudo apt-get install libgconf-2-4:armhf

sudo apt-get install libfontconfig1:armhf

sudo apt-get install libpango1.0-0:armhf

sudo apt-get install libxi6:armhf

sudo apt-get install libxcursor1:armhf

sudo apt-get install libxss1:armhf

apt-get install libatk1.0-0:armhf

sudo apt-get install libxcomposite:armhf

sudo apt-get install libasound2:armhf

sudo apt-get install libxdamage1:armhf

sudo apt-get install libxtst6:armhf

sudo apt-get install libxrandr2:armhf

sudo apt-get install libcups2:armhf

sudo apt-get install libgtk2.0-0:armhf

sudo apt-get install libstdc++6:armhf


Adding the following package failed - not sure why (I ended up using --disable-gpu)

libgl1-mesa-glx:armhf



/chrome --disable-gpu



On Monday, November 23, 2015 at 6:42:58 AM UTC-6, Paweł Hajdan, Jr. wrote:
Consider posting what specifically did you do - could be helpful for other folks (https://xkcd.com/979/).

Paweł

Arun Patole

unread,
May 20, 2016, 2:00:42 AM5/20/16
to Chromium-dev
I am now able to cross compile chromium with clang(3.9.0) for arm64 linux, made required changes to sysroot scripts, gyp files, source and added some workarounds. More details are available on tracking bug - https://bugs.chromium.org/p/chromium/issues/detail?id=613452


Regards
Arun

---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.

Khasim Syed Mohammed

unread,
May 20, 2016, 3:41:23 AM5/20/16
to webkit...@gmail.com, Chromium-dev
Hi Arun,

Are you planning to share some patches related to this ?

Regards,
Khasim

Arun Patole

unread,
May 20, 2016, 3:51:20 AM5/20/16
to Khasim Syed Mohammed, Chromium-dev

Arun Patole

unread,
Jun 2, 2016, 2:44:29 AM6/2/16
to Khasim Syed Mohammed, Chromium-dev
Do we need any special permissions to upload new sysroot to google cloud for cross compiling?

I am trying to upload one for ARM64 linux and getting below error:

Command:
sysroot-creator-jessie.sh UploadSysrootARM64 1bee53dc7227623b7f6f8bb68c7545238bd5196f

Error:
ResumableUploadAbortException: 403 Forbiddene_arm64_sysroot.tgz: 0 B/34.72 MiB    


Regards
Arun

Dirk Pranke

unread,
Jun 2, 2016, 2:17:37 PM6/2/16
to webkit...@gmail.com, Khasim Syed Mohammed, Chromium-dev
Yes, I doubt you would have permissions for this, and you probably need someone from Google to help you.

-- Dirk

Christopher Friedt

unread,
Nov 25, 2016, 9:57:57 PM11/25/16
to Chromium-dev, pa...@google.com, webkit...@gmail.com


On Tuesday, October 20, 2015 at 10:27:13 AM UTC-4, Mike Frysinger wrote:
basically it needs someone to champion it and send patches :)

Hmm... I just happen to have a certain $15 Aarch64 device sitting on my desk at the moment. To be honest, my first instinct would be to get it going first in Qemu. Has there been any official movement on Aarch64 since this thread was updated (i.e. could my help be useful)?

Marshall Greenblatt

unread,
Nov 25, 2016, 10:59:23 PM11/25/16
to chris...@gmail.com, Chromium-dev, pa...@google.com, webkit...@gmail.com
According to this issue building for ARM64 should now be supported: https://bugs.chromium.org/p/chromium/issues/detail?id=613452

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.

Arun Patole

unread,
Dec 1, 2016, 6:48:58 AM12/1/16
to Marshall Greenblatt, chris...@gmail.com, Chromium-dev, pa...@google.com
Yes, building chromium browser for ARM64 Linux is now supported with GN build.

Keeping build steps mentioned here for future reference:
1. Install GNU binary utilities for aarch64-linux-gnu, package - binutils-aarch64-linux-gnu (may be this should now be a part of "install-build-deps.sh --arm/arm64")
2. ./build/linux/sysroot_scripts/install-sysroot.py --arch=arm64
3. For release build: gn gen --args="target_cpu=\"arm64\" is_debug=false" out/arm64
    For debug build: gn gen --args="target_cpu=\"arm64\" is_debug=true" out/arm64
4. ninja -C out/arm64/ chrome

I tried to build latest chromium source(refs/heads/master@{#435565}) today and it builds successfully.

Regards
Arun

To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.

Vlad Spiridonescu

unread,
May 4, 2017, 9:07:41 AM5/4/17
to Chromium-dev, magree...@gmail.com, chris...@gmail.com, pa...@google.com
Hello, after this, I wanted to build CEF on ARM64 but it seems it does not work on sysroot build. Any idea?
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

Nico Weber

unread,
May 4, 2017, 10:20:27 AM5/4/17
to vlad.spi...@gmail.com, Chromium-dev, Marshall Greenblatt, chris...@gmail.com, Egor Pasko
This mailing list is about Chromium, not CEF. According to the CEF home page, CEF questions can be asked in http://www.magpcss.org/ceforum/

Reply all
Reply to author
Forward
0 new messages