Skip to content
This repository has been archived by the owner on Jan 6, 2023. It is now read-only.

ARM 64 Build Problems #334

Closed
groundwater opened this issue Aug 4, 2017 · 5 comments
Closed

ARM 64 Build Problems #334

groundwater opened this issue Aug 4, 2017 · 5 comments

Comments

@groundwater
Copy link
Contributor

groundwater commented Aug 4, 2017

Following the build instructions for arm64.
Building in Docker with Dockerfile

# builds libcc
FROM ubuntu

RUN apt-get update
RUN apt-get install -y build-essential
RUN apt-get install -y python
RUN apt-get install -y git
RUN apt-get install -y wget
RUN apt-get install -y pkg-config

Running in Docker via

$ docker run -v $(pwd):/libcc -w /libcc -it libcc
# ./script/update -t arm64
ERROR at //build/config/linux/pkg_config.gni:85:17: Script returned non-zero exit code.
    pkgresult = exec_script(pkg_config_script, args, "value")
                ^----------
Current dir: /libcc/src/out-arm64/static_library/
Command: python -- /libcc/src/build/config/linux/pkg-config.py -s /libcc/src/build/linux/debian_jessie_arm64-sysroot -a arm64 gmodule-2.0 gtk+-3.0 gthread-2.0
Returned 1.
stderr:

Package xkbcommon was not found in the pkg-config search path.
Perhaps you should add the directory containing `xkbcommon.pc'
to the PKG_CONFIG_PATH environment variable
Package 'xkbcommon', required by 'gdk-3.0', not found
Could not run pkg-config.

See //build/config/linux/gtk3/BUILD.gn:14:1: whence it was called.
pkg_config("gtk3_internal_config") {
^-----------------------------------
See //chrome/browser/ui/libgtkui/BUILD.gn:146:12: which caused the file to be included.
           "//build/config/linux/gtk3:gtkprint3",
           ^------------------------------------
ERROR at //build/config/linux/pkg_config.gni:85:17: Script returned non-zero exit code.
    pkgresult = exec_script(pkg_config_script, args, "value")
                ^----------
Current dir: /libcc/src/out-arm64/shared_library/
Command: python -- /libcc/src/build/config/linux/pkg-config.py -s /libcc/src/build/linux/debian_jessie_arm64-sysroot -a arm64 gmodule-2.0 gtk+-3.0 gthread-2.0
Returned 1.
stderr:

Package xkbcommon was not found in the pkg-config search path.
Perhaps you should add the directory containing `xkbcommon.pc'
to the PKG_CONFIG_PATH environment variable
Package 'xkbcommon', required by 'gdk-3.0', not found
Could not run pkg-config.

See //build/config/linux/gtk3/BUILD.gn:14:1: whence it was called.
pkg_config("gtk3_internal_config") {
^-----------------------------------
See //chrome/browser/ui/libgtkui/BUILD.gn:145:12: which caused the file to be included.
           "//build/config/linux/gtk3",
           ^--------------------------
ERROR at //build/config/linux/pkg_config.gni:85:17: Script returned non-zero exit code.
    pkgresult = exec_script(pkg_config_script, args, "value")
                ^----------
Current dir: /libcc/src/out-arm64/ffmpeg/
Command: python -- /libcc/src/build/config/linux/pkg-config.py -s /libcc/src/build/linux/debian_jessie_arm64-sysroot -a arm64 gmodule-2.0 gtk+-3.0 gthread-2.0
Returned 1.
stderr:

Package xkbcommon was not found in the pkg-config search path.
Perhaps you should add the directory containing `xkbcommon.pc'
to the PKG_CONFIG_PATH environment variable
Package 'xkbcommon', required by 'gdk-3.0', not found
Could not run pkg-config.

See //build/config/linux/gtk3/BUILD.gn:14:1: whence it was called.
pkg_config("gtk3_internal_config") {
^-----------------------------------
See //chrome/browser/ui/libgtkui/BUILD.gn:145:12: which caused the file to be included.
           "//build/config/linux/gtk3",
           ^--------------------------

I have verified that ./script/update -t arm builds it's targets just fine.

From what I understand about this, it looks like pkg-config is searching the arm64 sysroot for relevant packages enumerated here:

root@c620086eb06e:/libcc# find /libcc/src/build/linux/debian_jessie_arm64-sysroot -name \*.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/alsa.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/atk.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/bluez.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-fc.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-ft.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-gobject.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-pdf.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-png.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-ps.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-script.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-svg.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-tee.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-xcb-shm.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-xcb.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-xlib-xrender.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo-xlib.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/cairo.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/com_err.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/dbus-1.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/dri.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/egl.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/expat.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/fontconfig.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/freetype2.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gconf-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gdk-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gdk-3.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gdk-broadway-3.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gdk-pixbuf-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gdk-pixbuf-xlib-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gdk-wayland-3.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gdk-x11-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gdk-x11-3.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gio-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gio-unix-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gl.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/glib-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gmodule-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gmodule-export-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gmodule-no-export-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gnome-keyring-1.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gnutls.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gobject-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gssrpc.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gthread-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gtk+-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gtk+-3.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gtk+-broadway-3.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gtk+-unix-print-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gtk+-unix-print-3.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gtk+-wayland-3.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gtk+-x11-2.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/gtk+-x11-3.0.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/harfbuzz-gobject.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/harfbuzz-icu.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/harfbuzz.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/kadm-client.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/kadm-server.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/kdb.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/krb5-gssapi.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/krb5.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libcap.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libcrypto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libdrm.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libdrm_nouveau.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libdrm_radeon.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libffi.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libpci.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libpcre.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libpcrecpp.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libpcreposix.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libpng.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libpng12.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libpulse-mainloop-glib.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libpulse-simple.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libpulse.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libssl.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/libudev.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/mit-krb5/gssrpc.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/mit-krb5/kadm-client.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/mit-krb5/kadm-server.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/mit-krb5/kdb.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/mit-krb5/krb5-gssapi.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/mit-krb5/krb5.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/mit-krb5-gssapi.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/mit-krb5.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/nspr.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/nss.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/openssl.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/pango.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/pangocairo.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/pangoft2.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/pangoxft.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/pixman-1.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/pthread-stubs.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/speech-dispatcher.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/wayland-client.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/wayland-cursor.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/wayland-egl.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/wayland-scanner.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/wayland-server.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/x11-xcb.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/x11.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xau.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xcb-render.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xcb-shm.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xcb.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xcomposite.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xcursor.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xdamage.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xdmcp.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xext.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xfixes.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xi.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xinerama.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xrandr.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xrender.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xscrnsaver.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xt.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xtst.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xulrunner-nspr.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/xulrunner-nss.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/lib/pkgconfig/zlib.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/compositeproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/damageproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/fixesproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/inputproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/kbproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/randrproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/recordproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/renderproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/scrnsaverproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/xextproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/xineramaproto.pc
/libcc/src/build/linux/debian_jessie_arm64-sysroot/usr/share/pkgconfig/xproto.pc

You can see, the ones it's requesting do not exist.

@zeke
Copy link
Contributor

zeke commented Aug 4, 2017

cc @jeanbruder @WebReflection @dantwinkler

@groundwater
Copy link
Contributor Author

I removed libcc, did a fresh checkout, and ./script/update -t arm64 worked. Trying to build now!

@jbcpollak
Copy link

@kolach

@WebReflection
Copy link

FWIW apparently even QtWebEngine (Chromium) doesn't work on RPi3 and aarch64 upstream.

If you manage to build it I'd be happy to test it for you. Thanks

@groundwater
Copy link
Contributor Author

I gave up on Docker. I was using it through MacOS and would get "Bad File Descriptor" errors. I imagine something about the shared directory between the two system was causing problems.

Building on Ubuntu 16.x VM right now. I got libcc building. Working on getting Electron building now.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants