public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] libgloss: visium: fix sbrk search path
@ 2023-12-27  6:22 Mike Frysinger
  2023-12-27  6:23 ` [PATCH] libgloss: merge visium into top-level Makefile Mike Frysinger
  0 siblings, 1 reply; 2+ messages in thread
From: Mike Frysinger @ 2023-12-27  6:22 UTC (permalink / raw)
  To: newlib

The code was loading the common ../sbrk.c file rather than the visium
specific sbrk.c due to VPATH setup.  Add an explicit rule for this one
file so we make sure the correct one is used.
---
 libgloss/visium/Makefile.in | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libgloss/visium/Makefile.in b/libgloss/visium/Makefile.in
index 0e1789a2635c..bc18b2951edb 100644
--- a/libgloss/visium/Makefile.in
+++ b/libgloss/visium/Makefile.in
@@ -97,6 +97,9 @@ sim-syscalls.o: syscalls.c syscall.h io.h
 debug-syscalls.o: syscalls.c syscall.h io.h
 	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -c -o $@ $<
 
+sbrk.o: $(srcdir)/sbrk.c
+	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -c -o $@ $<
+
 $(OBJS): %.o: ../%.c
 	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -c -o $@ $<
 
-- 
2.43.0


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

* [PATCH] libgloss: merge visium into top-level Makefile
  2023-12-27  6:22 [PATCH] libgloss: visium: fix sbrk search path Mike Frysinger
@ 2023-12-27  6:23 ` Mike Frysinger
  0 siblings, 0 replies; 2+ messages in thread
From: Mike Frysinger @ 2023-12-27  6:23 UTC (permalink / raw)
  To: newlib

Avoid a recursive make to speed things up a bit.
A visium-elf build shows installed objects & libs produce same code.
---
 libgloss/Makefile.am           |   3 +
 libgloss/Makefile.in           | 239 +++++++++++++++++++++++++--------
 libgloss/configure             |  19 ++-
 libgloss/configure.ac          |   5 +-
 libgloss/visium/Makefile.in    | 132 ------------------
 libgloss/visium/Makefile.inc   |  53 ++++++++
 libgloss/visium/sim-syscalls.c |  31 +++++
 7 files changed, 290 insertions(+), 192 deletions(-)
 delete mode 100644 libgloss/visium/Makefile.in
 create mode 100644 libgloss/visium/Makefile.inc
 create mode 100644 libgloss/visium/sim-syscalls.c

diff --git a/libgloss/Makefile.am b/libgloss/Makefile.am
index d51a7a2a9ade..b15643c465f2 100644
--- a/libgloss/Makefile.am
+++ b/libgloss/Makefile.am
@@ -138,6 +138,9 @@ endif
 if CONFIG_V850
 include v850/Makefile.inc
 endif
+if CONFIG_VISIUM
+include visium/Makefile.inc
+endif
 if CONFIG_XSTORMY16
 include xstormy16/Makefile.inc
 endif
diff --git a/libgloss/configure.ac b/libgloss/configure.ac
index 60f4f35b64cc..faf569a0f5b2 100644
--- a/libgloss/configure.ac
+++ b/libgloss/configure.ac
@@ -170,8 +170,7 @@ case "${target}" in
 	config_v850=true
 	;;
   visium-*-*)
-	AC_CONFIG_FILES([visium/Makefile])
-	subdirs="$subdirs visium"
+	config_visium=true
 	config_testsuite=false
 	;;
   xc16x-*-*)
@@ -236,7 +235,7 @@ dnl the ports above will too!
 m4_foreach_w([SUBDIR], [
   aarch64 arc arm bfin csky d30v frv i386 i960 iq2000 libnosys lm32
   m32r mcore mn10200 mn10300 moxie msp430
-  nds32 nios2 riscv rl78 rx v850 wince xstormy16 xtensa
+  nds32 nios2 riscv rl78 rx v850 visium wince xstormy16 xtensa
 ], [dnl
   AM_CONDITIONAL([CONFIG_]m4_toupper(SUBDIR), [test x$config_]SUBDIR = xtrue)
 ])
diff --git a/libgloss/visium/Makefile.in b/libgloss/visium/Makefile.in
deleted file mode 100644
index bc18b2951edb..000000000000
--- a/libgloss/visium/Makefile.in
+++ /dev/null
@@ -1,132 +0,0 @@
-# Copyright (c) 1998 Cygnus Support
-#
-# The authors hereby grant permission to use, copy, modify, distribute,
-# and license this software and its documentation for any purpose, provided
-# that existing copyright notices are retained in all copies and that this
-# notice is included verbatim in any distributions. No written agreement,
-# license, or royalty fee is required for any of the authorized uses.
-# Modifications to this software may be copyrighted by their authors
-# and need not follow the licensing terms described here, provided that
-# the new terms are clearly indicated on the first page of each file where
-# they apply.
-
-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
-
-mkinstalldirs = $(SHELL) $(srcroot)/mkinstalldirs
-
-CC = @CC@
-
-AS = @AS@
-
-AR = @AR@
-
-LD = @LD@
-
-RANLIB = @RANLIB@
-
-OBJDUMP = `t='$(program_transform_name)'; echo objdump | sed -e $$t`
-OBJCOPY = `t='$(program_transform_name)'; echo objcopy | sed -e $$t`
-
-# Generic object files common to some targets.
-# These are LIBGLOSS stubs and minimal functionality in SBRK, READ and WRITE.
-OBJS =  close.o fstat.o getpid.o isatty.o kill.o lseek.o open.o \
-	print.o putnum.o read.o stat.o unlink.o write.o
-
-# Object files specific to particular targets.
-SERIALOBJS = ${OBJS} _exit.o gettod.o sbrk.o serial-inbyte.o serial-outbyte.o
-
-# These go with the hosted file I/O libraries with a version of syscalls.
-HOSTEDOBJS = getpid.o kill.o io-gdb.o io-stubs.o sbrk.o
-
-SCRIPTS =
-BSP = crt0.o libserial.a libsim.a libdebug.a
-
-# Host specific makefile fragment comes in here.
-@host_makefile_frag@
-
-all: ${BSP}
-
-#
-# here's where we build the board support packages for each target
-#
-
-libserial.a: $(SERIALOBJS)
-	$(AR) $(ARFLAGS) $@ $^
-	$(RANLIB) $@
-
-libsim.a: ${HOSTEDOBJS} sim-syscalls.o
-	${AR} ${ARFLAGS} $@ $^
-	${RANLIB} $@
-
-libdebug.a: ${HOSTEDOBJS} debug-syscalls.o
-	${AR} ${ARFLAGS} $@ $^
-	${RANLIB} $@
-
-sim-syscalls.o: syscalls.c syscall.h io.h
-	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -DTARGET_SIM -c -o $@ $<
-
-debug-syscalls.o: syscalls.c syscall.h io.h
-	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -c -o $@ $<
-
-sbrk.o: $(srcdir)/sbrk.c
-	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -c -o $@ $<
-
-$(OBJS): %.o: ../%.c
-	${CC} ${CFLAGS_FOR_TARGET} ${CFLAGS} -c -o $@ $<
-
-doc:
-
-clean mostlyclean:
-	rm -f a.out core *.i *~ *.o *-test *.srec *.dis *.map *.x
-
-distclean maintainer-clean realclean: clean
-	rm -f Makefile config.status a.out
-
-.PHONY: install info install-info clean-info
-install:
-	${mkinstalldirs} ${DESTDIR}${tooldir}/lib${MULTISUBDIR}
-	@for bsp in ${BSP}; do\
-	 $(INSTALL_DATA) $${bsp} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \
-	done
-	@for script in ${SCRIPTS}; do\
-	 $(INSTALL_DATA) $(srcdir)/$${script}.ld $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}/$${script}.ld; \
-	done
-
-info:
-install-info:
-clean-info:
-
-# target specific makefile fragment comes in here.
-@target_makefile_frag@
-
-Makefile: Makefile.in ../config.status
-	cd .. && $(SHELL) config.status
diff --git a/libgloss/visium/Makefile.inc b/libgloss/visium/Makefile.inc
new file mode 100644
index 000000000000..cd268c95bfa7
--- /dev/null
+++ b/libgloss/visium/Makefile.inc
@@ -0,0 +1,53 @@
+## Copyright (c) 1998 Cygnus Support
+##
+## The authors hereby grant permission to use, copy, modify, distribute,
+## and license this software and its documentation for any purpose, provided
+## that existing copyright notices are retained in all copies and that this
+## notice is included verbatim in any distributions. No written agreement,
+## license, or royalty fee is required for any of the authorized uses.
+## Modifications to this software may be copyrighted by their authors
+## and need not follow the licensing terms described here, provided that
+## the new terms are clearly indicated on the first page of each file where
+## they apply.
+
+multilibtool_DATA += %D%/crt0.o
+libobjs_a_SOURCES += %D%/crt0.S
+
+## These go with the hosted file I/O libraries with a version of syscalls.
+%C%_hosted_sources = \
+	getpid.c \
+	kill.c \
+	%D%/io-gdb.c \
+	%D%/io-stubs.c \
+	%D%/sbrk.c
+
+multilibtool_LIBRARIES += %D%/libserial.a
+%C%_libserial_a_SOURCES = \
+	close.c \
+	fstat.c \
+	getpid.c \
+	isatty.c \
+	kill.c \
+	lseek.c \
+	open.c \
+	print.c \
+	putnum.c \
+	read.c \
+	stat.c \
+	unlink.c \
+	write.c \
+	%D%/_exit.c \
+	%D%/gettod.c \
+	%D%/sbrk.c \
+	%D%/serial-inbyte.c \
+	%D%/serial-outbyte.c
+
+multilibtool_LIBRARIES += %D%/libsim.a
+%C%_libsim_a_SOURCES = \
+	$(%C%_hosted_sources) \
+	%D%/sim-syscalls.c
+
+multilibtool_LIBRARIES += %D%/libdebug.a
+%C%_libdebug_a_SOURCES = \
+	$(%C%_hosted_sources) \
+	%D%/syscalls.c
diff --git a/libgloss/visium/sim-syscalls.c b/libgloss/visium/sim-syscalls.c
new file mode 100644
index 000000000000..1a6bb325987b
--- /dev/null
+++ b/libgloss/visium/sim-syscalls.c
@@ -0,0 +1,31 @@
+/* system calls for the Visium processor.
+
+   Copyright (c) 2015 Rolls-Royce Controls and Data Services Limited.
+   All rights reserved.
+
+   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 Rolls-Royce Controls and Data Services Limited 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 OWNER 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.  */
+
+#define TARGET_SIM
+#include "syscalls.c"
-- 
2.43.0


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

end of thread, other threads:[~2023-12-27  6:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-27  6:22 [PATCH] libgloss: visium: fix sbrk search path Mike Frysinger
2023-12-27  6:23 ` [PATCH] libgloss: merge visium 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).