Source: nodejs
Severity: normal
Tags: patch
User: debian-powe...@lists.debian.org
Usertags: powerpc
X-Debbugs-Cc: debian-powe...@lists.debian.org

Hi!

I just noticed today that NodeJS has principal support for 32-bit PowerPC
which it internally calls it "ppc". While the build does not succeed at
first attempt (see below), the fact that NodeJS supports 32-bit PowerPC
in general means that we should be able to get it working.

Since "powerpc" is not a release architecture, it's perfectly fine if the
package fails to build from source as this will not inhibit the propagation
of the nodejs package to testing.

Thus, could you please modify debian/control and debian/rules accordingly
such that nodejs can be built on 32-bit PowerPC (powerpc)? See attached
patch.

===========================================================================

Current build failure of NodeJS version 14 on 32-bit PowerPC:

In file included from ../deps/v8/src/objects/visitors.h:9,
                 from ../deps/v8/src/heap/heap.h:33,
                 from ../deps/v8/src/heap/factory.h:16,
                 from ../deps/v8/src/execution/isolate.h:28,
                 from ../deps/v8/src/api/api.h:10,
                 from ../deps/v8/src/api/api-arguments.h:8,
                 from ../deps/v8/src/api/api-arguments.cc:5:
../deps/v8/src/objects/code.h:439:2: error: #error Unknown architecture.
  439 | #error Unknown architecture.
      |  ^~~~~
In file included from ../deps/v8/src/execution/isolate.h:18,
                 from ../deps/v8/src/api/api.h:10,
                 from ../deps/v8/src/api/api-arguments.h:8,
                 from ../deps/v8/src/api/api-arguments.cc:5:
../deps/v8/src/objects/code.h:441:55: error: 'kHeaderPaddingSize' was not 
declared in this scope
  441 |   STATIC_ASSERT(FIELD_SIZE(kOptionalPaddingOffset) == 
kHeaderPaddingSize);
      |                                                       ^~~~~~~~~~~~~~~~~~
../deps/v8/src/base/macros.h:200:43: note: in definition of macro 
'STATIC_ASSERT'
  200 | #define STATIC_ASSERT(test) static_assert(test, #test)
      |                                           ^~~~

Thanks,
Adrian

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
diff -Nru old/nodejs-14.17.0~dfsg/debian/control 
new/nodejs-14.17.0~dfsg/debian/control
--- old/nodejs-14.17.0~dfsg/debian/control      2021-05-06 12:46:53.000000000 
-0700
+++ new/nodejs-14.17.0~dfsg/debian/control      2021-07-29 05:18:48.940185631 
-0700
@@ -39,7 +39,7 @@
 
 Package: libnode-dev
 Section: libdevel
-Architecture: amd64 arm64 armhf i386 kfreebsd-i386 kfreebsd-amd64 mips 
mips64el mips64r6el mipsel ppc64 ppc64el s390x
+Architecture: amd64 arm64 armhf i386 kfreebsd-i386 kfreebsd-amd64 mips 
mips64el mips64r6el mipsel powerpc ppc64 ppc64el s390x
 Depends: ${misc:Depends},
  libssl-dev (>= 1.1.1~),
  libuv1-dev (>= 1.33.0~),
@@ -59,7 +59,7 @@
  This package provides development headers for libnode83
 
 Package: nodejs
-Architecture: amd64 arm64 armhf i386 kfreebsd-i386 kfreebsd-amd64 mips 
mips64el mips64r6el mipsel ppc64 ppc64el s390x
+Architecture: amd64 arm64 armhf i386 kfreebsd-i386 kfreebsd-amd64 mips 
mips64el mips64r6el mipsel powerpc ppc64 ppc64el s390x
 Multi-Arch: foreign
 Depends:
  ${shlibs:Depends},
@@ -87,7 +87,7 @@
 
 Package: libnode83
 Section: libs
-Architecture: amd64 arm64 armhf i386 kfreebsd-i386 kfreebsd-amd64 mips 
mips64el mips64r6el mipsel ppc64 ppc64el s390x
+Architecture: amd64 arm64 armhf i386 kfreebsd-i386 kfreebsd-amd64 mips 
mips64el mips64r6el mipsel powerpc ppc64 ppc64el s390x
 Multi-Arch: same
 Depends: ${shlibs:Depends},
  ${misc:Depends},
diff -Nru old/nodejs-14.17.0~dfsg/debian/rules 
new/nodejs-14.17.0~dfsg/debian/rules
--- old/nodejs-14.17.0~dfsg/debian/rules        2021-05-06 12:46:53.000000000 
-0700
+++ new/nodejs-14.17.0~dfsg/debian/rules        2021-07-29 05:37:52.130131574 
-0700
@@ -47,7 +47,7 @@
 destCpu := $(or $(destCpu),$(if $(filter mips64el,$(DEB_HOST_ARCH)),mips64el))
 destCpu := $(or $(destCpu),$(if $(filter 
mips64r6el,$(DEB_HOST_ARCH)),mips64el))
 destCpu := $(or $(destCpu),$(if $(filter mips,$(DEB_HOST_ARCH)),mips))
-destCpu := $(or $(destCpu),$(if $(filter 
powerpc,$(DEB_HOST_ARCH)),unsupported))
+destCpu := $(or $(destCpu),$(if $(filter powerpc,$(DEB_HOST_ARCH)),ppc))
 destCpu := $(or $(destCpu),$(if $(filter ppc64,$(DEB_HOST_ARCH)),ppc64))
 destCpu := $(or $(destCpu),$(if $(filter s390x,$(DEB_HOST_ARCH)),s390x))
 

Reply via email to