Ok, thanks for all then info.
I bashed together a quick script to automate stuff.
First I used git-svn to get a local git repository of all the precompiled libs to prevent hammering the svn server each time I switch libs.
git svn clone --prefix=svn/ -r62361:HEAD https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_centos7_x86_64/
Checks out everything you need to go back to v2.82, which is not too much.
I stored this git repo in a subdir called gitsvnlib
I the created a script to fish out the date of the currently checkout out revision in the blender subdir and check out the corresponding libs in the gitsvnlib subdir. I then symlink gitsvnlib to lib. This is not really needed but my finger memory got so used to deleting the lib subdir all the time that I do it this way to prevent accidentally wiping my painfully downloaded git repo.
script:
#!/bin/sh
cd `dirname $0`
cd blender
date=`git log -n 1 --date=iso | grep Date `
date=${date##Date:}
cd ../gitsvnlib/linux_centos7_x86_64
rev=$(git rev-list -1 --until="$date" master)
echo Checking out libraries for $date : $rev
git checkout $rev 2> /dev/null
git clean -f -d -x
git reset --hard
cd ../../lib
rm -rf linux_centos7_x86_64
ln -s ../gitsvnlib/linux_centos7_x86_64 .
this together wit another script in the blender dir named ‘t’:
#!/bin/sh
../checkoutcorrespondinglibs.sh
rm -rf ../build_linux_debug
make debug ninja
cd ../build_linux_debug/
make -j10
bin/blender
cd ../blender
make bisecting a loop of
while true:
./t
<test>
git bisect <good|bad>
So far it seems to work in checking out the correct libs. But I still can’t build v2.83.6.1 because I still get a compilation error. Maybe some off-by one error in which lib version I need.
btw. It’s extremely helpful to set up ccache and add
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
to the top of CMakeLists.txt when doing this. (which you then need to git stash and git apply for each bisect, now that I think of that I should stick that into the ‘t’ script as well…)
edit:
it doesn’t work for 2.83.6.1 (I get some compilation error) but it does seem to work for most later revisions, so I can bisect. I’ll try to find out why 2.83.6.1 doesn’t want to build maybe later 