From: Jeff Johnston <jjohnstn@redhat.com>
To: Mike Frysinger <vapier@gentoo.org>
Cc: newlib@sourceware.org
Subject: Re: [PATCH] libgloss: merge epiphany into top-level Makefile
Date: Tue, 2 Jan 2024 16:57:24 -0500 [thread overview]
Message-ID: <CAOox84u-NpdcS1GO7kNwy8KTUUSB5q2ppCXSFNe2zNVMuEjPKw@mail.gmail.com> (raw)
In-Reply-To: <20231228014553.13832-1-vapier@gentoo.org>
[-- Attachment #1: Type: text/plain, Size: 11914 bytes --]
Feel free to merge. Thanks.
-- Jeff J.
On Wed, Dec 27, 2023 at 8:46 PM Mike Frysinger <vapier@gentoo.org> 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 <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
>
>
prev parent reply other threads:[~2024-01-02 21:57 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-28 1:45 Mike Frysinger
2024-01-02 21:57 ` Jeff Johnston [this message]
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=CAOox84u-NpdcS1GO7kNwy8KTUUSB5q2ppCXSFNe2zNVMuEjPKw@mail.gmail.com \
--to=jjohnstn@redhat.com \
--cc=newlib@sourceware.org \
--cc=vapier@gentoo.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).