А причем тут линкер? Линкеру все равно, либо он "видит" символ, либо - нет. А вот чтобы линкер все-таки "увидел" требуемый символ, его нужно в ассемблере прописать соответствующим образом. А в разных ассемблерах это делается по-разному. В одних их нужно обязательно объявлять глобальными, в других - можно символы сделать глобальными по умолчанию. Или нет?