New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The Atlas GccCheckerPlugins package as an external. #4190
The Atlas GccCheckerPlugins package as an external. #4190
Conversation
A new Pull Request was created by @gartung (Patrick Gartung) for branch IB/CMSSW_10_2_X/gcc700. @cmsbuild, @smuzaffar, @gudrutis, @mrodozov can you please review it and eventually sign? Thanks. |
Pull request #4190 was updated. |
When I try to run the plugin as compiled is fails with cc1plus: error: cannot load plugin /home/gartung/cms-build/slc7_amd64_gcc700/external/gcc-checker-plugin/1.0-cms2/lib/libchecker_gccplugins.so If I link the plugin against libcp1plugin.so, it fails with cc1plus: error: cannot load plugin /home/gartung/cms-build/slc7_amd64_gcc700/external/gcc-checker-plugin/1.0-cms/lib/libchecker_gccplugins.so If I link the plugin against libcc1plugin.so, it fails with cc1plus: error: cannot load plugin /home/gartung/cms-build/slc7_amd64_gcc700/external/gcc-checker-plugin/1.0-cms4/lib/libchecker_gccplugins.so |
Nevermind. I was able to determine that set up a project area for gcc630 and I compiled the plugin with gcc700. |
Once the gcc-checker-plugin toolfile is configure in a project area the gcc checker can be run with g++ -c -o /dev/null --std=c++14 -fplugin=$GCC_CHECKER_PLUGIN -fplugin-arg-libchecker_gccplugins-checkers=all $file |
@Dr15Jones I took the twiki text from your email and reformatted it. |
@davidlange6 Are you opposed to this one too? |
not specifically - presumably if we want this for more than a quick test, we should get it put into a proper distribution (add bonus, with a makefile or similar) rather than downloading all the root/fastjet etc etc etc sources that atlas uses.. |
gcc-checker-plugin-toolfile.spec
Outdated
%post | ||
%{relocateConfig}etc/scram.d/*.xml | ||
echo "GCC_CHECKER_PLUGIN_TOOLFILE_ROOT='$CMS_INSTALL_PREFIX/%{pkgrel}'; export GCC_CHECKER_PLUGIN_TOOLFILE_ROOT" > $RPM_INSTALL_PREFIX/%{pkgrel}/etc/profile.d/init.sh | ||
echo "setenv GCC_CHECKER_PLUGIN_TOOLFILE_ROOT '$CMS_INSTALL_PREFIX/%{pkgrel}'" > $RPM_INSTALL_PREFIX/%{pkgrel}/etc/profile.d/init.csh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gartung , I don't think you need all this logic in this spec file. Just copy the one e.g. curl-toolfile.spec and update variables.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eventually you will need the path to the plugin library.
gcc-checker-plugin.spec
Outdated
@@ -0,0 +1,23 @@ | |||
### RPM external gcc-checker-plugin 1.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gartung , use version 2.0.9 here and replace 2.0.9 with %{realversion} in rest of the file.
the trouble is that 2.0.9 has nothing to do with the version number of this specific package being built..
… On Jul 18, 2018, at 1:09 PM, Malik Shahzad Muzaffar ***@***.***> wrote:
@smuzaffar commented on this pull request.
In gcc-checker-plugin.spec:
> @@ -0,0 +1,23 @@
+### RPM external gcc-checker-plugin 1.0
@gartung , use version 2.0.9 here and replace 2.0.9 with %{realversion} in rest of the file.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
but at least it points to a tag in gitlab ... right? |
no. It seems to be a version of a tarball full of sources from many projects
cd atlasexternals-2.0.9-671e8f2b1413ff87772ea5dc024abeb5ef6ee441
ls
APE CheckerGccPlugins FastJetContrib HEPUtils MCUtils SoQt
Acts Coin3D GPerfTools HepMCAnalysis MKL XRootD
BAT Davix Gdb KLFitter PyAnalysis dSFMT
Blas Eigen Geant4 Lapack Python dcap
Boost FFTW GoogleTest Lhapdf ROOT lwtnn
CLHEP FastJet HDF5 LibXml2 Simage yampl
… On Jul 18, 2018, at 1:23 PM, Malik Shahzad Muzaffar ***@***.***> wrote:
but at least it points to a tag in gitlab ... right?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
I created this PR for review. It should not be merged yet. I plan to create a repo under cms-externals with just CheckerGccPlugin. I also want to change the Altas references to CMS. Is there a way to mark this PR WIP or For Review. I would mark the codecompass PR the same way. |
…he checker macros can include the header checker_macros.h.
Pull request #4190 was updated. |
I put the CheckerGccPlugins source in its own repository here |
Pull request #4190 was updated. |
Pull request #4190 was updated. |
Mostly unmodified source now in cms-external repo |
…scram b COMPILER=gcc-analyzer
Pull request #4190 was updated. |
Create gcc-analyzer-c(xx)compiler.xml so gcc checker can be run with |
please test |
The tests are being triggered in jenkins. |
- set type=compiler for gcc-analyzer-c*compiler - fix the name of analyzer tools - make use of scram-tools-post
Pull request #4190 was updated. |
gcc-checker-plugin-toolfile.spec
Outdated
<environment name="INCLUDE" default="$GCC_CHECKER_PLUGIN_ROOT/include"/> | ||
</client> | ||
</tool> | ||
<runtime name="GCC_CHECKER_PLUGIN" default="$GCC_CHECKER_PLUGIN_ROOT/lib/libchecker_gccplugins.so"/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need GCC_CHECKER_PLUGIN env variable?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is no longer needed.
please test |
The tests are being triggered in jenkins. |
Pull request #4190 was updated. |
Comparison job queued. |
Comparison is ready The workflows 1001.0, 1000.0, 140.53, 136.85, 136.8311, 136.7611, 136.731, 4.22 have different files in step1_dasquery.log than the ones found in the baseline. You may want to check and retrigger the tests if necessary. You can check it in the "files" directory in the results of the comparisons Comparison Summary:
|
Although the PR is based on the gcc7 branch it can be back ported to any branch with a compiler that supports plugins and c++11.