Porting/Chromium/BE

From RCS Wiki
Revision as of 12:34, 2 October 2018 by MarcusC (talk | contribs) (Created page with "== Changes required to Chromium to work on big endian == * Sandbox ** sandbox/linux/system_headers/linux_seccomp.h *:- The definition of the big endian variant is incorrect (...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Changes required to Chromium to work on big endian

  • Sandbox
    • sandbox/linux/system_headers/linux_seccomp.h
    - The definition of the big endian variant is incorrect (contains a bogus "__AUDIO_ARCH_BE"). Also, it would be better to define two different macros AUDIT_ARCH_PPC64 and AUDIT_ARCH_PPC64LE (because that is how it actually looks in <linux/audit.h>), and choose the correct one in sandbox/linux/bpf_dsl/seccomp_macros.h instead.
  • Safe browsing
    • components/safe_browsing/db/v4_rice.cc
    - #error The code below assumes little-endianness.
  • third_party/skia
    • include/private/GrTypesPriv.h
    - #error "Skia gpu currently assumes little endian"
    • src/opts/Sk4px_none.h
    - Sk4px::alphas, Sk4px::zeroAlphas, Sk4px::zeroColors: "This method assumes little-endian."
    • src/opts/SkXfermode_opts.h
    - a_rgb assumes specific component order
    • src/utils/SkJSON.cpp and src/utils/SkJSON.h
    - Tagged value implementation needs to be adapted for BE
  • third_party/boringssl/src
    • crypto/fipsmodul/bn/bytes.c
    - Bignum I/O functions need adaption for BE
  • third_party/perfetto
    • src/ipc/buffered_frame_deserializer.cc, src/ipc/buffered_frame_deserializer_unittest.cc
    - Uses "AssumeLittleEndian" template
    • src/protozero/message.cc
    - float and double handling need adjusting for BE (accoring to comment)
    • src/protozero/proto_decoder.cc
    - Byteswap implementations missing
  • third_party/ffmpeg
    • chromium/scripts/build_ffmpeg.py
    - Needs to recognize 'ppc64' as well as 'ppc64le'
  • third_party/webrtc
    • common_audio/wav_file.cc
    - WavReader::ReadSamples and WavWriter::WriteSamples need to byteswap the samples
    • common_audio/wav_header.cc
    - Conversion functions missing
  • third_party/libyuv
- Depending on choice of Skia pixel format, additional conversion function variants may be needed