public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: newlib@sourceware.org
Subject: [PATCH] newlib: separate out libg from libc
Date: Wed, 16 Feb 2022 23:45:32 -0500	[thread overview]
Message-ID: <20220217044532.10798-1-vapier@gentoo.org> (raw)

Make this a separate target from libc so that we can migrate libc over
to automake more easily.  Having it integrated into the libc target is
difficult to handle when using automake rules which expect a one-to-one
mapping between names & inputs.
---
 newlib/Makefile.am | 13 +++++++++----
 newlib/Makefile.in | 21 +++++++++++----------
 2 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/newlib/Makefile.am b/newlib/Makefile.am
index 6d3b60b330b0..a0f76865e640 100644
--- a/newlib/Makefile.am
+++ b/newlib/Makefile.am
@@ -4,6 +4,7 @@ AUTOMAKE_OPTIONS = dejagnu
 ACLOCAL_AMFLAGS = -I . -I .. -I ../config
 
 # Variables that will accumulate in subdirs.
+CLEANFILES =
 PHONY =
 SUFFIXES =
 info_TEXINFOS =
@@ -70,6 +71,7 @@ noinst_DATA += stmp-targ-include
 
 toollib_LIBRARIES = libm.a \
 	libc.a
+noinst_DATA += libg.a
 if HAVE_MULTISUBDIR
 BUILD_MULTISUBDIR = $(builddir)$(MULTISUBDIR)
 if HAVE_CRT0
@@ -80,6 +82,8 @@ endif
 
 toollib_DATA = $(CRT0) $(CRT1)
 
+CLEANFILES += libg.a
+
 # The functions ldexp, frexp and modf are traditionally supplied in
 # both libc.a and libm.a.  We build them in libm.a and copy them over,
 # along with some required supporting routines.
@@ -99,18 +103,20 @@ MATHOBJS_IN_LIBC = \
 	$(lpfx)s_copysign.o $(lpfx)sf_copysign.o
 
 libc.a: libc/libc.a libm.a
-	rm -rf libc.a libg.a tmp
+	rm -rf libc.a tmp
 	mkdir tmp
 	cd tmp; \
 	 $(AR) x ../libm.a $(MATHOBJS_IN_LIBC) ; \
 	 $(AR) x ../libc/libc.a ; \
 	 $(AR) $(AR_FLAGS) ../$@ *.o
 	$(RANLIB) libc.a
-	ln libc.a libg.a >/dev/null 2>/dev/null || cp libc.a libg.a
 	rm -rf tmp
 
 libc/libc.a: ; @true
 
+libg.a: libc.a
+	ln libc.a libg.a >/dev/null 2>/dev/null || cp libc.a libg.a
+
 libm.a: libm/libm.a
 	rm -f $@
 	ln $< $@ >/dev/null 2>/dev/null || cp $< $@
@@ -247,13 +253,12 @@ stmp-targ-include: config.status
 	$(MAKE) targ-include/newlib.h
 	touch $@
 
-CLEANFILES = stmp-targ-include
+CLEANFILES += stmp-targ-include
 
 ## We hook install-multi because this Makefile doesn't have any exec targets,
 ## only data targets.  If that ever changes, this should be removed and the
 ## install-exec-local in ../multilib.am will kick in.
 install-data-local: install-toollibLIBRARIES install-multi
-	rm -f $(DESTDIR)$(toollibdir)/libg.a
 	ln $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a >/dev/null 2>/dev/null || cp $(DESTDIR)$(toollibdir)/libc.a $(DESTDIR)$(toollibdir)/libg.a
 	-if [ -z "$(MULTISUBDIR)" ]; then \
 	  $(mkinstalldirs) $(DESTDIR)$(tooldir)/include; \
-- 
2.34.1


             reply	other threads:[~2022-02-17  4:45 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-17  4:45 Mike Frysinger [this message]
2022-02-17 14:08 ` Corinna Vinschen
2022-02-24  3:06 ` [PATCH/committed] newlib: fix multilib libg.a parallel builds Mike Frysinger

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=20220217044532.10798-1-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).