As shown at https://github.com/Automattic/node-canvas/issues/597, when trying to compile node-canvas for i686 using musl as libc I get errors on Cairo regarding to undefined __uint128_t and __int128_t symbols. These are extensions of GCC that seems are only available for 64 systems but Cairo shouldn't be trying to use them on 32 bits systems, or at least it should have check for them. Is it a Cairo bug or I'm doing something wrong?
What's the compiler error? Are you sure that you actually building cairo and not something which uses a similar name?
You can find the full output log at https://semaphoreci.com/nodeos/nodeos/branches/master/builds/38, the interesting lines are: make: Entering directory `/home/runner/NodeOS/node_modules/nodeos-usersfs/obj/i686/nodeos/node-canvas/build' CC(target) Release/obj.target/cairo/deps/cairo/cairo/cairo-analysis-surface.o CC(target) Release/obj.target/cairo/deps/cairo/cairo/cairo-arc.o CC(target) Release/obj.target/cairo/deps/cairo/cairo/cairo-array.o CC(target) Release/obj.target/cairo/deps/cairo/cairo/cairo-atomic.o CC(target) Release/obj.target/cairo/deps/cairo/cairo/cairo-base64-stream.o CC(target) Release/obj.target/cairo/deps/cairo/cairo/cairo-base85-stream.o CC(target) Release/obj.target/cairo/deps/cairo/cairo/cairo-bentley-ottmann.o CC(target) Release/obj.target/cairo/deps/cairo/cairo/cairo-bentley-ottmann-rectangular.o In file included from ../deps/cairo/cairo/cairo-fixed-type-private.h:40:0, from ../deps/cairo/cairo/cairo-types-private.h:43, from ../deps/cairo/cairo/cairo-error-private.h:43, from ../deps/cairo/cairo/cairoint.h:74, from ../deps/cairo/cairo/cairo-arc.c:37: ../deps/cairo/cairo/cairo-wideint-type-private.h:129:1: error: unknown type name '__uint128_t' ../deps/cairo/cairo/cairo-wideint-type-private.h:130:1: error: unknown type name '__int128_t' In file included from ../deps/cairo/cairo/cairo-fixed-type-private.h:40:0, from ../deps/cairo/cairo/cairo-types-private.h:43, from ../deps/cairo/cairo/cairo-error-private.h:43, from ../deps/cairo/cairo/cairoint.h:74, from ../deps/cairo/cairo/cairo-analysis-surface.c:37: ../deps/cairo/cairo/cairo-wideint-type-private.h:129:1: error: unknown type name '__uint128_t' ../deps/cairo/cairo/cairo-wideint-type-private.h:130:1: error: unknown type name '__int128_t' In file included from ../deps/cairo/cairo/cairo-fixed-type-private.h:40:0, from ../deps/cairo/cairo/cairo-types-private.h:43, from ../deps/cairo/cairo/cairo-error-private.h:43, from ../deps/cairo/cairo/cairoint.h:74, from ../deps/cairo/cairo/cairo-array.c:39: ../deps/cairo/cairo/cairo-wideint-type-private.h:129:1: error: unknown type name '__uint128_t' ../deps/cairo/cairo/cairo-wideint-type-private.h:130:1: error: unknown type name '__int128_t' CC(target) Release/obj.target/cairo/deps/cairo/cairo/cairo-bentley-ottmann-rectilinear.o make: *** [Release/obj.target/cairo/deps/cairo/cairo/cairo-arc.o] Error 1 make: *** Waiting for unfinished jobs.... In file included from ../deps/cairo/cairo/cairo-fixed-type-private.h:40:0, from ../deps/cairo/cairo/cairo-types-private.h:43, from ../deps/cairo/cairo/cairo-error-private.h:43, from ../deps/cairo/cairo/cairoint.h:74, from ../deps/cairo/cairo/cairo-atomic.c:34: ../deps/cairo/cairo/cairo-wideint-type-private.h:129:1: error: unknown type name '__uint128_t' ../deps/cairo/cairo/cairo-wideint-type-private.h:130:1: error: unknown type name '__int128_t' In file included from ../deps/cairo/cairo/cairo-fixed-type-private.h:40:0, from ../deps/cairo/cairo/cairo-types-private.h:43, from ../deps/cairo/cairo/cairo-error-private.h:43, from ../deps/cairo/cairo/cairoint.h:74, from ../deps/cairo/cairo/cairo-base64-stream.c:39: ../deps/cairo/cairo/cairo-wideint-type-private.h:129:1: error: unknown type name '__uint128_t' ../deps/cairo/cairo/cairo-wideint-type-private.h:130:1: error: unknown type name '__int128_t' In file included from ../deps/cairo/cairo/cairo-fixed-type-private.h:40:0, from ../deps/cairo/cairo/cairo-types-private.h:43, from ../deps/cairo/cairo/cairo-error-private.h:43, from ../deps/cairo/cairo/cairoint.h:74, from ../deps/cairo/cairo/cairo-base85-stream.c:37: ../deps/cairo/cairo/cairo-wideint-type-private.h:129:1: error: unknown type name '__uint128_t' ../deps/cairo/cairo/cairo-wideint-type-private.h:130:1: error: unknown type name '__int128_t' make: *** [Release/obj.target/cairo/deps/cairo/cairo/cairo-array.o] Error 1 make: *** [Release/obj.target/cairo/deps/cairo/cairo/cairo-analysis-surface.o] Error 1 make: *** [Release/obj.target/cairo/deps/cairo/cairo/cairo-atomic.o] Error 1 make: *** [Release/obj.target/cairo/deps/cairo/cairo/cairo-base64-stream.o] Error 1 make: *** [Release/obj.target/cairo/deps/cairo/cairo/cairo-base85-stream.o] Error 1 In file included from ../deps/cairo/cairo/cairo-fixed-type-private.h:40:0, from ../deps/cairo/cairo/cairo-types-private.h:43, from ../deps/cairo/cairo/cairo-error-private.h:43, from ../deps/cairo/cairo/cairoint.h:74, from ../deps/cairo/cairo/cairo-bentley-ottmann-rectangular.c:39: ../deps/cairo/cairo/cairo-wideint-type-private.h:129:1: error: unknown type name '__uint128_t' ../deps/cairo/cairo/cairo-wideint-type-private.h:130:1: error: unknown type name '__int128_t' In file included from ../deps/cairo/cairo/cairo-fixed-type-private.h:40:0, from ../deps/cairo/cairo/cairo-types-private.h:43, from ../deps/cairo/cairo/cairo-error-private.h:43, from ../deps/cairo/cairo/cairoint.h:74, from ../deps/cairo/cairo/cairo-bentley-ottmann.c:39: ../deps/cairo/cairo/cairo-wideint-type-private.h:129:1: error: unknown type name '__uint128_t' ../deps/cairo/cairo/cairo-wideint-type-private.h:130:1: error: unknown type name '__int128_t' In file included from ../deps/cairo/cairo/cairo-fixed-type-private.h:40:0, from ../deps/cairo/cairo/cairo-types-private.h:43, from ../deps/cairo/cairo/cairo-error-private.h:43, from ../deps/cairo/cairo/cairoint.h:74, from ../deps/cairo/cairo/cairo-bentley-ottmann-rectilinear.c:39: ../deps/cairo/cairo/cairo-wideint-type-private.h:129:1: error: unknown type name '__uint128_t' ../deps/cairo/cairo/cairo-wideint-type-private.h:130:1: error: unknown type name '__int128_t' make: *** [Release/obj.target/cairo/deps/cairo/cairo/cairo-bentley-ottmann-rectilinear.o] Error 1 make: *** [Release/obj.target/cairo/deps/cairo/cairo/cairo-bentley-ottmann-rectangular.o] Error 1 make: *** [Release/obj.target/cairo/deps/cairo/cairo/cairo-bentley-ottmann.o] Error 1 make: Leaving directory `/home/runner/NodeOS/node_modules/nodeos-usersfs/obj/i686/nodeos/node-canvas/build' gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/runner/NodeOS/node_modules/nodeos-barebones/deps/node/deps/npm/node_modules/node-gyp/lib/build.js:267:23) gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17) gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:797:12) gyp ERR! System Linux 3.13.0-29-generic gyp ERR! command "node" "/home/runner/NodeOS/node_modules/nodeos-barebones/deps/node/deps/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/runner/NodeOS/node_modules/nodeos-usersfs/obj/i686/nodeos/node-canvas gyp ERR! node -v v0.10.25 gyp ERR! node-gyp -v v1.0.2 gyp ERR! not ok The problem happens when compiling node-canvas (https://github.com/NodeOS/node-canvas) for i686, this doesn't happens for x86_64. node-canvas internally uses a statically compiled and linked version of Cairo and the other dependencies, and I'm compiling it using GCC 4.7.3 and musl 1.1.10. I've just checked it on my laptop and got the same errors.
What does your config.log look like? Cairo does check for uint128_t and __uint128_t and only uses them if they are available. To quote the code where your error appears: 127 /* gcc has a non-standard name. */ 128 #if HAVE___UINT128_T && !HAVE_UINT128_T 129 typedef __uint128_t uint128_t; 130 typedef __int128_t int128_t; 131 #define HAVE_UINT128_T 1 132 #endif So why does configure find __uint128_t?
Created attachment 117402 [details] config.log
Created attachment 117403 [details] gcc/config.log
There was several config.log files, I think I've attached the correct ones but I don't know what should I look for on them, sorry :-/
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/cairo/cairo/issues/242.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.