| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| |
| |
| |
| | |
* wojtekmach/wm-xcomp-darwin:
Correction of info in erl-xcomp-aarch64-darwin.conf
xcomp: Add aarch64-darwin
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Below [1] is a script to cross-compile OpenSSL & OTP for aarch64-darwin.
A couple of notes however:
1. Wx cannot be cross-compiled yet:
> ```
> *********************************************************************
> *********************************************************************
> ********************** APPLICATIONS INFORMATION *******************
> *********************************************************************
>
> wx : Cross compilation of the wx driver is not supported yet, wx will NOT be usable
> ```
2. Erlang shell successfully starts:
$ uname -sm
Darwin arm64
$ ./bin/erl
Erlang/OTP 24 [erts-12.1.5] [source-df1294f108] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Eshell V12.1.5 (abort with ^G)
1>
3. But crypto is not working yet:
./bin/erl
Erlang/OTP 24 [erts-12.1.5] [source-df1294f108] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Eshell V12.1.5 (abort with ^G)
1> crypto:start().
=ERROR REPORT==== 29-Nov-2021::14:50:14.218776 ===
Unable to load crypto library. Failed with error:
"load_failed, Failed to load NIF library: 'dlopen(/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so, 2): no suitable image found. Did find:
/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so: mach-o, but wrong filetype
/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so: stat() failed with errno=35'"
OpenSSL might not be installed on this system.
=WARNING REPORT==== 29-Nov-2021::14:50:14.222040 ===
The on_load function for module crypto returned:
{error,{load_failed,"Failed to load NIF library: 'dlopen(/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so, 2): no suitable image found. Did find:\n\t/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so: mach-o, but wrong filetype\n\t/Users/wojtek/Downloads/otp-24.1.7-aarch64-darwin/lib/crypto-5.0.4/priv/lib/crypto.so: stat() failed with errno=35'"}}
** exception error: undefined function crypto:start/0
[1] the script:
```
set -e
main() {
export MAKEFLAGS=-j$(getconf _NPROCESSORS_ONLN)
openssl_vsn=1.1.1l
otp_vsn=$(cat OTP_VERSION)
target=aarch64-darwin
openssl_dir="$PWD/tmp/openssl-$openssl_vsn-$target"
otp_dir="$PWD/tmp/otp-$otp_vsn-$target"
mkdir -p tmp
if [ ! -d "$openssl_dir" ]; then
build_openssl $openssl_dir $openssl_vsn $target
fi
export PATH=$openssl_dir/bin:$PATH
echo "openssl"
file `which openssl`
echo
if [ ! -d $otp_dir ]; then
build_otp $otp_dir $otp_vsn $target $openssl_dir
fi
(cd $otp_dir && ./Install -sasl $PWD)
export PATH=$otp_dir/bin:$PATH
echo "otp"
file `which erlc`
file $otp_dir/lib/crypto-*/priv/lib/crypto.so
# erl +V
# erl -noshell -eval 'ok = crypto:start(), io:format("crypto ok~n"), halt().'
echo
}
build_openssl() {
dir=$1
vsn=$2
target=$3
if [ "$target" = "x86_64-darwin" ]; then
openssl_target=darwin64-x86_64-cc
fi
if [ "$target" = "aarch64-darwin" ]; then
openssl_target=darwin64-arm64-cc
fi
cd tmp
if [ ! -d openssl-$vsn-src ]; then
url=https://www.openssl.org/source/openssl-$vsn.tar.gz
echo "downloading $url"
curl --fail -LO $url
tar -xf openssl-$vsn.tar.gz
mv openssl-$vsn openssl-$vsn-src
fi
cd openssl-$vsn-src
./Configure \
$openssl_target \
--prefix=$dir
make
make install_sw
cd ../..
}
build_otp() {
dir=$1
vsn=$2
target=$3
openssl_dir=$4
cwd=$PWD
# path to OTP git checkout. Comment-out if you want to download it.
otp_src_dir=$HOME/src/otp
if [ ! -d "$otp_src_dir" ]; then
cd tmp
url="https://github.com/erlang/otp/releases/download/OTP-${vsn}/otp_src_${vsn}.tar.gz"
echo "downloading $url"
curl --fail -LO $url
tar -xf otp_src_${vsn}.tar.gz
cd otp_src_${vsn}
fi
export ERL_TOP=`pwd`
./otp_build configure \
--disable-dynamic-ssl-lib \
--with-ssl=$openssl_dir \
--xcomp-conf=xcomp/erl-xcomp-$target.conf
./otp_build boot -a
./otp_build release -a $dir
cd $cwd
}
main
```
|
|/ |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
sys/timerfd.h was added in Android 4.4 KitKat so guard its usage when
targeting earlier Android versions with the Android NDK Unified Headers.
Update the 32-bit Android documentation accordingly.
|
|
|
|
|
|
|
| |
if_nameindex and if_freenameindex were added in Android 7.0 Nougat
so guard their usages when targeting earlier Android versions.
Update the Android documentation accordingly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Switch to use the Unified Headers introduced in Android NDK r14
optionnally and made mandatory since Android NDK r16 with the
remove of the older headers.
Switch to Clang for Android compilation, with GCC being deprecated
in Android NDK r16 and then fully removed in Android NDK r18b.
Add the default -g -O2 options to CFLAGS for Android as a -O option
is required since commit cc21219185d7ff90b5d3d09cae896082d7627ea9.
Fix ERL-1081: Move to dynamic linking, to avoid missing symbol
errors due to an incompatibility between Autoconf (AC_CHECK_FUNCS)
and the Android NDK.
Add a new Android cross-compile configuration for 64-bit ARMv8-A.
Update the documentation about how to cross compile for Android.
|
|
|
|
| |
OTP-15473
|
| |
|
|
|
|
|
|
| |
The OSE port is no longer supported and this commit removed it
and any changes related to it. The things that were general
improvements have been left in the code.
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* lukas/ose/master-17.0/OTP-11334:
ose: Fix erts assert failed printouts
ose: fix for packet_bytes in fd/spawn driver.
ose: Prepare slave for running on OSE
ose: Fix bug when hunting for signal proxy
ose: Implement tcp inet driver for OSE
ose: Add ifdefs for HAVE_UDP
ose: Yielding has to be done differently for background processes.
ose: Print faults in aio sys driver calls
ose: Prinout errno when to_erl read fails
ose: erlang display goes to ramlog printf
ose: Initiate stdin/stdout/stderr
ose: Break lmconf into one per load module
ose: Reset busy port when pdq empty
ose: Restore the owner of the signal
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enable a cross compile Erlang/OTP platform to Android or Raspberry PI
using Android NDK. Port emulator and core application to support target
HW platform. Exclude any add-on services required for OTP platform deployment
into target hardware due to device fragmentation and jail-break requirements.
* fix erts/emulator/beam/sys.h
Disable redefinition of __noreturn macro
* port erts/emulator/sys/unix/erl_child_setup.c
Use techniques proposed by https://code.google.com/p/erlang4android to
access system properties
* fix erts/emulator/sys/unix/erl_unix_sys_ddll.c
The static linking of emulator cannot find dlerror(), dlopen() symbols
* port erts/emulator/sys/unix/sys.c
make path to shell configurable at build time
* port erts/etc/common/Makefile.in
disable librt for *-linux-androideabi
* port erts/lib_src/pthread/ethread.c
Use techniques proposed by https://code.google.com/p/erlang4android to
disable emulator crash if kernel threads are on. Replace unreliable
pthread_sigmask() by sigprocmask()
* port lib/erl_interface/src/connect/ei_connect.c
Disable call to undefined gethostid()
* port lib/erl_interface/src/connect/ei_resolve.c
Use gethostbyname_r() on Android platform
|
| |
|
| |
|
|
|
|
|
| |
To enable it you have to modify the OSESSL variable in the
ose xcomp file.
|
| |
|
|
|
|
|
| |
Use these to switch inbetween debug and non-debug emulators
and 4.4.3 and 4.6.3 versions of gcc.
|
| |
|
| |
|
|
|
|
|
|
| |
The hwfp has been tested as well and seem to work,
but most processors that OSE will run on does not have
a fpu.
|
|
|
|
|
|
|
|
| |
This port has support for both non-smp and smp.
It contains a new way to do io checking in which erts_poll_wait
receives the payload of the polled entity. This has implications
for all linked-in drivers.
|
|
|
|
|
|
|
|
| |
-OPT:Olimit=0 -WOPT:lpre=off:spre=off:epre=off
tile-gcc 4.4.3 does not accept these options:
cc1: error: unrecognized command line option
"-WOPT:lpre=off:spre=off:epre=off"
|
|\ |
|
| | |
|
|/
|
|
|
|
| |
On some OSs posix_memalign exists, but it does not allow for alignment
greater than the current page size. So we have to do a runtime check for
alignment size and also add cross compile options.
|
| |
|
|
|
|
|
|
| |
New prefix for command line utils
Disable morecore hook as it does not work with new cross chain
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
* msp/double_middle_endian/OTP-10209:
Configure now assumed normal doubles
Revise the autoconf tests for double middle endianness.
Add test for floating-point output to float_SUITE.
Unbreak floating point on middle-endian machines.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On some ARMs (and maybe other platforms), doubles are stored with the
the two 32-bit words reversed with respect to more common
architectures.
The symptom is this:
> io_lib:write(1.0).
"0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005299808824"
Detect that and account for it when decoding floats.
|
| | |
|
| |
| |
| |
| |
| | |
ts has been fixed to again work in a cross build environment.
See ts:help() and xcomp/README.md for details about how it works.
|
|/ |
|
|
|
|
|
|
|
|
| |
With Atmel's recent buildroot-v3.0.0 release for AVR32, some changes
were needed in order to properly cross compile Erlang/OTP for the
platform.
Tested with R14B04 on a mk I NGW100.
|
|
|
|
|
| |
Added cross configuration file for mips-linux. (Thanks to Matthias Lang for
the configuration)
|
|
|
|
|
| |
The INSTALL.md, INSTALL-CROSS.md, and INSTALL-WIN32.md "readme files" are
now included in both the HTML and the PDF documentation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The most important "readme" files now use Markdown notation. HTML
versions of these files are now also automatically generated and
included in the HTML documentation.
- Building and Installing Erlang/OTP - $ERL_TOP/INSTALL.md
(previously known as $ERL_TOP/README).
- Cross Compiling Erlang/OTP - $ERL_TOP/INSTALL-CROSS.md.
- How to Build Erlang/OTP on Windows - $ERL_TOP/INSTALL-WIN32.md
(previously known as $ERL_TOP/README.win32).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The most important "readme" files now use Markdown notation. HTML
versions of these files are now also automatically generated and
included in the HTML documentation.
- Building and Installing Erlang/OTP - $ERL_TOP/INSTALL.md
(previously known as $ERL_TOP/README).
- Cross Compiling Erlang/OTP - $ERL_TOP/INSTALL-CROSS.md.
- How to Build Erlang/OTP on Windows - $ERL_TOP/INSTALL-WIN32.md
(previously known as $ERL_TOP/README.win32).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
improvements.
Most notable:
Lots of cross compilation improvements. The old cross compilation
support was more or less non-existing as well as broken. Please,
note that the cross compilation support should still be
considered as experimental. Also note that old cross compilation
configurations cannot be used without modifications. For more
information on cross compiling Erlang/OTP see the
$ERL_TOP/INSTALL-CROSS.md file.
Support for staged install using <url
href="http://www.gnu.org/prep/standards/html_node/DESTDIR.html">D
ESTDIR</url>. The old broken INSTALL_PREFIX has also been fixed.
For more information see the $ERL_TOP/INSTALL.md file.
Documentation of the release target of the top Makefile. For more
information see the $ERL_TOP/INSTALL.md file.
make install now by default creates relative symbolic links
instead of absolute ones. For more information see the
$ERL_TOP/INSTALL.md file.
$ERL_TOP/configure --help=recursive now works and prints help for
all applications with configure scripts.
Doing make install, or make release directly after make all no
longer triggers miscellaneous rebuilds.
Existing bootstrap system is now used when doing make install, or
make release without a preceding make all.
The crypto and ssl applications use the same runtime library path
when dynamically linking against libssl.so and libcrypto.so. The
runtime library search path has also been extended.
The configure scripts of erl_interface and odbc now search for
thread libraries and thread library quirks the same way as erts
do.
The configure script of the odbc application now also looks for
odbc libraries in lib64 and lib/64 directories when building on a
64-bit system.
The config.h.in file in the erl_interface application is now
automatically generated in instead of statically updated which
reduces the risk of configure tests without any effect.
(Thanks to Henrik Riomar for suggestions and testing)
(Thanks to Winston Smith for the AVR32-Linux cross configuration
and testing)
|
|\
| |
| |
| |
| | |
* ws/cross-compile-configuration:
Add cross-compile configuration for Atmel AVR32-Linux (NGW100)
|