I thought that only linker does the symbol relocation so that once we get an Executable Object File (a.out), the symbol\'s logical address won\'t change. However, it seems t