Skip to content

Cross-Compilation from Arm64 to x64 fails on M1 Mac #74973

Description

@ivdiazsa

Description

I was running some inter-architecture experiments with multiple OS's, when I bumped across this bug. I can't get an OSX x64 build using my M1 Mac anymore because the cross-building fails now.

Running the following command:

./build.sh --subset clr --configuration Release --cross --arch x64

Yields the following error:

[  9%] Preprocessing /path/to/runtime/src/coreclr/dlls/mscorrc/include.rc. Outputting to /path/to/runtime/artifacts/obj/coreclr/OSX.x64.Release/dlls/mscorrc/mscorrc.rc.i
  In file included from /path/to/runtime/src/coreclr/dlls/mscorrc/include.rc:4:
  In file included from /path/to/runtime/src/coreclr/dlls/mscorrc/mscorrc.rc:7:
  In file included from /path/to/runtime/src/coreclr/pal/prebuilt/inc/corerror.h:7:
  In file included from /path/to/runtime/src/coreclr/pal/inc/rt/winerror.h:12:
  In file included from /path/to/runtime/src/coreclr/pal/inc/rt/palrt.h:136:
  /path/to/runtime/src/coreclr/pal/inc/pal.h:2659:2: error: PAL_CS_NATIVE_DATA_SIZE is not defined for this architecture
  #error  PAL_CS_NATIVE_DATA_SIZE is not defined for this architecture
   ^
  [  9%] Building C object /path/to/runtime/artifacts/obj/external/libunwind/CMakeFiles/libunwind_dac.dir/path/to/runtime/src/native/external/libunwind/src/remote/mac/missing-functions.c.o
  [  9%] Building CXX object md/ceefilegen/CMakeFiles/ceefgen_obj.dir/ceegentokenmapper.cpp.o
  1 error generated.
  make[2]: *** [dlls/mscorrc/mscorrc.rc.i] Error 1
  make[1]: *** [dlls/mscorrc/CMakeFiles/mscorrc_obj.dir/all] Error 2
  make[1]: *** Waiting for unfinished jobs....

It worked fine until recently, so this is a very recent failure.

Reproduction Steps

  1. Clone the runtime repo to your machine
  2. Issue the build command from the repo's root: ./build.sh --subset clr --cross --arch x64

Expected behavior

Build should complete successfully without any issues.

Actual behavior

Build fails at about 9%.

Regression?

Yes. Don't know exactly when it broke, but for example, it works on the Preview 7 codebase.

Known Workarounds

No workaround.

Configuration

No response

Other information

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions