From: Mike Frysinger <vapier@gentoo.org>
To: newlib@sourceware.org
Subject: [PATCH 1/6] newlib: move nano-malloc logic from build to source files
Date: Tue, 1 Mar 2022 20:36:18 -0500 [thread overview]
Message-ID: <20220302013623.368-2-vapier@gentoo.org> (raw)
In-Reply-To: <20220302013623.368-1-vapier@gentoo.org>
Simplify the build system logic a bit by moving the mallocr.c ->
nano-mallocr.c redirection from the Makefile to the source files.
This allows for consistent object name usage regardless of the
configuration options used in case a machine dir wants to define
its own override.
---
newlib/libc/stdlib/Makefile.am | 92 ++++++++++++----------------------
newlib/libc/stdlib/Makefile.in | 88 ++++++++++++--------------------
newlib/libc/stdlib/mallocr.c | 3 ++
3 files changed, 67 insertions(+), 116 deletions(-)
diff --git a/newlib/libc/stdlib/Makefile.am b/newlib/libc/stdlib/Makefile.am
index 50e22d90c0e0..950ad98ac134 100644
--- a/newlib/libc/stdlib/Makefile.am
+++ b/newlib/libc/stdlib/Makefile.am
@@ -83,34 +83,6 @@ GENERAL_SOURCES += \
wcstold.c
endif # HAVE_LONG_DOUBLE
-if NEWLIB_NANO_MALLOC
-MALIGNR=nano-malignr
-MALLOPTR=nano-malloptr
-PVALLOCR=nano-pvallocr
-VALLOCR=nano-vallocr
-FREER=nano-freer
-REALLOCR=nano-reallocr
-CALLOCR=nano-callocr
-CFREER=nano-cfreer
-MALLINFOR=nano-mallinfor
-MALLSTATSR=nano-mallstatsr
-MSIZER=nano-msizer
-MALLOCR=nano-mallocr
-else
-MALIGNR=malignr
-MALLOPTR=malloptr
-PVALLOCR=pvallocr
-VALLOCR=vallocr
-FREER=freer
-REALLOCR=reallocr
-CALLOCR=callocr
-CFREER=cfreer
-MALLINFOR=mallinfor
-MALLSTATSR=mallstatsr
-MSIZER=msizer
-MALLOCR=mallocr
-endif
-
EXTENDED_SOURCES = \
arc4random.c \
arc4random_uniform.c \
@@ -162,10 +134,10 @@ ELIX_2_SOURCES = \
wctob.c
ELIX_2_OBJS = \
- $(lpfx)$(MALIGNR).o \
- $(lpfx)$(MALLOPTR).o \
- $(lpfx)$(PVALLOCR).o \
- $(lpfx)$(VALLOCR).o
+ $(lpfx)malignr.o \
+ $(lpfx)malloptr.o \
+ $(lpfx)pvallocr.o \
+ $(lpfx)vallocr.o
ELIX_3_SOURCES = \
putenv.c \
@@ -196,10 +168,10 @@ endif
endif
# Because of how libtool moves objects around, mallocr must be built last.
-LIBADD_OBJS = $(lpfx)$(FREER).o $(lpfx)$(REALLOCR).o \
- $(lpfx)$(CALLOCR).o $(lpfx)$(CFREER).o \
- $(lpfx)$(MALLINFOR).o $(lpfx)$(MALLSTATSR).o \
- $(lpfx)$(MSIZER).o $(lpfx)$(MALLOCR).o
+LIBADD_OBJS = $(lpfx)freer.o $(lpfx)reallocr.o \
+ $(lpfx)callocr.o $(lpfx)cfreer.o \
+ $(lpfx)mallinfor.o $(lpfx)mallstatsr.o \
+ $(lpfx)msizer.o $(lpfx)mallocr.o
noinst_LIBRARIES = lib.a
lib_a_SOURCES = $(GENERAL_SOURCES) $(EXTENDED_SOURCES) $(ELIX_SOURCES)
@@ -208,41 +180,41 @@ lib_a_CFLAGS = $(AM_CFLAGS)
lib_a_DEPENDENCIES = $(LIBADD_OBJS) $(ELIX_OBJS)
LIB_COMPILE = $(AM_V_CC)$(COMPILE)
-$(lpfx)$(MALLOCR).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_MALLOC -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)mallocr.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_MALLOC -c $< -o $@
-$(lpfx)$(FREER).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_FREE -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)freer.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_FREE -c $< -o $@
-$(lpfx)$(REALLOCR).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_REALLOC -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)reallocr.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_REALLOC -c $< -o $@
-$(lpfx)$(CALLOCR).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_CALLOC -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)callocr.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_CALLOC -c $< -o $@
-$(lpfx)$(CFREER).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_CFREE -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)cfreer.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_CFREE -c $< -o $@
-$(lpfx)$(MALIGNR).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_MEMALIGN -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)malignr.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_MEMALIGN -c $< -o $@
-$(lpfx)$(VALLOCR).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_VALLOC -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)vallocr.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_VALLOC -c $< -o $@
-$(lpfx)$(PVALLOCR).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_PVALLOC -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)pvallocr.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_PVALLOC -c $< -o $@
-$(lpfx)$(MALLINFOR).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_MALLINFO -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)mallinfor.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_MALLINFO -c $< -o $@
-$(lpfx)$(MALLSTATSR).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_MALLOC_STATS -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)mallstatsr.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_MALLOC_STATS -c $< -o $@
-$(lpfx)$(MSIZER).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_MALLOC_USABLE_SIZE -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)msizer.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_MALLOC_USABLE_SIZE -c $< -o $@
-$(lpfx)$(MALLOPTR).o: $(MALLOCR).c
- $(LIB_COMPILE) -DDEFINE_MALLOPT -c $(srcdir)/$(MALLOCR).c -o $@
+$(lpfx)malloptr.o: mallocr.c
+ $(LIB_COMPILE) -DDEFINE_MALLOPT -c $< -o $@
$(lpfx)dtoa.o: dtoa.c mprec.h
$(lpfx)ldtoa.o: ldtoa.c mprec.h gdtoa.h
diff --git a/newlib/libc/stdlib/mallocr.c b/newlib/libc/stdlib/mallocr.c
index 6167433c8e2c..4b53997a34b0 100644
--- a/newlib/libc/stdlib/mallocr.c
+++ b/newlib/libc/stdlib/mallocr.c
@@ -1,5 +1,8 @@
+#include <newlib.h>
#ifdef MALLOC_PROVIDED
int _dummy_mallocr = 1;
+#elif defined(_NANO_MALLOC)
+# include "nano-mallocr.c"
#else
/* ---------- To make a malloc.h, start cutting here ------------ */
--
2.34.1
next prev parent reply other threads:[~2022-03-02 1:36 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-02 1:36 [PATCH 0/6] rework malloc logic from build rules " Mike Frysinger
2022-03-02 1:36 ` Mike Frysinger [this message]
2022-03-02 1:36 ` [PATCH 2/6] newlib: rename mallocr.c to _mallocr.c Mike Frysinger
2022-03-02 1:36 ` [PATCH 3/6] newlib: xstormy16: fix mallopt definition & mstats handling Mike Frysinger
2022-03-02 9:46 ` Corinna Vinschen
2022-03-09 9:23 ` Mike Frysinger
2022-03-10 8:12 ` Corinna Vinschen
2022-03-10 8:00 ` Sebastian Huber
2022-03-02 1:36 ` [PATCH 4/6] newlib: xstormy16: break up mallocr stubs Mike Frysinger
2022-03-02 1:36 ` [PATCH 5/6] newlib: xstormy16: move malloc multiplex logic from build to source files Mike Frysinger
2022-03-02 1:36 ` [PATCH 6/6] newlib: libc: move stdlib " Mike Frysinger
2022-03-02 9:47 ` [PATCH 0/6] rework malloc logic from build rules " Corinna Vinschen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220302013623.368-2-vapier@gentoo.org \
--to=vapier@gentoo.org \
--cc=newlib@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).