I have updated Citro3D and libctru to their most recent versions
That's your problem! Since most recent ctrulib versions got rid of "old" GPU functions, it's incompatible with sf2dlib.
Also, if Citro3D requires sf2dlib, then switch the library order: -lcitro3d -lsf2d -lctru -lm
Use this ctrulib for building: https://github.com/smealum/ctrulib/tree/5725ec2dedfffb2ee721dd8cddb3d24c288f452f