I started investigating the libglade port by building what's already
there, and found a surprise: on Linux (probably Solaris too, but it's
been awhile) the default linker mode is to allow unresolved external
references during a build. In this case, org_gnu_glade_LibGlade.c calls
makeBaseObjectClass which I can't find anywhere. Is that unimplemented,
or am I missing a library?
But back to the build problem: IMHO the build should have failed because
makeBaseObjectClass was missing, instead of failing at run time. Adding
"-Xlinker --no-undefined" to each link step catch the error during the
build. I replaced the makeBaseObjectClass call temporarily with a "not
implemented" exception throw -- the method still isn't implemented, but
at least the error says it's because a method was called which shouldn't
have been (yet), and not because of a problem in the client environment.
Since this is both my first proposed change and one that changes the
current build philosophy, I thought I should run it by everyone first.
Anyone feel strongly that we shouldn't check for unresolved references
during the build?
Tom
|