Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
to get errors for "#if UNDEFINED_MACRO"
|
|
|
|
* sverker/hipe-no-pie-amd64:
erts: Disable -fPIE for HiPE on x86_64
erts: Fix correct link flags for hipe_mkliterals
|
|
|
|
Only x86_64 needs to reserve low virtual memory for its
amd64 small code model.
|
|
Just merge the two if's
|
|
|
|
|
|
Conflicts:
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/beam_load.c
and added macro DBG_TRACE_MFA_P in beam_load.h
|
|
For non-amd64 it's a "normal" allocator with a
wrapper around mseg_alloc to call mprotect(PROT_EXEC).
|
|
This reverts commit 52fae83743a6e84d719f4f82fe45e6e0efdbd6f0:
Check libsctp for sctp funcs in configure.in
Call AC_CHECK_LIB before calling AC_CHECK_FUNCS to check for functions in libsctp.
Otherwise AC_CHECK_FUNCS will not link with libsctp to see if function exists.
Reverting to the old behaviour of not checking for libsctp before checking for
sctp functions. Then it works on Linux by loading libsctp and looking up the
symbols i runtime, and it works on FreeBSD since there is no separate libsctp
to link against - the functions are part of the default system libraries.
|
|
Conflicts:
lib/crypto/c_src/crypto.c
lib/ssl/src/ssl_cipher.erl
|
|
* maint:
Try to handle not yet available functionality in MacOSX SDK
Check deployment target in configure on MacOSX
Fix posix_memalign configure test
|
|
* rickard/macosx-config-mess/OTP-13904:
Try to handle not yet available functionality in MacOSX SDK
Check deployment target in configure on MacOSX
Fix posix_memalign configure test
|
|
For consistency with other applications.
|
|
FIPS mode support needs to be enabled at compile time, by configuring
Erlang/OTP with --enable-fips option. In FIPS mode the non-FIPS
algorithms are disabled and raise error notsup.
The supported protocols list is properly updated in FIPS mode to
advertise only the enabled protocols.
FIPS mode is off by default even if Erlang/OTP was built with FIPS
support. It needs to be turned on at runtime.
The official approach is to set the fips_mode application environment
parameter of the crypto application to true. This would turn FIPS mode
on when the NIF is loaded and would prevent loading the module on
error.
Another method is provided via the crypto:enable_fips_mode/1
function, but it is not recommended to be used in production, as it
won't prevent the use of the crypto module in case of an error, and
would risk OpenSSL crashing the emulator. It is very useful for test
suites however that need to check both validated and non-validated
functionality.
This commit is based on commit
00b3a04d17a653b4abddeebd6dd8a2c38df532d0.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* maint:
Fix tracing of processes executing dirty
Perform check_process_code while process is executing dirty
Fix purge of code
Reclaim literal area after purge has completed
Separate literal area from code
Conflicts:
erts/emulator/beam/global.h
|
|
'rickard/new-purge-strategy/OTP-13833' into maint
* rickard/fun-purge-bug/OTP-13809:
Fix purge of code
Reclaim literal area after purge has completed
Separate literal area from code
Conflicts:
erts/doc/src/erlang.xml
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/erl_init.c
erts/preloaded/ebin/init.beam
|
|
* g-andrade/kernel/fetch_ztream_dictionary/PR-1139/OTP-13842:
Update preloaded modules
Specify min zlib ver on inflateGetDictionary doc
Skip inflateGetDictionary test case if unsupported
zlib: Only link inflateGetDictionary if available
zlib: Add test case for inflateGetDictionary
zlib: support extraction of inflation dictionary
|
|
|
|
Which at the moment means zlib versions >= 1.2.8.
|
|
* binarin/even-more-absolute-paths/PR-1103/OTP-13800:
Use perl discovered by configure
Don't make assumptions about build tools paths
|
|
Call AC_CHECK_LIB before calling AC_CHECK_FUNCS to check for functions in libsctp.
Otherwise AC_CHECK_FUNCS will not link with libsctp to see if function exists.
|
|
|
|
One more followup to https://github.com/erlang/otp/pull/1056 and
https://github.com/erlang/otp/pull/1023
This time it's about `/usr/bin/env` and `/bin/cp`:
- `/usr/bin/env` in `diameterc` was used to find the bootstrapped
`escript` executable. Changed it to exlpicit call to `escript` in
Makefile.
- `/usr/bin/env` and `/bin/cp` were referenced in documentation
build/install process. Now full paths to this tools are injected using
autoconf magic.
|
|
From 'com_ericsson_otp' to 'org_erlang_otp'.
This domain name is more suitable.
|
|
* saleyn/uds/PR-612/OTP-13572:
Rewrite inet* for address family 'local'
Rewrite inet_drv for AF_LOCAL
Assign externally open fd to gen_tcp (UDS support)
Conflicts:
erts/preloaded/ebin/prim_inet.beam
lib/kernel/doc/src/gen_tcp.xml
lib/kernel/doc/src/gen_udp.xml
lib/kernel/src/inet6_sctp.erl
lib/kernel/test/inet_SUITE.erl
|
|
|
|
|
|
* binarin/fix-build-tool-paths/PR-1023/OTP-13562:
Fix program paths used in build process
Conflicts:
erts/configure.in
|
|
Not every OS has '/bin/rm' or '/bin/pwd' at exactly that location.
In some places in configure scripts result of AC_PATH_PROG was already
correctly used, this patch makes this usage more consistent.
As for `/bin/pwd` in `otp_build`, shell built-in one is already used in
mingw parts - so it should cause no harm to use it everywhere.
Difference is only in symlinks resolution - non-builtin `pwd` always
returns absolute path, and builtin-one could take into account what
sequence of user actions lead to current value of $PWD.
|
|
|
|
that uses its own super carrier (erts_exec_mmapper)
to guarantee low addressed and executable memory (PROT_EXEC).
Currently only used on x86_64 that needs low memory
for HiPE/AMD64's small code model.
By initializing erts_exec_mapper early we secure
its low memory area before erts_literal_mmapper might
steal it.
|
|
* henrik/update-copyrightyear:
update copyright-year
|
|
* egil/erts/tracing-beam-lttng/OTP-10282:
erts: Don't use ratio in carrier lttng tracepoints
Add lttng testcases
erts: Extend erlang:system_info/1 with lttng
Refactor and fix dtrace define in erl_message
erts: Add lttng tracepoints for async pool queue
erts: Add lttng tracepoints for drivers
erts: Add lttng tracepoints for scheduler events
erts: Add lttng tracepoints for memory carriers
erts: Update lttng-wrapper with mfa conversion
erts: Teach lttng to configure and build system
|
|
Introduce a wrapper API for lttng.
|
|
* bjorn/macosx-configure:
configure: Remove obsolete --enable-darwin-* options
|
|
* lukas/erts/fix-vsyslog-freebsd/OTP-13427:
erts: Fix run_erl syslog prototypes for freebsd
Conflicts:
erts/etc/unix/run_erl.c
|
|
Remove the options:
--enable-darwin-universal
--enable-darwin-64bit
The --enable-darwin-universal option turns on universal binaries
(Intel/PPC). It does not work on modern releases of OS X, and
OTP 19 will most not likely build on an OS X release that still
supports universal builds.
The --enable-darwin-64bit option is not needed, because 64-bit builds
are default on modern OS X releases. There is also the generic
--enable-m64-build option.
|