Summary: | [4.5/ICE] www-client/firefox-15.0.1 - .../work/mozilla-release/js/src/vm/ObjectImpl.cpp:485:1: internal compiler error: in merge_if_block, at ifcvt.c:3005 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | John L. Poole <prestopoole> |
Component: | New packages | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | hanno, mozilla, siarhei.siamashka, stefan.sassenberg |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | ARM | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
build.log
environment emerge-info ObjectImpl requested per comment #9 stefan's ObjectImpl.ii, gzipped raspberry pi emerge info firefox 16.0.1 Raspberry pi Build.log firefox 16.0.1 |
Description
John L. Poole
2012-09-09 13:29:55 UTC
bone ~ # emerge -pqv '=www-client/firefox-15.0.1' [ebuild N ] www-client/firefox-15.0.1 USE="dbus ipc jit minimal (-alsa) -bindist -custom-cflags -custom-optimization -debug -gstreamer -libnotify -pgo (-selinux) -startup-notification -system-sqlite (-webm) -wifi" LINGUAS="-af -ak -ar -as -ast -be -bg -bn_BD -bn_IN -br -bs -ca -cs -csb -cy -da -de -el -en_GB -en_ZA -eo -es_AR -es_CL -es_ES -es_MX -et -eu -fa -fi -fr -fy_NL -ga_IE -gd -gl -gu_IN -he -hi_IN -hr -hu -hy_AM -id -is -it -ja -kk -km -kn -ko -ku -lg -lt -lv -mai -mk -ml -mr -nb_NO -nl -nn_NO -nso -or -pa_IN -pl -pt_BR -pt_PT -rm -ro -ru -si -sk -sl -son -sq -sr -sv_SE -ta -ta_LK -te -th -tr -uk -vi -zh_CN -zh_TW -zu" * IMPORTANT: 3 news items need reading for repository 'gentoo'. * Use eselect news to read news items. bone ~ # Created attachment 323300 [details]
build.log
Created attachment 323302 [details]
environment
Created attachment 323304 [details]
emerge-info
This bug may be moot as https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Windows_Prerequisites?redirectlocale=en-US&redirectslug=Windows_Build_Prerequisites instructs that the Hardware requirements for a compile on Windows is: at least 2 GB RAM The BeagleBone has only 256 MB of RAM. However, I have also built Firefox on the SheevaPlug which only has 512 MB RAM -- it takes a long time, but it does compile. I'm raising this issue in case memory limitations may be at play, but then there probably would be some sort of error message identifying "memory" as an issue unlike the one at issue in this bug. I have exactly the same error message on my system. Parts of emerge --info: Portage 2.1.11.9 (default/linux/arm/10.0/desktop, gcc-4.5.4, glibc-2.15-r2, 3.5.0-2-ARCH+ armv7l) ================================================================= System uname: Linux-3.5.0-2-ARCH+-armv7l-ARMv7_Processor_rev_5_-v7l-with-gentoo-2.1 ... CBUILD="armv7a-hardfloat-linux-gnueabi" CFLAGS="-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard" CHOST="armv7a-hardfloat-linux-gnueabi" ... CXXFLAGS="-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard" It's a Cubox running an up-to-date kernel from ArchLinux. It doesn't seem to have used much of the available memory as top now says Mem: 701656k total, 465580k used, 236076k free, 100312k buffers Swap: 999996k total, 1016k used, 998980k free, 220760k cached does it fail at the same place every time ? if you remove the -pipe flag, does it work better ? The previous fault point was: /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/vm/ObjectImpl.cpp:485:1: internal compiler error: in merge_if_block, at ifcvt.c:3005 I tried Mark's suggestion and modified my /etc/make.conf as follows: #CFLAGS="-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp" # # Bug 434452 suggestion by Vapier to remove "-pipe" for firefox # CFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp" After a 48 minute compile time, it errored out with which is the same fault point previously submitted: /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/vm/ObjectImpl.cpp: In member function 'bool js::ArrayBufferElementsHeader::defineElement(JSContext*, js::ObjectImpl*, uint32_t, const js::PropDesc&, bool, bool*)': /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/vm/ObjectImpl.cpp:485:1: internal compiler error: in merge_if_block, at ifcvt.c:3005 Therefore, it appears removing "-pipe" flag has no effect and the fault point remains the same. (In reply to comment #8) run this: cd /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/obj-armv7l-unknown-linux-gnueabi/js/src armv7a-softfp-linux-gnueabi-g++ -o ObjectImpl.ii -E -dD -fvisibility=hidden \ -DMOZ_GLUE_IN_PROGRAM -DEXPORT_JS_API -DJS_HAS_CTYPES -DDLL_PREFIX=\"lib\" \ -DDLL_SUFFIX=\".so\" -DNO_NSPR_10_SUPPORT -I/usr/lib/libffi-3.0.11/include \ -I. -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-\ release/js/src/../../mfbt/double-conversion \ -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src \ -I. -I./../../dist/include -I./../../dist/include/nsprpub \ -I/usr/include/nspr \ -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src \ -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-\ release/js/src/assembler -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/yarr \ -fPIC -fno-rtti -Wall -Wpointer-arith -Woverloaded-virtual \ -Werror=return-type -Wtype-limits -Wempty-body -Wno-ctor-dtor-privacy \ -Wno-overlength-strings -Wno-invalid-offsetof -Wno-variadic-macros \ -march=armv7-a -mfpu=vfpv3-d16 -ffunction-sections -fdata-sections -pthread \ -pipe -DNDEBUG -DTRIMMED -g -O3 -freorder-blocks -finline-limit=50 \ -fomit-frame-pointer -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 \ -DENABLE_JIT=1 -DMOZILLA_CLIENT -include ./js-confdefs.h \ /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-\ release/js/src/vm/ObjectImpl.cpp then compress the ObjectImpl.ii file and attach it here it's not finding the compiler you specified. bone src # pwd /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/obj-armv7l-unknown-linux-gnueabi/js/src bone src # armv7a-softfp-linux-gnueabi-g++ -o ObjectImpl.ii -E -dD -fvisibility=hidden \ -DMOZ_GLUE_IN_PROGRAM -DEXPORT_JS_API -DJS_HAS_CTYPES -DDLL_PREFIX=\"lib\" \ -DDLL_SUFFIX=\".so\" -DNO_NSPR_10_SUPPORT -I/usr/lib/libffi-3.0.11/include \ -I. -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-\ release/js/src/../../mfbt/double-conversion \ -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src \ -I. -I./../../dist/include -I./../../dist/include/nsprpub \ -I/usr/include/nspr \ -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src \ -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-\ release/js/src/assembler -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/yarr \ -fPIC -fno-rtti -Wall -Wpointer-arith -Woverloaded-virtual \ -Werror=return-type -Wtype-limits -Wempty-body -Wno-ctor-dtor-privacy \ -Wno-overlength-strings -Wno-invalid-offsetof -Wno-variadic-macros \ -march=armv7-a -mfpu=vfpv3-d16 -ffunction-sections -fdata-sections -pthread \ -pipe -DNDEBUG -DTRIMMED -g -O3 -freorder-blocks -finline-limit=50 \ -fomit-frame-pointer -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 \ -DENABLE_JIT=1 -DMOZILLA_CLIENT -include ./js-confdefs.h \ /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-\ release/js/src/vm/ObjectImpl.cpp armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: : No such file or directory armv7a-softfp-linux-gnueabi-g++: /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla- release/js/src/vm/ObjectImpl.cpp: No such file or directory armv7a-softfp-linux-gnueabi-g++: no input files bone src # I made a mistake: the compiler is there, just the files it is expecting were not found. bone src # armv7a-softfp-linux-gnueabi-g++ armv7a-softfp-linux-gnueabi-g++: no input files bone src # you didn't copy & paste it correctly. look at the last command run in the build.log and change the -c to -E if you want to do it yourself. (In reply to comment #12) > you didn't copy & paste it correctly. look at the last command run in the > build.log and change the -c to -E if you want to do it yourself. I copied from the Bug Ticket, but it looks like my Windows paste buffer picked up some carriage return and/or line feeds. So I pasted into NotePad++ and used the linealize tool from XML Tools to create a single line and then I pasted into my console. Any changes that occurred outside of those actions were not of my doing. I opened the build.log in NotePad++, found the last line, and modified "-c " to "-E " and then pasted into the console: I verified that the line pasted into the console was indeed, a single line, by copying it back into NotePad++ and seeing it all on one line. Here's the run with the modification: bone src # armv7a-softfp-linux-gnueabi-g++ -o ObjectImpl.o -E -fvisibility=hidden -DMOZ_GLUE_IN_PROGRAM -DEXPORT_JS_API -DJS_HAS_CTYPES -DDLL_PREFIX=\"lib\" -DDLL_SUFFIX=\".so\" -DNO_NSPR_10_SUPPORT -I/usr/lib/libffi-3.0.11/include -I. -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/../../mfbt/double-conversion -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src -I. -I./../../dist/include -I./../../dist/include/nsprpub -I/usr/include/nspr -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/assembler -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/yarr -fPIC -fno-rtti -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wno-ctor-dtor-privacy -Wno-overlength-strings -Wno-invalid-offsetof -Wno-variadic-macros -pipe -march=armv7-a -mfpu=vfpv3-d16 -ffunction-sections -fdata-sections -pthread -pipe -DNDEBUG -DTRIMMED -g -O3 -freorder-blocks -finline-limit=50 -fomit-frame-pointer -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1 -DMOZILLA_CLIENT -include ./js-confdefs.h -MD -MF .deps/ObjectImpl.pp armv7a-softfp-linux-gnueabi-g++: no input files bone src # pwd /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/obj-armv7l-unknown-linux-gnueabi/js/src bone src # The problem appears to be a missing file: bone firefox-15.0.1 # pwd /var/tmp/portage/www-client/firefox-15.0.1 bone firefox-15.0.1 # find . -name "ObjectImpl.pp" bone firefox-15.0.1 # find . -name "ObjectImp*" ./work/mozilla-release/js/src/vm/ObjectImpl.h ./work/mozilla-release/js/src/vm/ObjectImpl-inl.h ./work/mozilla-release/js/src/vm/ObjectImpl.cpp bone firefox-15.0.1 # Does this help? (In reply to comment #13) you didn't copy the entire line from build.log. you missed the source file (which as the end). Created attachment 323452 [details] ObjectImpl requested per comment #9 (In reply to comment #14) > (In reply to comment #13) > > you didn't copy the entire line from build.log. you missed the source file > (which as the end). You're right. It worked now. You specified ""ObjectImpl.ii" which I'm guessing was a typo, ii => pp. bone firefox-15.0.1 # find . -name "ObjectImpl.ii" bone firefox-15.0.1 # find . -name "ObjectImpl.pp" ./work/mozilla-release/obj-armv7l-unknown-linux-gnueabi/js/src/.deps/ObjectImpl.pp bone firefox-15.0.1 # ls -la ./work/mozilla-release/obj-armv7l-unknown-linux-gnueabi/js/src/.deps/ObjectImpl.pp -rw-r--r-- 1 root root 18182 Sep 10 13:27 ./work/mozilla-release/obj-armv7l-unknown-linux-gnueabi/js/src/.deps/ObjectImpl.pp bone firefox-15.0.1 # Comment on attachment 323452 [details] ObjectImpl requested per comment #9 nope, i meant ".ii". not a big deal as i can rename locally. Comment on attachment 323452 [details] ObjectImpl requested per comment #9 this is actually the dependency file, not the preprocessed output file that i need to reproduce with I was going to point out the difference, but your Comment #16 suggested you had what you needed. So, back to what you need: ObjectImpl.ii My Comment #15 shows that the file does not exist within the tree under /var/tmp/portage/www-client/firefox-15.0.1 Here's the search, again, for clarity: bone ~ # cd /var/tmp/portage/www-client/firefox-15.0.1 bone firefox-15.0.1 # find . -name "ObjectImpl.ii" bone firefox-15.0.1 # You requested I run a particular command, which I do so again below and show that immediately thereafter the file you are expecting, ObjectImpl.ii, is not created: bone firefox-15.0.1 # cd /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/obj-armv7l-unknown-linux-gnueabi/js/src bone src # armv7a-softfp-linux-gnueabi-g++ -o ObjectImpl.o -E -fvisibility=hidden -DMOZ_GLUE_IN_PROGRAM -DEXPORT_JS_API -DJS_HAS_CTYPES -DDLL_PREFIX=\"lib\" -DDLL_SUFFIX=\".so\" -DNO_NSPR_10_SUPPORT -I/usr/lib/libffi-3.0.11/include -I. -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/../../mfbt/double-conversion -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src -I. -I./../../dist/include -I./../../dist/include/nsprpub -I/usr/include/nspr -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/assembler -I/var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/yarr -fPIC -fno-rtti -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wno-ctor-dtor-privacy -Wno-overlength-strings -Wno-invalid-offsetof -Wno-variadic-macros -pipe -march=armv7-a -mfpu=vfpv3-d16 -ffunction-sections -fdata-sections -pthread -pipe -DNDEBUG -DTRIMMED -g -O3 -freorder-blocks -finline-limit=50 -fomit-frame-pointer -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1 -DMOZILLA_CLIENT -include ./js-confdefs.h -MD -MF .deps/ObjectImpl.pp /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/vm/ObjectImpl.cpp bone src # cd /var/tmp/portage/www-client/firefox-15.0.1 bone firefox-15.0.1 # find . -name "ObjectImpl.ii" bone firefox-15.0.1 # The g++ command executed without any output. Is there any other command or search I may perform? John, the trouble with the command you executed is in the first line. You did "-o ObjectImpl.o" where it should be "-o ObjectImpl.ii". Since -o determines the output file name, you don't find the resulting file. Meanwhile I did the same on my machine (with armv7a-hardfloat-linux-gnueabi-g++) to get my version of ObjectImpl.ii. I will add it as attachment. If you think my file is misplaced here because it's mot my bug, please tell me and will shut up until asked otherwise. The coincidence in error messages just makes me think that my ObjectImpl.ii might be helpful for John as well. Created attachment 323592 [details]
stefan's ObjectImpl.ii, gzipped
Thanks Stefan. The BeagleBone is not available to me until late tonight. I can upload same after then if he indicates he needs it. (In reply to comment #20) thanks, i can reproduce with this and -O2 4.6.3 seems to work fine and that's in ~arch now. i think we'll just wait for that to stabilize rather than backporting anything. funny enough, the ICE only seems to hit at -O2 :). so you could try using -O3 or -O1 in the mean time. I tried the suggest chage of the "O" flag referencing http://www.gentoo.org/doc/en/gcc-optimization.xml The problem (at line 485 in ObjectImpl.cpp) continues: CFLAGS="-O1 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp" produced: /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/vm/ObjectImpl.cpp: In member function 'bool js::ArrayBufferElementsHeader::defineElement(JSContext*, js::ObjectImpl*, uint32_t, const js::PropDesc&, bool, bool*)': /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/vm/ObjectImpl.cpp:485:1: internal compiler error: in merge_if_block, at ifcvt.c:3005 ================= CFLAGS="-O3 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp" produced /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/vm/ObjectImpl.cpp: In member function 'bool js::ArrayBufferElementsHeader::defineElement(JSContext*, js::ObjectImpl*, uint32_t, const js::PropDesc&, bool, bool*)': /var/tmp/portage/www-client/firefox-15.0.1/work/mozilla-release/js/src/vm/ObjectImpl.cpp:485:1: internal compiler error: in merge_if_block, at ifcvt.c:3005 (In reply to comment #24) regardless, it's already fixed in 4.6.x. if there's a simple fix from upstream for the issue we can look at merging, but we're not going to track it down otherwise. So I tried to emerge sys-devel/gcc having specified: bone ~ # head /etc/portage/package.keywords =sys-devel/gcc-4.6.0 I guess the only way to get firefox is to set up a cross compiler and try distcc. What's interesting about the BeagleBone is that I did not run into these types of problems with the SheevaPlug (I could build GCC on the Plug, it only took over 24 hours to compile). The BeagleBone's limited memory (256k) may be the culprit, I don't know. I'm adding this comment for posterity in case others trying out the BeagleBone & Gentoo run into this type of problem. Thanks for trying Mark [vapier]. yes... the attempt to compile gcc failed. This statement should be have been included in comment #26. gcc-4.6.3 works. I am successful with binutils 2.22.90, firefox-15.0.1 and a 4 GB swapfile. Stefan - Can you share what you did to configure you system's swap file? I've not tinkered with swap files before (at least I do not remember). I had tried compiling several versions of gcc 4.6.0 and greater and met with failure. I'd like to try 4.6.3 and duplicate your success. Sure. dd if=/dev/zero of=/swap bs=1000000 count=4000 mkswap /swap swapon /swap It will take a few minutes. Thank you, Stefan; that was a big help. I successfully compiled gcc 4.6.2 -- it took 8-13 hours. I then added the sys-devel/binutils-2.22.90 and that successfully installed (took 77 minutes). I proceeded to firefox and after 278 minutes, it failed: "nsMediaDecoder.h: No such file or directory". Question: whoever is monitoring this bug (Spanky?), should I open a new bug (since the failure was for a different reason) or add the desired files to this one? I think one might conclude that the problems I encountered when opening this bug were related to GCC per Spanky's earlier analysis. The problem I now face looks to be a missing dependency so a different bug may be appropriate. Note, at the beginning of the firefox compile, there was this: Checking for at least 4 gibibytes disk space at "/var/tmp/portage/www-client/firefox-15.0.1/temp" . I'm wondering if the 4 GB swap specified by Stefan is because of this, though I'd think swap and Firefox's determination of free disk space would be unrelated. I'm also wondering if there is a way to monitor the usage of swap to see if something less than 4 GBs works. A new bug would be the right choice, but it would be a dup. Do this: https://bugs.gentoo.org/show_bug.cgi?id=433930 Created attachment 327812 [details]
raspberry pi emerge info firefox 16.0.1
Created attachment 327814 [details]
Raspberry pi Build.log firefox 16.0.1
I was building Firefox 16.0.1 on a raspberry pi, and I cam across this bug. I have one newer version than shown here but the rest appears to be very similar. Its a 256M ARM device, I have a 6G swap file on an SSD drive. I use a crosscompiler, and the same ObjectImpl.cpp failed there as well. Both use GCC 4.5.4. Took many hours to build GCC on the Pi, but I will attempt to update that tonight if needed. Attached are the raspberry pi emerge info and build logs. (In reply to Stefan Sassenberg from comment #28) > gcc-4.6.3 works. I am successful with binutils 2.22.90, firefox-15.0.1 and a > 4 GB swapfile. |