animetosho / node-yencode

SIMD accelerated yEnc encoder/decoder and CRC32 calculator for node.js
37 stars 5 forks source link

node-gyp rebuild fails: unknown type name 'u_int' #14

Closed sspilleman closed 2 months ago

sspilleman commented 2 months ago

Building on macOS Sonoma 14.6.1 with CommandLineTools installed

Full output:

gyp info it worked if it ends with ok
gyp info using node-gyp@10.2.0
gyp info using node@22.6.0 | darwin | arm64
gyp info find Python using Python version 3.12.5 found at "/opt/homebrew/opt/python@3.12/bin/python3.12"

gyp info spawn /opt/homebrew/opt/python@3.12/bin/python3.12
gyp info spawn args [
gyp info spawn args '/Users/sander/Library/pnpm/global/5/.pnpm/node-gyp@10.2.0/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/private/tmp/node-yencode/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/sander/Library/pnpm/global/5/.pnpm/node-gyp@10.2.0/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/sander/Library/Caches/node-gyp/22.6.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/Users/sander/Library/Caches/node-gyp/22.6.0',
gyp info spawn args '-Dnode_gyp_dir=/Users/sander/Library/pnpm/global/5/.pnpm/node-gyp@10.2.0/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/Users/sander/Library/Caches/node-gyp/22.6.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/private/tmp/node-yencode',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  TOUCH Release/obj.target/crcutil.stamp
  CXX(target) Release/obj.target/yencode_sse2/src/encoder_sse2.o
  CXX(target) Release/obj.target/yencode_sse2/src/decoder_sse2.o
  LIBTOOL-STATIC Release/yencode_sse2.a
  CXX(target) Release/obj.target/yencode_ssse3/src/encoder_ssse3.o
  CXX(target) Release/obj.target/yencode_ssse3/src/decoder_ssse3.o
  LIBTOOL-STATIC Release/yencode_ssse3.a
  CXX(target) Release/obj.target/yencode_clmul/src/crc_folding.o
  LIBTOOL-STATIC Release/yencode_clmul.a
  CXX(target) Release/obj.target/yencode_clmul256/src/crc_folding_256.o
  LIBTOOL-STATIC Release/yencode_clmul256.a
  CXX(target) Release/obj.target/yencode_avx/src/encoder_avx.o
  CXX(target) Release/obj.target/yencode_avx/src/decoder_avx.o
  LIBTOOL-STATIC Release/yencode_avx.a
  CXX(target) Release/obj.target/yencode_avx2/src/decoder_avx2.o
  CXX(target) Release/obj.target/yencode_avx2/src/encoder_avx2.o
  LIBTOOL-STATIC Release/yencode_avx2.a
  CXX(target) Release/obj.target/yencode_vbmi2/src/decoder_vbmi2.o
  CXX(target) Release/obj.target/yencode_vbmi2/src/encoder_vbmi2.o
  LIBTOOL-STATIC Release/yencode_vbmi2.a
  CXX(target) Release/obj.target/yencode_neon/src/encoder_neon.o
  CXX(target) Release/obj.target/yencode_neon/src/decoder_neon64.o
  LIBTOOL-STATIC Release/yencode_neon.a
  CXX(target) Release/obj.target/yencode_armcrc/src/crc_arm.o
  LIBTOOL-STATIC Release/yencode_armcrc.a
  CXX(target) Release/obj.target/yencode_pmull/src/crc_arm_pmull.o
  LIBTOOL-STATIC Release/yencode_pmull.a
  CXX(target) Release/obj.target/yencode_rvv/src/encoder_rvv.o
  CXX(target) Release/obj.target/yencode_rvv/src/decoder_rvv.o
  LIBTOOL-STATIC Release/yencode_rvv.a
  CXX(target) Release/obj.target/yencode_zbkc/src/crc_riscv.o
  LIBTOOL-STATIC Release/yencode_zbkc.a
  CXX(target) Release/obj.target/yencode/src/yencode.o
  CXX(target) Release/obj.target/yencode/src/platform.o
In file included from ../src/platform.cc:11:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/sysctl.h:83:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/ucred.h:101:2: error: unknown type name 'u_int'
        u_int   cr_version;             /* structure layout version */
        ^
In file included from ../src/platform.cc:11:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/sysctl.h:85:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:116:2: error: unknown type name 'u_int'
        u_int   p_estcpu;        /* Time averaged value of p_cpticks. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:121:2: error: unknown type name 'u_int'
        u_int   p_swtime;        /* Time swapped in or out. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:122:2: error: unknown type name 'u_int'
        u_int   p_slptime;       /* Time since last blocked. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:136:2: error: unknown type name 'u_char'; did you mean 'char'?
        u_char  p_priority;     /* Process priority. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:137:2: error: unknown type name 'u_char'; did you mean 'char'?
        u_char  p_usrpri;       /* User-priority based on p_cpu and p_nice. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:142:2: error: unknown type name 'u_short'; did you mean 'short'?
        u_short p_xstat;        /* Exit status for wait; also stop signal. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:143:2: error: unknown type name 'u_short'; did you mean 'short'?
        u_short p_acflag;       /* Accounting flags. */
        ^
In file included from ../src/platform.cc:11:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/sysctl.h:793:23: error: unknown type name 'u_int'
int     sysctl(int *, u_int, void *, size_t *, void *, size_t);
                      ^
9 errors generated.
make: *** [Release/obj.target/yencode/src/platform.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.<anonymous> (/Users/sander/Library/pnpm/global/5/.pnpm/node-gyp@10.2.0/node_modules/node-gyp/lib/build.js:216:23)
gyp ERR! System Darwin 23.6.0
gyp ERR! command "/opt/homebrew/Cellar/node/22.6.0/bin/node" "/Users/sander/Library/pnpm/global/5/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /private/tmp/node-yencode
gyp ERR! node -v v22.6.0
gyp ERR! node-gyp -v v10.2.0
gyp ERR! not ok 
animetosho commented 2 months ago

Thanks for reporting.

I don't know whether this change does anything - are you able to test it?

sspilleman commented 2 months ago

Tested it. Produces the same output eyeballing it

gyp info it worked if it ends with ok
gyp info using node-gyp@10.2.0
gyp info using node@22.6.0 | darwin | arm64
gyp info find Python using Python version 3.12.5 found at "/opt/homebrew/opt/python@3.12/bin/python3.12"

gyp info spawn /opt/homebrew/opt/python@3.12/bin/python3.12
gyp info spawn args [
gyp info spawn args '/private/tmp/node-yencode/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/private/tmp/node-yencode/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/private/tmp/node-yencode/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/sander/Library/Caches/node-gyp/22.6.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/Users/sander/Library/Caches/node-gyp/22.6.0',
gyp info spawn args '-Dnode_gyp_dir=/private/tmp/node-yencode/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/Users/sander/Library/Caches/node-gyp/22.6.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/private/tmp/node-yencode',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  TOUCH Release/obj.target/crcutil.stamp
  CXX(target) Release/obj.target/yencode_sse2/src/encoder_sse2.o
  CXX(target) Release/obj.target/yencode_sse2/src/decoder_sse2.o
  LIBTOOL-STATIC Release/yencode_sse2.a
  CXX(target) Release/obj.target/yencode_ssse3/src/encoder_ssse3.o
  CXX(target) Release/obj.target/yencode_ssse3/src/decoder_ssse3.o
  LIBTOOL-STATIC Release/yencode_ssse3.a
  CXX(target) Release/obj.target/yencode_clmul/src/crc_folding.o
  LIBTOOL-STATIC Release/yencode_clmul.a
  CXX(target) Release/obj.target/yencode_clmul256/src/crc_folding_256.o
  LIBTOOL-STATIC Release/yencode_clmul256.a
  CXX(target) Release/obj.target/yencode_avx/src/encoder_avx.o
  CXX(target) Release/obj.target/yencode_avx/src/decoder_avx.o
  LIBTOOL-STATIC Release/yencode_avx.a
  CXX(target) Release/obj.target/yencode_avx2/src/decoder_avx2.o
  CXX(target) Release/obj.target/yencode_avx2/src/encoder_avx2.o
  LIBTOOL-STATIC Release/yencode_avx2.a
  CXX(target) Release/obj.target/yencode_vbmi2/src/decoder_vbmi2.o
  CXX(target) Release/obj.target/yencode_vbmi2/src/encoder_vbmi2.o
  LIBTOOL-STATIC Release/yencode_vbmi2.a
  CXX(target) Release/obj.target/yencode_neon/src/encoder_neon.o
  CXX(target) Release/obj.target/yencode_neon/src/decoder_neon64.o
  LIBTOOL-STATIC Release/yencode_neon.a
  CXX(target) Release/obj.target/yencode_armcrc/src/crc_arm.o
  LIBTOOL-STATIC Release/yencode_armcrc.a
  CXX(target) Release/obj.target/yencode_pmull/src/crc_arm_pmull.o
  LIBTOOL-STATIC Release/yencode_pmull.a
  CXX(target) Release/obj.target/yencode_rvv/src/encoder_rvv.o
  CXX(target) Release/obj.target/yencode_rvv/src/decoder_rvv.o
  LIBTOOL-STATIC Release/yencode_rvv.a
  CXX(target) Release/obj.target/yencode_zbkc/src/crc_riscv.o
  LIBTOOL-STATIC Release/yencode_zbkc.a
  CXX(target) Release/obj.target/yencode/src/yencode.o
  CXX(target) Release/obj.target/yencode/src/platform.o
In file included from ../src/platform.cc:11:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/sysctl.h:83:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/ucred.h:101:2: error: unknown type name 'u_int'
        u_int   cr_version;             /* structure layout version */
        ^
In file included from ../src/platform.cc:11:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/sysctl.h:85:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:116:2: error: unknown type name 'u_int'
        u_int   p_estcpu;        /* Time averaged value of p_cpticks. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:121:2: error: unknown type name 'u_int'
        u_int   p_swtime;        /* Time swapped in or out. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:122:2: error: unknown type name 'u_int'
        u_int   p_slptime;       /* Time since last blocked. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:136:2: error: unknown type name 'u_char'; did you mean 'char'?
        u_char  p_priority;     /* Process priority. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:137:2: error: unknown type name 'u_char'; did you mean 'char'?
        u_char  p_usrpri;       /* User-priority based on p_cpu and p_nice. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:142:2: error: unknown type name 'u_short'; did you mean 'short'?
        u_short p_xstat;        /* Exit status for wait; also stop signal. */
        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/proc.h:143:2: error: unknown type name 'u_short'; did you mean 'short'?
        u_short p_acflag;       /* Accounting flags. */
        ^
In file included from ../src/platform.cc:11:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/sysctl.h:793:23: error: unknown type name 'u_int'
int     sysctl(int *, u_int, void *, size_t *, void *, size_t);
                      ^
9 errors generated.
make: *** [Release/obj.target/yencode/src/platform.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.<anonymous> (/private/tmp/node-yencode/node_modules/node-gyp/lib/build.js:216:23)
gyp ERR! System Darwin 23.6.0
gyp ERR! command "/opt/homebrew/Cellar/node/22.6.0/bin/node" "/private/tmp/node-yencode/node_modules/.bin/node-gyp" "rebuild"
gyp ERR! cwd /private/tmp/node-yencode
gyp ERR! node -v v22.6.0
gyp ERR! node-gyp -v v10.2.0
gyp ERR! not ok 
animetosho commented 2 months ago

Thanks for testing.
Could you do a node-gyp rebuild -v on the latest source to see what command is being sent to the compiler? I'm mostly interested if the _POSIX_C_SOURCE define is being sent.

sspilleman commented 2 months ago

I threw away my git pull from yesterday... Just did a repull, and it works! See output below. Can you create a v1.2.3 release from this?

node-yencode git:(master) ✗ node-gyp rebuild
gyp info it worked if it ends with ok
gyp info using node-gyp@10.2.0
gyp info using node@22.6.0 | darwin | arm64
gyp info find Python using Python version 3.12.5 found at "/opt/homebrew/opt/python@3.12/bin/python3.12"

gyp info spawn /opt/homebrew/opt/python@3.12/bin/python3.12
gyp info spawn args [
gyp info spawn args '/opt/homebrew/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/private/tmp/node-yencode/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/opt/homebrew/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/sander/Library/Caches/node-gyp/22.6.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/Users/sander/Library/Caches/node-gyp/22.6.0',
gyp info spawn args '-Dnode_gyp_dir=/opt/homebrew/lib/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/Users/sander/Library/Caches/node-gyp/22.6.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/private/tmp/node-yencode',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  TOUCH Release/obj.target/crcutil.stamp
  CXX(target) Release/obj.target/yencode_sse2/src/encoder_sse2.o
  CXX(target) Release/obj.target/yencode_sse2/src/decoder_sse2.o
  LIBTOOL-STATIC Release/yencode_sse2.a
  CXX(target) Release/obj.target/yencode_ssse3/src/encoder_ssse3.o
  CXX(target) Release/obj.target/yencode_ssse3/src/decoder_ssse3.o
  LIBTOOL-STATIC Release/yencode_ssse3.a
  CXX(target) Release/obj.target/yencode_clmul/src/crc_folding.o
  LIBTOOL-STATIC Release/yencode_clmul.a
  CXX(target) Release/obj.target/yencode_clmul256/src/crc_folding_256.o
  LIBTOOL-STATIC Release/yencode_clmul256.a
  CXX(target) Release/obj.target/yencode_avx/src/encoder_avx.o
  CXX(target) Release/obj.target/yencode_avx/src/decoder_avx.o
  LIBTOOL-STATIC Release/yencode_avx.a
  CXX(target) Release/obj.target/yencode_avx2/src/decoder_avx2.o
  CXX(target) Release/obj.target/yencode_avx2/src/encoder_avx2.o
  LIBTOOL-STATIC Release/yencode_avx2.a
  CXX(target) Release/obj.target/yencode_vbmi2/src/decoder_vbmi2.o
  CXX(target) Release/obj.target/yencode_vbmi2/src/encoder_vbmi2.o
  LIBTOOL-STATIC Release/yencode_vbmi2.a
  CXX(target) Release/obj.target/yencode_neon/src/encoder_neon.o
  CXX(target) Release/obj.target/yencode_neon/src/decoder_neon64.o
  LIBTOOL-STATIC Release/yencode_neon.a
  CXX(target) Release/obj.target/yencode_armcrc/src/crc_arm.o
  LIBTOOL-STATIC Release/yencode_armcrc.a
  CXX(target) Release/obj.target/yencode_pmull/src/crc_arm_pmull.o
  LIBTOOL-STATIC Release/yencode_pmull.a
  CXX(target) Release/obj.target/yencode_rvv/src/encoder_rvv.o
  CXX(target) Release/obj.target/yencode_rvv/src/decoder_rvv.o
  LIBTOOL-STATIC Release/yencode_rvv.a
  CXX(target) Release/obj.target/yencode_zbkc/src/crc_riscv.o
  LIBTOOL-STATIC Release/yencode_zbkc.a
  CXX(target) Release/obj.target/yencode/src/yencode.o
  CXX(target) Release/obj.target/yencode/src/platform.o
  CXX(target) Release/obj.target/yencode/src/encoder.o
  CXX(target) Release/obj.target/yencode/src/decoder.o
  CXX(target) Release/obj.target/yencode/src/crc.o
  SOLINK_MODULE(target) Release/yencode.node
ld: warning: reexported library with install name '/opt/homebrew/opt/llvm/lib/libunwind.1.dylib' found at '/opt/homebrew/Cellar/llvm/18.1.8/lib/libunwind.1.0.dylib' couldn't be matched with any parent library and will be linked directly
gyp info ok 
sspilleman commented 2 months ago

I also repulled Nyuu now. And changed to package.json to below. did an npm i -g and that also works again.

{
  "name": "nyuu",
  "version": "0.4.2",
  "description": "Flexible usenet binary poster",
  "keywords": [
    "usenet",
    "nntp",
    "nzb",
    "usenet-uploader",
    "usenet-poster"
  ],
  "license": "CC0-1.0",
  "author": "Anime Tosho",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/animetosho/nyuu.git"
  },
  "main": "lib/fileuploader.js",
  "bin": "bin/nyuu.js",
  "preferGlobal": true,
  "engines": {
    "node": ">=0.10"
  },
  "dependencies" : {
    "async" : "0.2.0 - 2.9999.9999",
    "yencode" : "../node-yencode"    <----------------------------------------
  },
  "devDependencies" : {
    "mocha" : "*",
    "nexe" : "*"
  },
  "type": "commonjs",
  "pkg": {
    "assets": "help*.txt"
  },
  "bugs": {
    "url": "https://github.com/animetosho/nyuu/issues"
  },
  "homepage": "https://animetosho.org/app/nyuu"
}
animetosho commented 2 months ago

That's great, thanks for confirming!

v1.2.3 should be out.