RFR(XS): 8191337: GCC 4.8 build broken after 8186571

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

RFR(XS): 8191337: GCC 4.8 build broken after 8186571

Doerr, Martin

Hi,

 

I’d like to build the VM with GCC 4.8.5, but I got the following error while linking:

g1FullGCOopClosures.hpp:140: undefined reference to `void G1VerifyOopClosure::do_oop_nv<unsigned int>(unsigned int*)'

 

It can be fixed by:

http://cr.openjdk.java.net/~mdoerr/8191337_fix_linux_build/webrev/

 

Please review. I will also need a sponsor.

 

Thanks and best regards,

Martin

 

Reply | Threaded
Open this post in threaded view
|

Re: RFR(XS): 8191337: GCC 4.8 build broken after 8186571

Stefan Johansson
Hi Martin,

On 2017-11-15 17:23, Doerr, Martin wrote:

Hi,

 

I’d like to build the VM with GCC 4.8.5, but I got the following error while linking:

g1FullGCOopClosures.hpp:140: undefined reference to `void G1VerifyOopClosure::do_oop_nv<unsigned int>(unsigned int*)'

 

It can be fixed by:

http://cr.openjdk.java.net/~mdoerr/8191337_fix_linux_build/webrev/

 

Please review. I will also need a sponsor.

Thanks for fixing this, I can sponsor the change.

Cheers,
Stefan

 

Thanks and best regards,

Martin

 


Reply | Threaded
Open this post in threaded view
|

Re: RFR(XS): 8191337: GCC 4.8 build broken after 8186571

Kim Barrett
In reply to this post by Doerr, Martin
> On Nov 15, 2017, at 11:23 AM, Doerr, Martin <[hidden email]> wrote:
>
> Hi,
>  
> I’d like to build the VM with GCC 4.8.5, but I got the following error while linking:
> g1FullGCOopClosures.hpp:140: undefined reference to `void G1VerifyOopClosure::do_oop_nv<unsigned int>(unsigned int*)'
>  
> It can be fixed by:
> http://cr.openjdk.java.net/~mdoerr/8191337_fix_linux_build/webrev/
>  
> Please review. I will also need a sponsor.
>  
> Thanks and best regards,
> Martin

Rather than moving the do_oop definitions, maybe instead add explicit
instantiations of the template in the .cpp file, e.g.

template void G1VerifyOopClosure::do_oop_nv(oop*);
template void G1VerifyOopClosure::do_oop_nv(narrowOop*);

I'm not sure what's different about gcc4.9 (what we test with at
Oracle) that would have allowed the existing code to work at all.

Reply | Threaded
Open this post in threaded view
|

Re: RFR(XS): 8191337: GCC 4.8 build broken after 8186571

Stefan Johansson


On 2017-11-15 21:59, Kim Barrett wrote:

>> On Nov 15, 2017, at 11:23 AM, Doerr, Martin <[hidden email]> wrote:
>>
>> Hi,
>>  
>> I’d like to build the VM with GCC 4.8.5, but I got the following error while linking:
>> g1FullGCOopClosures.hpp:140: undefined reference to `void G1VerifyOopClosure::do_oop_nv<unsigned int>(unsigned int*)'
>>  
>> It can be fixed by:
>> http://cr.openjdk.java.net/~mdoerr/8191337_fix_linux_build/webrev/
>>  
>> Please review. I will also need a sponsor.
>>  
>> Thanks and best regards,
>> Martin
> Rather than moving the do_oop definitions, maybe instead add explicit
> instantiations of the template in the .cpp file, e.g.
>
> template void G1VerifyOopClosure::do_oop_nv(oop*);
> template void G1VerifyOopClosure::do_oop_nv(narrowOop*);
Thanks Kim,

I spoke to Martin and we agreed on using this solution. Martin created a
new webrev and I will put myself as the second reviewer and push:
http://cr.openjdk.java.net/~mdoerr/8191337_fix_linux_build/webrev.01/

Cheers,
Stefan

>
> I'm not sure what's different about gcc4.9 (what we test with at
> Oracle) that would have allowed the existing code to work at all.
>

Reply | Threaded
Open this post in threaded view
|

RE: RFR(XS): 8191337: GCC 4.8 build broken after 8186571

Doerr, Martin
Hi Stefan and Kim,

thanks for sponsoring and reviewing.

Best regards,
Martin


-----Original Message-----
From: hotspot-gc-dev [mailto:[hidden email]] On Behalf Of Stefan Johansson
Sent: Freitag, 17. November 2017 10:07
To: [hidden email]
Subject: Re: RFR(XS): 8191337: GCC 4.8 build broken after 8186571



On 2017-11-15 21:59, Kim Barrett wrote:

>> On Nov 15, 2017, at 11:23 AM, Doerr, Martin <[hidden email]> wrote:
>>
>> Hi,
>>  
>> I’d like to build the VM with GCC 4.8.5, but I got the following error while linking:
>> g1FullGCOopClosures.hpp:140: undefined reference to `void G1VerifyOopClosure::do_oop_nv<unsigned int>(unsigned int*)'
>>  
>> It can be fixed by:
>> http://cr.openjdk.java.net/~mdoerr/8191337_fix_linux_build/webrev/
>>  
>> Please review. I will also need a sponsor.
>>  
>> Thanks and best regards,
>> Martin
> Rather than moving the do_oop definitions, maybe instead add explicit
> instantiations of the template in the .cpp file, e.g.
>
> template void G1VerifyOopClosure::do_oop_nv(oop*);
> template void G1VerifyOopClosure::do_oop_nv(narrowOop*);
Thanks Kim,

I spoke to Martin and we agreed on using this solution. Martin created a
new webrev and I will put myself as the second reviewer and push:
http://cr.openjdk.java.net/~mdoerr/8191337_fix_linux_build/webrev.01/

Cheers,
Stefan

>
> I'm not sure what's different about gcc4.9 (what we test with at
> Oracle) that would have allowed the existing code to work at all.
>

Reply | Threaded
Open this post in threaded view
|

Re: RFR(XS): 8191337: GCC 4.8 build broken after 8186571

Kim Barrett
In reply to this post by Stefan Johansson
> On Nov 17, 2017, at 4:06 AM, Stefan Johansson <[hidden email]> wrote:
>
>
>
> On 2017-11-15 21:59, Kim Barrett wrote:
>>> On Nov 15, 2017, at 11:23 AM, Doerr, Martin <[hidden email]> wrote:
>>>
>>> Hi,
>>>  I’d like to build the VM with GCC 4.8.5, but I got the following error while linking:
>>> g1FullGCOopClosures.hpp:140: undefined reference to `void G1VerifyOopClosure::do_oop_nv<unsigned int>(unsigned int*)'
>>>  It can be fixed by:
>>> http://cr.openjdk.java.net/~mdoerr/8191337_fix_linux_build/webrev/
>>>  Please review. I will also need a sponsor.
>>>  Thanks and best regards,
>>> Martin
>> Rather than moving the do_oop definitions, maybe instead add explicit
>> instantiations of the template in the .cpp file, e.g.
>>
>> template void G1VerifyOopClosure::do_oop_nv(oop*);
>> template void G1VerifyOopClosure::do_oop_nv(narrowOop*);
> Thanks Kim,
>
> I spoke to Martin and we agreed on using this solution. Martin created a new webrev and I will put myself as the second reviewer and push:
> http://cr.openjdk.java.net/~mdoerr/8191337_fix_linux_build/webrev.01/

That looks good.

>
> Cheers,
> Stefan
>
>>
>> I'm not sure what's different about gcc4.9 (what we test with at
>> Oracle) that would have allowed the existing code to work at all.