On Tue, 2022-11-01 at 13:32 -0600, Jeff Law wrote: > On 8/17/22 06:15, Richard Purdie via Gcc-patches wrote: > > Code such as: > #include __FILE__ > > > > can interact poorly with file-prefix-map options when cross compiling. In > > general you're after to remap filenames for use in target context but the > > local paths should be used to find include files at compile time. Ingoring > > filename remapping for directives is one way to avoid such failures. > > > > libcpp/ChangeLog: > > > > * macro.cc (_cpp_builtin_macro_text): Don't remap filenames within > > directives > > So I went back and reviewed the old PR which introduced this code. It > was actually the Yocto project that got this code in to begin with :-)
Thanks for the review! That sounds right, we use it heavily and originally had a few issues in this area. It now generally works really well, we just found this corner case :) > There wasn't really any discussion AFAICT about whether or not to remap > in directives that I saw in the PR. I don't think we'd realised there was this corner case. Now we have found code doing it, I think the behaviour we should have is fairly clear which is why we're sending the patch. > ISTM that given the change in behavior, we should probably document that > we don't remap in directives. Probably doc/invoke.texi. > > With suitable documentation, this should be fine. It seems like it > ought to be independent of the first patch in this series which adds > support for remapping relative paths. Thanks for merging 1/2, it was independent, just related as a path mapping issue we found. I'll keep the coding style in mind in future. I've sent a new version of this patch which updates doc/invoke.texi, just adding to file-prefix-map as the others all reference it. Cheers, Richard