Compile stdlib C files individually
authorAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Fri, 26 Feb 2016 10:46:44 +0000 (10:46 +0000)
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Fri, 26 Feb 2016 14:41:53 +0000 (14:41 +0000)
All C files of stdlib were included into std.c, which was the file
that the Makefile actually compiled. This is a poor way of compiling
all the files and, while it may work fine most times, it's
discouraged.

In this particular case, each C file included its own headers, which
were later included into std.c. For example, this caused problems
because a duplicated typedef of u_short in both subr_prf.c and
types.h. While that may require an issue on its own, this kind of
problems are avoided if all C files are as independent as possible.

Change-Id: I9a7833fd2933003f19a5d7db921ed8542ea2d04a

Makefile
lib/stdlib/std.c [deleted file]

index ac688ba882d72b796df178dcf9e06fd69641defa..81991b80f27f0689de4d62e9c5ef2c9961676b38 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -197,7 +197,19 @@ BL_COMMON_SOURCES  +=      common/bl_common.c                      \
                                lib/aarch64/cache_helpers.S             \
                                lib/aarch64/misc_helpers.S              \
                                lib/aarch64/xlat_helpers.c              \
-                               lib/stdlib/std.c                        \
+                               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
 
 INCLUDES               +=      -Iinclude/bl1                   \
diff --git a/lib/stdlib/std.c b/lib/stdlib/std.c
deleted file mode 100644 (file)
index 5f6ef75..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2013-2014, 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.
- */
-
-
-/* Include the various implemented functions */
-#include "abort.c"
-#include "assert.c"
-#include "exit.c"
-#include "mem.c"
-#include "printf.c"
-#include "putchar.c"
-#include "puts.c"
-#include "sscanf.c"
-#include "strchr.c"
-#include "strcmp.c"
-#include "strlen.c"
-#include "strncmp.c"
-#include "subr_prf.c"