public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Mike Frysinger <vapier@gentoo.org>
To: newlib@sourceware.org
Subject: [PATCH] libgloss: merge epiphany into top-level Makefile
Date: Wed, 27 Dec 2023 20:45:53 -0500	[thread overview]
Message-ID: <20231228014553.13832-1-vapier@gentoo.org> (raw)

Avoid a recursive make to speed things up a bit.
A epiphany-elf build shows installed objects & libs produce same code.
---
 libgloss/Makefile.am           |   3 +
 libgloss/Makefile.in           | 502 +++++++++++++++++++++------------
 libgloss/configure             |  20 +-
 libgloss/configure.ac          |   6 +-
 libgloss/epiphany/Makefile.in  | 194 -------------
 libgloss/epiphany/Makefile.inc |  56 ++++
 6 files changed, 403 insertions(+), 378 deletions(-)
 delete mode 100644 libgloss/epiphany/Makefile.in
 create mode 100644 libgloss/epiphany/Makefile.inc

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index b15643c465f2..00a637a13831 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -81,6 +81,9 @@ endif
 if CONFIG_D30V
 include d30v/Makefile.inc
 endif
+if CONFIG_EPIPHANY
+include epiphany/Makefile.inc
+endif
 if CONFIG_FRV
 include frv/Makefile.inc
 endif
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index faf569a0f5b2..8856e9c0ff11 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -58,9 +58,7 @@ case "${target}" in
 	config_csky=true
 	;;
   epiphany-*-*)
-	AC_CONFIG_FILES([epiphany/Makefile])
-	subdirs="$subdirs epiphany"
-	config_testsuite=true
+	config_epiphany=true
 	;;
   i[[3456]]86-*-elf* | i[[3456]]86-*-coff*)
 	config_i386=true
@@ -233,7 +231,7 @@ AC_SUBST(subdirs)
 dnl These subdirs have converted to non-recursive make.  Hopefully someday all
 dnl the ports above will too!
 m4_foreach_w([SUBDIR], [
-  aarch64 arc arm bfin csky d30v frv i386 i960 iq2000 libnosys lm32
+  aarch64 arc arm bfin csky d30v epiphany frv i386 i960 iq2000 libnosys lm32
   m32r mcore mn10200 mn10300 moxie msp430
   nds32 nios2 riscv rl78 rx v850 visium wince xstormy16 xtensa
 ], [dnl
diff --git a/libgloss/epiphany/Makefile.in b/libgloss/epiphany/Makefile.in
deleted file mode 100644
index 6670b79a08f1..000000000000
--- a/libgloss/epiphany/Makefile.in
+++ /dev/null
@@ -1,194 +0,0 @@
-# Makefile for libgloss/epiphany
-
-# Copyright (c) 2011, 2012 Adapteva, Inc.
-# All rights reserved.
-
-# Contributor Jeremy Bennett <jeremy.bennett@embecosm.com> for Adapteva Inc
-
-# 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 Adapteva 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.
-
-# Standard proforma copied from libnosys
-DESTDIR =
-VPATH = @srcdir@
-srcdir = @srcdir@
-objdir = .
-srcroot = $(srcdir)/../..
-objroot = $(objdir)/../..
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-host_alias = @host_alias@
-target_alias = @target_alias@
-program_transform_name = @program_transform_name@
-
-bindir = @bindir@
-libdir = @libdir@
-tooldir = $(exec_prefix)/$(target_alias)
-
-# Multilib support variables.
-# TOP is used instead of MULTI{BUILD,SRC}TOP.
-MULTIDIRS =
-MULTISUBDIR =
-MULTIDO = true
-MULTICLEAN = true
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-SHELL =	/bin/sh
-
-CC = @CC@
-
-#AS = @AS@
-AS = `if [ -f ${objroot}/../gas/as-new ] ; \
-	then echo ${objroot}/../gas/as-new ; \
-	else echo as ; fi`
-
-AR = @AR@
-
-#LD = @LD@
-LD = `if [ -f ${objroot}/../ld/ld-new ] ; \
-	then echo ${objroot}/../ld/ld-new ; \
-	else echo ld ; fi`
-
-RANLIB = @RANLIB@
-
-OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
-	then echo ${objroot}/../binutils/objdump ; \
-	else t='$(program_transform_name)'; echo objdump | sed -e $$t ; fi`
-OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
-	then echo ${objroot}/../binutils/objcopy ; \
-	else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
-
-GCC_LDFLAGS = `if [ -d ${objroot}/../gcc ] ; \
-	then echo -L${objroot}/../gcc ; fi`
-
-NEWLIB_CFLAGS = `if [ -d ${objroot}/newlib ]; then echo -I${objroot}/newlib/targ-include -I${srcroot}/newlib/libc/include; fi`
-NEWLIB_LDFLAGS = `if [ -d ${objroot}/newlib ]; then echo -B${objroot}/newlib/ -L${objroot}/newlib/; fi`
-
-INCLUDES = -I. -I$(srcdir)/.. -I$(srcdir)/../../newlib/libc/machine/epiphany
-
-# Note that when building the library, ${MULTILIB} is not the way multilib
-# options are passed; they're passed in $(CFLAGS).
-CFLAGS_FOR_TARGET = ${MULTILIB} ${INCLUDES} ${NEWLIB_CFLAGS}
-LDFLAGS_FOR_TARGET = ${MULTILIB} ${NEWLIB_LDFLAGS}
-AR_FLAGS = qc
-
-.c.o:
-	$(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $<
-
-.C.o:
-	$(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $<
-.S.o:
-	$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -c $(CFLAGS) $<
-.s.o:
-	$(AS) $(ASFLAGS_FOR_TARGET) $(ASFLAGS) -o $*.o $<
-
-#
-# GCC knows to run the preprocessor on .S files before it assembles them.
-#
-.S.o:
-	$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -c $<
-
-#
-# this is a bogus target that'll produce an assembler from the
-# C source with the right compiler options. this is so we can
-# track down code generation or debug symbol bugs.
-#
-.c.s:
-	$(CC) $(CFLAGS_FOR_TARGET) -S $(INCLUDES) $(CFLAGS) $<
-
-# EPIPHANY specific stuff
-
-# Object files needed for all libraries
-COMMON_OBJS = access.o  \
-              close.o    \
-              environ.o  \
-              execve.o   \
-              fork.o     \
-              fstat.o    \
-              getpid.o   \
-              gettimeofday.o \
-              _isatty.o  \
-              kill.o     \
-              link.o     \
-              lseek.o    \
-              open.o     \
-              read.o     \
-              sbrk.o     \
-              stat.o     \
-              times.o    \
-              unlink.o   \
-              wait.o     \
-              write.o    \
-              _exit.o    \
-              epiphany-syscalls.o \
-              epiphany-ivthandlers.o
-
-UNUSED_OBJS = chown.o    \
-              errno.o    \
-              gettod.o   \
-              readlink.o \
-              symlink.o
-
-# Object files specific to particular targets.
-SIMOBJS = $(COMMON_OBJS)
-
-OUTPUTS = libepiphany.a crt0.o
-
-all: $(OUTPUTS)
-
-#
-# here's where we build the library for each target
-#
-
-libepiphany.a: $(SIMOBJS)
-	${AR} ${ARFLAGS} $@ $(SIMOBJS)
-	${RANLIB} $@
-
-_exit.o: _exit.S
-	$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) $(CFLAGS) -c $<
-
-doc:
-
-clean mostlyclean:
-	rm -f $(OUTPUTS) *.i *~ *.o *-test *.srec *.dis *.map *.x
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile config.status $(OUTPUTS)
-
-.PHONY: install info install-info clean-info
-install:
-	@for outputs in ${OUTPUTS}; do\
-	 mkdir -p $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
-	 $(INSTALL_PROGRAM) $${outputs} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
-	done
-info:
-install-info:
-clean-info:
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/epiphany/Makefile.inc b/libgloss/epiphany/Makefile.inc
new file mode 100644
index 000000000000..ad9fa30b410b
--- /dev/null
+++ b/libgloss/epiphany/Makefile.inc
@@ -0,0 +1,56 @@
+## Copyright (c) 2011, 2012 Adapteva, Inc.
+## All rights reserved.
+##
+## Contributor Jeremy Bennett <jeremy.bennett@embecosm.com> for Adapteva Inc
+##
+## 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 Adapteva 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.
+
+multilibtool_DATA += %D%/crt0.o
+libobjs_a_SOURCES += %D%/crt0.S
+
+multilibtool_LIBRARIES += %D%/libepiphany.a
+%C%_libepiphany_a_SOURCES = \
+	%D%/access.c \
+	%D%/close.c \
+	%D%/environ.c \
+	%D%/execve.c \
+	%D%/fork.c \
+	%D%/fstat.c \
+	%D%/getpid.c \
+	%D%/gettimeofday.c \
+	%D%/_isatty.c \
+	%D%/kill.c \
+	%D%/link.c \
+	%D%/lseek.c \
+	%D%/open.c \
+	%D%/read.c \
+	%D%/sbrk.c \
+	%D%/stat.c \
+	%D%/times.c \
+	%D%/unlink.c \
+	%D%/wait.c \
+	%D%/write.c \
+	%D%/_exit.S \
+	%D%/epiphany-syscalls.c \
+	%D%/epiphany-ivthandlers.S
-- 
2.43.0


             reply	other threads:[~2023-12-28  1:45 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-28  1:45 Mike Frysinger [this message]
2024-01-02 21:57 ` Jeff Johnston

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=20231228014553.13832-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).