ld/PE: don't emit relocations for weak absolute symbols First we should check the flag alone, not the entire flags value matching BSF_WEAK. And then using "else if()" is inappropriate here: A weak symbol can very well also be absolute, and hence wouldn't want a relocation emitted despite being defined.