I just had the same problem. The best explanation I was able to find was this:
On a side note, your linker could be picking up a dynamic (*.so)
library that prevents -static-libstdc++ and -static-libgcc to be used.
Every library calling libgcc and libstdc++ should be linked statically
(if there is a static version available, of course).
https://stackoverflow.com/a/18263911/399105
Digging even further, it also seems that statically linking glibc (which gcc uses by default) may not be a good idea either, and there are better alternatives such as uClibc and musl libc.
Between the two, musl seemed to be more recently maintained, so that's what I went with. I was finally able to build a fully static binary by first building musl statically:
./configure --disable-shared --enable-wrapper=gcc && make && sudo make install
And then using musl to build the other software statically:
CC="/usr/local/musl/bin/musl-gcc" LDFLAGS="-static" ./configure
If you want more details, you can see exactly what I was doing here: https://github.com/bmaupin/openldap-tools-static/blob/master/build.sh