Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Chromium ebuild for arm64?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM
View previous topic :: View next topic  
Author Message
Sakaki
Apprentice
Apprentice


Joined: 21 May 2014
Posts: 240

PostPosted: Sat Feb 03, 2018 3:33 pm    Post subject: Chromium ebuild for arm64? Reply with quote

Hello,

does anyone have a working ebuild for www-client/chromium (any reasonably modern version) on arm64 they could share? I've had a few requests to add this to the weekly autobuild list for the gentoo-on-rpi3-64bit image, but haven't had much luck getting it to build myself (it is keyworded ~arm64 in the main tree, so maybe I'm missing something obvious).
_________________
Regards,

sakaki
Back to top
View user's profile Send private message
mDup
Apprentice
Apprentice


Joined: 14 Apr 2006
Posts: 182

PostPosted: Sat Feb 03, 2018 10:28 pm    Post subject: Re: Chromium ebuild for arm64? Reply with quote

Sakaki wrote:
Hello,

does anyone have a working ebuild for www-client/chromium (any reasonably modern version) on arm64 they could share? I've had a few requests to add this to the weekly autobuild list for the gentoo-on-rpi3-64bit image, but haven't had much luck getting it to build myself (it is keyworded ~arm64 in the main tree, so maybe I'm missing something obvious).


I could never build www-client/chromium (I emerge natively on kvim2). I'll try again though.


Last edited by mDup on Wed Feb 07, 2018 10:05 pm; edited 1 time in total
Back to top
View user's profile Send private message
mDup
Apprentice
Apprentice


Joined: 14 Apr 2006
Posts: 182

PostPosted: Wed Feb 07, 2018 10:04 pm    Post subject: Reply with quote

My system is such that chromium is to be emerged as follows:
Code:
(desktop) kvim2-gentoo ~ # emerge -pv chromium

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    #] www-client/chromium-65.0.3315.3::gentoo  USE="hangouts (pic) proprietary-codecs pulseaudio suid system-ffmpeg system-icu widevine -component-build -cups -custom-cflags -gnome-keyring -jumbo-build (-kerberos) -neon (-selinux) (-system-libvpx) (-tcmalloc)" L10N="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv sw ta te th tr uk vi zh-CN zh-TW" 0 KiB

Total: 1 package (1 new), Size of downloads: 0 KiB

That emerge fails with:
Code:
../../third_party/skia/src/jumper/SkJumper_stages.cpp:670:12: error: ‘vcvt_f32_f16’ was not declared in this scope
     return vcvt_f32_f16(h);
            ^~~~~~~~~~~~

I will try again with -proprietary-codecs use.

Note I had to hack the ebuild as my arm64 system had less than 3GB RAM free.
Also note build may take long (same build on x86_64 with 8GB RAM and 12 3GHz cores took almost a day).

update
Unfortunately -proprietary-codecs USE does not avoid skia error.
Looking at code it seems one may need neon use. Let me try that.
update
Same error with neon USE.

So no go.
Back to top
View user's profile Send private message
fanthom
n00b
n00b


Joined: 31 May 2007
Posts: 60

PostPosted: Sun Feb 18, 2018 7:30 am    Post subject: Reply with quote

Not a real solution but i use chromium from Ubuntu:
http://ubuntutym.u-toyama.ac.jp/ubuntu-ports/pool/universe/c/chromium-browser/chromium-browser_64.0.3282.140-0ubuntu0.16.04.1_arm64.deb
http://ubuntutym.u-toyama.ac.jp/ubuntu-ports/pool/universe/c/chromium-browser/chromium-codecs-ffmpeg-extra_64.0.3282.140-0ubuntu0.16.04.1_arm64.deb

You may consider it as 'chromium-bin' :)

Should work for you unless you need specific USE flag.
Back to top
View user's profile Send private message
geki
Advocate
Advocate


Joined: 13 May 2004
Posts: 2319
Location: Germania

PostPosted: Sun Feb 18, 2018 10:04 am    Post subject: Reply with quote

There seems to be a hack to disable NEON for skia here. First hunk should suffice.

Though, looking at ubuntu source package, they build current chromium stable for arm64 with NEON just fine.
They use clang, which may behave, other than gcc? Source package and buildlog txt.gz.

Buildlog takes quite some time to open. You may search for: target_cpu="arm64" to see build flags. debian/known_gn_gen_args-* is not applied.

I just had a look around. I have no arm64 to play with. May it help ...

edit #1
Looking at the ebuild; neon useflag is only for arm architecture - ignored for arm64.
_________________
boost|select libs to build|slotable|python-buildid

hear hear
Back to top
View user's profile Send private message
Sakaki
Apprentice
Apprentice


Joined: 21 May 2014
Posts: 240

PostPosted: Thu Feb 22, 2018 6:43 pm    Post subject: Reply with quote

geki,

thanks, good idea about Ubuntu's build, I'll take a look at their patchset and the rest of their source package now.
_________________
Regards,

sakaki
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 41732
Location: 56N 3W

PostPosted: Mon Mar 05, 2018 7:06 pm    Post subject: Reply with quote

Sakaki,

chromium is keyworded ~arm64 and builds as is.
Its in my ~arm64 binhost
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
mDup
Apprentice
Apprentice


Joined: 14 Apr 2006
Posts: 182

PostPosted: Tue Mar 06, 2018 2:10 pm    Post subject: Reply with quote

NeddySeagoon wrote:
Sakaki,

chromium is keyworded ~arm64 and builds as is.
Its in my ~arm64 binhost


I am just curious:
Did you cross build or native build? And how long took the build?
Can you provide output of cross or native 'emerge -pv chromium'?
Then maybe I can adjust use flags to succeed as well.
Have a nice day!
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 41732
Location: 56N 3W

PostPosted: Tue Mar 06, 2018 2:44 pm    Post subject: Reply with quote

mDup,

Its a native build but not on my Raspberry Pi3. The update to www-client/chromium-65.0.3325.106 won't build.
It claims it cannot find a file.

Code:
[ebuild   R    ] www-client/chromium-64.0.3282.186::gentoo  USE="cups gnome-keyring hangouts (pic) proprietary-codecs suid system-ffmpeg system-icu -component-build -custom-cflags -jumbo-build (-kerberos) -neon -pulseaudio (-selinux) (-system-libvpx) (-tcmalloc) (-widevine)" L10N="en-GB -am -ar -bg -bn -ca -cs -da -de -el -es -es-419 -et -fa -fi -fil -fr -gu -he -hi -hr -hu -id -it -ja -kn -ko -lt -lv -ml -mr -ms -nb -nl -pl -pt-BR -pt-PT -ro -ru -sk -sl -sr -sv -sw -ta -te -th -tr -uk -vi -zh-CN -zh-TW" 0 KiB

_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
mDup
Apprentice
Apprentice


Joined: 14 Apr 2006
Posts: 182

PostPosted: Tue Mar 06, 2018 5:03 pm    Post subject: Reply with quote

NeddySeagoon wrote:
mDup,

Its a native build but not on my Raspberry Pi3. The update to www-client/chromium-65.0.3325.106 won't build.
It claims it cannot find a file.

Code:
[ebuild   R    ] www-client/chromium-64.0.3282.186::gentoo  USE="cups gnome-keyring hangouts (pic) proprietary-codecs suid system-ffmpeg system-icu -component-build -custom-cflags -jumbo-build (-kerberos) -neon -pulseaudio (-selinux) (-system-libvpx) (-tcmalloc) (-widevine)" L10N="en-GB -am -ar -bg -bn -ca -cs -da -de -el -es -es-419 -et -fa -fi -fil -fr -gu -he -hi -hr -hu -id -it -ja -kn -ko -lt -lv -ml -mr -ms -nb -nl -pl -pt-BR -pt-PT -ro -ru -sk -sl -sr -sv -sw -ta -te -th -tr -uk -vi -zh-CN -zh-TW" 0 KiB


OK : I will give 64.0.3282.186 a try build on Khadas VIM2 with adjusted USE (widevine in particular).
I may not do so immediately, basically because of lack of computer time.
Keep you informed
Back to top
View user's profile Send private message
mDup
Apprentice
Apprentice


Joined: 14 Apr 2006
Posts: 182

PostPosted: Fri Mar 09, 2018 6:54 pm    Post subject: Reply with quote

NeddySeagoon wrote:
mDup,
Its a native build but not on my Raspberry Pi3.[]...

On which platform did you build then? And did it take long?
Today I tried to emerge chromium-66.0.3355.0 but clang cannot find header files such as <functional>
I added -I/usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/g++-v7/ to CFLAGS and next clang cannot find header files such as <bits/c++config.h>
so I added -I/usr/lib/gcc/aarch64-unknown-linux-gnu/7.3.0/include/g++-v7/aarch64-unknown-linux-gnu/bits to CFLAGS an now I get plenty errors.
There must be something wrong with my clang. Not sure how to check that.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 41732
Location: 56N 3W

PostPosted: Fri Mar 09, 2018 7:51 pm    Post subject: Reply with quote

mDup,

I built it on a 96 core box with 128G RAM.
Code:
# genlop -t chromium
 * www-client/chromium

     Mon Mar  5 11:30:37 2018 >>> www-client/chromium-64.0.3282.186
       merge time: 1 hour, 29 minutes and 29 seconds

That does not include the fetch time.

chromium-66.x fails for me for 'functional' too.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
blopsalot
Apprentice
Apprentice


Joined: 28 Jan 2017
Posts: 231

PostPosted: Fri Mar 09, 2018 8:17 pm    Post subject: Reply with quote

NeddySeagoon wrote:
mDup,

I built it on a 96 core box with 128G RAM.
Code:
# genlop -t chromium
 * www-client/chromium

     Mon Mar  5 11:30:37 2018 >>> www-client/chromium-64.0.3282.186
       merge time: 1 hour, 29 minutes and 29 seconds

That does not include the fetch time.

chromium-66.x fails for me for 'functional' too.


do you have a Qualcomm Centriq? that's awesome.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 41732
Location: 56N 3W

PostPosted: Fri Mar 09, 2018 9:08 pm    Post subject: Reply with quote

blopsalot,

Its a Cavium, Inc. THUNDERX
That's a link to the sponsors site.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
mDup
Apprentice
Apprentice


Joined: 14 Apr 2006
Posts: 182

PostPosted: Fri Mar 09, 2018 10:19 pm    Post subject: Reply with quote

NeddySeagoon wrote:
mDup,
I built it on a 96 core box with 128G RAM.

that's cheating :o
Thanks for info!
Sometimes I wonder what it would give to distcc with, say, 16 8 core kvim2 units on a gigabit switch ...
Back to top
View user's profile Send private message
Khumarahn
Apprentice
Apprentice


Joined: 17 Apr 2009
Posts: 162

PostPosted: Sat Mar 17, 2018 8:07 pm    Post subject: Reply with quote

New chromium requires clang for compilation. Does anyone know how to distcc cross compile it?
Back to top
View user's profile Send private message
Khumarahn
Apprentice
Apprentice


Joined: 17 Apr 2009
Posts: 162

PostPosted: Mon Mar 19, 2018 1:45 pm    Post subject: Reply with quote

I know how to build chromium for arm64 in a reasonable time on my amd64 desktop! I am quite happy about it.

I compiled chromium-65.0.3325.16 with clang in a little less than 15 hours on my desktop with i7-3770 (running a bit slow because of cooling problems).

Compilation was done in an arm64 qemu chroot with distcc. The distcc server is running on the same machine, in the amd64 host system. Both have the same clang version 5.0.1.

The setup is as follows. In chroot:
Code:
# ls -al /usr/lib64/distcc/bin/                 
total 32
drwxr-xr-x 1 root root 384 Mar 18 13:42 .
drwxr-xr-x 1 root root   6 Nov  3 08:38 ..
lrwxrwxrwx 1 root root  15 Mar 18 13:41 aarch64-linux-gnu-c++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root  15 Mar 18 13:41 aarch64-linux-gnu-c++-7.3.0 -> /usr/bin/distcc
lrwxrwxrwx 1 root root  15 Mar 18 13:42 aarch64-linux-gnu-clang -> /usr/bin/distcc
lrwxrwxrwx 1 root root  15 Mar 18 13:42 aarch64-linux-gnu-clang++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root  15 Mar 18 13:41 aarch64-linux-gnu-g++ -> /usr/bin/distcc
lrwxrwxrwx 1 root root  15 Mar 18 13:41 aarch64-linux-gnu-g++-7.3.0 -> /usr/bin/distcc
lrwxrwxrwx 1 root root  15 Mar 18 13:41 aarch64-linux-gnu-gcc -> /usr/bin/distcc
lrwxrwxrwx 1 root root  15 Mar 18 13:41 aarch64-linux-gnu-gcc-7.3.0 -> /usr/bin/distcc


On the host system:
Code:
# cat /usr/local/bin/aarch64-linux-gnu-clang
#!/bin/sh
CHOST=aarch64-linux-gnu
/usr/lib/llvm/5/bin/clang --target=${CHOST} $@

Code:

# cat /usr/local/bin/aarch64-linux-gnu-clang++
#!/bin/sh
CHOST=aarch64-linux-gnu
/usr/lib/llvm/5/bin/clang++ --target=${CHOST} $@


Distcc is used without pump, so the host system only has to compile preprocessed files.
Back to top
View user's profile Send private message
Khumarahn
Apprentice
Apprentice


Joined: 17 Apr 2009
Posts: 162

PostPosted: Wed May 09, 2018 2:10 pm    Post subject: Reply with quote

Anybody has any luck with chromium-67.0.3396.30?

For me, the configure stage of the bundled ffmpeg fails. For some reason, it uses gcc but passes clang's --target option:

build.log:

Running /var/tmp/portage/www-client/chromium-67.0.3396.30/work/chromium-67.0.3396.30/third_party/ffmpeg/configure
 --disable-everything
 --disable-all
 ...
 --enable-demuxer=aac
 --enable-parser=aac,h264
/usr/bin/aarch64-linux-gnu-gcc is unable to create an executable file.


ffmpeg config log:

BEGIN /var/tmp/portage/www-client/chromium-67.0.3396.30/work/temp/ffconf.FF1YaUYD/test.c
    1   int main(void){ return 0; }
END /var/tmp/portage/www-client/chromium-67.0.3396.30/work/temp/ffconf.FF1YaUYD/test.c
/usr/bin/aarch64-linux-gnu-gcc --sysroot=/var/tmp/portage/www-client/chromium-67.0.3396.30/work/chromium-67.0.3396.30/build/linux/debian_sid_arm64-sysroot -O2 -pipe -march=armv8-a+crypto+crc -mtune=cortex-a53 -I/var/tmp/portage/www-client/chromium-67.0.3396.30/work/chromium-67.0.3396.30/third_party/opus/src/include --target=aarch64-linux-gnu -march=armv8-a -c -o /var/tmp/portage/www-client/chromium-67.0.3396.30/work/temp/ffconf.FF1YaUYD/test.o /var/tmp/portage/www-client/chromium-67.0.3396.30/work/temp/ffconf.FF1YaUYD/test.c
aarch64-linux-gnu-gcc: error: unrecognized command line option '--target=aarch64-linux-gnu'
C compiler test failed.


Edit: system-ffmpeg use flag is masked in ref to https://bugs.gentoo.org/654208
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 41732
Location: 56N 3W

PostPosted: Wed May 09, 2018 4:54 pm    Post subject: Reply with quote

Khumarahn,

That's fixed by commit 6c397b9187d660d61dfbfd4fab1fdf60e5227faa for chromium-68.0.3409.2.
Now it fails later in the build but I've not had time to investigate further.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Khumarahn
Apprentice
Apprentice


Joined: 17 Apr 2009
Posts: 162

PostPosted: Wed May 09, 2018 4:55 pm    Post subject: Reply with quote

Thanks! It there a corresponding fix for chromium 67? Version 68 is masked, I did not even try it.
Back to top
View user's profile Send private message
Khumarahn
Apprentice
Apprentice


Joined: 17 Apr 2009
Posts: 162

PostPosted: Fri May 11, 2018 8:24 pm    Post subject: Reply with quote

I tried to use 6c397b9187d660d61dfbfd4fab1fdf60e5227faa on chromium-67.0.3396.30. Now it fails with
Code:
FAILED: obj/third_party/ffmpeg/ffmpeg_internal/fft_neon.o
aarch64-linux-gnu-clang -MMD -MF obj/third_party/ffmpeg/ffmpeg_internal/fft_neon.o.d -DHAVE_AV_CONFIG_H -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -D_ISOC99_SOURCE -D_LARGEFILE_SOURCE -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DOPUS_FIXED_POINT -I../../third_party/ffmpeg/chromium/config/Chrome/linux/arm64 -I../../third_party/ffmpeg -I../.. -Igen -I../../third_party/opus/src/include -DHAVE_VFP_ARGS=1 -fno-strict-aliasing -fmerge-all-constants --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -fcolor-diagnostics -no-canonical-prefixes -std=gnu11 -c ../../third_party/ffmpeg/libavcodec/aarch64/fft_neon.S -o obj/third_party/ffmpeg/ffmpeg_internal/fft_neon.o
<instantiation>:15:9: error: unknown directive
        .func fft4_neon
        ^
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on ARM All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum