Age | Commit message (Collapse) | Author |
|
into maint
* john/erts/spectre-configure-flag-otp_20/OTP-15430/ERIERL-237:
Allow disabling retpoline in interpreter loop
Add a ./configure flag for spectre mitigation
|
|
john/erts/spectre-configure-flag-otp_20/OTP-15430/ERIERL-237
* john/erts/spectre-configure-flag/OTP-15430/ERIERL-237:
Allow disabling retpoline in interpreter loop
Add a ./configure flag for spectre mitigation
|
|
Note that the ERTS_NO_RETPOLINE macro introduced by this commit is
completely inert unless spectre-mitigation is set to 'incomplete.'
This includes when mitigation has been manually enabled through
CFLAGS, so it should be impossible for it to unintentionally
disable mitigation.
|
|
|
|
Without the action-if-cross-compiling argument to AC_RUN_IFELSE the
configure steps fails with the following message when cross-compiling:
configure: error: cannot run test program while cross compiling
|
|
|
|
AC_SUBST(FPE) was accidentally deleted in 13bcae12947603.
|
|
Floating point exceptions has been disabled since 2011 on macOS
(fa0f8d2c29b) and on Linux since 2014 (c7ddafbe6dbc) because
there were unresolved stability issues.
Floating point exceptions are not disabled by default on FreeBSD,
and if OTP is compiled with gcc (as opposed to clang) floating
point exceptions will be used.
81a6adab693a introduced a bug in erts/emulator/Makefile.in which would
cause the building of OTP to fail if floating point exceptions were
enabled. The bug was not noticed because it turns out that none of our
daily build machines has floating point exceptions enabled.
Since floating point exceptions is not tested, we should not expect
them to work reliably on any platform. Therefore, turn off floating
point exceptions unconditionally in erts/configure.in. For the moment
we will keep the code in the runtime system that handles floating
point exceptions.
(This commit also fixes the bug in erts/emulator/Makefile.in, in
case floating point exceptions ever become reliable and enabled.)
https://bugs.erlang.org/browse/ERL-620
|
|
All corba applications are moved to a separate repository.
E.g. orber, ic, cosEvent, cosEventDomain, cosNotifications
cosTime, cosTransactions, cosProperty and cosFileTransfer.
|
|
and instead test for mprotect which is what is uses.
The use of MAP_NORESERVE for hipe code allocations
was removed in 8fd6e3353b094aa94e37e257ee20cd5e0e5dddcb.
|
|
into aclocal.m4 as LM_HARDWARE_ARCH
|
|
|
|
|
|
Currently HiPE amd64 assumes the runtime system code is loaded into
the low 2G of the address space. However, this is not the case when
PIE is enabled, it is loaded into a random location. So trampolines
are required to call BIFs, and also we have first to load the address
of sse2_fnegate_mask to a regisiter before xorpd in fchs.
|
|
|
|
* maint:
Do not add -lz to LIBS; keep it in Z_LIB
|
|
|
|
* lukas/erts/pgo/OTP-14604:
erts: Only do PGO if gcc supports -fprofile-correction
|
|
|
|
On a 64-bit machine, we only need 32 bits to store a pointer to
the C code that implements a BEAM instruction. Refactor the code
to only use the lower 32 bits of each instruction word, and take
care to preserve the high 32 bits.
|
|
We want the flags to be available for other tests in configure.in.
|
|
kqueue is broken on earlier versions of OS X.
|
|
|
|
|
|
* lukas/erts/pgo/OTP-14604:
Add support for building a pgo beam_emu
|
|
|
|
* maint:
Bug fixes of statistics(wall_clock) and statistics(runtime)
Conflicts:
erts/emulator/beam/erl_time_sup.c
|
|
* rickard/statistics-time-fixes/OTP-14597/ERL-465:
Bug fixes of statistics(wall_clock) and statistics(runtime)
Conflicts:
erts/emulator/beam/erl_time_sup.c
|
|
|
|
|
|
|
|
|
|
* maint:
macOS: Fix problems loading crypto
|
|
On macOS, it was not possible to start crypto after running
observer. (ERL_251)
On the beta of macOS 10.13 (High Sierra), crypto does not work
at all. (ERL-439)
The problem is that the use of the -flat_namespace option when
linking dynamic drivers such as the one for crypto. With that
option, all function names must be unique among all linked
libraries and frameworks, or the wrong function could be called.
Resolve the problem by using the two-level namespace as recommended by
Apple. We need to use the -bundle_loader option to point out beam.smp
when building all drivers and NIF libraries.
https://bugs.erlang.org/browse/ERL-251
https://bugs.erlang.org/browse/ERL-439
|
|
|
|
"./configure --enable-lock-counter" would modify the behavior
of the default emulator (usually SMP).
To make lock counting more accessible, change --enable-lock-counter
to build an additional emulator in the same way as:
(cd erts/emulator && make lcnt)
(The next commit will make it easier to start the built lock-counter
emulator.)
|
|
|
|
|
|
* ingela/openssl-version:
crypto: Update documentation to reflect new version policy
erts: Update configure check for OpenSSL
|
|
Allow HiPE-enabled VMs to be built with --enable-m32-build
|
|
We have never officially supported OpenSSL-0.9.7*
Update to OpenSSL-0.9.8c or later, but OpenSSL-1.0.2 or later is recommended
|
|
HiPE compiles and runs perfectly well with --enable-m32-build on linux.
If there are some darwin-specific issues with --enable-m32-build and
--enable-hipe, a more specific test for these conditions should be added.
|
|
Also remove i386 clause, as ARCH can never have that value.
|
|
The above commit erroneously declared 'ppc64le' as a 'ppc64' for
HiPE enabling. These two architectures are different and one can
NOT expect that native code generated for one architecture runs
on the other one. Rather than reverting this commit, make sure
that the architecture is declared correctly instead of pretending
it's a PPC64.
|
|
Some linkers, for example on Gentoo Hardened, do not accept the -no-pie
flag but require the -fno-PIE flag instead.
|
|
Magic references are *intentionally* indistinguishable from ordinary
references for the Erlang software. Magic references do not change
the language, and are intended as a pure runtime internal optimization.
An ordinary reference is typically used as a key in some table. A
magic reference has a direct pointer to a reference counted magic
binary. This makes it possible to implement various things without
having to do lookups in a table, but instead access the data directly.
Besides very fast lookups this can also improve scalability by
removing a potentially contended table. A couple of examples of
planned future usage of magic references are ETS table identifiers,
and BIF timer identifiers.
Besides future optimizations using magic references it should also
be possible to replace the exposed magic binary cludge with magic
references. That is, magic binaries that are exposed as empty
binaries to the Erlang software.
|
|
|
|
In OpenSSL 1.1.0, HMAC_CTX no longer has a complete definition,
and can no longer be allocated as a stack variable. Therefore,
the code in the configure test for usable OpenSSL library will
not compile.
Call the HMAC() function instead since it exists in all versions of
of OpenSSL that we support. Note that the code will only be compiled
and linked, not run, so the argument values don't matter as long as
they have the correct type.
|
|
OpenSSL 1.1.0 and higher does not support Kerberos and no longer
defines OPENSSL_NO_KRB5 to indicate that. Test the version number
as well as OPENSSL_NO_KRB5.
|
|
|