I'm not sure I understand this correctly. Is this about several compilation units declaring extern int foo; and no-one declaring int foo; and the question whether linking them together regards foo as undefined?