Porting/Chromium/BE
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