RFR: 8044797 Building with clang gives: fatal error: file '...' has been modified since the precompiled header was built
Staffan Larsen
staffan.larsen at oracle.com
Thu Jun 5 11:52:37 UTC 2014
On 5 jun 2014, at 13:38, David Holmes <david.holmes at oracle.com> wrote:
> On 4/06/2014 11:54 PM, Staffan Larsen wrote:
>> When building with clang and changing a file that is part of the precompiled header, you can get:
>>
>> fatal error: file '/Users/staffan/mercurial/jdk9-hs-rt/hotspot/src/share/vm/runtime/thread.hpp' has been modified since the precompiled header was built
>>
>> clang behaves differently than gcc here.
>
> You mean clang reports an error when regenerating the pch file? That seems like a bug to me.
Yes. It also deletes the files, so rerunning the same command again succeeds...
>
> Deleting the file first seems quite reasonable.
Thanks.
/Staffan
>
> Thanks,
> David
>
>> Example with clang:
>>
>> $ ls
>> test.h
>> $ cat test.h
>> #include <stdio.h>
>> $ clang -x c-header -include test.h test.h -o test.h.pch
>> $ touch test.h
>> $ clang -x c-header -include test.h test.h -o test.h.pch
>> fatal error: file '/Users/staffan/tmp/pch/test.h' has been modified since the precompiled header was built
>> 1 error generated.
>>
>> Same with gcc:
>>
>> $ ls
>> test.h
>> $ cat test.h
>> #include <stdio.h>
>> $ gcc -x c-header -include test.h test.h -o test.h.pch
>> $ touch test.h
>> $ gcc -x c-header -include test.h test.h -o test.h.pch
>>
>>
>> The proposed fix is to delete the .pch file before calling clang or gcc.
>>
>> diff --git a/make/bsd/makefiles/vm.make b/make/bsd/makefiles/vm.make
>> --- a/make/bsd/makefiles/vm.make
>> +++ b/make/bsd/makefiles/vm.make
>> @@ -295,6 +295,7 @@
>> $(PRECOMPILED_HEADER):
>> $(QUIETLY) echo Generating precompiled header $@
>> $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)
>> + $(QUIETLY) rm -f $@
>> $(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE)
>>
>> # making the library:
>>
>>
>> Thanks,
>> /Staffan
>>
More information about the hotspot-dev
mailing list