File js-1.7.0-va_copy.patch of Package js
diff -ruN js-orig/src/config/Linux_All.mk js/src/config/Linux_All.mk --- js-orig/src/config/Linux_All.mk 2005-05-10 21:53:44.000000000 +0200 +++ js/src/config/Linux_All.mk 2011-04-24 01:00:59.000000000 +0200 @@ -47,7 +47,7 @@ OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R RANLIB = echo -MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS) +MKSHLIB = $(CC) -shared -lc -Wl,-soname,libjs.so.1 $(XMKSHLIBOPTS) #.c.o: # $(CC) -c -MD $*.d $(CFLAGS) $< @@ -91,8 +91,17 @@ JS_EDITLINE = 1 ifeq ($(CPU_ARCH),x86_64) -# Use VA_COPY() standard macro on x86-64 -# FIXME: better use it everywhere +# Use va_copy() standard macro on x86-64 +OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy +endif + +ifeq ($(CPU_ARCH),ppc) +# Use va_copy() standard macro on ppc too +OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy +endif + +ifeq ($(CPU_ARCH),s390x) +# Use va_copy() standard macro on s390x too OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy endif diff -ruN js-orig/src/jsprf.c js/src/jsprf.c --- js-orig/src/jsprf.c 2006-07-07 04:12:02.000000000 +0200 +++ js/src/jsprf.c 2011-04-24 00:57:26.000000000 +0200 @@ -57,7 +57,7 @@ ** and requires array notation. */ #ifdef HAVE_VA_COPY -#define VARARGS_ASSIGN(foo, bar) VA_COPY(foo,bar) +#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