From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) by sourceware.org (Postfix) with ESMTP id 49A30385842C for ; Wed, 21 Dec 2022 01:58:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 49A30385842C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gentoo.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gentoo.org Received: by smtp.gentoo.org (Postfix, from userid 559) id A3E90341608; Wed, 21 Dec 2022 01:58:16 +0000 (UTC) From: Mike Frysinger To: newlib@sourceware.org Subject: [PATCH 1/4] libgloss: merge aarch64 into top-level Makefile Date: Tue, 20 Dec 2022 20:58:06 -0500 Message-Id: <20221221015809.4154-2-vapier@gentoo.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221015809.4154-1-vapier@gentoo.org> References: <20221221015809.4154-1-vapier@gentoo.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,JMQ_SPF_NEUTRAL,KAM_DMARC_STATUS,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Avoid a recursive make to speed things up a bit. --- libgloss/Makefile.am | 4 + libgloss/Makefile.in | 333 ++++++++++++++++++++----- libgloss/aarch64/Makefile.in | 166 ------------ libgloss/aarch64/Makefile.inc | 34 +++ libgloss/aarch64/cpu-init/Makefile.in | 107 -------- libgloss/aarch64/cpu-init/Makefile.inc | 20 ++ libgloss/configure | 20 +- libgloss/configure.ac | 5 +- 8 files changed, 342 insertions(+), 347 deletions(-) delete mode 100644 libgloss/aarch64/Makefile.in create mode 100644 libgloss/aarch64/Makefile.inc delete mode 100644 libgloss/aarch64/cpu-init/Makefile.in create mode 100644 libgloss/aarch64/cpu-init/Makefile.inc diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am index 5464eb8bdb81..5b5f0fd541ae 100644 --- a/libgloss/Makefile.am +++ b/libgloss/Makefile.am @@ -6,6 +6,7 @@ ACLOCAL_AMFLAGS = -I . -I .. -I ../config bin_PROGRAMS = check_PROGRAMS = info_TEXINFOS = +CLEANFILES = PHONY = SUBDIRS = @subdirs@ . @@ -59,6 +60,9 @@ TEXINFO_TEX = ../texinfo/texinfo.tex if HAVE_DOC include doc/Makefile.inc endif +if CONFIG_AARCH64 +include aarch64/Makefile.inc +endif if CONFIG_BFIN include bfin/Makefile.inc endif diff --git a/libgloss/aarch64/Makefile.in b/libgloss/aarch64/Makefile.in deleted file mode 100644 index 980c75858da3..000000000000 --- a/libgloss/aarch64/Makefile.in +++ /dev/null @@ -1,166 +0,0 @@ -# Copyright (c) 2012 ARM Ltd. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. 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. -# 3. The name of the company may not be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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. - -DESTDIR = -VPATH = @srcdir@ @srcdir@/.. -srcdir = @srcdir@ -abs_srcdir = @abs_srcdir@ -objdir = . -srcroot = $(srcdir)/../.. -objroot = $(objdir)/../.. - -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -host_alias = @host_alias@ -target_alias = @target_alias@ - -bindir = @bindir@ -libdir = @libdir@ -tooldir = $(exec_prefix)/$(target_alias) - -objtype = @AARCH64_OBJTYPE@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ - -# Multilib support variables. -# TOP is used instead of MULTI{BUILD,SRC}TOP. -MULTISRCTOP = -MULTIBUILDTOP = -MULTIDIRS = -MULTISUBDIR = -MULTIDO = true -MULTICLEAN = true - -SHELL = /bin/sh - -mkinstalldirs = $(SHELL) $(srcroot)/mkinstalldirs - -CC = @CC@ - -AS = @AS@ -AR = @AR@ -LD = @LD@ -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` - -OBJS = ftruncate.o libcfunc.o syscalls.o truncate.o _exit.o _kill.o -CRT0 = crt0.o -CRT0_INSTALL = install-crt0 - -RDIMON_CRT0 = rdimon-crt0.o -RDIMON_BSP = librdimon.a -RDIMON_OBJS = $(patsubst %,rdimon-%,$(OBJS)) -RDIMON_SCRIPTS = rdimon.specs \ - aem-ve.specs \ - aem-validation.specs \ - aem-v8-r.specs -RDIMON_INSTALL = install-rdimon - -# Host specific makefile fragment comes in here. -@host_makefile_frag@ - -# -# build a test program for each target board. Just trying to get -# it to link is a good test, so we ignore all the errors for now. -# - -all: ${CRT0} ${RDIMON_CRT0} ${RDIMON_BSP} ${RDIMON_SCRIPTS} - -# -# here's where we build the test programs for each target -# -.PHONY: test -test: - -# -crt0.o: crt0.S - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -o $@ -c $< - -rdimon-crt0.o: crt0.S - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $< - -#rdimon-trap.o: trap.S -# $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-_exit.o: _exit.c - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-ftruncate.o: ftruncate.c - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-_kill.o: _kill.c - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-libcfunc.o: libcfunc.c - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-syscalls.o: syscalls.c - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-truncate.o: truncate.c - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $< - -$(RDIMON_BSP): $(RDIMON_OBJS) - ${AR} ${ARFLAGS} $@ $^ - ${RANLIB} $@ - -clean mostlyclean: - rm -f a.out core *.i *.o *-test *.srec *.dis *.x $(SIM_BSP) ${RDIMON_SCRIPTS} - -distclean maintainer-clean realclean: clean - rm -f Makefile *~ - -.PHONY: install info install-info clean-info -install: ${CRT0_INSTALL} ${RDIMON_INSTALL} - -install-crt0: - ${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR} - ${INSTALL_DATA} ${CRT0} $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x - -install-rdimon: - ${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR} - set -e; for x in ${RDIMON_CRT0} ${RDIMON_BSP}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done - set -e; for x in ${RDIMON_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done - -# Make copies of the scripts to facilitate in-tree bootstrapping. -${RDIMON_SCRIPTS}: %: ${objtype}% - cp $< $@ - -doc: -info: -install-info: -clean-info: - -Makefile: Makefile.in ../config.status - cd .. && $(SHELL) config.status diff --git a/libgloss/aarch64/Makefile.inc b/libgloss/aarch64/Makefile.inc new file mode 100644 index 000000000000..b9c8d983366b --- /dev/null +++ b/libgloss/aarch64/Makefile.inc @@ -0,0 +1,34 @@ +multilibtool_LIBRARIES += %D%/librdimon.a +%C%_librdimon_a_SOURCES = \ + %D%/_exit.c \ + %D%/_kill.c \ + %D%/ftruncate.c \ + %D%/libcfunc.c \ + %D%/syscalls.c \ + %D%/truncate.c +%C%_librdimon_a_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + -DSEMIHOST_V2 -DARM_RDI_MONITOR + +%C%_SPECS = \ + %D%/aem-v8-r.specs \ + %D%/aem-validation.specs \ + %D%/aem-ve.specs \ + %D%/rdimon.specs +multilibtool_DATA += \ + %D%/crt0.o \ + %D%/rdimon-crt0.o \ + $(%C%_SPECS) + +%D%/crt0.$(OBJEXT): %D%/crt0.S + $(AM_V_CPPAS)$(CPPASCOMPILE) -DSEMIHOST_V2 -o $@ -c $< +%D%/rdimon-crt0.$(OBJEXT): %D%/crt0.S + $(AM_V_CPPAS)$(CPPASCOMPILE) -DSEMIHOST_V2 -DARM_RDI_MONITOR -o $@ -c $< + +## Make copies of the scripts to facilitate in-tree bootstrapping. +%D%/%.specs: %D%/$(AARCH64_OBJTYPE)%.specs + $(AM_V_GEN)cp $< $@ + +CLEANFILES += $(%C%_SPECS) + +include %D%/cpu-init/Makefile.inc diff --git a/libgloss/aarch64/cpu-init/Makefile.in b/libgloss/aarch64/cpu-init/Makefile.in deleted file mode 100644 index 4aef917ebe5a..000000000000 --- a/libgloss/aarch64/cpu-init/Makefile.in +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright (c) 2012 ARM Ltd. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. 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. -# 3. The name of the company may not be used to endorse or promote -# products derived from this software without specific prior written -# permission. -# -# THIS SOFTWARE IS PROVIDED BY ARM LTD ``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 ARM LTD 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. - -DESTDIR = -VPATH = @srcdir@ @srcdir@/.. @srcdir@/../.. -srcdir = @srcdir@ -objdir = . -srcroot = $(srcdir)/../../.. -objroot = $(objdir)/../../.. - -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -host_alias = @host_alias@ -target_alias = @target_alias@ - -bindir = @bindir@ -libdir = @libdir@ -tooldir = $(exec_prefix)/$(target_alias) - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ - -# Multilib support variables. -# TOP is used instead of MULTI{BUILD,SRC}TOP. -MULTISRCTOP = -MULTIBUILDTOP = -MULTIDIRS = -MULTISUBDIR = -MULTIDO = true -MULTICLEAN = true - -SHELL = /bin/sh - -CC = @CC@ - -AS = @AS@ -AR = @AR@ -LD = @LD@ -RANLIB = @RANLIB@ - -CPU_INIT_OBJS = rdimon-aem-el3.o rdimon-aem-v8-r.o -CPU_INIT_INSTALL = install-cpu-init - -CFLAGS = -g - -# Host specific makefile fragment comes in here. -@host_makefile_frag@ - -.PHONY: all -all: ${CPU_INIT_OBJS} - -# -# here's where we build the test programs for each target -# -.PHONY: test -test: - -rdimon-aem-el3.o : rdimon-aem-el3.S - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $< - -rdimon-aem-v8-r.o : rdimon-aem-el3.S - $(CC) $(CFLAGS_FOR_TARGET) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -DBUILD_FOR_R_PROFILE -o $@ -c $< - -clean mostlyclean: - rm -f a.out core *.i *.o *-test *.srec *.dis *.x - -distclean maintainer-clean realclean: clean - rm -f Makefile *~ - -.PHONY: install info install-info clean-info -install: ${CPU_INIT_INSTALL} - -install-cpu-init: - test -d $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/cpu-init || mkdir $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/cpu-init - set -e; for x in ${CPU_INIT_OBJS}; do ${INSTALL_DATA} $$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/cpu-init/$$x; done - -doc: -info: -install-info: -clean-info: - -Makefile: Makefile.in ../../config.status - cd ../.. && $(SHELL) ./config.status --file aarch64/cpu-init/Makefile diff --git a/libgloss/aarch64/cpu-init/Makefile.inc b/libgloss/aarch64/cpu-init/Makefile.inc new file mode 100644 index 000000000000..031369ee7e13 --- /dev/null +++ b/libgloss/aarch64/cpu-init/Makefile.inc @@ -0,0 +1,20 @@ +%C%_CPPFLAGS = -I$(srcdir)/%D%/.. + +%C%cpuinitdir = $(tooldir)/lib$(MULTISUBDIR)/cpu-init +%C%cpuinit_DATA = \ + %D%/rdimon-aem-el3.o \ + %D%/rdimon-aem-v8-r.o + +## The manual dirstamp is needed as automake doesn't recognize compile rules +## via DATA. If we ever add rules it does know about, we can drop this. +%D%/$(am__dirstamp): + @$(MKDIR_P) %D% + @: > $@ + +%D%/rdimon-aem-el3.$(OBJEXT): %D%/rdimon-aem-el3.S %D%/$(am__dirstamp) + $(AM_V_CC)$(COMPILE) $(%C%_CPPFLAGS) -DARM_RDI_MONITOR -o $@ -c $< + +%D%/rdimon-aem-v8-r.$(OBJEXT): %D%/rdimon-aem-el3.S %D%/$(am__dirstamp) + $(AM_V_CC)$(COMPILE) $(%C%_CPPFLAGS) -DARM_RDI_MONITOR -DBUILD_FOR_R_PROFILE -o $@ -c $< + +CLEANFILES += $(%C%cpuinit_DATA) diff --git a/libgloss/configure.ac b/libgloss/configure.ac index 9906781a722f..33026534ffee 100644 --- a/libgloss/configure.ac +++ b/libgloss/configure.ac @@ -46,8 +46,7 @@ target_makefile_frag=${srcdir}/config/default.mt case "${target}" in aarch64*-*-*) - AC_CONFIG_FILES([aarch64/Makefile aarch64/cpu-init/Makefile]) - subdirs="$subdirs aarch64 aarch64/cpu-init" + config_aarch64=true config_testsuite=true ;; arc*-*-*) @@ -251,7 +250,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], [ - bfin iq2000 libnosys lm32 riscv wince + aarch64 bfin iq2000 libnosys lm32 riscv wince ], [dnl AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue) ]) -- 2.38.1