Skip to content
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

Add fillDescription methods. #7264

Merged
merged 71 commits into from Jan 30, 2015

Conversation

matteosan1
Copy link
Contributor

Added missing fillDescription methods needed for HLT.

matteosan1 and others added 30 commits December 30, 2014 17:13
…ed by a ref

The patch resolves issue with Clang compiler.

N3690 (should be C++11 standard), 9.4.2/3

    ...
    The member shall still be defined in a namespace scope if it
    is odr-used (3.2) in the program and the namespace scope definition
    shall not contain an initializer.

`IsolatedGenParticles::BookHistograms()` was passing them by a
reference.

9.4.2/4 talks about how `const static` data members are being handled.

Also standard says that no diagnostic is required by compiler.

Signed-off-by: David Abdurachmanov <David.Abdurachmanov@cern.ch>
… a ref

The patch resolves issue with Clang compiler.

N3690 (should be C++11 standard), 9.4.2/3

    ...
    The member shall still be defined in a namespace scope if it
    is odr-used (3.2) in the program and the namespace scope definition
    shall not contain an initializer.

9.4.2/3 talks about how `const static` data members are being handled.

Also standard says that no diagnostic is required by compiler.

This is needed to compile RecoLocalCalo/HcalRecAlgos
(HBHENegativeFlag.cc), which passes `MAXSAMPLES` to `std::min`
(arguments are taken by a const ref).

Signed-off-by: David Abdurachmanov <David.Abdurachmanov@cern.ch>
The following fix is required due to a behavior difference between Clang
and GCC. Clan does not correctly emulate GCC visibility pragma.

See PR22254: http://llvm.org/bugs/show_bug.cgi?id=22254

The link error involved the following two symbols:
- `Plane::tangentPlane(Point3DBase<float, LocalTag> const&) const`
- `Plane::tangentPlane(Point3DBase<float, GlobalTag> const&) const`

On link command we have `libTrackingToolsDetLayers.so` and
`libTrackingToolsGeomPropagators.so`, which have undefined references
for above two symbols. These are usually resolved on dynamic loading.

On Clang `TECLayer.o` marked these particular symbols as HIDDEN.

Clang:

  182: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN   UND
_ZNK5Plane12tangentPlaneERK11Point3DBaseIf8LocalTagE
  183: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN   UND
_ZNK5Plane12tangentPlaneERK11Point3DBaseIf9GlobalTagE

GCC:

  261: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND
_ZNK5Plane12tangentPlaneERK11Point3DBaseIf9GlobalTagE
  262: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND
_ZNK5Plane12tangentPlaneERK11Point3DBaseIf8LocalTagE

`TkDetUtil.h` inside visibility pragma section has forward declaration
of class `Plane`. Thus Clang marked it as HIDDEN. Then linker was
complaining that two libraries mentioned above reference a HIDDEN
symbols, which is not allowed as these sybmols are not public API.

In GCC `Plane` is with DEFAULT visbility, because the first declaration
wins, thus the DEFAULT visibility. You cannot modify it later on.

Lesson here: do not add forward declaration for publicly available
classes in pragma visibility hidden section.

Signed-off-by: David Abdurachmanov <David.Abdurachmanov@cern.ch>
@Martin-Grunewald
Copy link
Contributor

Hi alca and operations, what is holding up you signing this PR?

@davidlange6
Copy link
Contributor

+1
StandardSequnces change already in the ib

@Martin-Grunewald
Copy link
Contributor

@davidlange6 @nclopezo
Please bypass ALCA signature - they did not react for a week.

@davidlange6
Copy link
Contributor

@Martin-Grunewald - live is easier when PRs are not rebased in strange ways. as the alca signature requirement is bogus, I'll bypass.

davidlange6 added a commit that referenced this pull request Jan 30, 2015
@davidlange6 davidlange6 merged commit 8757bfa into cms-sw:CMSSW_7_4_X Jan 30, 2015
@Martin-Grunewald
Copy link
Contributor

@davidlange6
Thanks!

@matteosan1 matteosan1 deleted the topic_fillDescription branch May 28, 2015 19:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet