Difference between revisions of "Porting/Chromium (Old)"

From RCS Wiki
Jump to navigation Jump to search
Line 22: Line 22:
 
sudo apt full-upgrade
 
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
+
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
  
 
cd
 
cd
Line 82: Line 82:
 
cat src/DEPS | sed "s/git_revision:bc125484b8513898f17bc2501ac5e95330f44a3b/git_revision:ed999c8ac210539ae9d71f65436a2c47015712d5/" | tee src/DEPS
 
cat src/DEPS | sed "s/git_revision:bc125484b8513898f17bc2501ac5e95330f44a3b/git_revision:ed999c8ac210539ae9d71f65436a2c47015712d5/" | tee src/DEPS
  
cat src/third_party/binutils/download.py | sed "s/return 1/return FetchAndExtract(arch)/" | tee src/third_party/binutils/download.py
+
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 sync
Line 109: Line 109:
 
cat buildtools/third_party/libc++/trunk/include/thread | sed "s/_LIBCPP_CONSTEXPR duration<long double> _Max/duration<long double> _Max/" | tee buildtools/third_party/libc++/trunk/include/thread
 
cat buildtools/third_party/libc++/trunk/include/thread | sed "s/_LIBCPP_CONSTEXPR duration<long double> _Max/duration<long double> _Max/" | tee buildtools/third_party/libc++/trunk/include/thread
  
cat third_party/webrtc/rtc_base/system/arch.h | sed "s/#else\n#error Please add support for your architecture in typedefs.h/#elif defined(__PPC__)\n#define WEBRTC_ARCH_PPC_FAMILY\n#if defined(__ORDER_LITTLE_ENDIAN__)\n#define WEBRTC_ARCH_LITTLE_ENDIAN\n#else\n#define WEBRTC_ARCH_BIG_ENDIAN\n#endif\n#if defined(__LP64__)\n#define WEBRTC_ARCH_64_BITS\n#else\n#define WEBRTC_ARCH_32_BITS\n#endif\n#else\n#error Please add support for your architecture in typedefs.h/" | tee third_party/webrtc/rtc_base/system/arch.h
+
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
  
 
ninja -C out/Default chrome
 
ninja -C out/Default chrome

Revision as of 15:46, 9 August 2018

DRAFT

https://bugs.chromium.org/p/chromium/issues/detail?id=871084 https://bugs.chromium.org/p/chromium/issues/detail?id=872534

TO PORT

crashpad

sandbox

webrtc

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

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

fetch --no-history --nohooks chromium

cat src/DEPS | sed "s/git_revision:bc125484b8513898f17bc2501ac5e95330f44a3b/git_revision:ed999c8ac210539ae9d71f65436a2c47015712d5/" | tee src/DEPS

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

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

cat buildtools/third_party/libc++/trunk/include/thread | sed "s/_LIBCPP_CONSTEXPR duration<long double> _Max/duration<long double> _Max/" | tee buildtools/third_party/libc++/trunk/include/thread

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

ninja -C out/Default chrome