Created
December 28, 2011 23:08
-
-
Save digitalpardoe/1530302 to your computer and use it in GitHub Desktop.
Patches SpiderMonkey 1.7.0 to ensure compilation on OS X & to enable 'make install'.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- src/jsprf.c.orig 2009-07-26 12:32:01.000000000 -0700 | |
+++ src/jsprf.c 2009-07-26 12:33:12.000000000 -0700 | |
@@ -58,6 +58,8 @@ | |
*/ | |
#ifdef HAVE_VA_COPY | |
#define VARARGS_ASSIGN(foo, bar) VA_COPY(foo,bar) | |
+#elif defined(va_copy) | |
+#define VARARGS_ASSIGN(foo, bar) va_copy(foo,bar) | |
#elif defined(HAVE_VA_LIST_AS_ARRAY) | |
#define VARARGS_ASSIGN(foo, bar) foo[0] = bar[0] | |
#else | |
--- src/Makefile.ref.org | |
+++ src/Makefile.ref | |
@@ -127,7 +127,7 @@ endif | |
ifdef JS_READLINE | |
# For those platforms with the readline library installed. | |
DEFINES += -DEDITLINE | |
-PROG_LIBS += -lreadline -ltermcap | |
+PROG_LIBS += -lreadline | |
else | |
ifdef JS_EDITLINE | |
# Use the editline library, built locally. | |
@@ -370,3 +370,18 @@ TARFILES = files `cat files` | |
SUFFIXES: .i | |
%.i: %.c | |
$(CC) -C -E $(CFLAGS) $< > $*.i | |
+ | |
+DESTDIR := | |
+PREFIX := __PREFIX__ | |
+BINDIR := $(PREFIX)/bin | |
+MY_LIBDIR := $(PREFIX)/$(LIBDIR) | |
+INCLUDEDIR := $(PREFIX)/include/js | |
+USER := __USER__ | |
+GROUP := __GROUP__ | |
+INSTALL := install -g $(GROUP) -o $(USER) | |
+install: | |
+ $(INSTALL) -m 755 -d $(DESTDIR)$(INCLUDEDIR) $(DESTDIR)$(MY_LIBDIR) $(DESTDIR)$(BINDIR) | |
+ $(INSTALL) -m 755 $(SHARED_LIBRARY) $(DESTDIR)$(MY_LIBDIR) | |
+ $(INSTALL) -m 644 $(LIBRARY) $(DESTDIR)$(MY_LIBDIR) | |
+ $(INSTALL) -m 755 $(OBJDIR)/js $(OBJDIR)/jscpucfg $(DESTDIR)$(BINDIR) | |
+ $(INSTALL) -m 644 $(HFILES) $(DESTDIR)$(INCLUDEDIR) | |
--- src/config/Linux_All.mk.org | |
+++ src/config/Linux_All.mk | |
@@ -41,37 +41,15 @@ | |
# Config for all versions of Linux | |
# | |
-CC = gcc | |
-CCC = g++ | |
CFLAGS += -Wall -Wno-format | |
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R | |
RANLIB = echo | |
-MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS) | |
+MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS) -soname $(notdir $@) | |
#.c.o: | |
# $(CC) -c -MD $*.d $(CFLAGS) $< | |
-CPU_ARCH = $(shell uname -m) | |
-# don't filter in x86-64 architecture | |
-ifneq (x86_64,$(CPU_ARCH)) | |
-ifeq (86,$(findstring 86,$(CPU_ARCH))) | |
-CPU_ARCH = x86 | |
-OS_CFLAGS+= -DX86_LINUX | |
- | |
-ifeq (gcc, $(CC)) | |
-# if using gcc on x86, check version for opt bug | |
-# (http://bugzilla.mozilla.org/show_bug.cgi?id=24892) | |
-GCC_VERSION := $(shell gcc -v 2>&1 | grep version | awk '{ print $$3 }') | |
-GCC_LIST:=$(sort 2.91.66 $(GCC_VERSION) ) | |
- | |
-ifeq (2.91.66, $(firstword $(GCC_LIST))) | |
-CFLAGS+= -DGCC_OPT_BUG | |
-endif | |
-endif | |
-endif | |
-endif | |
- | |
GFX_ARCH = x | |
OS_LIBS = -lm -lc | |
@@ -88,16 +66,6 @@ | |
endif | |
# Use the editline library to provide line-editing support. | |
-JS_EDITLINE = 1 | |
+JS_READLINE = 1 | |
-ifeq ($(CPU_ARCH),x86_64) | |
-# Use VA_COPY() standard macro on x86-64 | |
-# FIXME: better use it everywhere | |
OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy | |
-endif | |
- | |
-ifeq ($(CPU_ARCH),x86_64) | |
-# We need PIC code for shared libraries | |
-# FIXME: better patch rules.mk & fdlibm/Makefile* | |
-OS_CFLAGS += -DPIC -fPIC | |
-endif | |
--- src/rules.mk.org | |
+++ src/rules.mk | |
@@ -82,6 +82,10 @@ $(OBJDIR)/%.o: %.c | |
@$(MAKE_OBJDIR) | |
$(CC) -o $@ -c $(CFLAGS) $*.c | |
+$(OBJDIR)/%.lo: %.c | |
+ @$(MAKE_OBJDIR) | |
+ $(CC) -o $@ -c $(CFLAGS) $*.c -fPIC | |
+ | |
$(OBJDIR)/%.o: %.s | |
@$(MAKE_OBJDIR) | |
$(AS) -o $@ $(ASFLAGS) $*.s | |
@@ -111,11 +115,12 @@ $(SHARED_LIBRARY): $(LIB_OBJS) | |
/implib:"$(OBJDIR)/$(@F:.dll=.lib)" $^ | |
else | |
$(LIBRARY): $(LIB_OBJS) | |
- $(AR) rv $@ $? | |
+ $(AR) cr $@ $? | |
$(RANLIB) $@ | |
-$(SHARED_LIBRARY): $(LIB_OBJS) | |
- $(MKSHLIB) -o $@ $(LIB_OBJS) $(LDFLAGS) $(OTHER_LIBS) | |
+SHARED_LIB_OBJS := $(LIB_OBJS:.o=.lo) | |
+$(SHARED_LIBRARY): $(SHARED_LIB_OBJS) | |
+ $(MKSHLIB) -o $@ $(SHARED_LIB_OBJS) $(LDFLAGS) $(OTHER_LIBS) -install_name $(PREFIX)/lib/$(notdir $@) | |
endif | |
endif | |
--- src/fdlibm/Makefile.ref.org | |
+++ src/fdlibm/Makefile.ref | |
@@ -151,7 +151,7 @@ | |
$(OBJDIR)/%.o: %.c | |
@$(MAKE_OBJDIR) | |
- $(CC) -o $@ -c $(CFLAGS) $*.c | |
+ $(CC) -o $@ -c $(CFLAGS) $*.c -fPIC | |
$(OBJDIR)/%.o: %.s | |
@$(MAKE_OBJDIR) | |
--- src/config.mk.org | |
+++ src/config.mk | |
@@ -112,6 +112,8 @@ | |
CP = cp | |
endif | |
+BUILD_OPT := 1 | |
+ | |
ifdef BUILD_OPT | |
OPTIMIZER = -O | |
DEFINES += -UDEBUG -DNDEBUG -UDEBUG_$(shell whoami) | |
--- src/Makefile.ref.org 2006-08-21 11:58:45.000000000 -0700 | |
+++ src/Makefile.ref 2007-01-08 14:05:14.000000000 -0800 | |
@@ -185,6 +185,8 @@ | |
jsstr.h \ | |
jsxdrapi.h \ | |
jsxml.h \ | |
+ jsutil.h \ | |
+ jsprf.h \ | |
$(NULL) | |
API_HFILES = \ | |
--- src/config/Darwin.mk.orig 2008-03-27 00:54:53.000000000 +0900 | |
+++ src/config/Darwin.mk 2008-03-27 00:57:23.000000000 +0900 | |
@@ -43,13 +43,13 @@ | |
# Just ripped from Linux config | |
# | |
-CC = cc | |
+CC = gcc | |
CCC = g++ | |
-CFLAGS += -Wall -Wno-format | |
-OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DDARWIN | |
+CFLAGS += -Wall -Wno-format -no-cpp-precomp -fno-common -pipe | |
+OS_CFLAGS = -DJS_THREADSAFE -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DDARWIN -DJS_C_STRINGS_ARE_UTF8 | |
RANLIB = ranlib | |
-MKSHLIB = $(CC) -dynamiclib $(XMKSHLIBOPTS) -framework System | |
+MKSHLIB = $(CC) -framework System -dynamiclib $(XMKSHLIBOPTS) -lm -lplds4 -lplc4 -lnspr4 $(LDFLAGS) | |
SO_SUFFIX = dylib | |
@@ -59,7 +59,6 @@ | |
CPU_ARCH = $(shell uname -m) | |
ifeq (86,$(findstring 86,$(CPU_ARCH))) | |
CPU_ARCH = x86 | |
-OS_CFLAGS+= -DX86_LINUX | |
endif | |
GFX_ARCH = x | |
@@ -67,14 +66,6 @@ | |
ASFLAGS += -x assembler-with-cpp | |
-ifeq ($(CPU_ARCH),alpha) | |
- | |
-# Ask the C compiler on alpha linux to let us work with denormalized | |
-# double values, which are required by the ECMA spec. | |
- | |
-OS_CFLAGS += -mieee | |
-endif | |
- | |
# Use the editline library to provide line-editing support. | |
JS_EDITLINE = 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment