Feel free to merge. Thanks. -- Jeff J. On Wed, Dec 27, 2023 at 8:46 PM Mike Frysinger wrote: > 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 > -- > 2.43.0 > >