-
-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bump nodejs #6973
Bump nodejs #6973
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep the patch split on multiple files.
@xeffyr.. It gives bad register name errors for i686.... and those register errors are specific to ia32(saw it at stackoverflow.. ofcourse)... |
I have disabled it for i686, but let's enable build for x86_64 to see how its status changes by comparing to previous version. In general, it is preferred to keep popular packages on outdated version rather than disabling for specific arches due to error. Disabling i686 nodejs will most likely lead to complaints from Chromebook owners who use Termux as development environment. |
I guess chromebook users will have to revert back to nodejs-lts then..... |
Closing as these assembly errors are persistent for arm cpus also.... |
Hello. I came to termux-packages to see if nodejs could be bumped and found this recently closed issue. I do not understand the reason. @suhan-paradkar can you provide the link to StackOverflow for the issue referenced above? Bad register name errors for i686 specific to ia32? What is the cause of the errors? What was done to try to fix this? Can something else be tried to fix this? Has this type of error ever occurred on any other package? If yes, how was that resolved? Is this possible to update on-device with clang? The nodejs build docs specifically mention gcc as a requirement. Is this an actual requirement? Or is it just an assumed/normative/de-facto standard? Does gcc generate compatible assembly in this case? Or is clang known for a fact to be compatible? I don't care either way, I'm just trying to understand the situation, but using clang would possibly be easier and less error prone if building on device, as gcc apparently is no longer fully supported on Android. |
Here's one example.... Also... note that there are several other bad registers encountered while compiling....
I guess that would be possible... but would take a lot of resources... even github actions CI runs out of memory sometimes while building nodejs
That is a requirement of most packages but aince gcc is unsupported, we use clang...
About compatibility with gcc in termux...I don't think anyone haas tried it yet....
that is true since we are cross compiling... |
Thank you for the explanations!
How much memory does the CI have when it runs out? And how much disk space is required? My new phone has almost as good specs as my 10-yr old PC, so... :) There is one way to find out, I guess.
Some answers, and more questions, but thanks for the SO example, now I know where to begin looking. |
I was just searching around the stackoverflow, so I'm wondering whether is this of any help? |
Also I'm wondering, I checked my arm info via this command: |
https://wiki.termux.com/wiki/Differences_from_Linux Even if you manage to run it, there no guarantee that it will work properly. Termux is not standard Linux distribution, that's a custom userspace for Android. However it should work under proot. |
@sayantan300 Regarding the file, |
Eh |
I'm noob when it comes to those parts |
@xeffyr so you're sure I can use nodejs 16 with proot? Lemme try it out and hope it doesn't fills up my storage |
Yes, you should be able to use it under proot. I haven't tried it, but if that's a static binary (and linked with Musl libc, not GNU), In case if it was linked with GNU libc (no matter statically or not), you will need at least basic installation of Ubuntu or Debian under proot. That's needed because GNU libc splits DNS resolver into separate component often distributed as shared library only. Try it and see whether it worked or not. Suggesting to try npm with it as well. |
@xeffyr noice! We can actually run nodejs v16 somehow then! I shall be sharing this with everyone for now! |
Actually wondering how can I contribute to termux docs so I can add there how to upgrade to nodejs v16 like how you did... |
Actually this isn't upgrading the Termux Node.js but custom installation inside chroot. Termux docs are only about Termux and things officially packaged. |
Oh sorry, but maybe we everyone know about this though |
Also confirmed using proot-distro with ubuntu-21.04, at least This is almost like a Linux/Android/Termux System for Linux inside Termux inside Android inside Linux (on a phone). If I tried this level of nesting on my desktop, it would struggle. Phone seems to handle it ok. |
This isn't nesting. The only overhead there is proot, everything else is just userspace switch ( |
Yay I finally installed it on my mobile! |
Currently about nodejs16... Its stuck at v8.. which is a depenency and is causing the assembly errors... |
@suhan-paradkar Is it something that was fixed upstream? Obviously, Node.js and V8 engine have been compiled successfully on ARMv7 and ARMv8, because it runs just fine on ARMv7 and ARMv8 using proot as demonstrated here. |
@Leif-W |
Please know the Differences from Linux. |
About a seperate V8 package, the progress can be seen in #7290 |
I know the differences. I've used Linux 25+ years. V8 compiles and runs on ARM, so it's not a problem with code or assembly or registers. It is a problem with paths, tools, detection, configuration. |
Update nodejs to latest version... had to update the patches too..