build and ccache

Erik Joelsson erik.joelsson at oracle.com
Thu Apr 21 11:14:47 UTC 2016



On 2016-04-21 12:05, Maurizio Cimadamore wrote:
> ccache version 3.1.9
> gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4
>
I will retry with those.
> Seems like I'm behind on both fronts :-)
>
> Note that the problem only occurs when updating the repo. I.e. I think 
> the scenario is like this:
>
> 1) configure --enable-ccahe
> 2) make clean ; make images
> 3) [after some time, some changes happens to hotspot and eventually 
> JDK forest is updated]
> 3b) make reconfigure
> 4) make clean ; make images
> 5) now hotspot will fail linking (repeating step in 4, 5 will always 
> give same result)
> 6) ccache -C
> 7) make clean ; make images
> 8) build completes normally
>
Yes, I got that and tried to simulate it by doing "hg tupdate 
jdk-9+114". It would help if you could find two promoted tags to switch 
between that reproduces the problem for you.

/Erik
> Maurizio
>
> On 19/04/16 11:26, Erik Joelsson wrote:
>> Hello,
>>
>> I have not used ccache in a while. I just tried building jdk9-dev 
>> latest with ccache and then updating to jdk-9+114 and then running a 
>> clean build. It worked fine. Which version of gcc and ccache are you 
>> using? I use the versions from the official devkit.
>>
>> ccache 3.2.1
>> gcc 4.9.2
>>
>> /Erik
>>
>> On 2016-04-18 19:10, Maurizio Cimadamore wrote:
>>> Hi,
>>> I seem to be running into ccache issues very frequently lately; 
>>> basically, every time I do a reconfigure (because the build tells me 
>>> to do so after a repo refresh), I'm typically not able to build after
>>>
>>> make clean
>>> make images
>>>
>>> The build will typically fail somewhere when linking the VM - for 
>>> instance the last one I got was this:
>>>
>>> Building target 'images' in configuration 
>>> 'linux-x86_64-normal-server-release'
>>> virtualspace.o: In function `VirtualSpace::expand_by(unsigned long, 
>>> bool)':
>>> /w/lt/9/dev/build/linux-x86_64-normal-server-release/hotspot/linux_amd64_compiler2/product/../../../../../hotspot/src/share/vm/memory/virtualspace.cpp:889: 
>>> undefined reference to `os::pretouch_memory(char*, char*)'
>>> /w/lt/9/dev/build/linux-x86_64-normal-server-release/hotspot/linux_amd64_compiler2/product/../../../../../hotspot/src/share/vm/memory/virtualspace.cpp:889: 
>>> undefined reference to `os::pretouch_memory(char*, char*)'
>>> virtualspace.o: In function 
>>> `__static_initialization_and_destruction_0':
>>> /w/lt/9/dev/build/linux-x86_64-normal-server-release/hotspot/linux_amd64_compiler2/product/../../../../../hotspot/src/share/vm/logging/logTagSet.hpp:116: 
>>> undefined reference to `LogTagSet::LogTagSet(LogTag::type, 
>>> LogTag::type, LogTag::type, LogTag::type, LogTag::type)'
>>> /w/lt/9/dev/build/linux-x86_64-normal-server-release/hotspot/linux_amd64_compiler2/product/../../../../../hotspot/src/share/vm/logging/logTagSet.hpp:116: 
>>> undefined reference to `LogTagSet::LogTagSet(LogTag::type, 
>>> LogTag::type, LogTag::type, LogTag::type, LogTag::type)'
>>> /w/lt/9/dev/build/linux-x86_64-normal-server-release/hotspot/linux_amd64_compiler2/product/../../../../../hotspot/src/share/vm/logging/logTagSet.hpp:116: 
>>> undefined reference to `LogTagSet::LogTagSet(LogTag::type, 
>>> LogTag::type, LogTag::type, LogTag::type, LogTag::type)'
>>> /w/lt/9/dev/build/linux-x86_64-normal-server-release/hotspot/linux_amd64_compiler2/product/../../../../../hotspot/src/share/vm/logging/logTagSet.hpp:116: 
>>> undefined reference to `LogTagSet::LogTagSet(LogTag::type, 
>>> LogTag::type, LogTag::type, LogTag::type, LogTag::type)'
>>> /w/lt/9/dev/build/linux-x86_64-normal-server-release/hotspot/linux_amd64_compiler2/product/../../../../../hotspot/src/share/vm/logging/logTagSet.hpp:116: 
>>> undefined reference to `LogTagSet::LogTagSet(LogTag::type, 
>>> LogTag::type, LogTag::type, LogTag::type, LogTag::type)'
>>> abstractInterpreter_x86.o:/w/lt/9/dev/build/linux-x86_64-normal-server-release/hotspot/linux_amd64_compiler2/product/../../../../../hotspot/src/share/vm/logging/logTagSet.hpp:116: 
>>> more undefined references to `LogTagSet::LogTagSet(LogTag::type, 
>>> LogTag::type, LogTag::type, LogTag::type, LogTag::type)' follow
>>> collect2: error: ld returned 1 exit status
>>> make[8]: *** [libjvm.so] Error 1
>>> make[7]: *** [the_vm] Error 2
>>> make[6]: *** [product] Error 2
>>> make[5]: *** [generic_build2] Error 2
>>> make[4]: *** [product] Error 2
>>> make[3]: *** 
>>> [/w/lt/9/dev/build/linux-x86_64-normal-server-release/hotspot/_hotspot.timestamp] 
>>> Error 1
>>> make[2]: *** [hotspot] Error 1
>>>
>>> ERROR: Build failed for target 'images' in configuration 
>>> 'linux-x86_64-normal-server-release' (exit code 2)
>>>
>>>
>>>
>>> I'm usually able to get rid of such issues by running:
>>>
>>> ccache -C
>>>
>>>
>>> Any ideas of what is going on - and why such cleaning step was not 
>>> needed before?
>>>
>>> Maurizio
>>
>




More information about the build-dev mailing list