intel / gmmlib

Other
158 stars 87 forks source link

gmmlib 22.3.15 does not build #109

Closed joroOnLinux closed 6 months ago

joroOnLinux commented 10 months ago

CC sw_sync.lo In file included from /usr/include/unistd.h:1170, from drmtest.h:31, from sw_sync.c:41: /usr/include/x86_64-linux-gnu/bits/unistd_ext.h:34:28: error: macro "gettid" passed 1 arguments, but takes just 0 34 | extern pid_t gettid (void) __THROW; | ^ In file included from igt_kmod.h:29, from sw_sync.c:39: igt_aux.h:49: note: macro "gettid" defined here 49 | #define gettid() syscall(NR_gettid)

johnmach commented 10 months ago

Hi @joroOnLinux, Thanks for reaching out.

I suspect this error to be related to gmmlib. Could you please provide more details such as the OS, build env, flags and the logs.

joroOnLinux commented 10 months ago

You gotta be kiddin' me. This one ist so friggin' obvious, you gotta be kiddin' me.

12.01.2024 15:30:35 John Machado @.***>:

Hi @joroOnLinux[https://github.com/joroOnLinux], Thanks for reaching out.

I suspect this error to be related to gmmlib. Could you please provide more details such as the OS, build env, flags and the logs.

— Reply to this email directly, view it on GitHub[https://github.com/intel/gmmlib/issues/109#issuecomment-1889212523], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AKTLP3AQEAQXU7X35TIXO4DYOE3HXAVCNFSM6AAAAABBLOI4NCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBZGIYTENJSGM]. You are receiving this because you were mentioned. [data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAAeSURBVFiF7cExAQAAAMKg9U9tDB+gAAAAAAAAgL8BG7oAAVIlbSwAAAAASUVORK5CYII=###24x24:true###][Verfolgungsbild][https://github.com/notifications/beacon/AKTLP3AHL5UVPIB5UVH7X5TYOE3HXA5CNFSM6AAAAABBLOI4NCWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTQTMMGW.gif]

johnmach commented 10 months ago

Could you please provide more build logs.

joroOnLinux commented 10 months ago

No. Your Guys call a function (getpid or Something Like that) that has No Arguments with an Argument. That's why the Software that Intel -one of the biggest chipmakers in the world - put on GitHub doesn't even build. The Error Message of this trivial Bug couldn't Be any clearer. Do you Guys have any Sort of QA ?

12.01.2024 21:51:10 John Machado @.***>:

Could you please provide more build logs.

— Reply to this email directly, view it on GitHub[https://github.com/intel/gmmlib/issues/109#issuecomment-1889866336], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AKTLP3EN6ELJFTY3OTELFVTYOGH25AVCNFSM6AAAAABBLOI4NCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBZHA3DMMZTGY]. You are receiving this because you were mentioned. [data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAAeSURBVFiF7cExAQAAAMKg9U9tDB+gAAAAAAAAgL8BG7oAAVIlbSwAAAAASUVORK5CYII=###24x24:true###][Verfolgungsbild][https://github.com/notifications/beacon/AKTLP3DR5VQGSMQCQVJ6Q6TYOGH25A5CNFSM6AAAAABBLOI4NCWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTTQUUJGA.gif]

joroOnLinux commented 10 months ago

I "fixed" the build. the build flag "-pthread" is needed so that cmake can correctly identify the pthreads library. Without it, the build fails in the configuration stage. I added

set(CMAKE_CXX_FLAGS "$(CMAKE_CXX_FLAGS) -pthread")

in line 465 of CmakeLists.txt. That makes the code build. Funnily, it breaks the link stage which can be "fixed" by copying a command from the file build/CMakeFiles/igfx_gmmumd_dll.dir/link.txt, removing the CFLAGS part (leaving -pthread in of course) and running that command in the build directory. That produces libigdgmm.so.12.3.0. (which is of course not the build number 22.3.15, but hey, it's just a number).

This is a desaster.

Since this software obviously never built succesfully at Intel, i won't put it on my system. But now it builds and Intel can do some testing.

You're welcome.

johnmach commented 8 months ago

Thanks for recommending the changes. We will run our internal sanity to check on this. We do have the internal testing and would only upstream if the validation is successful on the latest tip. Obviously, if Gmmlib is upstream today, for sure it has qualified. But, there could be some gap that we understand, which we can collaboratively work on to fix.

Also, regarding the dll versioning schema please refer: https://github.com/intel/gmmlib?tab=readme-ov-file#release-tags The tagging schema for a specific version of .so(build) is mentioned.

Thank you for highlighting your interest in GMM.

johnmach commented 7 months ago

Hi @joroOnLinux,

Our build system correctly includes and configures this pthread flag. The pthread flag is included as a CXX common flag in Source/GmmLib/Linux.cmake which is again included in the main CMakeList.txt.

Here are few logs from the build, and the pthread is already included among the flags for linking: [ 61%] Building CXX object Source/GmmLib/CMakeFiles/igfx_gmmumd_dll.dir/TranslationTable/GmmUmdTranslationTable.cpp.o [ 66%] Building CXX object Source/GmmLib/CMakeFiles/igfx_gmmumd_dll.dir/GlobalInfo/GmmLibDllMain.cpp.o [ 64%] Building CXX object Source/GmmLib/CMakeFiles/igfx_gmmumd_dll.dir/GlobalInfo/GmmClientContext.cpp.o [ 67%] Linking CXX shared library libigdgmm.so /usr/bin/c++ -fPIC -Wno-reorder -Wsign-promo -Wnon-virtual-dtor -Wno-invalid-offsetof -fvisibility-inlines-hidden -fno-use-cxa-atexit -fno-rtti -fexceptions -fcheck-new -std=c++11 -pthread -Werror=non-virtual-dtor -O3 -DNDEBUG -m64 -shared -Wl,-soname,libigdgmm.so.12 -o libigdgmm.so.12.3.0 CMakeFiles/igfx_gmmumd_dll.dir/__/Common/AssertTracer/AssertTracer.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/CachePolicy/GmmCachePolicy.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/CachePolicy/GmmCachePolicyCommon.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/CachePolicy/GmmGen8CachePolicy.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/CachePolicy/GmmGen9CachePolicy.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/CachePolicy/GmmGen10CachePolicy.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/CachePolicy/GmmGen11CachePolicy.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/CachePolicy/GmmGen12CachePolicy.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/CachePolicy/GmmXe_LPGCachePolicy.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/CachePolicy/GmmGen12dGPUCachePolicy.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Platform/GmmGen11Platform.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Platform/GmmGen12Platform.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Platform/GmmGen8Platform.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Platform/GmmGen9Platform.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Platform/GmmGen10Platform.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Platform/GmmPlatform.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Resource/GmmResourceInfo.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Resource/GmmResourceInfoCommon.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Resource/GmmResourceInfoCommonEx.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Resource/GmmRestrictions.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Resource/Linux/GmmResourceInfoLinCWrapper.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmGen7Texture.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmGen8Texture.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmGen9Texture.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmGen10Texture.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmGen11Texture.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmGen12Texture.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmXe_LPGTexture.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmTexture.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmTextureAlloc.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmTextureSpecialCases.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Texture/GmmTextureOffset.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/GlobalInfo/GmmInfo.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Utility/CpuSwizzleBlt/CpuSwizzleBlt.c.o CMakeFiles/igfx_gmmumd_dll.dir/Utility/GmmLog/GmmLog.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/Utility/GmmUtility.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/TranslationTable/GmmAuxTable.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/TranslationTable/GmmPageTableMgr.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/TranslationTable/GmmUmdTranslationTable.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/GlobalInfo/GmmClientContext.cpp.o CMakeFiles/igfx_gmmumd_dll.dir/GlobalInfo/GmmLibDllMain.cpp.o -pthread [ 67%] Built target igfx_gmmumd_dll Scanning dependencies of target GMMULT [ 69%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmCachePolicyULT.cpp.o [ 70%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmCommonULT.cpp.o [ 72%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmMultiAdapterULT.cpp.o

So I am not able to reproduce this issue from my side and see that the flag which you are complaining about is correctly configured. Unless you provide more details on what are you trying do with gmmlib we will not be able to help. Also I suspect, though you are using gmmlib, from your first comment the getpid is call form the IGT test file suite which gmmlib does not host .

As a quick step, you could provide the build logs by including the set(CMAKE_VERBOSE_MAKEFILE 1) somewhere at the beginning of the CMakeList.txt.

johnmach commented 6 months ago

Hi @joroOnLinux, Could you please provide the build logs with set(CMAKE_VERBOSE_MAKEFILE 1) at the top of CMakeLists.txt?

Please do revert with logs, else we will not be able to help on this much, failing which we will have to close this issue.

johnmach commented 6 months ago

@joroOnLinux, As there is no much details regarding the issue from your side, for the failure what you are seeing. I am not able to reproduce this at our end. Please note that this issue will closed marking lack of details. If you still have concerns with this issue, please do re-open or create a new issue. Thank you for your interest in Intel-Gmmlib.