Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

[Linux] Fix cross-architecture component build configuration for ARM32-target #8687

Merged
merged 10 commits into from
Dec 23, 2016

Conversation

hseok-oh
Copy link

Fix CMake install function: pair _install with add_library_clr
related issue: #8685 - warning target palrt

@jkotas
Copy link
Member

jkotas commented Dec 20, 2016

cc @janvorli

@janvorli
Copy link
Member

I am not sure how this change would fix the dependency issue. This only changes how the final version of the static palrt.lib is copied to the final Product folder and while before it was installed there for all builds, now it is installed only when the CLR_CROSS_COMPONENTS_BUILD is not defined.
The messages from the #8685 rather indicate that the coreclrpal is not being built for the cross arch component

@hseok-oh
Copy link
Author

@janvorli You're right. It only fix warning about installation palrt. We need to modify CMakeLists.txt on project root becase coreclrpal is not being built as you say. I'll push additional commit in this PR.
https://github.com/dotnet/coreclr/blob/master/CMakeLists.txt#L551-L558
And if we fix this, we will be meet many build error, as next step.

Hyeongseok Oh added 2 commits December 21, 2016 14:21
Add coreclrpal project to fix a dependency issue when CMake configuration
allow x64-host/arm-target only, because pal is not stable for x86 now
@hseok-oh
Copy link
Author

additional commit

  • modify CMakeLists.txt to add coreclrpal for cross-architecture component
  • fix build.sh and CMakeLists.txt to allow only x64-host/arm-target cross-architecture component for linux: coreclrpal for linux x86 is not stable now

@hseok-oh hseok-oh changed the title Fix CMakeLists.txt for palrt [Linux] Fix cross-architecture component configuration for ARM32-target Dec 21, 2016
@hseok-oh hseok-oh changed the title [Linux] Fix cross-architecture component configuration for ARM32-target [Linux] Fix cross-architecture component build configuration for ARM32-target Dec 21, 2016
delete NumProc=1 (inserted for debugging)
elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL i686)
set(CLR_CMAKE_PLATFORM_UNIX_X86 1)
if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL amd64)
set(CLR_CMAKE_PLATFORM_UNIX_AMD64 1)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe that at the moment, 64 bit cross components build will not work for 32 bit target and so the x86 host is the only option for target ARM. See the comment from @AndyAyersMS here:
dotnet/corert#2381 (comment)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The JIT may actually build, but it probably won't run correctly. Last I knew there were still parts of the jit code that assumed sizeof(void *) was the target pointer size.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. I'll revise to use x86 instead of x64.

@hseok-oh
Copy link
Author

@janvorli PTAL

Copy link
Member

@janvorli janvorli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@janvorli janvorli merged commit 5ef3df8 into dotnet:master Dec 23, 2016
@hseok-oh hseok-oh deleted the fix_issue_8685_1 branch December 25, 2016 09:24
@karelz karelz modified the milestones: 2.1.0, 2.0.0 Aug 28, 2017
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
…2-target (dotnet/coreclr#8687)

* fix CMakeLists.txt for palrt

* Modify CMakeLists.txt for cross-architecture component configuaration

Add coreclrpal project to fix a dependency issue when CMake configuration

* Allow only x64-host/arm-target for linux

allow x64-host/arm-target only, because pal is not stable for x86 now

* Update build.sh

delete NumProc=1 (inserted for debugging)

* Change x64-host to x86-host for arm-target

JIT correctness problem,
and fix CMake configuration for x86 in pal

* Fix type

* Update CMakeLists.txt

* fix style

* Set x86 when arm-target/x64-host

* fix typo


Commit migrated from dotnet/coreclr@5ef3df8
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants