public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 1/2] libgloss: microblaze: use port-specific sbrk
@ 2023-12-31  7:08 Mike Frysinger
  2023-12-31  7:08 ` [PATCH 2/2] libgloss: merge microblaze into top-level Makefile Mike Frysinger
  0 siblings, 1 reply; 2+ messages in thread
From: Mike Frysinger @ 2023-12-31  7:08 UTC (permalink / raw)
  To: newlib

The default search path uses the common sbrk.c over the microblaze
one, so add a rule to force the microblaze variant instead.
---
 libgloss/microblaze/Makefile.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libgloss/microblaze/Makefile.in b/libgloss/microblaze/Makefile.in
index f1fa286bbc96..8437378f8dab 100644
--- a/libgloss/microblaze/Makefile.in
+++ b/libgloss/microblaze/Makefile.in
@@ -122,6 +122,7 @@ linux-crt0.o: linux-crt0.S
 crtinit.o: crtinit.S
 sim-crtinit.o: sim-crtinit.S
 sim-pgcrtinit.o: sim-pgcrtinit.S
+sbrk.o: sbrk.c
 
 # target specific makefile fragment comes in here.
 @target_makefile_frag@
-- 
2.43.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH 2/2] libgloss: merge microblaze into top-level Makefile
  2023-12-31  7:08 [PATCH 1/2] libgloss: microblaze: use port-specific sbrk Mike Frysinger
@ 2023-12-31  7:08 ` Mike Frysinger
  0 siblings, 0 replies; 2+ messages in thread
From: Mike Frysinger @ 2023-12-31  7:08 UTC (permalink / raw)
  To: newlib

Avoid a recursive make to speed things up a bit.
A microblaze-elf build shows installed objects & libs produce same code.
---
 libgloss/Makefile.am             |   3 +
 libgloss/Makefile.in             | 536 +++++++++++++++++++++----------
 libgloss/configure               |  19 +-
 libgloss/configure.ac            |   5 +-
 libgloss/microblaze/Makefile.in  | 150 ---------
 libgloss/microblaze/Makefile.inc |  91 ++++++
 6 files changed, 473 insertions(+), 331 deletions(-)
 delete mode 100644 libgloss/microblaze/Makefile.in
 create mode 100644 libgloss/microblaze/Makefile.inc

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index 88cb92800064..f69a3f1b8b2b 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -129,6 +129,9 @@ endif
 if CONFIG_MCORE
 include mcore/Makefile.inc
 endif
+if CONFIG_MICROBLAZE
+include microblaze/Makefile.inc
+endif
 if CONFIG_MN10200
 include mn10200/Makefile.inc
 endif
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index e376ad156036..17e98a2fa5a3 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -153,8 +153,7 @@ case "${target}" in
 	config_moxie=true
 	;;
   microblaze*-*-*)
-	AC_CONFIG_FILES([microblaze/Makefile])
-	subdirs="$subdirs microblaze"
+	config_microblaze=true
 	;;
   mt-*-*)
 	AC_CONFIG_FILES([mt/Makefile])
@@ -227,7 +226,7 @@ dnl the ports above will too!
 m4_foreach_w([SUBDIR], [
   aarch64 arc arm bfin csky d30v epiphany fr30 frv ft32 i386 i960 iq2000
   libnosys lm32
-  m32r mcore mn10200 mn10300 moxie msp430
+  m32r mcore microblaze mn10200 mn10300 moxie msp430
   nds32 nios2 or1k riscv rl78 rx sparc sparc_leon tic6x v850 visium wince
   xstormy16 xtensa
 ], [dnl
diff --git a/libgloss/microblaze/Makefile.in b/libgloss/microblaze/Makefile.in
deleted file mode 100644
index 8437378f8dab..000000000000
--- a/libgloss/microblaze/Makefile.in
+++ /dev/null
@@ -1,150 +0,0 @@
-#  Copyright 2007, 2009 Xilinx, Inc.  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 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.  Neither the name of Xilinx 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 HOLDER 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.
-
-# Makefile for libgloss/microblaze. This is the board support
-# code for the various microblaze targets.
-
-DESTDIR =
-VPATH = @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)
-
-# 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
-
-mkinstalldirs = $(SHELL) $(srcroot)/mkinstalldirs
-
-CC = @CC@
-
-AS = @AS@
-AR = @AR@
-LD = @LD@
-RANLIB = @RANLIB@
-AR_FLAGS = qrv
-
-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`
-
-CRT = crt0.o crt1.o crt2.o crt3.o crt4.o crtinit.o pgcrtinit.o sim-crtinit.o sim-pgcrtinit.o
-LIB = libgloss.a
-GENOBJS = fstat.o getpid.o isatty.o kill.o lseek.o print.o putnum.o stat.o unlink.o \
-          open.o close.o read.o write.o
-OBJS = ${GENOBJS} sbrk.o timer.o _exception_handler.o _hw_exception_handler.o \
-       _interrupt_handler.o _program_clean.o _program_init.o \
-       xil_malloc.o xil_sbrk.o xil_printf.o
-SCRIPTS	= xilinx.ld
-
-# Tiny Linux BSP.
-LINUX_BSP     = libgloss-linux.a
-CRT          += linux-crt0.o
-LINUX_OBJS    = linux-syscalls.o linux-syscalls-wrap.o
-LINUX_OBJS   += linux-outbyte.o linux-inbyte.o
-LINUX_SCRIPTS = elf-gloss-linux.specs
-
-CPU = @CPU@
-
-#### Host specific Makefile fragment comes in here.
-@host_makefile_frag@
-
-all: ${CRT} ${LIB} ${LINUX_BSP}
-
-install: ${CRT} ${LIB} install-linux
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	@for crt in ${CRT}; do \
-	$(INSTALL_PROGRAM) $${crt} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$${crt}; \
-	done
-	$(INSTALL_PROGRAM) ${LIB} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}
-	$(INSTALL_PROGRAM) $(srcdir)/${SCRIPTS} $(DESTDIR)$(tooldir)/lib/
-
-install-linux: ${LINUX_BSP}
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	$(INSTALL_PROGRAM) ${LINUX_BSP} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}
-	set -e; for x in ${LINUX_SCRIPTS}; do ${INSTALL_DATA} ${srcdir}/${objtype}$$x $(DESTDIR)${tooldir}/lib${MULTISUBDIR}/$$x; done
-
-crt0.o:	crt0.S
-crt1.o:	crt1.S
-crt2.o:	crt2.S
-crt3.o:	crt3.S
-crt4.o:	crt4.S
-linux-crt0.o: linux-crt0.S
-crtinit.o: crtinit.S
-sim-crtinit.o: sim-crtinit.S
-sim-pgcrtinit.o: sim-pgcrtinit.S
-sbrk.o: sbrk.c
-
-# target specific makefile fragment comes in here.
-@target_makefile_frag@
-
-clean mostlyclean:
-	rm -f *.o *.a *.map *.x
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile config.cache config.log config.status
-
-${LIB}:	${OBJS}
-	${AR} ${ARFLAGS} $@ ${OBJS}
-	${RANLIB} $@
-
-${LINUX_BSP}: ${LINUX_OBJS}
-	${AR} ${ARFLAGS} $@ ${LINUX_OBJS}
-	${RANLIB} $@
-
-.PHONY: info dvi doc install-info clean-info
-info doc dvi:
-install-info:
-clean-info:
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/microblaze/Makefile.inc b/libgloss/microblaze/Makefile.inc
new file mode 100644
index 000000000000..ca1e8bf83744
--- /dev/null
+++ b/libgloss/microblaze/Makefile.inc
@@ -0,0 +1,91 @@
+##  Copyright 2007, 2009 Xilinx, Inc.  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 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.  Neither the name of Xilinx 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 HOLDER 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.
+
+if !HAVE_MULTISUBDIR
+multilibtool_DATA += \
+	%D%/xilinx.ld
+endif
+multilibtool_DATA += \
+	%D%/elf-gloss-linux.specs
+
+multilibtool_DATA += \
+	%D%/crt0.o \
+	%D%/crt1.o \
+	%D%/crt2.o \
+	%D%/crt3.o \
+	%D%/crt4.o \
+	%D%/crtinit.o \
+	%D%/pgcrtinit.o \
+	%D%/sim-crtinit.o \
+	%D%/sim-pgcrtinit.o \
+	%D%/linux-crt0.o
+libobjs_a_SOURCES += \
+	%D%/crt0.S \
+	%D%/crt1.S \
+	%D%/crt2.S \
+	%D%/crt3.S \
+	%D%/crt4.S \
+	%D%/crtinit.S \
+	%D%/pgcrtinit.S \
+	%D%/sim-crtinit.S \
+	%D%/sim-pgcrtinit.S \
+	%D%/linux-crt0.S
+
+multilibtool_LIBRARIES += %D%/libgloss.a
+%C%_libgloss_a_SOURCES = \
+	fstat.c \
+	getpid.c \
+	isatty.c \
+	kill.c \
+	lseek.c \
+	print.c \
+	putnum.c \
+	stat.c \
+	unlink.c \
+	open.c \
+	close.c \
+	read.c \
+	write.c \
+	%D%/sbrk.c \
+	%D%/timer.c \
+	%D%/_exception_handler.S \
+	%D%/_hw_exception_handler.S \
+	%D%/_interrupt_handler.S \
+	%D%/_program_clean.S \
+	%D%/_program_init.S \
+	%D%/xil_malloc.c \
+	%D%/xil_sbrk.c \
+	%D%/xil_printf.c
+
+multilibtool_LIBRARIES += %D%/libgloss-linux.a
+%C%_libgloss_linux_a_SOURCES = \
+	%D%/linux-syscalls.S \
+	%D%/linux-syscalls-wrap.c \
+	%D%/linux-outbyte.c \
+	%D%/linux-inbyte.c
-- 
2.43.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-12-31  7:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-31  7:08 [PATCH 1/2] libgloss: microblaze: use port-specific sbrk Mike Frysinger
2023-12-31  7:08 ` [PATCH 2/2] libgloss: merge microblaze into top-level Makefile Mike Frysinger

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