However I found that on the linux tree the binutils and gcc did not have a select case for the armv7l kernel.
Adding a choice to linux.h and one of the config files in binutils correctly identified and allowed GCC to build.
You might look for where the M2 is recognized and add a similar line for the M3.
Another thing that I saw was a series of commits back in 2015-2016 that did not include the identifier 0X007 or ARMv7l. Perhaps android has a similar set of changes. Reverting these may allow a build.
Mostly what I have observed is that all of the pieces are there but not arranged and scripted for the BPI-M3 in later kernels much of the steps are the same but omit the A83T.