Build failure with new functions introduced in fix for 4957990
Andrew John Hughes
gnu_andrew at member.fsf.org
Tue Sep 22 08:17:07 PDT 2009
2009/9/21 <Y.S.Ramakrishna at sun.com>:
> Hi Andrew --
>
> I _think_ you should be able to just remove the
> #ifdef's entirely, and it should work. (I don't know
> what i was trying to achieve w/the #ifdef, but the
> rationale was probably obsoleted during the long (several years!)
> gestation period of that changeset before it was, ummm,
> pushed.)
>
> Let me know if there are any issues.
> -- ramki
>
> On 09/21/09 15:39, Andrew John Hughes wrote:
>>
>> 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,
>
>
Ah, that's good, I was worried about just having no implementation of
part of the GC.
With:
http://cr.openjdk.java.net/~andrew/hotspot/webrev.02/hotspot.patch
and turning off compressed oops, I've been able to build a working
Zero-based HotSpot build with b72.
Can you assign this a bug ID and put the webrev through jprt to get it applied?
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