Skip to content

Commit bde7ada

Browse files
committed
BridJ: more predictive dyncall diffs (workaround for svn random ordering issue)
1 parent 364ac48 commit bde7ada

3 files changed

Lines changed: 52 additions & 17 deletions

File tree

libraries/BridJ/src/main/cpp/bridj/Make.sh

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ LANG=C
66
SRC_HOME=${SRC_HOME:-~/src}
77
BIN_HOME=${BIN_HOME:-~/bin}
88

9+
cd $(dirname $0)
10+
BRIDJ_CPP_DIR=$PWD
11+
SCRIPTS_DIR=$PWD/../../../../../scripts
12+
913
#BUILD_CONFIG=debug sh MakeAll.sh clean
1014
export MAKE_CMD=make
1115
if [[ "`which gmake`" != "" ]] ; then
@@ -36,8 +40,13 @@ function fail() {
3640

3741
#echo $DYNCALL_HOME/dyncall/$BUILD_DIR
3842

43+
3944
#svn diff $SRC_HOME/dyncall/dyncall > dyncall.diff
40-
svn diff $DYNCALL_HOME/dyncall | sed "s/${DYNCALL_HOME//\//\\/}\///" > dyncall.diff
45+
46+
cd $DYNCALL_HOME
47+
[[ -f $SCRIPTS_DIR/svnDiffSorted ]] || fail "no svn diff script"
48+
$SCRIPTS_DIR/svnDiffSorted dyncall | sed "s/${DYNCALL_HOME//\//\\/}\///" > $BRIDJ_CPP_DIR/dyncall.diff
49+
#svn diff $DYNCALL_HOME/dyncall | sed "s/${DYNCALL_HOME//\//\\/}\///" > dyncall.diff
4150
#svn diff $SRC_HOME/dyncall/dyncall | sed "s/${HOME//\//\\/}\/src\/dyncall\///" | sed -E 's/^(---|\+\+\+)(.*)\(([^)]+)\)/\1\2/' > dyncall.diff
4251

4352
echo "# Configuring dyncall"

libraries/BridJ/src/main/cpp/bridj/dyncall.diff

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
1+
Index: dyncall/buildsys/gmake/os/darwin.gmake
2+
===================================================================
3+
--- dyncall/buildsys/gmake/os/darwin.gmake (revision 1389)
4+
+++ dyncall/buildsys/gmake/os/darwin.gmake (working copy)
5+
@@ -23,7 +23,8 @@
6+
LIBTOOL_STATIC=libtool -static -o $@ $^
7+
8+
ifdef BUILD_ARCH_universal
9+
-TARGET_ARCH?=-arch i386 -arch ppc -arch x86_64
10+
+#TARGET_ARCH?=-arch i386 -arch ppc -arch x86_64
11+
+TARGET_ARCH?=-arch x86_64 -arch i386
12+
endif
13+
14+
ifdef BUILD_ARCH_ppc32
115
Index: dyncall/buildsys/gmake/tool/gcc.gmake
216
===================================================================
3-
--- dyncall/buildsys/gmake/tool/gcc.gmake (revision 1385)
17+
--- dyncall/buildsys/gmake/tool/gcc.gmake (revision 1389)
418
+++ dyncall/buildsys/gmake/tool/gcc.gmake (working copy)
519
@@ -86,6 +86,13 @@
620

@@ -16,23 +30,23 @@ Index: dyncall/buildsys/gmake/tool/gcc.gmake
1630
# --- Compile C++ -------------------------------------------------------------
1731

1832
$(BUILD_DIR)/%.o: %.cpp
19-
Index: dyncall/buildsys/gmake/os/darwin.gmake
33+
Index: dyncall/dynload/dynload_syms_elf.c
2034
===================================================================
21-
--- dyncall/buildsys/gmake/os/darwin.gmake (revision 1385)
22-
+++ dyncall/buildsys/gmake/os/darwin.gmake (working copy)
23-
@@ -23,7 +23,8 @@
24-
LIBTOOL_STATIC=libtool -static -o $@ $^
25-
26-
ifdef BUILD_ARCH_universal
27-
-TARGET_ARCH?=-arch i386 -arch ppc -arch x86_64
28-
+#TARGET_ARCH?=-arch i386 -arch ppc -arch x86_64
29-
+TARGET_ARCH?=-arch x86_64 -arch i386
30-
endif
35+
--- dyncall/dynload/dynload_syms_elf.c (revision 1389)
36+
+++ dyncall/dynload/dynload_syms_elf.c (working copy)
37+
@@ -54,7 +54,8 @@
3138

32-
ifdef BUILD_ARCH_ppc32
39+
#include <assert.h>
40+
#include <fcntl.h>
41+
-#include <dlfcn.h>
42+
+#include "/Users/ochafik/bin/android-ndk-r8d/platforms/android-14/arch-x86/usr/include/dlfcn.h"
43+
+//#include <dlfcn.h>
44+
#include <stdio.h>
45+
#include <string.h>
46+
#include <sys/stat.h>
3347
Index: dyncall/dynload/dynload_syms_mach-o.c
3448
===================================================================
35-
--- dyncall/dynload/dynload_syms_mach-o.c (revision 1385)
49+
--- dyncall/dynload/dynload_syms_mach-o.c (revision 1389)
3650
+++ dyncall/dynload/dynload_syms_mach-o.c (working copy)
3751
@@ -28,6 +28,7 @@
3852
dynamic symbol resolver for Mach-O
@@ -334,7 +348,7 @@ Index: dyncall/dynload/dynload_syms_mach-o.c
334348
return NULL;
335349
Index: dyncall/dynload/dynload_unix.c
336350
===================================================================
337-
--- dyncall/dynload/dynload_unix.c (revision 1385)
351+
--- dyncall/dynload/dynload_unix.c (revision 1389)
338352
+++ dyncall/dynload/dynload_unix.c (working copy)
339353
@@ -40,7 +40,7 @@
340354

@@ -347,7 +361,7 @@ Index: dyncall/dynload/dynload_unix.c
347361

348362
Index: dyncall/dynload/dynload_windows.c
349363
===================================================================
350-
--- dyncall/dynload/dynload_windows.c (revision 1385)
364+
--- dyncall/dynload/dynload_windows.c (revision 1389)
351365
+++ dyncall/dynload/dynload_windows.c (working copy)
352366
@@ -40,7 +40,9 @@
353367
DLLib* dlLoadLibrary(const char* libPath)

libraries/scripts/svnDiffSorted

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
# svn has recently started outputting diffs in a random order:
4+
# http://comments.gmane.org/gmane.comp.version-control.subversion.user/109502
5+
6+
FILES=`svn status $@ | awk '{ print $2 }' | sort`
7+
8+
for FILE in $FILES ; do
9+
if [[ -f $FILE ]]; then
10+
svn diff $FILE
11+
fi
12+
done

0 commit comments

Comments
 (0)