Improve MULTI_CONSOLE_API deprecation warnings
authorDan Handley <dan.handley@arm.com>
Tue, 27 Feb 2018 16:03:58 +0000 (16:03 +0000)
committerDan Handley <dan.handley@arm.com>
Thu, 1 Mar 2018 16:14:29 +0000 (16:14 +0000)
commitbc1a03c7a6db40a1ab86192675aa47d17afb7f4c
tree978a89490beddcd66df69f60bc1466b4d297777c
parent97924e4521dbc1002f7b13302fd350c00da36b27
Improve MULTI_CONSOLE_API deprecation warnings

For platforms that have not migrated to MULTI_CONSOLE_API == 1, there
are a lot of confusing deprecated declaration warnings relating to
use of console_init() and console_uninit(). Some of these relate to use
by the generic code, not the platform code. These functions are not really
deprecated but *removed* when MULTI_CONSOLE_API == 1.

This patch consolidates these warnings into a single preprocessor warning.
The __deprecated attribute is removed from the console_init() and
console_uninit() declarations.

For preprocessor warnings like this to not cause fatal build errors,
this patch adds -Wno-error=cpp to the build flags when
ERROR_DEPRECATED == 0.
This option (and -Wno-error=deprecated-declarations) is now added to
CPPFLAGS instead of TF_CFLAGS to ensure the build flags are used in the
assembler as well as the compiler.

This patch also disentangles the MULTI_CONSOLE_API and ERROR_DEPRECATED
build flags by defaulting MULTI_CONSOLE_API to 0 instead of
ERROR_DEPRECATED. This allows platforms that have not migrated to
MULTI_CONSOLE_API to use ERROR_DEPRECATED == 1 to emit a more meaningful
build error.

Finally, this patch bans use of MULTI_CONSOLE_API == 1 and AARCH32, since
the AArch32 console implementation does not support
MULTI_CONSOLE_API == 1.

Change-Id: If762165ddcb90c28aa7a4951aba70cb15c2b709c
Signed-off-by: Dan Handley <dan.handley@arm.com>
Makefile
drivers/console/aarch64/deprecated_console.S
include/drivers/console.h
make_helpers/defaults.mk