Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for 
change notification.

The "AndroidOtpPatch" page has been changed by MattAdams.
http://wiki.apache.org/couchdb/AndroidOtpPatch?action=diff&rev1=2&rev2=3

--------------------------------------------------

  For use with [[Installing_on_Android]]
  
  {{{
- (to be updated)
+ diff --git a/erts/emulator/Makefile.in b/erts/emulator/Makefile.in
+ index fb8d718..4ed25c9 100644
+ --- a/erts/emulator/Makefile.in
+ +++ b/erts/emulator/Makefile.in
+ @@ -352,6 +352,7 @@ EMULATOR_EXECUTABLE = beam$(TF_MARKER).dll
+  else
+  ifeq ($(CC), agcc)
+  EMULATOR_EXECUTABLE = libbeam$(TF_MARKER).so
+ +EMULATOR_EXECUTABLE_REG = beam$(TF_MARKER)
+  else
+  EMULATOR_EXECUTABLE = beam$(TF_MARKER)
+  endif
+ @@ -374,7 +375,11 @@ ifeq ($(FLAVOR)-@ERTS_BUILD_SMP_EMU@,smp-no)
+  all:
+       @echo '*** Omitted build of emulator with smp support'
+  else
+ +ifeq ($(CC), agcc)
+ +all: generate erts_lib zlib pcre $(BINDIR)/$(EMULATOR_EXECUTABLE) 
$(BINDIR)/$(EMULATOR_EXECUTABLE_REG) $(UNIX_ONLY_BUILDS)
+ +else
+  all: generate erts_lib zlib pcre $(BINDIR)/$(EMULATOR_EXECUTABLE) 
$(UNIX_ONLY_BUILDS)
+ +endif
+  ifeq ($(OMIT_OMIT_FP),yes)
+       @echo '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *'
+       @echo '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *'
+ @@ -453,6 +458,7 @@ release_spec: all
+       $(INSTALL_DATA) $(RELEASE_INCLUDES) $(RELEASE_PATH)/usr/include
+       $(INSTALL_DATA) $(RELEASE_INCLUDES) $(RELSYSDIR)/include
+       $(INSTALL_PROGRAM) $(BINDIR)/$(EMULATOR_EXECUTABLE) $(RELSYSDIR)/bin
+ +     $(INSTALL_PROGRAM) $(BINDIR)/$(EMULATOR_EXECUTABLE_REG) $(RELSYSDIR)/bin
+  ifeq ($(ERLANG_OSTYPE), unix)
+       $(INSTALL_PROGRAM) $(BINDIR)/$(CS_EXECUTABLE) $(RELSYSDIR)/bin
+  endif
+ @@ -1013,6 +1019,13 @@ ifeq ($(CC), agcc)
+  $(BINDIR)/$(EMULATOR_EXECUTABLE): $(INIT_OBJS) $(OBJS) $(DEPLIBS)
+       $(PURIFY) $(LD) -o $(BINDIR)/$(EMULATOR_EXECUTABLE) \
+       $(HIPEBEAMLDFLAGS) $(LDFLAGS) $(DEXPORT) $(INIT_OBJS) $(OBJS) $(LIBS) 
-shared
+ +
+ +$(OBJDIR)/beam.o:
+ +     $(CC) $(CFLAGS) $(INCLUDES) -c beam/beam.c -o $(OBJDIR)/beam.o
+ +
+ +$(BINDIR)/$(EMULATOR_EXECUTABLE_REG): $(OBJDIR)/beam.o
+ +     $(PURIFY) $(LD) -o $(BINDIR)/$(EMULATOR_EXECUTABLE_REG) \
+ +     $(HIPEBEAMLDFLAGS) $(LDFLAGS) $(DEXPORT) $(OBJDIR)/beam.o $(LIBS) 
-L$(BINDIR) -lbeam
+  else
+  $(BINDIR)/$(EMULATOR_EXECUTABLE): $(INIT_OBJS) $(OBJS) $(DEPLIBS)
+       $(PURIFY) $(LD) -o $(BINDIR)/$(EMULATOR_EXECUTABLE) \
+ diff --git a/erts/emulator/sys/unix/erl_child_setup.c 
b/erts/emulator/sys/unix/erl_child_setup.c
+ index 7c6e4a2..c1a1549 100644
+ --- a/erts/emulator/sys/unix/erl_child_setup.c
+ +++ b/erts/emulator/sys/unix/erl_child_setup.c
+ @@ -116,7 +116,11 @@ main(int argc, char *argv[])
+           execv(argv[CS_ARGV_NO_OF_ARGS],&(argv[CS_ARGV_NO_OF_ARGS + 1]));
+       }
+      } else {
+ +#ifdef ANDROID_ARM
+ +     execl("/system/bin/sh", "sh", "-c", argv[CS_ARGV_CMD_IX], (char *) 
NULL);
+ +#else
+       execl("/bin/sh", "sh", "-c", argv[CS_ARGV_CMD_IX], (char *) NULL);
+ +#endif
+      }
+      return 1;
+  }
+ diff --git a/erts/emulator/sys/unix/sys.c b/erts/emulator/sys/unix/sys.c
+ index 31ab5d0..9a260a2 100644
+ --- a/erts/emulator/sys/unix/sys.c
+ +++ b/erts/emulator/sys/unix/sys.c
+ @@ -1539,7 +1539,11 @@ static ErlDrvData spawn_start(ErlDrvPort port_num, 
char* name, SysDriverOpts* op
+                   }
+               }
+           } else {
+ +#ifdef ANDROID_ARM
+ +             execle("/system/bin/sh", "sh", "-c", cmd_line, (char *) NULL, 
new_environ);
+ +#else
+               execle("/bin/sh", "sh", "-c", cmd_line, (char *) NULL, 
new_environ);
+ +#endif
+           }
+       child_error:
+           _exit(1);
+ @@ -1660,7 +1664,12 @@ static ErlDrvData spawn_start(ErlDrvPort port_num, 
char* name, SysDriverOpts* op
+       fcntl(i, F_SETFD, 1);
+  
+      qnx_spawn_options.flags = _SPAWN_SETSID;
+ +#ifdef ANDROID_ARM
+ +    /* Are we really in QNX?  Then we don't need this special case here... */
+ +    if ((pid = spawnl(P_NOWAIT, "/system/bin/sh", "/system/bin/sh", "-c", 
cmd_line, 
+ +#else
+      if ((pid = spawnl(P_NOWAIT, "/bin/sh", "/bin/sh", "-c", cmd_line, 
+ +#endif
+                        (char *) 0)) < 0) {
+       erts_free(ERTS_ALC_T_TMP, (void *) cmd_line);
+          reset_qnx_spawn();
+ diff --git a/lib/crypto/c_src/Makefile.in b/lib/crypto/c_src/Makefile.in
+ index 0b39808..5d9658e 100644
+ --- a/lib/crypto/c_src/Makefile.in
+ +++ b/lib/crypto/c_src/Makefile.in
+ @@ -108,7 +108,7 @@ $(OBJDIR)/%.o: %.c
+  
+  $(LIBDIR)/crypto_drv.so: $(OBJS)
+       $(INSTALL_DIR) $(LIBDIR) 
+ -     $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(CRYPTO_LINK_LIB) $(LIBS) -lbeam
+ +     $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS) $(CRYPTO_LINK_LIB) $(LIBS) -lbeam 
-shared
+  
+  $(LIBDIR)/crypto_drv.dll: $(OBJS)
+       $(INSTALL_DIR) $(LIBDIR)
+ diff --git a/otp_build b/otp_build
+ index ad9d38e..b875b38 100755
+ --- a/otp_build
+ +++ b/otp_build
+ @@ -284,7 +284,7 @@ do_autoconf ()
+           export WANT_AUTOCONF_VER
+       fi
+       exp_ac_vsn=$EXPECTED_AUTOCONF_VERSION
+ -     ac_vsn_blob=`autoconf --version`
+ +     ac_vsn_blob=`autoconf2.59 --version`
+       ac_vsn=`echo x$ac_vsn_blob | sed "s|[^0-9]*\([0-9][^ \t\n]*\).*|\1|"`
+       case "$ac_vsn" in
+           $exp_ac_vsn)
+ @@ -327,11 +327,11 @@ do_autoconf ()
+               rm -f "$d"/autom4te.cache/*
+           }
+           echo "=== running autoconf in $d"
+ -         ( cd "$d" && autoconf ) || exit 1
+ +         ( cd "$d" && autoconf2.59 ) || exit 1
+           chdr=`cat "$file" | sed -n "s|.*\(AC_CONFIG_HEADER\).*|\1|p"`
+           [ "$chdr" = "AC_CONFIG_HEADER" ] || continue
+           echo "=== running autoheader in $d"
+ -         ( cd "$d" && autoheader ) || exit 1
+ +         ( cd "$d" && autoheader2.59 ) || exit 1
+       done
+  
+       restore_vars OVERRIDE_TARGET TARGET
  }}}
  

Reply via email to