LTO is faster, seems nice? Unfortunately, I tried and I can't build it on the RoboRIO directly... so, will need to cross-compile it on the host, which will require a three part build to do LTO + profile guided optimizations:
Build profile-enabled python first
Copy build to RoboRIO, gather profile information, copy back to host
Build optimized python
I tried it and failed (python failed to initialize for some reason), will need to try later in the beta period (but you can try too if you're awesome at building things):
opkg install rsync
docker run --rm -it \
-v $(pwd):/media/sda1/Python \
-w /media/sda1/Python \
--hostname robotpy-builder \
wpilib/roborio-cross-ubuntu:2024-22.04
tar -xf Python-3.13.0.tgz
cd Python-3.13.0
configure ..
note: local build has bz2, lzma
.. TODO: change unpack.py to fix the .pc files to be relocatable
remote: make profile-run-stamp .. no
patch it
run it
rsync it back
- might need to mess with timestamps
make profile-gen-stamp
rsync -av Python-3.13.0 roborio:/media/sda1/Python-3.13.0
LD_LIBRARY_PATH=$(pwd) ./python -m test --pgo
make clean-retain-profile
touch profile-run-stamp
make profile-opt
make DESTDIR=/media/sda1/install install
LTO is faster, seems nice? Unfortunately, I tried and I can't build it on the RoboRIO directly... so, will need to cross-compile it on the host, which will require a three part build to do LTO + profile guided optimizations:
I tried it and failed (python failed to initialize for some reason), will need to try later in the beta period (but you can try too if you're awesome at building things):
TODO download.sh:
unpack.py for unpacking ipk: