On Fri, Mar 25, 2022 at 4:12 PM Jérémy Lal <kapo...@melix.org> wrote:
> > > On Fri, Mar 25, 2022 at 7:10 AM Bo YU <tsu.y...@gmail.com> wrote: > >> hi, >> >> >>>>> >>>>> > Linking nodejs happens to use a lot of memory: make sure enough >>>>>>> swap >>>>>>> > space is available. >>>>>>> > (I had similar crashes with 12GB of RAM and no swap). >>>>>>> > Or the linker is broken on riscv64... let's hope it is not. >>>>>>> > If you happen to reach the "building deb" stage, you can disable >>>>>>> > -dbgsym package creation, >>>>>>> > which is very long, with another build profile: noautodbgsym. >>>>>>> > DEB_BUILD_PROFILES="nodoc nocheck noautodbgsym >>>>>>> pkg.nodejs.nobuiltin" >>>>>>> > Jérémy >>>>>>> Today I checkout master-16.x, and I got: >>>>>>> >>>>>> sorry, add more useful info: >>>>>> cc -o >>>>>> /home/vimer/git/nodejs/out/Release/obj.target/llhttp/deps/llhttp/src/api.o >>>>>> ../deps/llhttp/src/api.c '-DV8_DEPRECATION_WARNINGS' >>>>>> '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' >>>>>> '-DNODE_OPENSSL_CERT_STORE' '-D__STDC_FORMAT_MACROS' -I../deps/llhttp >>>>>> -I../deps/llhttp/include -pthread -Wall -Wextra -Wno-unused-parameter >>>>>> -fPIC -O3 -fno-omit-frame-pointer -MMD -MF >>>>>> /home/vimer/git/nodejs/out/Release/.deps//home/vimer/git/nodejs/out/Release/obj.target/llhttp/deps/llhttp/src/api.o.d.raw >>>>>> -fPIC -g -fPIC -g -fPIC -g -fPIC -g -c >>>>>> make[3]: *** No rule to make target >>>>>> '../deps/acorn/acorn/dist/acorn.js', needed by >>>>>> '/home/vimer/git/nodejs/out/Release/obj/gen/node_javascript.cc'. Stop. >>>>>> >>>>> >>>>> Maybe some symlink is missing, am checking it but it will take a while >>>>> to rebuild. >>>>> >>>> >>>> I pushed a fix for a mistake in debian/rules that happened while >>>> renaming "nobuiltin". >>>> >>> >>> At least it builds and produces deb packages here on amd64 without >>> depending on nodejs itself. >>> >>> It have finished about compiling phrase, but dh_missing reports error: >> make[1]: Entering directory '/home/vimer/git/nodejs' >> make[1]: awk: No such file or directory >> make[1]: awk: No such file or directory >> sed 's/@DEB_HOST_MULTIARCH@/riscv64-linux-gnu/g' debian/libnode.install >> > debian/libnode.install >> sed -e 's/@DEB_HOST_MULTIARCH@/riscv64-linux-gnu/g' -e 's/@ABI@//g' >> debian/libnode-dev.links.in > debian/libnode-dev.links >> cp debian/nodejs.install.in debian/nodejs.install >> echo "./lib /usr/share/nodejs/node/" >> debian/nodejs.install >> deps_files="deps/v8/tools/splaytree.mjs deps/v8/tools/codemap.mjs >> deps/v8/tools/consarray.mjs deps/v8/tools/csvparser.mjs >> deps/v8/tools/profile.mjs deps/v8/tools/profile_view.mjs >> deps/v8/tools/logreader.mjs deps/v8/tools/arguments.mjs >> deps/v8/tools/tickprocessor.mjs deps/v8/tools/sourcemap.mjs >> deps/v8/tools/tickprocessor-driver.mjs deps/acorn/acorn/dist/acorn.js >> deps/acorn/acorn-walk/dist/walk.js deps/cjs-module-lexer/lexer.js"; \ >> for src in $deps_files; do \ >> dst=`dirname $src`; \ >> echo "./$src /usr/share/nodejs/node/$dst" >> >> debian/nodejs.install; \ >> done >> # and add uncompiled acorn >> echo "./node-acorn/acorn/src /usr/share/nodejs/node/deps/acorn/acorn/" >> >> debian/nodejs.install >> echo "./node-acorn/acorn-walk/src >> /usr/share/nodejs/node/deps/acorn/acorn-walk/" >> debian/nodejs.install >> dh_install >> make[1]: Leaving directory '/home/vimer/git/nodejs' >> debian/rules override_dh_installdocs >> make[1]: Entering directory '/home/vimer/git/nodejs' >> dh_installdocs >> find debian/nodejs-doc/usr/share/doc/nodejs-doc -name *.json -delete || >> true >> find: 'debian/nodejs-doc/usr/share/doc/nodejs-doc': No such file or >> directory >> make[1]: Leaving directory '/home/vimer/git/nodejs' >> dh_installchangelogs -a >> dh_installman -a >> dh_lintian -a >> dh_perl -a >> dh_link -a >> dh_strip_nondeterminism -a >> dh_compress -a >> dh_fixperms -a >> dh_missing -a >> dh_missing: warning: usr/lib/libnode.so.93 exists in debian/tmp but is >> not installed to anywhere >> The following debhelper tools have reported what they installed >> (with files per package) >> * dh_install: libnode-dev (179), libnode93 (0), nodejs (72), >> nodejs-doc (0) >> * dh_installdocs: libnode-dev (0), libnode93 (0), nodejs (0), >> nodejs-doc (0) >> * dh_installman: libnode-dev (0), libnode93 (0), nodejs (1), >> nodejs-doc (0) >> If the missing files are installed by another tool, please file a >> bug against it. >> When filing the report, if the tool is not part of debhelper >> itself, please reference the >> "Logging helpers and dh_missing" section from the "PROGRAMMING" >> guide for debhelper (10.6.3+). >> (in the debhelper package: >> /usr/share/doc/debhelper/PROGRAMMING.gz) >> Be sure to test with dpkg-buildpackage -A/-B as the results may >> vary when only a subset is built >> If the omission is intentional or no other helper can take care >> of this consider adding the >> paths to debian/not-installed. >> dh_missing: error: missing files, aborting >> make: *** [debian/rules:186: binary-arch] Error 255 >> dpkg-buildpackage: error: debian/rules binary-arch subprocess returned >> exit status 2 >> >> Will fix debian/not-installed? >> > > ./debian/rules assumes you have /usr/bin/awk which is provided by gawk > Ok. I installed gwak by manual, and run `dpkg-buildpackage --build=any --no-pre-clean` again. It reports the same error. And there is some more info(on IRC): ```that "sed 's/@DEB_HOST_MULTIARCH@/riscv64-linux-gnu/g' debian/libnode.install > debian/libnode.install" line is obviously wrong, and according to the sid rules file the output file name indeed includes $(ABI) ``` The libnode.install and libnode93.install file are empty. Here is the log [0] and d/rules[1] [0]: https://paste.debian.net/1235527/ [1]: https://salsa.debian.org/js-team/nodejs/-/blob/master-16.x/debian/rules#L272 Bo > > >> BTW, We have sole cmd execute after dh_missing phrase? if not rebuilt >> again it will save many times. >> > > Either add --no-pre-clean to dpkg-buildpackage or add > --debbuildopt="--no-pre-clean" to sbuild. > That might work... > > Jérémy > >>