aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-08-08Merge branch 'bjorn/parallel-make/OTP-9451' into majorBjörn Gustavsson
* bjorn/parallel-make/OTP-9451: (28 commits) erl_interface: Support parallel make dialyzer: Remove special-case build in the top Makefile pcre: Rename Makefile.in to pcre.mk and include it cos*/src/Makefile: Support parallel make ic: Support parallel make orber: Support parallel make .gitignore: Ignore IDL-GENERATED public_key: Support parallel make ssh: Support parallel make os_mon: Support parallel make diameter: Support parallel make snmp: Support parallel make megaco: Support parallel make megaco/src/flex/Makefile.in: Support parallel make */c_src/Makefile*: Support parallel make eunit: Support parallel make gs: Support parallel make common_test Makefile: Support parallel make erts/emulator/Makefile.in: Support parallel make erts: Fix dependency generation ...
2011-08-08erl_interface: Support parallel makeBjörn Gustavsson
2011-08-08dialyzer: Remove special-case build in the top MakefileBjörn Gustavsson
There used to be a requirement that Dialyzer was build at the very end. Since this requirement has been dropped, remove the special-case build targets for Dialyzer in the top-level Makefile.
2011-08-08pcre: Rename Makefile.in to pcre.mk and include itBjörn Gustavsson
To avoid issues with parallel make and to slightly speed up the build process, avoid a recursive make by replacing pcre/Makefile.in with pcre/pcre.mk and including it from the main emulator Makefile.
2011-08-08cos*/src/Makefile: Support parallel makeBjörn Gustavsson
2011-08-08ic: Support parallel makeBjörn Gustavsson
2011-08-08orber: Support parallel makeBjörn Gustavsson
2011-08-08.gitignore: Ignore IDL-GENERATEDBjörn Gustavsson
One input file that generate multiple output file are tricky to handle in make. One way is to use a stand-in to represent all the other generated files.
2011-08-08public_key: Support parallel makeBjörn Gustavsson
2011-08-08ssh: Support parallel makeBjörn Gustavsson
2011-08-08os_mon: Support parallel makeBjörn Gustavsson
2011-08-08diameter: Support parallel makeBjörn Gustavsson
2011-08-08snmp: Support parallel makeBjörn Gustavsson
2011-08-08megaco: Support parallel makeBjörn Gustavsson
2011-08-08megaco/src/flex/Makefile.in: Support parallel makeBjörn Gustavsson
Make sure that directories are created before they are used. I tried to use order-only prerequisites to create the directories, but run into two problems: First, order-only prerequisites are only implemented in Make 3.80 and later. Second, on a computer running Solaris/Intel 2.8 (with Make 3.80), order-only prerequisites seemed to work like ordinary prerequisites, causing targets to be re-built if the timestamp for the directory changed. Therefore, using a shell command to run mkdir seems to be the more portable solution.
2011-08-08*/c_src/Makefile*: Support parallel makeBjörn Gustavsson
Create directories first, not within implicit rules. If two 'install' instances runs at the same time attempting to create a directory, one of them may fail with an "File exists" error. I tried to use order-only prerequisites to create the directories, but run into two problems: First, order-only prerequisites are only implemented in Make 3.80 and later. Second, on a computer running Solaris/Intel 2.8 (with Make 3.80), order-only prerequisites seemed to work like ordinary prerequisites, causing targets to be re-built if the timestamp for the directory changed. Therefore, using a shell command to run mkdir seems to be the more portable solution.
2011-08-08eunit: Support parallel makeBjörn Gustavsson
2011-08-08gs: Support parallel makeBjörn Gustavsson
2011-08-08common_test Makefile: Support parallel makeBjörn Gustavsson
Add dependecies to force the ct_line parse transform module to be built before all other modules.
2011-08-08erts/emulator/Makefile.in: Support parallel makeBjörn Gustavsson
2011-08-08erts: Fix dependency generationBjörn Gustavsson
Apparantly, an invocation like "make generate depend" will run the 'generate' and 'depend' targets in parallel, even if the Makefile contains a .NOTPARALLEL target. In this case, it will result in incorrect dependencies since not all files have been generated when the dependencies are computed. Split up the single 'make' invocation to two invocations, to force the targets to be run sequentially.
2011-08-08erts/Makefile.in: Suppress parallel makeBjörn Gustavsson
2011-08-08Top-level Makefile: Suppress parallel makeBjörn Gustavsson
2011-08-08lib/Makefile: Only build the runtime_tools application onceBjörn Gustavsson
2011-08-08lib/Makefile: Remove support for OSE deltaBjörn Gustavsson
2011-08-08jinterface: Use otp_subdir.mk instead of homebrewed solutionBjörn Gustavsson
There once was a reason to have a "Makefile.otp" makefile, but it doesn't apply any longer. Rename it to "Makefile" so that the standard otp_subdir.mk file can be used for recursion into sub directories.
2011-08-08erts/emulator/Makefile.in: Remove clearmake supportBjörn Gustavsson
2011-08-08otp_subdir.mk: Remove support for clearmakeBjörn Gustavsson
2011-08-08Makefile.in: Remove the obsolete bootstrap targetsBjörn Gustavsson
2011-08-05Merge branch 'dev' into majorBjörn Gustavsson
* dev: Fix binary construction with huge literal sizes beam_load.c: Add overflow check of tag values beam_makeops: Add some sanity checks Fix construction of <<0:((1 bsl 32)-1)>>
2011-08-05Merge branch 'bjorn/erts/loader-related-bs-bugs/OTP-9284' into devBjörn Gustavsson
* bjorn/erts/loader-related-bs-bugs/OTP-9284: Fix binary construction with huge literal sizes beam_load.c: Add overflow check of tag values beam_makeops: Add some sanity checks Fix construction of <<0:((1 bsl 32)-1)>>
2011-08-03Merge branch 'lukas/asn1/remove_unused_record_warnings/OTP-9448' into majorLukas Larsson
* lukas/asn1/remove_unused_record_warnings/OTP-9448: Remove some superflous includes which caused inlined modules to have lots of compile warnings
2011-08-03Fix binary construction with huge literal sizesBjörn Gustavsson
Constructing binaries using the bit syntax with literals sizes that would not fit in an Uint will either cause an emulator crash or the loading to be aborted. Use the new TAG_o tag introduced in the previous commit to make sure that the attempt to create huge binary literals will generate a system_limit exception at run-time.
2011-08-03beam_load.c: Add overflow check of tag valuesBjörn Gustavsson
The handling of large values for other tags than TAG_i (integer) is buggy. Any tag value equal to or greater than 2^40 (5 bytes) will abort loading. Tag values fitting in 5 bytes will be truncated to 4 bytes values. Those bugs cause real problems because the bs_init2/6 and bs_init_bits/6 instructions unfortunately use TAG_u to encode literal sizes (using TAG_i would have been a better choice, but it is too late to change that now). Any binary size that cannot fit in an Uint should cause a system_limit exception at run-time, but instead the buggy handling will either cause an emulator crash (for values in the range 2^32 to 2^40-1) or abort loading. In this commit, implement overflow checking of tag values as a preparation for fixing the binary construction instructions. If any tag value cannot fit in an Uint (except for TAG_i), change the tag to the special TAG_o overflow tag.
2011-08-03beam_makeops: Add some sanity checksBjörn Gustavsson
We want to make sure that a tag/type name is not defined more than once and that we don't define too many primitive tags. Primitive tags must be named with lowercase letters (or they will be confused with variable names in transformations in the ops.tab file).
2011-08-03Fix construction of <<0:((1 bsl 32)-1)>>Björn Gustavsson
Attempting to construct <<0:((1 bsl 32)-1)>>, the largest bitstring allowed in a 32 bit emulator, would cause an emulator crash because of integer overflow. Fix the problem by using an Uint64 to avoid integer overflow. Do not attempt to handle construction of <<0:((1 bsl 64)-1>> in a 64-bit emulator, because that will certainly cause the emulator to terminate anyway because of insufficient memory.
2011-08-02Remove some superflous includes which caused inlined modules to have lots of ↵Lukas Larsson
compile warnings
2011-08-02Merge branch 'lukas/asn1/ber_encode_nif/OTP-9441' into majorLukas Larsson
* lukas/asn1/ber_encode_nif/OTP-9441: Update to use enif_alloc instead of malloc Make performance code more generic and migrate per/ber NBAP perormance suites to use the generic code Update code genaration to call nif/erlang depending on what is configured Remove export_all and only export is_nif_loadable Add documentation for ber encode nif optmization Fix bug in counting length of empty composite types Fix bug where composite types with more then one element would be encoded in reverse Add pubkey performance tests Update ber encode nif to use a linked list memry buffer Create a nif for ber encode Extract generic is_nif_loadable function from decode
2011-08-01Update to use enif_alloc instead of mallocLukas Larsson
2011-08-01Make performance code more generic and migrate per/ber NBAP perormance ↵Lukas Larsson
suites to use the generic code
2011-08-01Update code genaration to call nif/erlang depending on what is configuredLukas Larsson
2011-08-01Remove export_all and only export is_nif_loadableLukas Larsson
2011-08-01Add documentation for ber encode nif optmizationLukas Larsson
2011-08-01Fix bug in counting length of empty composite typesLukas Larsson
2011-08-01Fix bug where composite types with more then one element would be encoded in ↵Lukas Larsson
reverse
2011-08-01Add pubkey performance testsLukas Larsson
Add performance tests for cert_pem and dsa_pem. These tests are not automatically when testing asn1.
2011-08-01Update ber encode nif to use a linked list memry bufferLukas Larsson
The encoded ber binary is now a linked list of memory buffers which is written to from the back while allocating more segments as needed
2011-08-01Create a nif for ber encodeLukas Larsson
2011-08-01Extract generic is_nif_loadable function from decodeLukas Larsson
2011-08-01Merge branch 'lukas/public_key/use_asn1_nif/OTP-9414' into majorLukas Larsson
* lukas/public_key/use_asn1_nif/OTP-9414: Both encode and decode nifs are now available in the asn1rt Start using asn1 nifs for OTP-PUB-KEY.asn1 asn1 will use an erlang fallback if the nifs are not found