-
-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux x64 support meta issue #108
Comments
…ge of Clang's code generation module. In short, this change replaces ClangSharpExtensions.[Record]MustBePassedByReference with ClangSharp.Pathogen.PathogenArrangedFunction, which uses Clang's code generation module to determine how a function call should be constructed. This moves Biohazrd's handling of whether a type is returned/passed by reference from TranslatedRecord to TranslatedFunction and TranslatedParameter. This change does not include support for function pointers or vtable entries as those will require extra effort. (VTables need to be reworked to fix #147 first. Function pointers don't support most ABI concerns in general #186.) Fixes #35 (Fixed leaking return buffer semantics on global functions and static methods. Fixed as a side-effect.) Contributes to #53 (Cleaning up ABI handling.) Contributed to #108 (Linux support.) Fixes #187 (Records with constructors not being returned by reference on Microsoft x64.) Fixes #135 (Indirectly since this problematic method was obsoleted.)
…ge of Clang's code generation module. In short, this change replaces ClangSharpExtensions.[Record]MustBePassedByReference with ClangSharp.Pathogen.PathogenArrangedFunction, which uses Clang's code generation module to determine how a function call should be constructed. This moves Biohazrd's handling of whether a type is returned/passed by reference from TranslatedRecord to TranslatedFunction and TranslatedParameter. This change does not include support for function pointers or vtable entries as those will require extra effort. (VTables need to be reworked to fix #147 first. Function pointers don't support most ABI concerns in general #186.) Fixes #35 (Fixed leaking return buffer semantics on global functions and static methods. Fixed as a side-effect.) Contributes to #53 (Cleaning up ABI handling.) Contributes to #108 (Linux support.) Fixes #187 (Records with constructors not being returned by reference on Microsoft x64.) Fixes #135 (Indirectly since this problematic method was obsoleted.)
…ge of Clang's code generation module. In short, this change replaces ClangSharpExtensions.[Record]MustBePassedByReference with ClangSharp.Pathogen.PathogenArrangedFunction, which uses Clang's code generation module to determine how a function call should be constructed. This moves Biohazrd's handling of whether a type is returned/passed by reference from TranslatedRecord to TranslatedFunction and TranslatedParameter. This change does not include support for function pointers or vtable entries as those will require extra effort. (VTables need to be reworked to fix #147 first. Function pointers don't support most ABI concerns in general #186.) Fixes #35 (Fixed leaking return buffer semantics on global functions and static methods. Fixed as a side-effect.) Contributes to #53 (Cleaning up ABI handling.) Contributes to #108 (Linux support.) Fixes #187 (Records with constructors not being returned by reference on Microsoft x64.) Fixes #135 (Indirectly since this problematic method was obsoleted.)
…ge of Clang's code generation module. In short, this change replaces ClangSharpExtensions.[Record]MustBePassedByReference with ClangSharp.Pathogen.PathogenArrangedFunction, which uses Clang's code generation module to determine how a function call should be constructed. This moves Biohazrd's handling of whether a type is returned/passed by reference from TranslatedRecord to TranslatedFunction and TranslatedParameter. This change does not include support for function pointers or vtable entries as those will require extra effort. (VTables need to be reworked to fix #147 first. Function pointers don't support most ABI concerns in general #186.) Fixes #35 (Fixed leaking return buffer semantics on global functions and static methods. Fixed as a side-effect.) Contributes to #53 (Cleaning up ABI handling.) Contributes to #108 (Linux support.) Fixes #187 (Records with constructors not being returned by reference on Microsoft x64.) Fixes #135 (Indirectly since this problematic method was obsoleted.)
Details on adding support for the ELF tests on Windows: I ran some tests on Alloy (See the
Since the Additionally we need to use the Visual Studio setup API to locate the an install which has the LLVM toolset component installed. The skeleton of the logic is already there, but I think we should implement things such that the tests are skipped on Windows if Clang is not installed except if we're running on CI. (That way we don't have to make people install a huge toolset they won't usually be using.) One thing that is less clear is how to handle skipping these tests if we end up merging the two |
Linux support is now live in The remaining work items above are covered by their own issues and aren't strictly required to use Biohazrd with Linux so I'm closing this issue. |
retbuf
andthis
CSharpBuiltinTypeTransformation
needs to support the different sizes Linux uses for some types:long
is 64 bitsRelated: Add support for System.Runtime.InteropServices.CLong/CULong #156Will do this later.wchar_t
is 32 bitsLinkImportsTransformation
for enumerating exports from shared objects.Optional: CombineThis will be pretty involved, will do later.LinkImportsTransformationElfTests
intoLinkImportsTransformationTests
#208CodeWriterTests.ExplicitFinishDoesNotAllowEarlyRead
failure on Linux #207InlineExportHelper
#209InlineExportHelper
#209FilesWritten.txt
should use forward slashes #212The text was updated successfully, but these errors were encountered: