aboutsummaryrefslogtreecommitdiffstats
path: root/erts/configure.in
AgeCommit message (Collapse)Author
2014-05-09erts: Fix various autoconf issuesLukas Larsson
* Check of atomics on bsd * Add --enable-systemd for epmd * Remove unused --enable-tsp option
2014-03-27Merge branch 'matwey/systemd/OTP-11829'Lukas Larsson
* matwey/systemd/OTP-11829: Add systemd socket activation for epmd. Conflicts: erts/epmd/src/epmd_int.h Extra ticket: OTP-11828
2014-03-24Merge branch 'sverk/halfword-deprecate/OTP-11777'Sverker Eriksson
* sverk/halfword-deprecate/OTP-11777: erts: Deprecate halfword emulator
2014-03-13erts: Deprecate halfword emulatorSverker Eriksson
2014-03-09Use closefrom(2) when available in child_setupRick Reed
2014-02-26Disable accidentally enabled floating point exceptions on MacOS XBjörn Gustavsson
In c7ddafbe, which disabled floating point exceptions on Linux, floating point exceptions were accidentally enabled on MacOS X.
2014-02-24Merge branch 'lukas/ose/master/OTP-11334'Lukas Larsson
* lukas/ose/master/OTP-11334: (71 commits) erts: Fix unix efile assert ose: Use -O2 when building ose: Expand OSE docs ose: Add dummy ttsl driver ose: Cleanup cleanup of mutex selection defines ose: Polish mmap configure checks ose: Add ose specific x-compile flags ose: Updating fd_driver and spawn_driver for OSE ose: Updating event and signal API for OSE ose: Cleanup of mutex selection defines win32: Compile erl_log.exe ose: Remove uneccesary define ose: Fix ssl configure test for osx erts: Fix sys_msg_dispatcher assert ose: Fix broken doc links ose: Thread priorities configurable from lmconf ose: Yielding the cpu is done "the OSE" way ose: Start using ppdata for tse key ose: Do not use spinlocks on OSE ose: Fix support for crypto ... Conflicts: lib/crypto/c_src/crypto.c
2014-02-24ose: Polish mmap configure checksLukas Larsson
2014-02-24ose: Fix ssl configure test for osxLukas Larsson
2014-02-24ose: Fix support for cryptoLukas Larsson
To enable it you have to modify the OSESSL variable in the ose xcomp file.
2014-02-24erts: configure number of write_concurrency locksLukas Larsson
Make it possible to change the number of write_concurrency locks to use. This is usefull to change when you for some reason want to use more/less locks per write_concurrency ets table. eg. OSs with a limit on how many mutexes can exist at once.
2014-02-24Added support for ENEA OSELukas Larsson
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.
2014-02-24Merge branch 'rickard/configure-defaults/OTP-11723'Rickard Green
* rickard/configure-defaults/OTP-11723: Always default to disabled floating point exceptions on Linux
2014-02-24Always default to disabled floating point exceptions on LinuxRickard Green
This since there exist unresolved stability issues in the implementation for Linux.
2014-02-24Merge branch 'rickard/assumed-cacheline-size/OTP-11742'Rickard Green
* rickard/assumed-cacheline-size/OTP-11742: Introduce configure option --with-assumed-cache-line-size=SIZE
2014-02-24Merge branch 'vinoski/ds2'Rickard Green
* vinoski/ds2: further enhancements for dirty schedulers allow optional whitespace in dirty scheduler erl options
2014-02-24further enhancements for dirty schedulersSteve Vinoski
Add support for setting the number of dirty CPU schedulers online via erlang:system_flag/2. Assuming the emulator is built with dirty schedulers enabled, the number of dirty CPU schedulers online may not be less than 1, nor greater than the number of dirty CPU schedulers available, nor greater than the number of normal schedulers online. Dirty CPU scheduler threads that are taken offline via system_flag/2 are suspended. The number of dirty CPU schedulers online may be adjusted independently of the number of normal schedulers online, but if system_flag/2 is used to set the number of normal schedulers online to a value less than the current number of normal schedulers online, the number of dirty CPU schedulers online is decreased proportionally. Likewise, if the number of normal schedulers online is increased, the number of dirty CPU schedulers online is increased proportionally. For example, if 8 normal schedulers and 4 dirty CPU schedulers are online, and system_flag/2 is called to set the number of normal schedulers online to 4, the number of dirty CPU schedulers online is also decreased by half, to 2. Subsequently setting the number of normal schedulers online back to 8 also sets the number of dirty CPU schedulers online back to 4. Augment the system_flag/2 documentation in the erlang man page to explain this relationship between schedulers_online and dirty_cpu_schedulers_online. Also ensure that all dirty CPU and I/O schedulers are suspended when multi-scheduling is blocked via system_flag/2, and brought back online when multi-scheduling is unblocked. Add Rickard Green's rewritten check_enqueue_in_prio_queue() function that inspects process state more thoroughly to determine if to enqueue it and if so on what queue, including dirty queues when appropriate. Make sure dirty NIF jobs do not trigger erlang:system_monitor long_schedule messages. Add more dirty scheduler testing to the scheduler test suite. Remove the erts_no_dirty_cpu_schedulers_online global variable, since it's no longer needed. Execute dirty NIFs on a normal scheduler thread while multi-scheduling blocking is in effect. Evacuate any dirty jobs residing in the dirty run queues over to a normal run queue when multi-scheduling is blocked. Allow dirty schedulers to execute aux work. Set the dirty run queues halt_in_progress flag when halting the normal schedulers. Change dirty scheduler numbers to a structure including both scheduler number and type, either dirty CPU or dirty I/O. Add some assertions to ensure that dirty CPU schedulers operate only on dirty CPU scheduler process flags, and the same for dirty I/O schedulers.
2014-02-23Introduce configure option --with-assumed-cache-line-size=SIZERickard Green
2014-02-21Merge branch 'rickard/otp_version/OTP-11615'Rickard Green
* rickard/otp_version/OTP-11615: Misc adjustments of OTP version
2014-02-19Misc adjustments of OTP versionRickard Green
2014-02-19Add systemd socket activation for epmd.Matwey V. Kornilov
Check for systemd libraries and headers in confgiure. Add -systemd option enabling waiting for sockets from systemd.
2014-02-05erts: Rewrite dtrace configure testLukas Larsson
The previous version printed error messages from the dtrace command to stderr. This output is now printed to config.log instead.
2014-01-28Merge branch 'vinoski/ds'Rickard Green
* vinoski/ds: initial support for dirty schedulers and dirty NIFs
2014-01-28initial support for dirty schedulers and dirty NIFsSteve Vinoski
Add initial support for dirty schedulers. There are two types of dirty schedulers: CPU schedulers and I/O schedulers. By default, there are as many dirty CPU schedulers as there are normal schedulers and as many dirty CPU schedulers online as normal schedulers online. There are 10 dirty I/O schedulers (similar to the choice of 10 as the default for async threads). By default, dirty schedulers are disabled and conditionally compiled out. To enable them, you must pass --enable-dirty-schedulers to the top-level configure script when building Erlang/OTP. Current dirty scheduler support requires the emulator to be built with SMP support. This restriction will be lifted in the future. You can specify the number of dirty schedulers with the command-line options +SDcpu (for dirty CPU schedulers) and +SDio (for dirty I/O schedulers). The +SDcpu option is similar to the +S option in that it takes two numbers separated by a colon: C1:C2, where C1 specifies the number of dirty schedulers available and C2 specifies the number of dirty schedulers online. The +SDPcpu option allows numbers of dirty CPU schedulers available and dirty CPU schedulers online to be specified as percentages, similar to the existing +SP option for normal schedulers. The number of dirty CPU schedulers created and dirty CPU schedulers online may not exceed the number of normal schedulers created and normal schedulers online, respectively. The +SDio option takes only a single number specifying the number of dirty I/O schedulers available and online. There is no support yet for programmatically changing at run time the number of dirty CPU schedulers online via erlang:system_flag/2. Also, changing the number of normal schedulers online via erlang:system_flag(schedulers_online, NewSchedulersOnline) should ensure that there are no more dirty CPU schedulers than normal schedulers, but this is not yet implemented. You can retrieve the number of dirty schedulers by passing dirty_cpu_schedulers, dirty_cpu_schedulers_online, or dirty_io_schedulers to erlang:system_info/1. Currently only NIFs are able to access dirty scheduler functionality. Neither drivers nor BIFs currently support dirty schedulers. This restriction will be addressed in the future. If dirty scheduler support is present in the runtime, the initial status line Erlang prints before presenting its interactive prompt will include the indicator "[ds:C1:C2:I]" where "ds" indicates "dirty schedulers", "C1" indicates the number of dirty CPU schedulers available, "C2" indicates the number of dirty CPU schedulers online, and "I" indicates the number of dirty I/O schedulers. Document The dirty NIF API in the erl_nif man page. The API closely follows Rickard Green's presentation slides from his talk "Future Extensions to the Native Interface", presented at the 2011 Erlang Factory held in the San Francisco Bay Area. Rickard's slides are available online at http://bit.ly/1m34UHB . Document the new erl command-line options, the additions to erlang:system_info/1, and also add the erlang:system_flag/2 dirty scheduler documentation even though it's not yet implemented. To determine whether the dirty NIF API is available, native code can check to see whether the C preprocessor macro ERL_NIF_DIRTY_SCHEDULER_SUPPORT is defined. To check if dirty schedulers are available at run time, native code can call the boolean enif_have_dirty_schedulers() function, and Erlang code can call erlang:system_info(dirty_cpu_schedulers), which raises badarg if no dirty scheduler support is available. Add a simple dirty NIF test to the emulator NIF suite.
2014-01-28Merge branch 'rzezeski/rz_fix_dtrace_illumos/OTP-11622'Lukas Larsson
* rzezeski/rz_fix_dtrace_illumos/OTP-11622: Fix DTrace build on Illumos
2014-01-22Merge branch 'bjorn/erts/zlib-1.2.8'Björn Gustavsson
* bjorn/erts/zlib-1.2.8: configure: Prefer the system's zlib over own our zlib source Update preloaded modules Add the 'rle' zstrategy Don't make gzio.c dependent on the zutil.h header file Update zlib to 1.2.8 erts/zlib: Remove unused file example.c
2014-01-17configure: Prefer the system's zlib over own our zlib sourceBjörn Gustavsson
WxWidgets (used by the wx application) also uses zlib. To ensure that the run-time system and WxWidgets use the same version of zlib, use the system's zlib if present. Also, the system's zlib may be specially optimized and thus faster than our own generic source code. We only use zlib versions that are "good enough". For now, that means 1.2.5 or higher. Remove the option --enable-shared-zlib and add the option --enable-builtin-zlib to force the use of the built-in zlib.
2014-01-10Add support for the separate tinfo library from ncursesDirkjan Ochtman
Recent versions of ncurses can be built with terminfo symbols moved into the separate tinfo library. This patch prevents erts configure from dying by adding the tinfo library to list of termcap lib candidates.
2013-12-07Fix DTrace build on IllumosRyan Zezeski
DTrace was recently patched in Illumos to fail to create an object file if no probes are found. * https://www.illumos.org/issues/4248 * https://github.com/illumos/illumos-gate/commit/54a20ab41aadcb81c53e72fc65886e964e9add59 This patch fixes two issues: * Modify the configure script to pass an object file to `dtrace -G` that actually invokes a probe. * Remove creation of `dtrace_user.o` from the dyntrace Makefile. In a previous commit [1] Scott Fritchie relocated all the user probes into the VM proper due to difficulties with DTrace probes in shared libraries. The `dtrace_user.d` file is now empty and generates a header file with nothing in it. There is no longer any reason to generate `dtrace_user.o` because all the probes are in the VM. Thus all the steps for building `dtrace_user.o` have been removed. [1]: https://github.com/erlang/otp/commit/75552bd3bb4e7f3cf4dab81a5c81cf73b1d3fb99
2013-12-03Merge branch 'maint'Björn-Egil Dahlberg
2013-11-26erts: Let cc determine default wordsize for darwin buildBjörn-Egil Dahlberg
2013-11-26Merge branch 'maint'Raimo Niskanen
Conflicts: erts/preloaded/ebin/prim_inet.beam lib/kernel/test/gen_sctp_SUITE.erl
2013-11-26Merge branch 'maint-r16' into maintRaimo Niskanen
2013-11-25Merge branch 'maint'Rickard Green
* maint: Fix observer retrieval of alloc info Fix documentation of the +MMsco switch Replace the +MMscmgc switch with +MMscrfsd Add switch for disabling sys_alloc carriers Add support for locking mappings to physical memory
2013-11-07Implement prim_inet:socknames/1,2 and prim_inet:peernames/1,2Raimo Niskanen
2013-11-05Add support for locking mappings to physical memoryRickard Green
Using "+Mlpm all" switch all mappings made by the emulator will be locked into physical memory.
2013-11-01Merge branch 'maint'Lukas Larsson
* maint: erts: Add max alignment posix_memalign configure check
2013-11-01erts: Add max alignment posix_memalign configure checkLukas Larsson
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.
2013-09-30Merge branch 'maint'Fredrik Gustafsson
2013-09-25Merge branch 'rickard/aligned-sys_alloc-carriers/OTP-11318' into ↵Rickard Green
rickard/aligned-sys_alloc-carriers_maint/OTP-11318 Conflicts: erts/emulator/beam/erl_alloc.c erts/emulator/beam/erl_alloc_util.c erts/emulator/beam/erl_alloc_util.h
2013-09-25Implement platform specific aligned sys_alloc and use when supportedRickard Green
erts_sys_aligned_alloc() is currently implemented using posix_memalign if it exist, or using _aligned_malloc on Windows. If erts_sys_aligned_alloc() exist allocators will create sys_alloc carriers similar to how this was done pre-R16.
2013-09-04Merge branch 'maint'Raimo Niskanen
Conflicts: erts/preloaded/ebin/prim_inet.beam
2013-09-04Merge branch 'raimo/linux-network-namespace-sockopt/OTP-11157' into maintRaimo Niskanen
* raimo/linux-network-namespace-sockopt/OTP-11157: Document socket option 'netns' Rudimentary test Make netns option value a string Implement netns for SCTP + bugfixes Implement netns option for TCP and UDP Implement emulator netns support for TCP and UDP
2013-08-21erts: Add support for static linked-in driversLukas Larsson
None of the OTP linked-in driver are supported
2013-08-21erts: Add option to include nifs staticallyLukas Larsson
Both crypto and asn1 are supported.
2013-07-29Bailout if no native implementations are foundLukas Larsson
Some basic tests are already done in configure. This makes sure we cover all cases by bailing out when compiling as well.
2013-07-17Implement emulator netns support for TCP and UDPRaimo Niskanen
2013-07-09Refuse to build SMP runtime by default without native atomicsRickard Green
Build with fallback can be enabled by passing the `configure` command line argument `--disable-smp-require-native-atomics`
2013-06-05Merge branch 'pan/raise_windows_version' into maintPatrik Nyblom
* pan/raise_windows_version: Raise the minimal supported Windows version OTP-11145
2013-05-28add support for hipe on Raspberry Pi (armv6l)Klaus Alfert
To enable hipe on a Raspberry Pi, configure has to detect the ARM processor correctly. On a Pi, uname detects the CPU as armv6l. Other CPU variants are already detected with ARCH=arm, so does now the armv6l of the Raspberry Pi.