Build failure with new functions introduced in fix for 4957990

Andrew John Hughes gnu_andrew at member.fsf.org
Mon Sep 21 15:39:10 PDT 2009


This changeset:

http://hg.openjdk.java.net/jdk7/jdk7/hotspot/rev/8b46c4d82093

was promoted as part of b72 and fixes
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4957990.  It's nice
to see a long-running bug being resolved, but unfortunately I've run
into an issue with the fix.

In markSweep.hpp and psParallelCompact.hpp, two new functions are introduced:

+ static void follow_mdo_weak_refs();
+ static void revisit_mdo(ParCompactionManager* cm, DataLayout* p);

However, in markSweep.cpp and psParallelCompact.cpp, these are only
implemented conditionally:

+#if ( defined(COMPILER1) || defined(COMPILER2) )
+void MarkSweep::revisit_mdo(DataLayout* p) {
+ _revisit_mdo_stack->push(p);
+}
+
etc...

If neither COMPILER1 nor COMPILER2 are defined (as is the case with
building Gary Benson's zero port:
http://mail.openjdk.java.net/pipermail/hotspot-dev/2009-August/001957.html
for example), then the build now fails:

Linking launcher...
/mnt/builder/icedtea/hotspot/outputdir/linux_zero_core/product/libjvm.so:
undefined reference to
`PSParallelCompact::revisit_mdo(ParCompactionManager*, DataLayout*)'
/mnt/builder/icedtea/hotspot/outputdir/linux_zero_core/product/libjvm.so:
undefined reference to `MarkSweep::revisit_mdo(DataLayout*)'
/mnt/builder/icedtea/hotspot/outputdir/linux_zero_core/product/libjvm.so:
undefined reference to `MarkSweep::follow_mdo_weak_refs()'
/mnt/builder/icedtea/hotspot/outputdir/linux_zero_core/product/libjvm.so:
undefined reference to `PSParallelCompact::follow_mdo_weak_refs()'
collect2: ld returned 1 exit status

The obvious fix that springs to mind is to add an #else block that
implements these with ShouldNotCallThis() as in this webrev:

http://cr.openjdk.java.net/~andrew/hotspot/webrev.01/

but I'm not sure if that's the correct fix.

Any ideas?

Thanks,
-- 
Andrew :-)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


More information about the hotspot-dev mailing list