Porting

In Software Engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program was originally designed for. (e.g. different CPU, different Compiler, environment, OS, libraries)

I’ve ported google benchmark to QNX sdp8 (releasing end of 2023). Just to get it to build on the sdp8 environment took a lot of changing the CMake files. And it took a lot of debugging, fixing CMake files, libraries and linker. Need a lot of knowledge in both environment (between Linux and QNX). Need to also test them on a RPI (aarch64) and QEMU (x86) to see if all test passes, if it doesn’t, debug.

Open Source Project I’ve worked on porting to QNX 8.0: Google benchmark, Csmith, Trompeloeil, Abseil-cpp, Libmetal, Open-AMP, re2, avro-cpp-packaging, libuv, gflags, cjson, jsoncpp.

Here’s a thread talking about it: https://www.reddit.com/r/explainlikeimfive/comments/s656di/eli5_what_is_involved_in_porting_software_to/