[CMake] problem building CMake with clang's -fcatch-undefined-behavior

David Cole david.cole at kitware.com
Tue Sep 25 08:34:57 EDT 2012


If there really is a problem here, it looks like it comes from the
structure returned by a call to the "readdir" function which is implemented
by the system libraries. So if there's a problem here, I don't think it's
CMake's fault.


On Sat, Sep 22, 2012 at 9:57 PM, Sean McBride <sean at rogue-research.com>wrote:

> Hi all,
>
> My dashboards used to build CMake with clang's -fcatch-undefined-behavior,
> but now they've given it more smarts (to catch more bugs) and now one can't
> build CMake with this flag.
>
> Here's the build failure:
>
> <http://open.cdash.org/viewBuildError.php?buildid=2562276>
>
> It seems, near the end of the build, that the just-built cpack is run to
> do something or other.  This process dies:
>
> $ gdb --args ../bin/cpack --help-full
> /Users/builder/external/CMake-clang-dbg-x86_64/Docs/cpack.txt --help-full
> /Users/builder/external/CMake-clang-dbg-x86_64/Docs/cpack.html --help-full
> /Users/builder/external/CMake-clang-dbg-x86_64/Docs/cpack.1 --help-full
> /Users/builder/external/CMake-clang-dbg-x86_64/Docs/cpack.docbook
>
> (gdb) r
> Starting program: /Users/builder/external/CMake-clang-dbg-x86_64/bin/cpack
> --help-full /Users/builder/external/CMake-clang-dbg-x86_64/Docs/cpack.txt
> --help-full /Users/builder/external/CMake-clang-dbg-x86_64/Docs/cpack.html
> --help-full /Users/builder/external/CMake-clang-dbg-x86_64/Docs/cpack.1
> --help-full
> /Users/builder/external/CMake-clang-dbg-x86_64/Docs/cpack.docbook
> Reading symbols for shared libraries
> ++++++............................................................ done
>
> Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/operand.
> 0x0000000100fac2e9 in cmsys::Directory::Load (this=0x7fff5fbfba90,
> name=0x101f51c28 "/Users/builder/external/CMake/Modules/") at
> /Users/builder/external/CMake/Source/kwsys/Directory.cxx:223
> 223         this->Internal->Files.push_back(d->d_name);
>
> (gdb) bt
> #0  0x0000000100fac2e9 in cmsys::Directory::Load (this=0x7fff5fbfba90,
> name=0x101f51c28 "/Users/builder/external/CMake/Modules/") at
> /Users/builder/external/CMake/Source/kwsys/Directory.cxx:223
> #1  0x0000000100fb158e in cmsys::Glob::ProcessDirectory
> (this=0x7fff5fbfc170, start=0, dir=@0x7fff5fbfbbf0) at
> /Users/builder/external/CMake/Source/kwsys/Glob.cxx:302
> #2  0x0000000100fb451a in cmsys::Glob::FindFiles (this=0x7fff5fbfc170,
> inexpr=@0x7fff5fbfc168) at
> /Users/builder/external/CMake/Source/kwsys/Glob.cxx:464
> #3  0x0000000100653545 in cmDocumentation::getDocumentedModulesListInDir
> (this=0x7fff5fbfe8f8, path=@0x7fff5fbfcab8, globExpr=@0x7fff5fbfcab0,
> docedModuleList=@0x7fff5fbfcae8) at
> /Users/builder/external/CMake/Source/cmDocumentation.cxx:771
> #4  0x000000010000fc9e in main (argc=9, argv=0x7fff5fbff920) at
> /Users/builder/external/CMake/Source/CPack/cpack.cxx:554
>
> (gdb) p name
> $1 = 0x101f51c28 "/Users/builder/external/CMake/Modules/"
>
> (gdb) p *this
> $2 = {
>   Internal = 0x101f51a80
> }
>
> (gdb) p d
> $3 = (struct dirent *) 0x102010664
>
> (gdb) p *d
> $4 = {
>   d_ino = 387485515,
>   d_seekoff = 1769662337112866820,
>   d_reclen = 48,
>   d_namlen = 20,
>   d_type = 8 '\b',
>   d_name = "AutomocInfo.cmake.in
> \000\000\000\000\000\000\000?\032?\030\000\000\000\000\005\000\000\000?\032?\030D\000+\000\
> bBasicConfigVersion-AnyNewerVersion.cmake.in
> \000\000\000\000?\032?\030\000\000\000\000\006\000\000\000?\032?\030D\000(\000\
> bBasicConfigVersion-ExactVersion.cmake.in
> \000\000\000\000\000\000\000?\032?\030\000\000\000\000\a\000\000\000???\032H\000,\000\bBasicConfigVersi"...
> }
>
> It might be a false positive, though I have yet to see any from this tool.
>
> I'm hoping someone that knows the code can see the problem.
>
> Cheers,
>
> --
> ____________________________________________________________
> Sean McBride, B. Eng                 sean at rogue-research.com
> Rogue Research                        www.rogue-research.com
> Mac Software Developer              Montréal, Québec, Canada
>
>
> --
>
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20120925/c23687f5/attachment.htm>


More information about the CMake mailing list