Bug 92882

Summary: llvm/Support/ManagedStatic.h: No such file or directory
Product: Beignet Reporter: ilia <inferrna>
Component: BeignetAssignee: rongyang <rong.r.yang>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description ilia 2015-11-10 04:51:18 UTC
master at eee077466da631e072871178b2d5fb9e9fc54f46

[  8%] Built target beignet_bitcode
[  8%] Building CXX object backend/src/CMakeFiles/gbe.dir/backend/program.cpp.o
/home/inferno/.dev/OpenCL/beignet/backend/src/backend/program.cpp:39:40: fatal error: llvm/Support/ManagedStatic.h: No such file or directory
compilation terminated.
backend/src/CMakeFiles/gbe.dir/build.make:606: recipe for target 'backend/src/CMakeFiles/gbe.dir/backend/program.cpp.o' failed
make[2]: *** [backend/src/CMakeFiles/gbe.dir/backend/program.cpp.o] Error 1
CMakeFiles/Makefile2:111: recipe for target 'backend/src/CMakeFiles/gbe.dir/all' failed
make[1]: *** [backend/src/CMakeFiles/gbe.dir/all] Error 2
Makefile:136: recipe for target 'all' failed
make: *** [all] Error 2

The file is present in the system and llvm correctly described in cmake files.

$ ls /usr/include/llvm-3.7/llvm/Support/ManagedStatic.h
/usr/include/llvm-3.7/llvm/Support/ManagedStatic.h
$ grep LLVM_ CMakeCache.txt 
LLVM_AS_EXECUTABLE:FILEPATH=/usr/bin/llvm-as-3.7
LLVM_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/llvm-config-3.7
LLVM_LINK_EXECUTABLE:FILEPATH=/usr/bin/llvm-link-3.7
Comment 1 rongyang 2015-11-11 06:46:47 UTC
Seems llvm include path issue. Can you show your llvm-config --includedir result? Thanks.
Comment 2 ilia 2015-11-11 10:27:33 UTC
(In reply to rongyang from comment #1)
> Seems llvm include path issue. Can you show your llvm-config --includedir
> result? Thanks.

inferno@inferno-X550LA:~/.dev/OpenCL/beignet$ llvm-config --includedir
/usr/lib/llvm-3.6/include
inferno@inferno-X550LA:~/.dev/OpenCL/beignet$ llvm-config-3.7 --includedir
/usr/lib/llvm-3.7/include
inferno@inferno-X550LA:~/.dev/OpenCL/beignet$
Comment 3 ilia 2015-11-11 10:59:10 UTC
(In reply to ilia from comment #2)

/usr/include/llvm-3.7/llvm/Support/ManagedStatic.h goes from llvm-3.7-dev package

Content seems slightly differ:
inferno@inferno-X550LA:~/.dev/OpenCL/beignet$ ls /usr/include/llvm-3.7/llvm/Support/
AIXDataTypesFix.h       Compression.h           FileOutputBuffer.h            Memory.h                 Regex.h                  Threading.h
AlignOf.h               ConvertUTF.h            FileSystem.h                  MemoryObject.h           Registry.h               ThreadLocal.h
Allocator.h             CrashRecoveryContext.h  FileUtilities.h               MipsABIFlags.h           RegistryParser.h         Timer.h
ARMBuildAttributes.h    DataExtractor.h         Format.h                      MutexGuard.h             RWMutex.h                TimeValue.h
ARMEHABI.h              DataStream.h            FormattedStream.h             Mutex.h                  SaveAndRestore.h         ToolOutputFile.h
ARMWinEH.h              DataTypes.h             GCOV.h                        OnDiskHashTable.h        ScaledNumber.h           type_traits.h
ArrayRecycler.h         Debug.h                 GenericDomTreeConstruction.h  Options.h                Signals.h                UnicodeCharRanges.h
Atomic.h                DOTGraphTraits.h        GenericDomTree.h              OutputBuffer.h           SMLoc.h                  Unicode.h
BlockFrequency.h        Dwarf.def               GraphWriter.h                 Path.h                   Solaris.h                UniqueLock.h
BranchProbability.h     Dwarf.h                 Host.h                        PluginLoader.h           SourceMgr.h              Valgrind.h
Capacity.h              DynamicLibrary.h        LEB128.h                      PointerLikeTypeTraits.h  SpecialCaseList.h        Watchdog.h
Casting.h               ELF.h                   LineIterator.h                PrettyStackTrace.h       StreamingMemoryObject.h  Win64EH.h
CBindingWrapping.h      ELFRelocs               Locale.h                      Process.h                StringPool.h             WindowsError.h
circular_raw_ostream.h  Endian.h                LockFileManager.h             Program.h                StringSaver.h            YAMLParser.h
CodeGen.h               EndianStream.h          MachO.h                       RandomNumberGenerator.h  SwapByteOrder.h          YAMLTraits.h
COFF.h                  Errc.h                  ManagedStatic.h               raw_os_ostream.h         SystemUtils.h
COM.h                   Errno.h                 MathExtras.h                  raw_ostream.h            TargetParser.h
CommandLine.h           ErrorHandling.h         MD5.h                         Recycler.h               TargetRegistry.h
Compiler.h              ErrorOr.h               MemoryBuffer.h                RecyclingAllocator.h     TargetSelect.h
inferno@inferno-X550LA:~/.dev/OpenCL/beignet$ ls /usr/lib/llvm-3.7/include/llvm/Support
AIXDataTypesFix.h   CommandLine.h     Errc.h             Host.h             Mutex.h                  Regex.h            TargetSelect.h
AlignOf.h           Compiler.h        ErrorHandling.h    LockFileManager.h  Options.h                RWMutex.h          Threading.h
Allocator.h         DataTypes.h       ErrorOr.h          MathExtras.h       Path.h                   SMLoc.h            TimeValue.h
Atomic.h            DOTGraphTraits.h  FileSystem.h       MD5.h              PointerLikeTypeTraits.h  SourceMgr.h        ToolOutputFile.h
Casting.h           Dwarf.def         FormattedStream.h  MemoryBuffer.h     PrettyStackTrace.h       SpecialCaseList.h  type_traits.h
CBindingWrapping.h  Dwarf.h           GenericDomTree.h   Memory.h           raw_os_ostream.h         SwapByteOrder.h    UniqueLock.h
CodeGen.h           Endian.h          GraphWriter.h      MutexGuard.h       raw_ostream.h            TargetRegistry.h   Valgrind.h


Working solution may be smth like this
inferno@inferno-X550LA:/usr/include/llvm-3.7$ find -exec sudo ln -s /usr/include/llvm-3.7/{} /usr/lib/llvm-3.7/include/{} \;
but it would be great to be more friendly to poor ubuntu users -)
Comment 4 rongyang 2015-11-27 03:17:42 UTC
Why there are two LLVM3.7 include directories?
I am afraid /usr/lib/llvm-3.7/include is incomplete, because file ManagedStatic.h locate in llvm/Support long ago, at least from LLVM3.4 to now (LLVM3.8).
Comment 5 GitLab Migration User 2018-10-12 21:23:25 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/beignet/beignet/issues/16.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.