Bug 15061 - Node.js Package fails to build against musl i386
Summary: Node.js Package fails to build against musl i386
Status: RESOLVED FIXED
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: 2022.08
Hardware: All Linux
: P5 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-17 07:43 UTC by hello.skyclo
Modified: 2022-10-30 20:19 UTC (History)
1 user (show)

See Also:
Host: x86_64
Target: i386
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description hello.skyclo 2022-10-17 07:43:39 UTC
Hello,

I have been trying to build the Nodejs package against musl for a i386 Pentium3 target. Nodejs has an unofficial build for musl (x64) and for x86 (gcc), however there is no unofficial build for x86 musl. I assume it's possible to build against musl-i386. I built nodejs against uClibc-ng i386 on the exact same machine months ago, however now that doesn't work either. For reference, my system uses glibc x64 and does not contain a musl i386 linker (since Ubuntu no longer supports i386).

The full output of make is attached here along with the defconfig (for reprod.):
https://gist.github.com/Skyclo/4168deaa1a73be8574d43eb70a4d9de1

The ninja build seems to fail consistently when doing anything related to "obj/gen/generate-bytecode-output-root/builtins-generated/bytecodes-builtins-list.h". It produces the following output before eventually crashing the make job queue:


>> [218/2653] ACTION generate_bytecode_builtins_list: generate_bytecode_builtins_list_action_3931b343a4cb0bd98da4e581f6ce90fe
>> FAILED: obj/gen/generate-bytecode-output-root/builtins-generated/bytecodes-builtins-list.h
>> cd ../../tools/v8_gypfiles; python ../../deps/v8/tools/run.py ../../out/Release/v8-qemu-wrapper ../../out/Release/bytecode_builtins_list_generator ../../out/Release/obj/gen/generate-bytecode-output-root/builtins-generated/bytecodes-builtins-list.h
>> qemu-i386: Could not open '/lib/ld-musl-i386.so.1': No such file or directory
Return code is 255


Getting the file info from "./output/target/lib/ld-musl-i386.so.1" returns the following:


>> ./output/target/lib/ld-musl-i386.so.1: broken symbolic link to /lib/libc.so


I'm unsure if that is what is causing my issues. From what I can tell, the qemu wrapper should be able to resolve that symlink to the one found under the target's lib.

I do not believe that my issue is related to Bug 14936 nor Bug 14366. I have not had time to see if the patch available at https://patchwork.ozlabs.org/project/buildroot/patch/20220809075704.86472-4-ardeleanalex@gmail.com/ works for my specific case.

Thanks for any help in advance!
Comment 1 hello.skyclo 2022-10-20 17:13:12 UTC
I downgraded to the 2022.08.1 release from the master branch and nodejs builds. I think there is a regression somewhere between the 08 release and the current commit, but I'm not sure where. 

The overall build still fails, however, it is due to Bug 14936 (nodejs/node#37441). 

I'll try to look into it more.
Comment 2 Thomas Petazzoni 2022-10-26 12:59:47 UTC
I submitted a fix for this issue at https://patchwork.ozlabs.org/project/buildroot/patch/20221026125836.3910730-1-thomas.petazzoni@bootlin.com/