For some platforms, hardware-assisted compare-and-swap may not be
available, so libatomic_ops will not provide it.
However, libatomic_ops can provide a purely software CAS emulation, but
must be instructed to do so. erlang just forgot to tell libatomic_ops
that it does require CAS.
Fix that by defining AO_REQUIRE_CAS before including atmoic_ops.h, like
is done in libunwind, as pointed out by Thomas.
Also, erlang has a convoluted, mind-alterating set on aclocal.m4 macros,
that just forgets to link against -latomic_ops when checking CAS is
available, so that even if CAS is available, configure chokes.
Since I would like to keep the little sanity I still have, just force
linking with -latomic_ops. This is useless when the check is natrally
sucessful (i.e. on platforms where CAS is available in HW), but we
would eventually link with -latomic_ops there, too; it's just redundant.
Overall, just consider that erlang requires libatomic_ops, so forcibly
depend on it, it is easier than trying to disable it. We can revisit
that whenever someone wants to run erlang on a platform for which there
is no libatomic_ops support.
Fixes a slew of autobuild ARM failures:
http://autobuild.buildroot.org/results/e7b/e7bfc4893dea6b133f0794ef44d50ad89bcb6662/http://autobuild.buildroot.org/results/3e9/3e9c307f1ec6536482641019dcaa94677f7267a3/http://autobuild.buildroot.org/results/a85/a85ca414e5b67af46510abd7b610eb5ae8661de4/
[...]
[Thomas: fix minor typos in commit log, add dependency on
BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS to the Erlang comment about thread
and shared library dependency.]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
If libatomic_ops was enabled, then the host-erlang dependency was lost.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Erlang/OTP 17.4 is a service release on the 17 track with mostly bug
fixes, but it does contain a number of new features and characteristics
improvements as well.
Some highlights of the release are:
- eldap: Nearly all TCP options are possible to give in the
eldap:open/2 call.
- ssh: Added API functions ptty_alloc/3 and ptty_alloc/4, to allocate a
pseudo tty.
- ssl: Handle servers that may send an empty SNI extension to the client.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Erlang uses openssl for all things crypto.
Since there are host Erlang tools that use crypto (such as rebar), we
need to build host-erlang with support for crypto, and thus it shall
depends on openssl.
Suggested-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Frank Hunleth <fhunleth@troodon-software.com>
Cc: Johan Oudinet <johan.oudinet@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To be consistent with the recent change of FOO_MAKE_OPT into FOO_MAKE_OPTS,
make the same change for FOO_CONF_OPT.
Sed command used:
find * -type f | xargs sed -i 's#_CONF_OPT\>#&S#g'
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Erlang/OTP 17.3 is a service release on the 17 track with mostly bug
fixes, but it does contain a number of new features and characteristics
improvements as well.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Erlang/OTP 17.1 is a service release on the 17 track with mostly bug
fixes, but it does contain a number of new features and characteristics
improvements as well.
Some highlights of the release are:
- crypto: Add aes_cfb8 cypher to crypto:block_encrypt and block_decrypt.
- diameter: Add result code counters for CEA, DWA, and DPA.
- erts: The following built in functions in the erlang and binary modules
now bump an appropriate amount of reductions and yield when out of
reductions:
binary_to_list/1, binary_to_list/3, bitstring_to_list/1,
list_to_binary/1,
iolist_to_binary/1, list_to_bitstring/1, binary:list_to_bin/1
- hipe: Handle Maps instructions get_map_elements, put_map_assoc,
put_map_exact in the HiPE native code compiler.
- mnesia: The time for inserting locks for a transaction with large
number of locks is reduced significantly.
- ssh: Option max_sessions added to ssh:daemon/{2,3}.
- stdlib: Add maps:get/3 to maps module. The function will return the
supplied default value if the key does not exist in the map.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Erlang/OTP 17.0 is a new major release with new features, characteristics
improvements, as well as some minor incompatibilities.
Some highlights of the release are:
- Erlang/OTP has been ported to the realtime operating system OSE.
- Maps, a new dictionary data type (experimental)
- A more natural mapping from ASN.1 OCTET STRING and BIT STRING to Erlang
types, and other ASN.1 improvements and optimizations
- The {active, N} socket option for TCP, UDP, and SCTP
- A new (optional) scheduler utilization balancing mechanism
- Migration of memory carriers has been enabled by default on all ERTS
internal memory allocators
- Increased garbage collection tenure rate
- Experimental "dirty schedulers" functionality
- Funs can now be given names
- Miscellaneous unicode support enhancements
- A new version scheme for OTP its applications has been introduced
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
OTP R16B03-1 is a service release which corrects a few issues found in
the R16B03 release. The corrections are:
- The ODBC application was missing in the prebuilt Windows installers
- 3 corrections in the SSL application:
- Add missing validation of the server_name_indication option and test for
its explicit use.
- Elliptic curve selection in server mode now properly selects a curve
suggested by the client, if possible.
- The server did not indicate support for secure renegotiation during TLS
extension handling.
- In the syntax tools application a bug was introduced which broke
reverting of local funs. This is now corrected (thanks to Anthony
Ramine)
- wx - Solved a problem which caused the debugger to crash when closing a
window. Fixed static linking on Mac.
- xmerl - Fixed a problem in the SAX-parser when the header of the next
document was appearing in the buffer when using the
xmerl_sax_parser:stream/2 function.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Erlang builds two emulators depending on whether SMP is supported or
not. If it is known that the target does not support SMP, turning off
the SMP emulator saves compile time and reduces the size of the
installation.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This is required for building the 'crypto', 'odbc', 'ssh'
and 'ssl' Erlang applications. These apps are skipped
regardless of whether they're enabled and their dependencies
can be met if this environment variable isn't set.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This is required to build custom port drivers/NIFs or code that
uses erl_interface.
Signed-off-by: Hans Bulfone <hans@nil.at>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>