[gnu.g++.bug] bug: multiple constant definitions cause multiply defined symbols

dove@UCBVAX.BERKELEY.EDU (Webster Dove) (12/05/88)

In InterViews-2.4 src/include/allegro/space.h there are the following
lines: 
/*
 * Protocol definitions.
 */

const int objectspace_Find = 1;
const int objectspace_Clone = 2;
const int objectspace_Destroy = 3;

Since this header file is included in several liballegro.a modules,
the constants show up multiply defined at load time.  Is this the
proper c++ behavior?  Should the loader recognize identical constant
declarations and not report any message, and report an error if they
are not identical for the same variable?

In another similar vain, I had problems with initiatized static
members in a class header file (multiply defined symbols).  What is
the solution?