| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| #define __vectorcall | ||
| #define __thiscall | ||
| #ifndef PLATFORM_FREEBSD | ||
| #define __fastcall |
There was a problem hiding this comment.
Is __fastcall a recognized keyword when compiling on FreeBSD?
Sorry, something went wrong.
There was a problem hiding this comment.
On this one, the compiler was complaining about fastcall being redefined, as FreeBSD's headers already define fastcall.
Sorry, something went wrong.
There was a problem hiding this comment.
Which compiler are you using?
Sorry, something went wrong.
Sorry, something went wrong.
There was a problem hiding this comment.
It is actually strange why it only complains about __fastcall. It also recognized all other attributes
https://clang.llvm.org/docs/AttributeReference.html#target-version
Can you post the error that the compiler produces?
Sorry, something went wrong.
There was a problem hiding this comment.
This is what happens without skipping __fastcall:
[ 35%] Building CXX object DiligentCore/Graphics/ShaderTools/CMakeFiles/Diligent-ShaderTools.dir/src/DXCompiler.cpp.o
In file included from /usr/home/jlhawkwell/Projects/DiligentEngine/DiligentCore/Graphics/ShaderTools/src/DXCompiler.cpp:42:
In file included from /usr/home/jlhawkwell/Projects/DiligentEngine/DiligentCore/Graphics/ShaderTools/include/DXCompilerBaseLinux.hpp:31:
In file included from /usr/home/jlhawkwell/Projects/DiligentEngine/DiligentCore/Graphics/ShaderTools/../../ThirdParty/DirectXShaderCompiler/dxc/dxcapi.h:37:
/usr/home/jlhawkwell/Projects/DiligentEngine/DiligentCore/Graphics/ShaderTools/../../ThirdParty/DirectXShaderCompiler/dxc/WinAdapter.h:345:9: error: '__fastcall' macro redefined [-Werror,-Wmacro-redefined]
#define __fastcall
^
/usr/include/sys/cdefs.h:365:9: note: previous definition is here
#define __fastcall __attribute__((__fastcall__))
^
1 error generated.
gmake[2]: *** [DiligentCore/Graphics/ShaderTools/CMakeFiles/Diligent-ShaderTools.dir/build.make:122: DiligentCore/Graphics/ShaderTools/CMakeFiles/Diligent-ShaderTools.dir/src/DXCompiler.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:3521: DiligentCore/Graphics/ShaderTools/CMakeFiles/Diligent-ShaderTools.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2
Sorry, something went wrong.
There was a problem hiding this comment.
I updated DXC headers, so this should work now - please try the latest version
Sorry, something went wrong.
There was a problem hiding this comment.
A better way to fix this is to check
#ifndef __fastcall
Though I do really not understand why it only complains about __fastcall. All other macros are defined in the same way.
Sorry, something went wrong.
There was a problem hiding this comment.
The __fastcall macro is already defined in /usr/include/sys/cdefs.h on line 365.
Sorry, something went wrong.
There was a problem hiding this comment.
What I suggested is to use the #ifndef __fastcall guard instead of #ifndef PLATFORM_FREEBSD.
Also note that this file is a third-party header so with the next update, it may break again.
Sorry, something went wrong.
| #define __vectorcall | ||
| #define __thiscall | ||
| #ifndef PLATFORM_FREEBSD | ||
| #define __fastcall |
There was a problem hiding this comment.
Which compiler are you using?
Sorry, something went wrong.
There was a problem hiding this comment.
I updated core module, so that format validation will be disabled on platforms that don't have the script.
Can you update to the latest version and try it?
Sorry, something went wrong.
Format validation is successfully skipped (tested after deleting the scripts I added). Would you like a new push with the scripts removed? |
Sorry, something went wrong.
You can force-push to the same branch - the PR will be updated. |
Sorry, something went wrong.
| #define __vectorcall | ||
| #define __thiscall | ||
| #ifndef PLATFORM_FREEBSD | ||
| #define __fastcall |
There was a problem hiding this comment.
I updated DXC headers, so this should work now - please try the latest version
Sorry, something went wrong.
| endif() | ||
|
|
||
| if(PLATFORM_FREEBSD AND EXISTS /usr/local/include) | ||
| target_include_directories(Diligent-BuildSettings SYSTEM AFTER INTERFACE /usr/local/include) |
There was a problem hiding this comment.
What errors do you get without this include?
This change does not seem right
Sorry, something went wrong.
There was a problem hiding this comment.
It is quite correct. Without this, anything that isn't part of base will not be found.
Sorry, something went wrong.
There was a problem hiding this comment.
What base?
Sorry, something went wrong.
There was a problem hiding this comment.
FreeBSD! "base" is short for "base operating system" and is the stuff that's made by the FreeBSD Project - kernel and world. This includes everything outside of /usr/home and /usr/local, which isn't much.
A mirror of the source repo is available here, so you can see what all is part of FreeBSD's base: https://github.com/freebsd/freebsd-src
Sorry, something went wrong.
| endif() | ||
|
|
||
| if(PLATFORM_FREEBSD AND EXISTS /usr/local/include) | ||
| target_include_directories(Diligent-BuildSettings SYSTEM AFTER INTERFACE /usr/local/include) |
There was a problem hiding this comment.
I tried to find some info about this problem, and I think that the right way to fix this is to set CMAKE_REQUIRED_INCLUDES at your project's CMake level:
Sorry, something went wrong.
There was a problem hiding this comment.
Did you try setting the CMAKE_REQUIRED_INCLUDES in your project CMake?
Sorry, something went wrong.
There was a problem hiding this comment.
Sorry for a long delay with response.
Sorry, something went wrong.
| #define __vectorcall | ||
| #define __thiscall | ||
| #ifndef PLATFORM_FREEBSD | ||
| #define __fastcall |
There was a problem hiding this comment.
A better way to fix this is to check
#ifndef __fastcall
Though I do really not understand why it only complains about __fastcall. All other macros are defined in the same way.
Sorry, something went wrong.
| #define __vectorcall | ||
| #define __thiscall | ||
| #ifndef PLATFORM_FREEBSD | ||
| #define __fastcall |
There was a problem hiding this comment.
What I suggested is to use the #ifndef __fastcall guard instead of #ifndef PLATFORM_FREEBSD.
Also note that this file is a third-party header so with the next update, it may break again.
Sorry, something went wrong.
| endif() | ||
|
|
||
| if(PLATFORM_FREEBSD AND EXISTS /usr/local/include) | ||
| target_include_directories(Diligent-BuildSettings SYSTEM AFTER INTERFACE /usr/local/include) |
There was a problem hiding this comment.
Did you try setting the CMAKE_REQUIRED_INCLUDES in your project CMake?
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Making all changes required to build on FreeBSD. Some CMake entries for Linux may have changed, but their functionality remains unchanged.