Summary: | dev-lang/spidermonkey-78.15.0 get rid of llvm-objdump using gcc objdump | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ulenrich <ulenrich> |
Component: | Current packages | Assignee: | Mozilla Gentoo Team <mozilla> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jstein |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build_and_test_spidermonkey_with_gcc_objdump.gz |
(In reply to Tee KOBAYASHI from comment #1) > See https://bugs.gentoo.org/740890 Arrgh, this bdepends exists, because llvm-objdump is needed in the build. Therefore this is an upstream issue? I wonder if we could fake the llvm-objdump by showing a simple symbolic link to the spidermonkey configure srcript using objdump of the gcc compiler suite, like: /usr/bin/llvm-objdump -> /usr/x86_64-pc-linux-gnu/bin/objdump because the objdump from gcc has pretty much the same options like llvm-objdump. (In reply to Ulenrich from comment #2) > (In reply to Tee KOBAYASHI from comment #1) > > See https://bugs.gentoo.org/740890 > Arrgh, > this bdepends exists, because llvm-objdump is needed in the build. I am just trying: 1. emerge -C sys-devel/llvm-common sys-devel/llvm 2. ln -s /usr/x86_64-pc-linux-gnu/bin/objdump /usr/bin/llvm-objdump 3. created a spidermonkey ebuild without bdepend llvm 4. try to emerge spidermonkey without any of llvm, and this is now beyond any configure script running emerge: --- emerge spidermonkey These are the packages that would be merged, in order: Calculating dependencies ........ done! [ebuild U ~] dev-lang/spidermonkey-78.15.0-r1:78::locali [78.15.0:78::gentoo] USE="-clang -debug -jit -lto -test" 0 KiB Total: 1 package (1 upgrade), Size of downloads: 0 KiB Would you like to merge these packages? [Yes/No] y >>> Verifying ebuild manifests >>> Running pre-merge checks for dev-lang/spidermonkey-78.15.0-r1 * Checking for at least 6400 MiB disk space at "/srv/portage/dev-lang/spidermonkey-78.15.0-r1/temp" ... [ ok ] >>> Emerging (1 of 1) dev-lang/spidermonkey-78.15.0-r1::locali >>> Jobs: 0 of 1 complete, 1 running Load --- my emerge audit shows progress: --- max 4877428 dev-lang/spidermonkey: 2755 average for 13 merges kB 3230536 /srv/portage/dev-lang/spidermonkey-78.15.0-r1 kB 3266216 /srv/portage/dev-lang/spidermonkey-78.15.0-r1 --- I wonder why in bug 740890 nobody tried this? Because we cannot create a symlink? How can I test this spidermonkey build with enabled USE=test. I have never done this. Because I am sceptical if in deed the ggc objdump is doing the same as the llvm-objdump, therefore I have emerged with USE=test: --- # emerge spidermonkey These are the packages that would be merged, in order: Calculating dependencies ....... done! [ebuild U ~] dev-lang/spidermonkey-78.15.0-r2:78::locali [78.15.0-r1:78::locali] USE="-clang -debug jit* -lto test*" 0 KiB Total: 1 package (1 upgrade), Size of downloads: 0 KiB Would you like to merge these packages? [Yes/No] y >>> Verifying ebuild manifests >>> Running pre-merge checks for dev-lang/spidermonkey-78.15.0-r2 * Checking for at least 7600 MiB disk space at "/srv/portage/dev-lang/spidermonkey-78.15.0-r2/temp" ... [ ok ] >>> Emerging (1 of 1) dev-lang/spidermonkey-78.15.0-r2::locali >>> Installing (1 of 1) dev-lang/spidermonkey-78.15.0-r2::locali >>> Jobs: 1 of 1 complete Load avg: 1.14, 1.51, 1.88 >>> Auto-cleaning packages... >>> No outdated packages were found on your system. --- But how do I proceed with testing this spidermonkey build with gcc objdump? You can use FEATURES="test" emerge spidermonkey or ebuild $(equery w spidermonkey) test I had emerged spidermonkey before, so I uses this for test purpose: (In reply to Tee KOBAYASHI from comment #5) > ebuild $(equery w spidermonkey) test The above command builds spidermonkey again and tests for about half an hour. It ended with these two lines: --- PASS >>> Completed testing dev-lang/spidermonkey-78.15.0-r2 --- Conclusion: We can replace /usr/bin/llvm-objdump with the gcc objdump by purging llvm and creating a symlink: lrwxrwxrwx 1 root root 36 Okt 31 20:54 /usr/bin/llvm-objdump -> /usr/x86_64-pc-linux-gnu/bin/objdump Created attachment 747765 [details]
build_and_test_spidermonkey_with_gcc_objdump.gz
Log of test
If you do local hacks, you can package.provided llvm, but this is hard to accomplish from the ebuild-side. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c429348b674c1a310c4ab3360db72f6849a9a9c commit 7c429348b674c1a310c4ab3360db72f6849a9a9c Author: Joonas Niilola <juippis@gentoo.org> AuthorDate: 2024-10-09 13:22:53 +0000 Commit: Joonas Niilola <juippis@gentoo.org> CommitDate: 2024-10-09 13:27:24 +0000 dev-lang/spidermonkey: add a patch to 128.3.0 to not depend on llvm - spidermonkey can be built just fine without a mandatory llvm dependency. Closes: https://bugs.gentoo.org/821091 Signed-off-by: Joonas Niilola <juippis@gentoo.org> dev-lang/spidermonkey/Manifest | 2 +- dev-lang/spidermonkey/spidermonkey-128.3.0.ebuild | 28 +++++++++++++---------- 2 files changed, 17 insertions(+), 13 deletions(-) |
I wonder why dev-lang/spidermonkey depend on sys-devel/llvm despite these disabled USEs: --- # emerge -1pv spidermonkey && \ echo "------" &&echo "Despite USE spidermonkey needs llvm:" && \ emerge -cvp $(qlist -IC sys-devel/llvm) These are the packages that would be merged, in order: Calculating dependencies .... done! [ebuild R ~] dev-lang/spidermonkey-78.15.0:78::gentoo USE="-clang -debug -jit -lto -test" 0 KiB Total: 1 package (1 reinstall), Size of downloads: 0 KiB ------ Despite USE spidermonkey needs llvm: Calculating dependencies ... done! sys-devel/llvm-12.0.1 pulled in by: dev-lang/spidermonkey-78.15.0 requires sys-devel/llvm:12 sys-devel/llvmgold-12 requires sys-devel/llvm:12[gold] sys-devel/llvm-common-12.0.1 pulled in by: sys-devel/llvm-12.0.1 requires sys-devel/llvm-common sys-devel/llvmgold-12 pulled in by: sys-devel/llvm-12.0.1 requires >=sys-devel/llvmgold-12 >>> No packages selected for removal by depclean