Skip to content
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

Partially enable build with GCC: PAL and WABT #6611

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

curtisman
Copy link
Contributor

@curtisman curtisman commented Feb 15, 2021

PAL and WABT directory can build with GCC with this change.

  • Add compiler detection in CMakeList.txt in the root and wabt
    • Separate out CLANG specific switches.
  • Update some of the PAL code to match what is the current dotnet version
    • Macro redirects: DECLSPEC_ALIGN, PAL_NORETURN, __forceinline
    • type definition M128A,PM128A
    • BitScan*
    • Interlock* (which has the Arm64 barrier code, and the updated built-in for InterlockedExchange to use __atomic_exchange_n
    • Remove the OSX/BSD specific version of memmove. Not sure why that is necessary in the first place, because memmove should handle overlapping buffer already.
  • Replace all __declspec(noreturn) to DECLSPEC_NORETURN
  • Fix the macro in JnHelperMethodList.h to not have the trailing ## if there is nothing to concat

@ppenzin
Copy link
Member

ppenzin commented Jul 13, 2021

@rhuanjl I am curious about pulling this in, aside from being large, the change looks relatively straightforward.

We need to rebuild though - build history already expired :)

@rhuanjl
Copy link
Collaborator

rhuanjl commented Jul 13, 2021

@rhuanjl I am curious about pulling this in, aside from being large, the change looks relatively straightforward.

We need to rebuild though - build history already expired :)

Some of the typedef changes don't work on macOS so we'll need to sort that other than that two things:
a) it's incomplete (though we could take it any way and progress from here)
b) need to ask @curtisman if his work here is covered by the existing license

@curtisman
Copy link
Contributor Author

curtisman commented Aug 25, 2021

@rhuanjl
a) yeah.. I don't have a macOS to work thru the build issues. Someone will have to take the change and work on it a bit.
b) the existing files in the PAL directory has their origin from the dotnet version here previously. Some of the updated in this change are to sync up the two. They are both licensed as MIT (and copyrighted MS), so I am not 100% whether addition license language needed to be added there. Otherwise, there is no addition license requirements.

@rhuanjl
Copy link
Collaborator

rhuanjl commented Aug 31, 2021

Thanks @curtisman I'll pull it down and see if i can fix the macOS issues later this week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants