From patchwork Thu Dec 28 01:45:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 82903 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3AE113857B81 for ; Thu, 28 Dec 2023 01:46:18 +0000 (GMT) X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) by sourceware.org (Postfix) with ESMTP id C1D883858C31 for ; Thu, 28 Dec 2023 01:45:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C1D883858C31 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gentoo.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gentoo.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C1D883858C31 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:ea4a:1:5054:ff:fec7:86e4 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703727958; cv=none; b=srkBQbnmUKmvN6Wxvop5JUka3cEF5RuRWyuFN+z75zY8iV2d1xfEbzF1ebz+LxDT6k41yibdgYlnL9kL3KqLvjxBRSdy41gRncO7IG6EGia8Tv4ElaFfcyM54uTGKBfuF34hzQ6c56xD/IO4utO7hluHEoCz16U1VJdyN4kVrg4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703727958; c=relaxed/simple; bh=w5njHd3ShlIFjwH4C5m6lc0aVRgZuIpD+z/3GA0snNE=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=sW4OjmZGFEwPg5Ojx/8iMHUh4CSs1uiXipTOW2EZcTUDVCDNMI27u69GPUcwk1B/tyw80wjxTq0NolmyJmVC5rgdDG9QFlxpYVtTk0sU/VXfbszEeBSBufQnjxwYaFm7aHkjFOdirLvBXTJPD0puqAR7+MiMaOzZPBlXoNriVg4= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by smtp.gentoo.org (Postfix, from userid 559) id 389E7335D77; Thu, 28 Dec 2023 01:45:55 +0000 (UTC) From: Mike Frysinger To: newlib@sourceware.org Subject: [PATCH] libgloss: merge epiphany into top-level Makefile Date: Wed, 27 Dec 2023 20:45:53 -0500 Message-ID: <20231228014553.13832-1-vapier@gentoo.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: newlib-bounces+patchwork=sourceware.org@sourceware.org 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 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 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