libc: Optimize malloc() initialization

The BSPs provide memory for the separate C Program Heap initialization
via _Memory_Get().  Most BSPs provide exactly one memory area.  Only two
BSPs provide more than one memory area (arm/altera-cyclone-v and
bsps/powerpc/mpc55xxevb).  Only if more than one memory area is
provided, there is a need to use _Heap_Extend().  Provide two
implementations to initialize the separate C Program Heap and let the
BSP select one of the implementations based on the number of provided
memory areas.  This gets rid of a dependency on _Heap_Extend().  It
also avoids dead code sections for most BSPs.

Change licence to BSD-2-Clause according to file history.

Update #3053.
This commit is contained in:
Sebastian Huber
2020-04-08 17:14:41 +02:00
parent 3d0620b607
commit d7205f0083
19 changed files with 322 additions and 103 deletions

View File

@@ -139,6 +139,7 @@ source:
- bsps/shared/irq/irq-default-handler.c
- bsps/shared/start/bsp-fdt.c
- bsps/shared/start/gettargethash-default.c
- bsps/shared/start/mallocinitmulti.c
- bsps/shared/start/sbrk.c
- bsps/shared/start/stackalloc.c
- bsps/shared/start/wkspaceinitmulti.c

View File

@@ -106,6 +106,7 @@ source:
- bsps/shared/start/bsp-fdt.c
- bsps/shared/start/bspfatal-default.c
- bsps/shared/start/gettargethash-default.c
- bsps/shared/start/mallocinitone.c
- bsps/shared/start/sbrk.c
- bsps/shared/start/stackalloc.c
- bsps/shared/start/wkspaceinitone.c

View File

@@ -56,6 +56,7 @@ source:
- bsps/shared/start/bsp-fdt.c
- bsps/shared/start/bspfatal-default.c
- bsps/shared/start/gettargethash-default.c
- bsps/shared/start/mallocinitone.c
- bsps/shared/start/sbrk.c
- bsps/shared/start/stackalloc.c
- bsps/shared/start/wkspaceinitone.c

View File

@@ -80,6 +80,7 @@ source:
- bsps/shared/irq/irq-default-handler.c
- bsps/shared/start/bspfatal-default.c
- bsps/shared/start/gettargethash-default.c
- bsps/shared/start/mallocinitone.c
- bsps/shared/start/sbrk.c
- bsps/shared/start/wkspaceinitone.c
type: build

View File

@@ -11,5 +11,6 @@ install: []
links: []
source:
- bsps/shared/start/bspgetworkarea-default.c
- bsps/shared/start/mallocinitone.c
- bsps/shared/start/wkspaceinitone.c
type: build

View File

@@ -94,6 +94,7 @@ source:
- bsps/shared/irq/irq-default-handler.c
- bsps/shared/start/bspfatal-default.c
- bsps/shared/start/gettargethash-default.c
- bsps/shared/start/mallocinitmulti.c
- bsps/shared/start/stackalloc.c
- bsps/shared/start/wkspaceinitmulti.c
type: build

View File

@@ -11,5 +11,6 @@ install: []
links: []
source:
- bsps/powerpc/shared/start/bspgetworkarea.c
- bsps/shared/start/mallocinitone.c
- bsps/shared/start/wkspaceinitone.c
type: build

View File

@@ -72,6 +72,7 @@ source:
- bsps/shared/start/bsp-fdt.c
- bsps/shared/start/bspfatal-default.c
- bsps/shared/start/gettargethash-default.c
- bsps/shared/start/mallocinitone.c
- bsps/shared/start/sbrk.c
- bsps/shared/start/wkspaceinitone.c
type: build

View File

@@ -46,6 +46,7 @@ source:
- bsps/shared/start/bspfatal-default.c
- bsps/shared/start/bspreset-empty.c
- bsps/shared/start/gettargethash-default.c
- bsps/shared/start/mallocinitone.c
- bsps/shared/start/sbrk.c
- bsps/shared/start/wkspaceinitone.c
type: build

View File

@@ -10,6 +10,7 @@ includes: []
install: []
links: []
source:
- bsps/shared/start/mallocinitone.c
- bsps/shared/start/wkspaceinitone.c
- bsps/sparc/shared/start/bspgetworkarea.c
type: build

View File

@@ -675,7 +675,6 @@ source:
- cpukit/libcsupport/src/malloc.c
- cpukit/libcsupport/src/malloc_deferred.c
- cpukit/libcsupport/src/malloc_dirtier.c
- cpukit/libcsupport/src/malloc_initialize.c
- cpukit/libcsupport/src/malloc_walk.c
- cpukit/libcsupport/src/mallocdirtydefault.c
- cpukit/libcsupport/src/mallocextenddefault.c