Porting/Chromium (Old)
Revision as of 20:57, 11 August 2018 by Shawnanastasio (talk | contribs) (Add patches to upstream breakpad tree)
DRAFT
- Issues opened:
- Patchfiles uploaded: (Chromium Tree)
- https://wiki.raptorcs.com/wiki/File:Modules-desktop_capture-differ_block.cc-PPC.patch changes are pending upstream (https://bugs.chromium.org/p/chromium/issues/detail?id=872994)
- https://wiki.raptorcs.com/wiki/File:Buildtools-third_party-libc%2B%2B-trunk-include-thread-PPC.patch
- https://wiki.raptorcs.com/wiki/File:Src-DEPS.patch changes are pending upstream (https://bugs.chromium.org/p/chromium/issues/detail?id=871084#c7)
- https://wiki.raptorcs.com/wiki/File:Rtc_base-system-arch.h-PPC.patch changes are pending upstream (https://bugs.chromium.org/p/chromium/issues/detail?id=872994)
- https://wiki.raptorcs.com/wiki/File:Binutils-download.py-PPC.patch
- https://wiki.raptorcs.com/wiki/File:0001-sandbox-linux-bpf_dsl-Update-syscall-ranges-for-ppc6.patch
- https://wiki.raptorcs.com/wiki/File:0002-sandbox-linux-bpf_dsl-Modify-seccomp_macros-to-add-s.patch
- https://wiki.raptorcs.com/wiki/File:0003-sandbox-linux-system_headers-Update-linux-seccomp-he.patch
- https://wiki.raptorcs.com/wiki/File:0004-sandbox-linux-system_headers-Update-linux-signal-hea.patch
- https://wiki.raptorcs.com/wiki/File:0005-sandbox-linux-seccomp-bpf-Add-ppc64-syscall-stub.patch
- https://wiki.raptorcs.com/wiki/File:Sandbox-linux-services-credentials.cc-PPC.patch
- https://wiki.raptorcs.com/wiki/File:0001-sandbox-Enable-seccomp_bpf-for-ppc64.patch
- https://wiki.raptorcs.com/wiki/File:0001-sandbox-linux-Implement-partial-support-for-ppc64-sy.patch
- https://wiki.raptorcs.com/wiki/File:0001-sandbox-linux-seccomp-bpf-helpers-Fix-TCGETS-declara.patch
- https://wiki.raptorcs.com/wiki/File:0001-sandbox-linux-seccomp-bpf-helpers-Skip-vserver-sysca.patch
- https://wiki.raptorcs.com/wiki/File:0001-services-service_manager-sandbox-linux-Fix-TCGETS-de.patch
- https://wiki.raptorcs.com/wiki/File:0001-third_party-angle-Include-missing-header-cstddef-in-.patch
- https://wiki.raptorcs.com/wiki/File:0001-third_party-lss-Don-t-look-for-mmap2-on-ppc64.patch
- Patchfiles uploaded (Breakpad Tree):
- What to port to ppc
- crashpad
- sandbox
webrtc- nacl
- more??
# Install Ubuntu 16 LTS ppc64le in VM with good amount of CPUs and ~16GB RAM, the more CPUs the more RAM, and around 200GB disk space sudo apt update sudo apt full-upgrade sudo apt install python libcups2-dev pkg-config libnss3-dev libssl-dev libglib2.0-dev libgnome-keyring-dev libpango1.0-dev libdbus-1-dev libatk1.0-dev libatk-bridge2.0-dev libgtk-3-dev re2c subversion curl libasound2-dev libpci-dev mesa-common-dev gperf bison ##begin alternate - use a xenial-chroot instead of a VM #Create chroot sudo debootstrap --include=software-properties-common xenial xenial-chroot http://us.ports.ubuntu.com/ubuntu-ports/ubuntu-ports/ #must be mapped for chroot to function properly sudo mount -t proc none xenial-chroot/proc/ sudo mount -o bind /sys/ xenial-chroot/sys/ sudo mount -o bind /dev/shm/ xenial-chroot/dev/shm/ #enter chroot sudo chroot xenial-chroot #add additional apt sources echo "deb http://us.ports.ubuntu.com/ubuntu-ports/ubuntu-ports xenial-updates main" >> /etc/apt/sources.list echo "deb http://us.ports.ubuntu.com/ubuntu-ports/ubuntu-ports xenial universe" >> /etc/apt/sources.list echo "deb http://us.ports.ubuntu.com/ubuntu-ports/ubuntu-ports xenial-updates universe" >> /etc/apt/sources.list #update and add software as mentioned above apt update apt full-upgrade apt install <packages listed above> #add chroot user useradd -m build-user -s /bin/bash su build-user cd ##end alternate - use a xenial-chroot instead of a VM cd git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=$PATH:$(pwd)/ninja export PATH=$PATH:$(pwd)/depot_tools export VPYTHON_BYPASS="manually managed python not supported by chrome operations" export GYP_DEFINES="disable_nacl=1" git clone git://github.com/ninja-build/ninja.git cd ninja git checkout release ./configure.py --bootstrap which ninja # ensure it is right ninja bin, else figure out a way so it is the right one that comes up cd git clone https://gn.googlesource.com/gn export CC=gcc export CXX=g++ export AR=ar cd gn python build/gen.py --no-sysroot cat out/build.ninja | sed s/-stdlib=libstdc++//g | tee out/build.ninja ninja -C out unset CXX unset CC unset AR cd mkdir chromium cd chromium # The following command will fail with a message "failed to resolve package version". # Once it does, simply continue following the instructions. The subsequent patches will resolve the issue. fetch --no-history --nohooks chromium curl "https://wiki.raptorcs.com/w/images/4/45/Src-DEPS.patch" | patch -p1 src/DEPS # If this patchfile stops working, ignore the error, see "Patchfiles uploaded" curl "https://wiki.raptorcs.com/w/images/1/10/Binutils-download.py-PPC.patch" | patch -p1 src/third_party/binutils/download.py gclient sync gclient runhooks mv src/buildtools/linux64/gn src/buildtools/linux64/gn.old ln -s $HOME/gn/out/gn src/buildtools/linux64/gn cd src # build system patches curl "https://wiki.raptorcs.com/w/images/6/69/Buildtools-third_party-libc%2B%2B-trunk-include-thread-PPC.patch" | patch -p1 buildtools/third_party/libc++/trunk/include/thread # webrtc patches curl "https://wiki.raptorcs.com/w/images/b/b2/Rtc_base-system-arch.h-PPC.patch" | patch -p1 third_party/webrtc/rtc_base/system/arch.h curl "https://wiki.raptorcs.com/w/images/9/96/Modules-desktop_capture-differ_block.cc-PPC.patch" | patch -p1 third_party/webrtc/modules/desktop_capture/differ_block.cc # sandbox patches curl "https://wiki.raptorcs.com/w/images/a/ab/0001-sandbox-linux-bpf_dsl-Update-syscall-ranges-for-ppc6.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/3/30/0002-sandbox-linux-bpf_dsl-Modify-seccomp_macros-to-add-s.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/6/60/0003-sandbox-linux-system_headers-Update-linux-seccomp-he.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/e/ec/0004-sandbox-linux-system_headers-Update-linux-signal-hea.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/b/b3/0005-sandbox-linux-seccomp-bpf-Add-ppc64-syscall-stub.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/f/f5/Sandbox-linux-services-credentials.cc-PPC.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/b/be/0001-sandbox-Enable-seccomp_bpf-for-ppc64.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/3/38/0001-sandbox-linux-Implement-partial-support-for-ppc64-sy.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/b/bb/0001-sandbox-linux-seccomp-bpf-helpers-Fix-TCGETS-declara.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/e/e7/0001-sandbox-linux-seccomp-bpf-helpers-Skip-vserver-sysca.patch" | patch -p1 # service_manager patches curl "https://wiki.raptorcs.com/w/images/c/c9/0001-services-service_manager-sandbox-linux-Fix-TCGETS-de.patch" | patch -p1 # third_party patches curl "https://wiki.raptorcs.com/w/images/8/8a/0001-third_party-angle-Include-missing-header-cstddef-in-.patch" | patch -p1 curl "https://wiki.raptorcs.com/w/images/f/fc/0001-third_party-lss-Don-t-look-for-mmap2-on-ppc64.patch" | patch -p1 gn args out/Default # PASTE IN EDITOR enable_nacl=false treat_warnings_as_errors=false # END PASTE Save file and it will generate build configuration ninja -C out/Default chrome