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
}}}
|