Not answering every point but: You are right, gcc 4.9 generates some code using opcodes that need newer gas. Try building the port with clang (it would also help the case where the port itself has asm needing a newer assembler; clang has an integrated assembler which generally has better opcode support, it's needed e.g. for some video codecs in x86-land for this reason too).
MODULES += lang/clang MODCLANG_ARCHS = * gstreamer1 in -current already uses this but the currently available mips64el package snapshot pre-dates this change. > - Is there a reason why we seem to have two binutils source trees? The intent is to convert arch-by-arch as the 2.17 tree is fixed to work with them. > - I understand that part of the reason for sticking with 2.17 is > licensing. Is there something that OpenBSD is doing that would violate > this? There isn't - it's to avoid adding GPLv3 code to OpenBSD, not because it's not allowed on the gnu side.