aspnetcore icon indicating copy to clipboard operation
aspnetcore copied to clipboard

source-built aspnetcore fails during rollup on ppc64le

Open tmds opened this issue 1 year ago • 10 comments

The build is failing as follows:

    > build:debug
    > rollup -c --environment development --forceExit
    
    /home/tester/dotnet/src/aspnetcore/node_modules/rollup/dist/native.js:38
    	throw new Error(
    	^
    
  EXEC : error : Your current platform "linux" and architecture "ppc64" combination is not yet supported by the native Rollup build. Please use the WASM build "@rollup/wasm-node" instead. [/home/tester/dotnet/artifacts/source-built-sdks/Microsoft.DotNet.Arcade.Sdk/tools/Build.proj]
  ##vso[task.logissue type=error;sourcepath=EXEC;linenumber=0;columnnumber=0;code=;]Your current platform "linux" and architecture "ppc64" combination is not yet supported by the native Rollup build. Please use the WASM build "@rollup/wasm-node" instead.

cc @Swapnali911 @MichaelSimons @omajid

tmds avatar Mar 06 '24 07:03 tmds

@javiercn any recommendation regarding this one? Is this an important step that is required to run as part of the build, or can it be skipped on this particular platform?

mkArtakMSFT avatar Mar 06 '24 18:03 mkArtakMSFT

@mthalman, @MichaelSimons do you know if this distro is something we MUST support or not?

mkArtakMSFT avatar Mar 06 '24 18:03 mkArtakMSFT

@mkArtakMSFT this might require installing "@rollup/wasm-node" and potentially overriding rollup with an npm override.

javiercn avatar Mar 06 '24 18:03 javiercn

@mthalman, @MichaelSimons do you know if this distro is something we MUST support or not?

ppc64le is community supported meaning principally community-driven contributions with best effort support from Microsoft.

cc @leecow

MichaelSimons avatar Mar 06 '24 19:03 MichaelSimons

Comparing rollup with System.Runtime.InteropServices.Architecture, it looks like rollup doesn't support a number of .NET architectures, including loongarch, ppc64le, s390x and x86.

omajid avatar Mar 06 '24 19:03 omajid

cc @uweigand @Vishwanatha-HD

omajid avatar Mar 06 '24 19:03 omajid

Looks like there is already some community effort to get a s390x build of rollup going: https://github.com/rollup/rollup/pull/5346 ... I'll see if can help that succeed.

uweigand avatar Mar 08 '24 14:03 uweigand

Looks like there is already some community effort to get a s390x build of rollup going: https://github.com/rollup/rollup/pull/5346 ... I'll see if can help that succeed.

@Swapnali911 @janani66 there's a similar PR for ppc64le: https://github.com/rollup/rollup/pull/5350. You may want to look into that.

this might require installing "@rollup/wasm-node" and potentially overriding rollup with an npm override.

@javiercn @mkArtakMSFT does "@rollup/wasm-node" provide an alternative option that would work on both ppc64le and s390x?

tmds avatar Mar 13 '24 07:03 tmds

Looks like there is already some community effort to get a s390x build of rollup going: rollup/rollup#5346 ... I'll see if can help that succeed.

@Swapnali911 @janani66 there's a similar PR for ppc64le: rollup/rollup#5350. You may want to look into that.

this might require installing "@rollup/wasm-node" and potentially overriding rollup with an npm override.

@javiercn @mkArtakMSFT does "@rollup/wasm-node" provide an alternative option that would work on both ppc64le and s390x?

@tmds will check

Swapnali911 avatar Mar 13 '24 08:03 Swapnali911

So any workaround for now?

sec avatar Mar 15 '24 12:03 sec

As of version 4.13.1, rollup now supports s390x and provides a linux-s390x prebuilt binary: https://www.npmjs.com/package/@rollup/rollup-linux-s390x-gnu

uweigand avatar Mar 27 '24 19:03 uweigand

What about other OS'es? Having rollup used in build process, makes it "hard" to port to other platforms :)

sec avatar Mar 28 '24 12:03 sec

As of version 4.13.1, rollup now supports s390x and provides a linux-s390x prebuilt binary: https://www.npmjs.com/package/@rollup/rollup-linux-s390x-gnu

And as of version 4.13.2, ppc64le support is also present: https://www.npmjs.com/package/@rollup/rollup-linux-powerpc64le-gnu

So I think the only missing piece would be to upgrade the required rollup version in the aspnetcore package.json file.

uweigand avatar Mar 28 '24 14:03 uweigand

Still no FreeBSD in there, so maybe some option to use the wasm one would be helpfull to have also in case of fallback?

sec avatar Mar 28 '24 14:03 sec

And as of version 4.13.2, ppc64le support is also present.

Turns out this wasn't quite correct; ppc64le support is fixed in version 4.14.2 now.

uweigand avatar Apr 19 '24 09:04 uweigand

Are there any plans regarding this one? Previous 8.x and 9p1 build fine, but starting from 9p2 this issue is blocking native builds under FreeBSD (and probably other OS'es not supported atm by rollup) - any "easy" to fallback to @rollup/wasm-node while doing VMR build ?

sec avatar May 07 '24 14:05 sec

We'll try to prioritize this for preview 6 release. @wtgodbe , @javiercn FYI

mkArtakMSFT avatar May 21 '24 18:05 mkArtakMSFT

Closing this as a dupe of https://github.com/dotnet/aspnetcore/issues/54541 as that's the one we'll use for tracking this work.

mkArtakMSFT avatar May 21 '24 18:05 mkArtakMSFT