aboutsummaryrefslogtreecommitdiffstats
path: root/HOWTO
diff options
context:
space:
mode:
Diffstat (limited to 'HOWTO')
-rw-r--r--HOWTO/DTRACE.md6
-rw-r--r--HOWTO/INSTALL-ANDROID.md52
-rw-r--r--HOWTO/INSTALL-CROSS.md37
-rw-r--r--HOWTO/INSTALL.md50
-rw-r--r--HOWTO/MARKDOWN.md7
5 files changed, 113 insertions, 39 deletions
diff --git a/HOWTO/DTRACE.md b/HOWTO/DTRACE.md
index 8fa2fd9d50..90f4addefd 100644
--- a/HOWTO/DTRACE.md
+++ b/HOWTO/DTRACE.md
@@ -27,12 +27,10 @@ Goals
Supported platforms
-------------------
-* OS X 10.6.x / Snow Leopard. It should also work for 10.7 / Lion,
- but I haven't personally tested it.
+* OS X 10.6.x / Snow Leopard, OS X 10.7.x / Lion and probably newer versions.
* Solaris 10. I have done limited testing on Solaris 11 and
OpenIndiana release 151a, and both appear to work.
-* FreeBSD 9.0, though please see the "FreeBSD 9.0 Release Notes"
- section below!
+* FreeBSD 9.0 and 10.0.
* Linux via SystemTap compatibility. Please see
[$ERL_TOP/HOWTO/SYSTEMTAP.md][] for more details.
diff --git a/HOWTO/INSTALL-ANDROID.md b/HOWTO/INSTALL-ANDROID.md
new file mode 100644
index 0000000000..31698d4ce3
--- /dev/null
+++ b/HOWTO/INSTALL-ANDROID.md
@@ -0,0 +1,52 @@
+Cross Compiling Erlang/OTP - ANDROID
+====================================
+
+Introduction
+------------
+
+This document describes how to cross compile Erlang OTP to Android/Rasberry Pi platforms.
+
+### Download and Install Android NDK ###
+
+https://developer.android.com/tools/sdk/ndk/index.html
+
+### Define System Variables ###
+
+export NDK_ROOT=/usr/local/android
+export NDK_PLAT=android-9
+export PATH=$NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin:$PATH
+
+### Configure OTP ###
+
+./otp_build configure \
+ --xcomp-conf=./xcomp/erl-xcomp-arm-android.conf \
+ --without-ssl
+
+### Compile OTP ###
+
+make noboot [-j4]
+
+### Make Release ###
+
+./otp_build release -a /usr/local/otp_R16B03_arm
+
+### Target Deployment ###
+
+Make a tarball out of /usr/local/otp_R16B03_arm and copy it to target device
+(e.g. Raspberry Pi). Extract it and install
+
+./Install /usr/local/otp_R16B03_arm
+
+Android SDK (adb tool) is used to deploy OTP/Erlang to target device for
+evaluation purpose only.
+
+adb push /usr/local/otp_R16B03_arm /mnt/sdcard/otp_R16B03_arm
+adb shell
+
+### Known Issues ###
+
+ * native inet:gethostbyname/1 return {error, nxdomain} on Raspberry PI. Use dns resolver to by-pass the issue (see http://www.erlang.org/doc/apps/erts/inet_cfg.html)
+
+### References ###
+
+ The port derives some solutions from https://code.google.com/p/erlang4android/
diff --git a/HOWTO/INSTALL-CROSS.md b/HOWTO/INSTALL-CROSS.md
index 03ea4c6e76..cb9d12e753 100644
--- a/HOWTO/INSTALL-CROSS.md
+++ b/HOWTO/INSTALL-CROSS.md
@@ -103,14 +103,6 @@ has to be provided in the `$PATH`. The Erlang/OTP for the target system will
be built using this Erlang system, together with the cross compilation tools
provided.
-If you want to build the documentation out of the same source tree as you are
-cross compiling in, you currently need a full Erlang/OTP system of the same
-release as the one being built for the build machine. If this is the case,
-build and install one for the build machine (or use one already built) and add
-it to the `$PATH` before cross building, and building the documentation. See
-the [How to Build the Documentation][] section in the [$ERL_TOP/HOWTO/INSTALL.md][]
-document for information on how to build the documentation.
-
If you want to build using a compatible Erlang/OTP system in the `$PATH`,
jump to (3).
@@ -284,6 +276,14 @@ and then do the cross build of the system.
`otp_build release -a` will do the same as (5), and you will after this have
to do a manual install either by doing (6), or (7).
+Building and Installing the Documentation
+-----------------------------------------
+
+After the system has been cross built you can build and install the
+documentation the same way as after a native build of the system. See the
+[How to Build the Documentation][] section in the [$ERL_TOP/HOWTO/INSTALL.md][]
+document for information on how to build the documentation.
+
Testing the cross compiled system
---------------------------------
Some of the tests that come with erlang use native code to test. This means
@@ -520,12 +520,31 @@ When a variable has been set, no warning will be issued.
`posix_memalign` implementation that accepts larger than page size
alignment.
+* `erl_xcomp_ose_ldflags_pass1` - Linker flags for the OSE module (pass 1)
+
+* `erl_xcomp_ose_ldflags_pass2` - Linker flags for the OSE module (pass 2)
+
+* `erl_xcomp_ose_OSEROOT` - OSE installation root directory
+
+* `erl_xcomp_ose_STRIP` - Strip utility shipped with the OSE distribution
+
+* `erl_xcomp_ose_LM_POST_LINK` - OSE postlink tool
+
+* `erl_xcomp_ose_LM_SET_CONF` - Sets the configuration for an OSE load module
+
+* `erl_xcomp_ose_LM_ELF_SIZE` - Prints the section size information for an
+ OSE load module
+
+* `erl_xcomp_ose_LM_LCF` - OSE load module linker configuration file
+
+* `erl_xcomp_ose_LM_CONF` - OSE load module default configuration file
+
Copyright and License
---------------------
%CopyrightBegin%
-Copyright Ericsson AB 2009-2013. All Rights Reserved.
+Copyright Ericsson AB 2009-2014. All Rights Reserved.
The contents of this file are subject to the Erlang Public License,
Version 1.1, (the "License"); you may not use this file except in
diff --git a/HOWTO/INSTALL.md b/HOWTO/INSTALL.md
index 533960ef99..368947b36c 100644
--- a/HOWTO/INSTALL.md
+++ b/HOWTO/INSTALL.md
@@ -189,16 +189,16 @@ section below before proceeding.
Step 1: Start by unpacking the Erlang/OTP distribution file with your GNU
compatible TAR program.
- $ gunzip -c otp_src_%OTP-REL%.tar.gz | tar xf -
+ $ gunzip -c otp_src_%OTP-VSN%.tar.gz | tar xf -
alternatively:
- $ zcat otp_src_%OTP-REL%.tar.gz | tar xf -
+ $ zcat otp_src_%OTP-VSN%.tar.gz | tar xf -
Step 2: Now cd into the base directory (`$ERL_TOP`).
- $ cd otp_src_%OTP-REL%
+ $ cd otp_src_%OTP-VSN%
### Configuring ###
@@ -217,7 +217,7 @@ Step 4: Run the following commands to configure the build:
$ ./configure [ options ]
-If you are building it from git you will need to run `autoconf` to generate configure file.
+If you are building it from git you will need to run `./otp_build autoconf` to generate configure file.
By default, Erlang/OTP will be installed in `/usr/local/{bin,lib/erlang}`.
To instead install in `<BaseDir>/{bin,lib/erlang}`, use the
`--prefix=<BaseDir>` option.
@@ -268,12 +268,22 @@ Some of the available `configure` options are:
default if possible)
* `--{enable,disable}-hipe` - HiPE support (enabled by default on supported
platforms)
+* `--{enable,disable}-fp-exceptions` - Floating point exceptions (an
+ optimization for floating point operations). The default differs
+ depending on operating system and hardware platform. Note that by
+ enabling this you might get a seemingly working system that sometimes
+ fail on floating point operations.
* `--enable-darwin-universal` - Build universal binaries on darwin i386.
* `--enable-darwin-64bit` - Build 64-bit binaries on darwin
* `--enable-m64-build` - Build 64-bit binaries using the `-m64` flag to
`(g)cc`
* `--enable-m32-build` - Build 32-bit binaries using the `-m32` flag to
`(g)cc`
+* `--with-assumed-cache-line-size=SIZE` - Set assumed cache-line size in
+ bytes. Default is 64. Valid values are powers of two between and
+ including 16 and 8192. The runtime system use this value in order to
+ try to avoid false sharing. A too large value wastes memory. A to
+ small value will increase the amount of false sharing.
* `--{with,without}-termcap` - termcap (without implies that only the old
Erlang shell can be used)
* `--with-javac=JAVAC` - Specify Java compiler to use
@@ -288,7 +298,7 @@ Some of the available `configure` options are:
memory accesses. If `configure` should inform you about no native atomic
implementation available, you typically want to try using the
`libatomic_ops` library. It can be downloaded from
- <http://www.hpl.hp.com/research/linux/atomic_ops/>.
+ <https://github.com/ivmai/libatomic_ops/>.
* `--disable-smp-require-native-atomics` - By default `configure` will
fail if an SMP runtime system is about to be built, and no implementation
for native atomic memory accesses can be found. If this happens, you are
@@ -500,21 +510,11 @@ The Erlang/OTP Documentation
### How to Build the Documentation ###
- $ cd $ERL_TOP
-
-If you have just built Erlang/OTP in the current source tree, you have
-already ran `configure` and do not need to do this again; otherwise, run
-`configure`.
-
- $ ./configure [Configure Args]
-
-When building the documentation you need a full Erlang/OTP-%OTP-REL% system in
-the `$PATH`.
-
- $ export PATH=<Erlang/OTP-%OTP-REL% bin dir>:$PATH # Assuming bash/sh
-
-Build the documentation.
+Before you can build the documentation you need to either [native build][]
+or [cross build][] the Erlang/OTP system. After this you can build the
+documentation as follows.
+ $ cd $ERL_TOP
$ make docs
The documentation can be installed either using the `install-docs` target,
@@ -553,13 +553,13 @@ For some graphical tools to find the on-line help you have to install
the HTML documentation on top of the installed OTP applications, i.e.
$ cd <ReleaseDir>
- $ gunzip -c otp_html_%OTP-REL%.tar.gz | tar xf -
+ $ gunzip -c otp_html_%OTP-VSN%.tar.gz | tar xf -
For `erl -man <page>` to work the Unix manual pages have to be
installed in the same way, i.e.
$ cd <ReleaseDir>
- $ gunzip -c otp_man_%OTP-REL%.tar.gz | tar xf -
+ $ gunzip -c otp_man_%OTP-VSN%.tar.gz | tar xf -
Where `<ReleaseDir>` is
@@ -803,9 +803,11 @@ Before modifying this document you need to have a look at the
[Building in Git]: #How-to-Build-and-Install-ErlangOTP_Building-in-Git
[Pre-built Source Release]: #How-to-Build-and-Install-ErlangOTP_Prebuilt-Source-Release
[make and $ERL_TOP]: #How-to-Build-and-Install-ErlangOTP_make-and-ERLTOP
- [html documentation]: http://www.erlang.org/download/otp_doc_html_%OTP-REL%.tar.gz
- [man pages]: http://www.erlang.org/download/otp_doc_man_%OTP-REL%.tar.gz
- [the released source tar ball]: http://www.erlang.org/download/otp_src_%OTP-REL%.tar.gz
+ [html documentation]: http://www.erlang.org/download/otp_doc_html_%OTP-VSN%.tar.gz
+ [man pages]: http://www.erlang.org/download/otp_doc_man_%OTP-VSN%.tar.gz
+ [the released source tar ball]: http://www.erlang.org/download/otp_src_%OTP-VSN%.tar.gz
+ [native build]: #How-to-Build-and-Install-ErlangOTP
+ [cross build]: INSTALL-CROSS.md
[$ERL_TOP/HOWTO/MARKDOWN.md]: MARKDOWN.md
[?TOC]: true
diff --git a/HOWTO/MARKDOWN.md b/HOWTO/MARKDOWN.md
index c9ad09a1be..8e8a5c02cf 100644
--- a/HOWTO/MARKDOWN.md
+++ b/HOWTO/MARKDOWN.md
@@ -223,8 +223,11 @@ places. Appropriate attributes to the `X` tag will also be generated.
\%CopyrightBegin\% and \%CopyrightEnd\% "tags" will be removed from
the output.
-* All occurrences of \%OTP-REL% will be replaced by current release number
- (e.g. R14A).
+* All occurrences of \%OTP-REL% will be replaced by current OTP release number
+ (e.g. 17).
+
+* All occurrences of \%OTP-VSN% will be replaced by current OTP version
+ (e.g. 17.0).
* All occurrences of \%ERTS-VSN% will be replaced by current ERTS version
(e.g. 5.8).