File 1012-logger.hrl-use-fully-qualifier-call-to-erlang-apply.patch of Package erlang
From 09e1a36a12fa515c66b816bc0c318c73b497a791 Mon Sep 17 00:00:00 2001
From: Maxim Fedorov <maximfca@gmail.com>
Date: Sat, 17 Oct 2020 19:05:06 -0700
Subject: [PATCH] logger.hrl: use fully qualifier call to erlang:apply
When a module has local apply/3 function, logging macros
do not work correctly due to "ambiguous call of overridden pre
R14 auto-imported BIF apply/3"
---
lib/kernel/include/logger.hrl | 2 +-
lib/kernel/test/logger_SUITE.erl | 8 +++++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/lib/kernel/include/logger.hrl b/lib/kernel/include/logger.hrl
index b09977e0f2..bd17f7efc4 100644
--- a/lib/kernel/include/logger.hrl
+++ b/lib/kernel/include/logger.hrl
@@ -46,7 +46,7 @@
-define(DO_LOG(Level,Args),
case logger:allow(Level,?MODULE) of
true ->
- apply(logger,macro_log,[?LOCATION,Level|Args]);
+ erlang:apply(logger,macro_log,[?LOCATION,Level|Args]);
false ->
ok
end).
diff --git a/lib/kernel/test/logger_SUITE.erl b/lib/kernel/test/logger_SUITE.erl
index 9f2e0e2f3b..8513cf2936 100644
--- a/lib/kernel/test/logger_SUITE.erl
+++ b/lib/kernel/test/logger_SUITE.erl
@@ -68,7 +68,7 @@ init_per_testcase(_TestCase, Config) ->
[{logger_config,PC}|Config].
end_per_testcase(Case, Config) ->
- try apply(?MODULE,Case,[cleanup,Config])
+ try erlang:apply(?MODULE,Case,[cleanup,Config])
catch error:undef -> ok
end,
ok.
@@ -1408,3 +1408,9 @@ check_config(crash) ->
erlang:error({badmatch,3});
check_config(_) ->
ok.
+
+%% this function is also a test. When logger.hrl used non-qualified
+%% apply/3 call, any module that was implementing apply/3 could
+%% not use any logging macro
+apply(_Any, _Any, _Any) ->
+ ok.
--
2.26.2