diff options
author | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-12-10 19:35:12 +0000 |
---|---|---|
committer | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-12-10 19:35:12 +0000 |
commit | 9f96f97dcfacbed41ce1425072def3880f7d9a77 (patch) | |
tree | b19b43afd8af8a5b098424b7866a96be6f544d4a /sdk | |
parent | 9942970edd9be6aa4ccd908b94fa0d2c81c3f863 (diff) | |
download | toolchains-9f96f97dcfacbed41ce1425072def3880f7d9a77.tar.gz toolchains-9f96f97dcfacbed41ce1425072def3880f7d9a77.tar.bz2 |
fix compiling without interworking
Diffstat (limited to 'sdk')
-rw-r--r-- | sdk/Makefile | 10 | ||||
-rw-r--r-- | sdk/recipes/patches/spidermonkey/arm-unknown-riscos/MethodJIT.p | 66 | ||||
-rw-r--r-- | sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p | 17 |
3 files changed, 88 insertions, 5 deletions
diff --git a/sdk/Makefile b/sdk/Makefile index 7d56ca1..7866b84 100644 --- a/sdk/Makefile +++ b/sdk/Makefile @@ -81,7 +81,7 @@ LIBCURL_DISABLES := $(patsubst %,--disable-%,ftp file dict ldap telnet gopher tf # Target Specific setup ifeq ($(TARGET),arm-unknown-riscos) - SDK_ITEMS := $(addprefix $(BUILDSTEPS)/, $(COMMON_SDK_ITEMS) nspr.d spidermonkey.d) + SDK_ITEMS := $(addprefix $(BUILDSTEPS)/, $(COMMON_SDK_ITEMS) spidermonkey.d) EXTRAARGS_LIBCARES := --disable-shared EXTRAARGS_LIBCURL := --enable-nonblocking --enable-ares $(LIBCURL_DISABLES) endif @@ -467,7 +467,7 @@ $(SOURCEDIR)/expat-$(VERSION_LIBEXPAT).tar.gz: # nspr $(BUILDSTEPS)/nspr.d: $(BUILDSTEPS)/builddir.d $(BUILDSTEPS)/nspr-src.d - cd $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR)/mozilla/nsprpub && $(env) CROSS_COMPILE=1 CFLAGS=-D_PR_LOCAL_THREADS_ONLY ./configure --prefix=$(GCCSDK_INSTALL_ENV) --target=$(TARGET) --host=$(TARGET) --disable-shared --without-pthreads --with-cpu-arch=armv3 + cd $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR)/mozilla/nsprpub && $(env) CROSS_COMPILE=1 CFLAGS=-D_PR_LOCAL_THREADS_ONLY ./configure --prefix=$(GCCSDK_INSTALL_ENV) --target=$(TARGET) --host=$(TARGET) --disable-shared --without-pthreads --without-thumb --without-thumb-interwork --with-arch=armv3 cd $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR)/mozilla/nsprpub && $(env) make cd $(BUILDDIR)/nspr/nspr-$(VERSION_NSPR)/mozilla/nsprpub && $(env) make install touch $@ @@ -483,9 +483,9 @@ $(SOURCEDIR)/nspr-$(VERSION_NSPR).tar.gz: wget -q -O $@ https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$(VERSION_NSPR)/src/nspr-$(VERSION_NSPR).tar.gz -# spidermonkey (libmozjs) -$(BUILDSTEPS)/spidermonkey.d: $(BUILDSTEPS)/builddir.d $(BUILDSTEPS)/spidermonkey-src.d - cd $(BUILDDIR)/spidermonkey/js-$(VERSION_SPIDERMONKEY)/js/src && $(env) ./configure --prefix=$(GCCSDK_INSTALL_ENV) --target=$(TARGET) --disable-tracejit --disable-thumb2 --with-thumb=no --enable-static --with-system-nspr --with-nspr-prefix=$(GCCSDK_INSTALL_ENV) --disable-shared --disable-shared-js --with-cpu-arch=armv3 --disable-tests +# spidermonkey (libmozjs) --disable-methodjit +$(BUILDSTEPS)/spidermonkey.d: $(BUILDSTEPS)/builddir.d $(BUILDSTEPS)/nspr.d $(BUILDSTEPS)/spidermonkey-src.d + cd $(BUILDDIR)/spidermonkey/js-$(VERSION_SPIDERMONKEY)/js/src && $(env) ./configure --prefix=$(GCCSDK_INSTALL_ENV) --target=$(TARGET) --disable-tracejit --disable-thumb2 --without-thumb --enable-static --with-system-nspr --with-nspr-prefix=$(GCCSDK_INSTALL_ENV) --disable-shared --disable-shared-js --with-cpu-arch=armv3 --disable-tests cd $(BUILDDIR)/spidermonkey/js-$(VERSION_SPIDERMONKEY)/js/src && $(env) make cd $(BUILDDIR)/spidermonkey/js-$(VERSION_SPIDERMONKEY)/js/src && $(env) make install touch $@ diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/MethodJIT.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/MethodJIT.p new file mode 100644 index 0000000..9236477 --- /dev/null +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/MethodJIT.p @@ -0,0 +1,66 @@ +--- js/src/methodjit/MethodJIT.cpp 2012-12-10 19:03:08.000000000 +0000 ++++ js/src/methodjit/MethodJIT.cpp 2012-12-10 19:04:11.000000000 +0000 +@@ -433,7 +433,7 @@ + "ldr r1, [r11, #24]" "\n" /* fp->rval data */ + "ldr r2, [r11, #28]" "\n" /* fp->rval type */ + "ldr r11, [sp, #28]" "\n" /* load f.fp */ +- "bx lr" "\n" ++ "mov pc, lr" "\n" + ); + + asm volatile ( +@@ -487,12 +487,12 @@ + " mov r11, r1" "\n" + + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(SetVMFrameRegs) "\n" ++" bl " SYMBOL_STRING_VMFRAME(SetVMFrameRegs) "\n" + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(PushActiveVMFrame)"\n" ++" bl " SYMBOL_STRING_VMFRAME(PushActiveVMFrame)"\n" + + /* Call the compiled JavaScript function. */ +-" bx r4" "\n" ++" mov pc, r4" "\n" + ); + + asm volatile ( +@@ -505,7 +505,7 @@ + + /* Tidy up. */ + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" ++" bl " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" + + /* Skip past the parameters we pushed (such as cx and the like). */ + " add sp, sp, #(4*7 + 4*4)" "\n" +@@ -524,17 +524,17 @@ + " mov r0, sp" "\n" + + /* Call the utility function that sets up the internal throw routine. */ +-" blx " SYMBOL_STRING_RELOC(js_InternalThrow) "\n" ++" bl " SYMBOL_STRING_RELOC(js_InternalThrow) "\n" + + /* If js_InternalThrow found a scripted handler, jump to it. Otherwise, tidy + * up and return. */ + " cmp r0, #0" "\n" + " it ne" "\n" +-" bxne r0" "\n" ++" movne pc, r0" "\n" + + /* Tidy up, then return '0' to represent an unhandled exception. */ + " mov r0, sp" "\n" +-" blx " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" ++" bl " SYMBOL_STRING_VMFRAME(PopActiveVMFrame) "\n" + " add sp, sp, #(4*7 + 4*4)" "\n" + " mov r0, #0" "\n" + " pop {r4-r11,pc}" "\n" +@@ -551,7 +551,7 @@ + * The arguments are identical to those for js_* except that the target function should be in + * 'ip'. */ + " push {ip,lr}" "\n" +-" blx ip" "\n" ++" bl ip" "\n" + " pop {ip,pc}" "\n" + ); + diff --git a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p index 0dd914b..fcd012a 100644 --- a/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p +++ b/sdk/recipes/patches/spidermonkey/arm-unknown-riscos/configure.p @@ -11,3 +11,20 @@ *-android*) cat >> confdefs.h <<\EOF #define NO_PW_GECOS 1 +@@ -13341,6 +13341,16 @@ + { echo "configure: error: --with-cpu-arch=armv7 is not supported for non-ARM CPU architectures" 1>&2; exit 1; } + ;; + esac ++elif test "$MOZ_ARM_ARCH" = "armv3"; then ++ case "$target_cpu" in ++ arm*) ++ if test "$GNU_CC"; then ++ CFLAGS="$CFLAGS -march=armv3 -mno-thumb-interwork -msoft-float" ++ CXXFLAGS="$CXXFLAGS -march=armv3 -mno-thumb-interwork -msoft-float" ++ ASFLAGS="$ASFLAGS -march=armv3 -mno-thumb-interwork -msoft-float" ++ fi ++ ;; ++ esac + else + case "$target_cpu" in + arm*) |