libraries may hide porting problems

der Mouse mouse at mcgill-vision.UUCP
Sat Sep 10 06:56:37 AEST 1988


In article <Aug.31.18.45.05.1988.12460 at topaz.rutgers.edu>, ron at topaz.rutgers.edu (Ron Natalie) writes:
> You're problem is NOT that the _four is not properly reported as
> being multiply defined, it is that the module two.o isn't loaded at
> all.  The "int a" declaration generates a .com of the appropriate
> space.  Declarations need not force loading of modules with identical
> declarations.

Except the declarations weren't identical.  The explicitly-loaded .o
file's declaration was explicitly extern.  The one in the library was a
non-extern definition (a "tentative" definition).  *Some* definition of
that variable is needed somewhere, or the loader will (properly)
generate an undefined symbol error.  The problem is that two.o provides
that definition, but the definition is being taken from two.o without
including the rest of two.o.  I agree with the original poster that
this is a bug.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse at larry.mcrcim.mcgill.edu



More information about the Comp.bugs.4bsd.ucb-fixes mailing list