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
next 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).