diff options
author | Björn-Egil Dahlberg <[email protected]> | 2013-07-15 17:30:33 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2013-07-15 17:30:33 +0200 |
commit | c6f452c340ad1749ce91c037a4820ea0feb0a644 (patch) | |
tree | 771d4ce8009e17c42c02b0f3504f3d845e51ce8c /erts/emulator/beam/erl_bif_info.c | |
parent | 625748f78566ba8638f494fc09be4311672e473b (diff) | |
parent | c250cec28d4cd5dbe68abd8835730eaf81aba086 (diff) | |
download | otp-c6f452c340ad1749ce91c037a4820ea0feb0a644.tar.gz otp-c6f452c340ad1749ce91c037a4820ea0feb0a644.tar.bz2 otp-c6f452c340ad1749ce91c037a4820ea0feb0a644.zip |
Merge branch 'egil/erts/aggregate-system-traceability/OTP-11196' into maint
* egil/erts/aggregate-system-traceability/OTP-11196:
Check for native code without loading module
Fix erlang:system_info(compile_info)
Fix system_information get_beam_name/0
Add beam dynamic libraries to system_information
Add system_information testsuite
Add system information aggregate
Refactor away ?line macro in code_SUITE
Fix tests for erts app-file
Add erts app-file
erts: Add cflags, ldflags and config.h into executable
Diffstat (limited to 'erts/emulator/beam/erl_bif_info.c')
-rwxr-xr-x | erts/emulator/beam/erl_bif_info.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_bif_info.c b/erts/emulator/beam/erl_bif_info.c index e4fbd21c0e..673dfc658c 100755 --- a/erts/emulator/beam/erl_bif_info.c +++ b/erts/emulator/beam/erl_bif_info.c @@ -30,6 +30,7 @@ #include "bif.h" #include "big.h" #include "erl_version.h" +#include "erl_compile_flags.h" #include "erl_db_util.h" #include "erl_message.h" #include "erl_binary.h" @@ -2610,6 +2611,31 @@ BIF_RETTYPE system_info_1(BIF_ALIST_1) BIF_RET(am_true); } #endif + else if (ERTS_IS_ATOM_STR("compile_info",BIF_ARG_1)) { + Uint sz; + Eterm res = NIL, tup, text; + Eterm *hp = HAlloc(BIF_P, 3*(2 + 3) + /* three 2-tuples and three cons */ + 2*(strlen(erts_build_flags_CONFIG_H) + + strlen(erts_build_flags_CFLAGS) + + strlen(erts_build_flags_LDFLAGS))); + + sz = strlen(erts_build_flags_CONFIG_H); + text = buf_to_intlist(&hp, erts_build_flags_CONFIG_H, sz, NIL); + tup = TUPLE2(hp, am_config_h, text); hp += 3; + res = CONS(hp, tup, res); hp += 2; + + sz = strlen(erts_build_flags_CFLAGS); + text = buf_to_intlist(&hp, erts_build_flags_CFLAGS, sz, NIL); + tup = TUPLE2(hp, am_cflags, text); hp += 3; + res = CONS(hp, tup, res); hp += 2; + + sz = strlen(erts_build_flags_LDFLAGS); + text = buf_to_intlist(&hp, erts_build_flags_LDFLAGS, sz, NIL); + tup = TUPLE2(hp, am_ldflags, text); hp += 3; + res = CONS(hp, tup, res); hp += 2; + + BIF_RET(res); + } BIF_ERROR(BIF_P, BADARG); } |