Skip to content

Conversation

@Teemperor
Copy link
Contributor

The Core module is now just called Core, and no longer libCore.so,
which leads to the confusing PCM file name libCore.so.pcm which is 75%
just boilerplate prefixes and suffixes. This also make the error
messages from clang more readable now as they use the same module name.

@phsft-bot
Copy link

Starting build on centos7/gcc49, mac1012/native, slc6/gcc49, slc6/gcc62, ubuntu14/native with flags -Dvc=OFF -Dimt=ON -Dccache=ON
How to customize builds

@phsft-bot
Copy link

Build failed on mac1012/native.
See console output.

Errors:

  • ninja: error: loading 'build.ninja': No such file or directory

@phsft-bot
Copy link

Starting build on centos7/gcc49, mac1012/native, slc6/gcc49, slc6/gcc62, ubuntu14/native with flags -Dvc=OFF -Dimt=ON -Dccache=ON
How to customize builds

@vgvassilev
Copy link
Member

@phsft-bot build just on slc6/clang_gcc62 with flags -Dcxxmodules=ON -Dccache=OFF

@phsft-bot
Copy link

Starting build on slc6/clang_gcc62 with flags -Dvc=OFF -Dimt=ON -Dccache=OFF -Dcxxmodules=ON
How to customize builds

@vgvassilev
Copy link
Member

Historically, we had this to disambiguate between pcm files generated by rootcling and 'regular' module files (i.e. if somebody unwisely forwarded the compiler's module cache there).

# problem.
# FIXME: error: declaration of 'NSObject' must be imported from module 'ROOT.libBonjour.so.TBonjourBrowser.h' before it is required
if (${library} MATCHES "libKrb5Auth.so" OR ${library} MATCHES "(libGCocoa|libGQuartz)\\..*")
if (${library} MATCHES "Krb5Auth" OR ${library} MATCHES "(GCocoa|libGQuartz)")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does libGQuartz keep the lib prefix?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad, I think I forgot to save the latest changes in the text editor before I made the commit :)

set(modulemap_entry "module \"${library}\" {")
# For modules GCocoa and GQuartz we need objc context.
if (${library} MATCHES "(libGCocoa|libGQuartz)\\..*")
if (${library} MATCHES "(libGCocoa|libGQuartz)")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this inconsistent with the change to ${library} MATCHES "(GCocoa|libGQuartz)" on line 483?

The Core module is now just called `Core`, and no longer `libCore.so`,
which leads to the confusing PCM file name `libCore.so.pcm` which is 75%
just boilerplate prefixes and suffixes. This also make the error
messages from clang more readable now as they use the same module name.
@phsft-bot
Copy link

Starting build on slc6/clang_gcc62 with flags -Dvc=OFF -Dimt=ON -Dccache=OFF -Dcxxmodules=ON
How to customize builds

@Teemperor
Copy link
Contributor Author

@vgvassilev well, we use the same modulemap for building/runtime at the moment, so the names would be anyway equal :) Also if you try to trick root by placing other PCMs there you'll get an error because we check the clang version that generated the PCM before loading it, so you would have to do some serious work to get around this check.

@vgvassilev
Copy link
Member

LGTM, I assume the failures are due to the infamous clang/gcc ABI bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants