Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 420471 - dev-lang/spidermonkey-1.8.5 fails to build on armv5
Summary: dev-lang/spidermonkey-1.8.5 fails to build on armv5
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: ARM Linux
: Normal normal (vote)
Assignee: Mozilla Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 436670 439122
  Show dependency tree
 
Reported: 2012-06-10 10:41 UTC by nebojsa
Modified: 2012-11-17 10:45 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
remove forcing of armv7 arch on all arm targets from configure.in (file_420471.txt,630 bytes, text/plain)
2012-06-10 10:46 UTC, nebojsa
Details
build.log (build.log,19.07 KB, text/plain)
2012-06-10 22:04 UTC, nebojsa
Details
emerge --info (file_420471.txt,5.00 KB, text/plain)
2012-06-10 22:06 UTC, nebojsa
Details
backport of ARM portion of configure.in from 1.8.7 (spidermonkey-1.8.5-arm_backport_187config.patch,6.99 KB, patch)
2012-11-01 21:40 UTC, Ian Stakenvicius (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description nebojsa 2012-06-10 10:41:44 UTC
configure.in has hard coded target architecture for arm to armv7, overriding user supplied CFLAGS.

Reproducible: Always

Steps to Reproduce:
1. emerge =dev-lang/spidermonkey-1.8.5-r1 on armv5 (sheeva plug)
2.
3.
Actual Results:  
armv5tel-softfloat-linux-gnueabi-gcc -o nsinstall  -Wall -W -Wno-unused -Wpointer-arith -W -pedantic -Wno-long-long -O2 -pipe -march=armv5te -fomit-frame-pointer -fno-strict-aliasing -pthread -march=armv7-a -marm -pipe  -DNDEBUG -DTRIMMED -O3 -DXP_UNIX -O3  -DUNICODE -D_UNICODE -lpthread -Wl,-O1 -Wl,--as-needed  -Wl,-rpath-link,/bin -Wl,-rpath-link,/usr/lib  host_nsinstall.o host_pathsub.o                                                                                                                                        
make[2]: Leaving directory `/var/tmp/portage/dev-lang/spidermonkey-1.8.5-r1/work/js-1.8.5/js/src/config'                                                                        
make[2]: Entering directory `/var/tmp/portage/dev-lang/spidermonkey-1.8.5-r1/work/js-1.8.5/js/src/config'                                                                       
rm -f nfspwd                                                                                                                                                                    
cp nfspwd.pl nfspwd                                                                                                                                                             
./host_jskwgen /var/tmp/portage/dev-lang/spidermonkey-1.8.5-r1/work/js-1.8.5/js/src/jsautokw.h                                                                                  
chmod +x nfspwd                                                                                                                                                                 
make[1]: *** [/var/tmp/portage/dev-lang/spidermonkey-1.8.5-r1/work/js-1.8.5/js/src/jsautokw.h] Illegal instruction                                                              
make[1]: *** Deleting file `/var/tmp/portage/dev-lang/spidermonkey-1.8.5-r1/work/js-1.8.5/js/src/jsautokw.h'                                                                    
make[1]: *** Waiting for unfinished jobs....                                                                                                                                    
/var/tmp/portage/dev-lang/spidermonkey-1.8.5-r1/work/js-1.8.5/js/src/config/nsinstall -R nsinstall ../dist/bin                                                                  
make[2]: *** [export] Illegal instruction                                                                                                                                       
make[2]: Leaving directory `/var/tmp/portage/dev-lang/spidermonkey-1.8.5-r1/work/js-1.8.5/js/src/config'                                                                        
make[1]: *** [export] Error 2                                                                                                                                                   
make[1]: Leaving directory `/var/tmp/portage/dev-lang/spidermonkey-1.8.5-r1/work/js-1.8.5/js/src'                                                                               
make: *** [default] Error 2                                                                                                                                                     
emake failed                                                                                                                                                                    
 * ERROR: dev-lang/spidermonkey-1.8.5-r1 failed (compile
Comment 1 nebojsa 2012-06-10 10:46:10 UTC
Created attachment 314861 [details]
remove forcing of armv7 arch on all arm targets from configure.in

After this patch compile goes through, even all but one js-api test passes (testConservativeGC crashes)
Comment 2 Jory A. Pratt gentoo-dev 2012-06-10 21:12:35 UTC
provide the full build.log
Comment 3 nebojsa 2012-06-10 22:04:53 UTC
Created attachment 314901 [details]
build.log
Comment 4 nebojsa 2012-06-10 22:06:15 UTC
Created attachment 314903 [details]
emerge --info
Comment 5 Jory A. Pratt gentoo-dev 2012-10-21 23:26:31 UTC
get me a backtrace, the slight difference between the two should not be causing a build failure, they are not seeing a failure on any other distro.
Comment 6 Ian Stakenvicius (RETIRED) gentoo-dev 2012-11-01 21:40:24 UTC
Created attachment 328004 [details, diff]
backport of ARM portion of configure.in from 1.8.7

The first patch doesn't work -- it causes failures on armv7's.

I have backported the ARM configure stuff from spidermonkey-1.8.7 to spidermonkey-1.8.5 with this patch; after some testing which steev has promised to do for me I will commit it to the tree.
Comment 7 Ian Stakenvicius (RETIRED) gentoo-dev 2012-11-02 19:57:06 UTC
Right, so that didn't work either, but I distilled all of the configure stuff down to the bare necessities -- all that is needed for ARM by any of the JS code, is whether or not THUMB2 support exists.  I scraped a bit of code from WINE that works successfully for this and replaced all of the existing ARM-related overrides with that.

steev was nice enough to test for me on three or four different ARMs, all succeeded.
Comment 8 Samuli Suominen (RETIRED) gentoo-dev 2012-11-17 10:45:21 UTC
(In reply to comment #7)
> Right, so that didn't work either, but I distilled all of the configure
> stuff down to the bare necessities -- all that is needed for ARM by any of
> the JS code, is whether or not THUMB2 support exists.  I scraped a bit of
> code from WINE that works successfully for this and replaced all of the
> existing ARM-related overrides with that.
> 
> steev was nice enough to test for me on three or four different ARMs, all
> succeeded.

one more success from here for 1.8.5-r2 which I've just stabilised :)