Move stdlib header files to include/lib/stdlib

* Move stdlib header files from include/stdlib to include/lib/stdlib for
  consistency with other library headers.
* Fix checkpatch paths to continue excluding stdlib files.
* Create stdlib.mk to define the stdlib source files and include directories.
* Include stdlib.mk from the top level Makefile.
* Update stdlib header path in the fip_create Makefile.
* Update porting-guide.md with the new paths.

Change-Id: Ia92c2dc572e9efb54a783e306b5ceb2ce24d27fa
This commit is contained in:
Dan Handley 2016-06-02 17:15:13 +01:00
parent a7e530331d
commit f0b489c1d2
31 changed files with 77 additions and 28 deletions

View File

@ -112,11 +112,26 @@ CHECK_IGNORE := --ignore COMPLEX_MACRO \
--ignore GIT_COMMIT_ID
CHECKPATCH_ARGS := --no-tree --no-signoff ${CHECK_IGNORE}
CHECKCODE_ARGS := --no-patch --no-tree --no-signoff ${CHECK_IGNORE}
# Do not check the coding style on C library files or documentation files
INCLUDE_DIRS_TO_CHECK := $(sort $(filter-out include/stdlib, $(wildcard include/*)))
LIB_DIRS_TO_CHECK := $(sort $(filter-out lib/stdlib, $(wildcard lib/*)))
ROOT_DIRS_TO_CHECK := $(sort $(filter-out lib include docs %.md, $(wildcard *)))
CHECK_PATHS := ${ROOT_DIRS_TO_CHECK} ${INCLUDE_DIRS_TO_CHECK} ${LIB_DIRS_TO_CHECK}
# Do not check the coding style on imported library files or documentation files
INC_LIB_DIRS_TO_CHECK := $(sort $(filter-out \
include/lib/stdlib, \
$(wildcard include/lib/*)))
INC_DIRS_TO_CHECK := $(sort $(filter-out \
include/lib, \
$(wildcard include/*)))
LIB_DIRS_TO_CHECK := $(sort $(filter-out \
lib/stdlib, \
$(wildcard lib/*)))
ROOT_DIRS_TO_CHECK := $(sort $(filter-out \
lib \
include \
docs \
%.md, \
$(wildcard *)))
CHECK_PATHS := ${ROOT_DIRS_TO_CHECK} \
${INC_DIRS_TO_CHECK} \
${INC_LIB_DIRS_TO_CHECK} \
${LIB_DIRS_TO_CHECK}
################################################################################
@ -193,26 +208,15 @@ LDFLAGS += --gc-sections
################################################################################
# Common sources and include directories
################################################################################
include lib/stdlib/stdlib.mk
BL_COMMON_SOURCES += common/bl_common.c \
common/tf_printf.c \
common/aarch64/debug.S \
lib/aarch64/cache_helpers.S \
lib/aarch64/misc_helpers.S \
lib/stdlib/abort.c \
lib/stdlib/assert.c \
lib/stdlib/exit.c \
lib/stdlib/mem.c \
lib/stdlib/printf.c \
lib/stdlib/putchar.c \
lib/stdlib/puts.c \
lib/stdlib/sscanf.c \
lib/stdlib/strchr.c \
lib/stdlib/strcmp.c \
lib/stdlib/strlen.c \
lib/stdlib/strncmp.c \
lib/stdlib/subr_prf.c \
plat/common/aarch64/platform_helpers.S
plat/common/aarch64/platform_helpers.S \
${STDLIB_SRCS}
INCLUDES += -Iinclude/bl1 \
-Iinclude/bl31 \
@ -227,8 +231,6 @@ INCLUDES += -Iinclude/bl1 \
-Iinclude/lib/aarch64 \
-Iinclude/lib/cpus/aarch64 \
-Iinclude/plat/common \
-Iinclude/stdlib \
-Iinclude/stdlib/sys \
${PLAT_INCLUDES} \
${SPD_INCLUDES}

View File

@ -2035,12 +2035,12 @@ library only contains those C library definitions required by the local
implementation. If more functionality is required, the needed library functions
will need to be added to the local implementation.
Versions of [FreeBSD] headers can be found in `include/stdlib`. Some of these
headers have been cut down in order to simplify the implementation. In order to
minimize changes to the header files, the [FreeBSD] layout has been maintained.
The generic C library definitions can be found in `include/stdlib` with more
system and machine specific declarations in `include/stdlib/sys` and
`include/stdlib/machine`.
Versions of [FreeBSD] headers can be found in `include/lib/stdlib`. Some of
these headers have been cut down in order to simplify the implementation. In
order to minimize changes to the header files, the [FreeBSD] layout has been
maintained. The generic C library definitions can be found in
`include/lib/stdlib` with more system and machine specific declarations in
`include/lib/stdlib/sys` and `include/lib/stdlib/machine`.
The local C library implementations can be found in `lib/stdlib`. In order to
extend the C library these files may need to be modified. It is recommended to

47
lib/stdlib/stdlib.mk Normal file
View File

@ -0,0 +1,47 @@
#
# Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# Neither the name of ARM nor the names of its contributors may be used
# to endorse or promote products derived from this software without specific
# prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
STDLIB_SRCS := $(addprefix lib/stdlib/, \
abort.c \
assert.c \
exit.c \
mem.c \
printf.c \
putchar.c \
puts.c \
sscanf.c \
strchr.c \
strcmp.c \
strlen.c \
strncmp.c \
subr_prf.c)
INCLUDES += -Iinclude/lib/stdlib \
-Iinclude/lib/stdlib/sys

View File

@ -69,7 +69,7 @@ ${PROJECT}: ${OBJECTS} Makefile
# path. This avoids conflicts with definitions in the compiler standard
# include path.
#
uuid.h : ../../include/stdlib/sys/uuid.h
uuid.h : ../../include/lib/stdlib/sys/uuid.h
$(call SHELL_COPY,$<,$@)
firmware_image_package.h : ../../include/common/firmware_image_package.h