Menu

#936 #pragma implementation "cbkeybinder.h" breaks build on armv7

Next_Release
fixed
None
Bug_Report
2020-03-31
2020-03-31
Dan Horak
No

During the rebase of C::B in Fedora to the new 20.03 release we discovered, that the build fails on armv7/armhfp architecture with

/usr/bin/ld: .libs/cbkeyConfigPanel.o:(.rodata+0x14): multiple definition of `typeinfo name for cbKeyBinder'; .libs/cbkeybinder.o:(.rodata+0x0): first defined here
/usr/bin/ld: .libs/cbkeyConfigPanel.o:(.data.rel.ro+0xc): multiple definition of `typeinfo for cbKeyBinder'; .libs/cbkeybinder.o:(.data.rel.ro+0x0): first defined here
collect2: error: ld returned 1 exit status

I reported it to our toolchain team as https://bugzilla.redhat.com/show_bug.cgi?id=1819154 and the conclusion is that #pragma implementation "cbkeybinder.h" must be used in a single source file (translation unit, TU), but both cbkeybinder.cpp and cbkeyConfigPanel.cpp contain it. Perhaps you wanted to #pragma implementation "cbKeyConfigPanel.h" in cbkeyConfigPanel.cpp. Their recomendation is to drop those pragmas completely.

Discussion

  • Morten MacFly

    Morten MacFly - 2020-03-31

    That is a good point. My personal view on that is that pragmas always have been a pita. We will remove this particular one. Is there anything additional we can do so that you can continue providing builds? I.e. provide a new source tarball or also commit these changes to the release branch?

     
  • Morten MacFly

    Morten MacFly - 2020-03-31
    • status: open --> accepted
    • assigned_to: Morten MacFly
    • Milestone: Undefined --> Next_Release
     
  • Morten MacFly

    Morten MacFly - 2020-03-31
    • status: accepted --> fixed
     
  • Morten MacFly

    Morten MacFly - 2020-03-31

    Fixed in SVN trunk. Let me know if further changes are needed...

     
  • Dan Horak

    Dan Horak - 2020-03-31

    No special requirements by me, but a commit in the release branch would be useful. Same is true for revision 12008 (from ticket #935).

     
  • Morten MacFly

    Morten MacFly - 2020-03-31

    but a commit in the release branch would be useful

    I've done both: Merged the revison with the respetive changes (bug 935 and 936) into the release branch and updated the release tag 20.03. Let me know in case there is still trouble...

     

Log in to post a comment.