You should ensure that i686-elf-as binary has been properly built, check its --target-help options for example. from its output it should be clear (hopefully) for what target it has been built. if it shows apple specific things, then you configured your build wrong. if it is for i686-elf, as it was intended for, then your build is OK, and you have some trouble with environment settings.
I think I found the problem, when I try i686-elf-as --target-help, everything looks good, but when I try i686-elf-gcc --target-help, in the section "Assembler options" it sais "clang: warning: argument unused during compilation: '--target-help'" so, I think that my i686-elf-gcc uses as, located in /usr/bin/as instead of i686-elf-as, and I think that the same thing happens to ld