Browse Source
* libc/include/sys/config.h: Dynamic reentrancy for or1k sys targets * libc/sys/or1k/: New system for or1k baremetal * libc/sys/or1k/Makefile.am: New file * libc/sys/or1k/Makefile.in: New file * libc/sys/or1k/aclocal.m4: New file * libc/sys/or1k/configure.in: New file * libc/sys/or1k/configure: New file * libc/sys/or1k/getreent.S: New file * libc/sys/or1k/mlock.S: New file * libc/sys/or1k/or1k-asm.S: New filecygwin-2.0
10 changed files with 6749 additions and 0 deletions
@ -0,0 +1,16 @@ |
|||
## Process this file with automake to generate Makefile.in
|
|||
|
|||
AUTOMAKE_OPTIONS = cygnus |
|||
|
|||
INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) |
|||
|
|||
AM_CCASFLAGS = $(INCLUDES) |
|||
|
|||
noinst_LIBRARIES = lib.a |
|||
|
|||
lib_a_SOURCES = getreent.S mlock.c |
|||
lib_a_CCASFLAGS=$(AM_CCASFLAGS) |
|||
lib_a_CFLAGS=$(AM_CFLAGS) |
|||
|
|||
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. |
|||
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host |
|||
@ -0,0 +1,476 @@ |
|||
# Makefile.in generated by automake 1.12.2 from Makefile.am.
|
|||
# @configure_input@
|
|||
|
|||
# Copyright (C) 1994-2012 Free Software Foundation, Inc.
|
|||
|
|||
# This Makefile.in is free software; the Free Software Foundation
|
|||
# gives unlimited permission to copy and/or distribute it,
|
|||
# with or without modifications, as long as this notice is preserved.
|
|||
|
|||
# This program is distributed in the hope that it will be useful,
|
|||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|||
# PARTICULAR PURPOSE.
|
|||
|
|||
@SET_MAKE@ |
|||
|
|||
VPATH = @srcdir@ |
|||
am__make_dryrun = \
|
|||
{ \
|
|||
am__dry=no; \
|
|||
case $$MAKEFLAGS in \
|
|||
*\\[\ \ ]*) \
|
|||
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
|||
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
|||
*) \
|
|||
for am__flg in $$MAKEFLAGS; do \
|
|||
case $$am__flg in \
|
|||
*=*|--*) ;; \
|
|||
*n*) am__dry=yes; break;; \
|
|||
esac; \
|
|||
done;; \
|
|||
esac; \
|
|||
test $$am__dry = yes; \
|
|||
} |
|||
pkgdatadir = $(datadir)/@PACKAGE@ |
|||
pkgincludedir = $(includedir)/@PACKAGE@ |
|||
pkglibdir = $(libdir)/@PACKAGE@ |
|||
pkglibexecdir = $(libexecdir)/@PACKAGE@ |
|||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd |
|||
install_sh_DATA = $(install_sh) -c -m 644 |
|||
install_sh_PROGRAM = $(install_sh) -c |
|||
install_sh_SCRIPT = $(install_sh) -c |
|||
INSTALL_HEADER = $(INSTALL_DATA) |
|||
transform = $(program_transform_name) |
|||
NORMAL_INSTALL = : |
|||
PRE_INSTALL = : |
|||
POST_INSTALL = : |
|||
NORMAL_UNINSTALL = : |
|||
PRE_UNINSTALL = : |
|||
POST_UNINSTALL = : |
|||
build_triplet = @build@ |
|||
host_triplet = @host@ |
|||
subdir = . |
|||
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
|
|||
$(top_srcdir)/configure $(am__configure_deps) \
|
|||
$(top_srcdir)/../../../../mkinstalldirs |
|||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
|||
am__aclocal_m4_deps = $(top_srcdir)/configure.in |
|||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|||
$(ACLOCAL_M4) |
|||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
|||
configure.lineno config.status.lineno |
|||
mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs |
|||
CONFIG_CLEAN_FILES = |
|||
CONFIG_CLEAN_VPATH_FILES = |
|||
LIBRARIES = $(noinst_LIBRARIES) |
|||
ARFLAGS = cru |
|||
lib_a_AR = $(AR) $(ARFLAGS) |
|||
lib_a_LIBADD = |
|||
am_lib_a_OBJECTS = lib_a-getreent.$(OBJEXT) lib_a-mlock.$(OBJEXT) |
|||
lib_a_OBJECTS = $(am_lib_a_OBJECTS) |
|||
DEFAULT_INCLUDES = -I.@am__isrc@ |
|||
depcomp = |
|||
am__depfiles_maybe = |
|||
CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
|||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) |
|||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) |
|||
CCLD = $(CC) |
|||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ |
|||
SOURCES = $(lib_a_SOURCES) |
|||
am__can_run_installinfo = \
|
|||
case $$AM_UPDATE_INFO_DIR in \
|
|||
n|no|NO) false;; \
|
|||
*) (install-info --version) >/dev/null 2>&1;; \
|
|||
esac |
|||
ETAGS = etags |
|||
CTAGS = ctags |
|||
CSCOPE = cscope |
|||
AM_RECURSIVE_TARGETS = cscope |
|||
ACLOCAL = @ACLOCAL@ |
|||
AMTAR = @AMTAR@ |
|||
AR = @AR@ |
|||
AS = @AS@ |
|||
AUTOCONF = @AUTOCONF@ |
|||
AUTOHEADER = @AUTOHEADER@ |
|||
AUTOMAKE = @AUTOMAKE@ |
|||
AWK = @AWK@ |
|||
CC = @CC@ |
|||
CCAS = @CCAS@ |
|||
CCASFLAGS = @CCASFLAGS@ |
|||
CCDEPMODE = @CCDEPMODE@ |
|||
CYGPATH_W = @CYGPATH_W@ |
|||
DEFS = @DEFS@ |
|||
DEPDIR = @DEPDIR@ |
|||
ECHO_C = @ECHO_C@ |
|||
ECHO_N = @ECHO_N@ |
|||
ECHO_T = @ECHO_T@ |
|||
INSTALL = @INSTALL@ |
|||
INSTALL_DATA = @INSTALL_DATA@ |
|||
INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
|||
INSTALL_SCRIPT = @INSTALL_SCRIPT@ |
|||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ |
|||
LDFLAGS = @LDFLAGS@ |
|||
LIBOBJS = @LIBOBJS@ |
|||
LIBS = @LIBS@ |
|||
LTLIBOBJS = @LTLIBOBJS@ |
|||
MAINT = @MAINT@ |
|||
MAKEINFO = @MAKEINFO@ |
|||
MKDIR_P = @MKDIR_P@ |
|||
NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ |
|||
NO_INCLUDE_LIST = @NO_INCLUDE_LIST@ |
|||
OBJEXT = @OBJEXT@ |
|||
PACKAGE = @PACKAGE@ |
|||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
|||
PACKAGE_NAME = @PACKAGE_NAME@ |
|||
PACKAGE_STRING = @PACKAGE_STRING@ |
|||
PACKAGE_TARNAME = @PACKAGE_TARNAME@ |
|||
PACKAGE_URL = @PACKAGE_URL@ |
|||
PACKAGE_VERSION = @PACKAGE_VERSION@ |
|||
PATH_SEPARATOR = @PATH_SEPARATOR@ |
|||
RANLIB = @RANLIB@ |
|||
READELF = @READELF@ |
|||
SET_MAKE = @SET_MAKE@ |
|||
SHELL = @SHELL@ |
|||
STRIP = @STRIP@ |
|||
VERSION = @VERSION@ |
|||
abs_builddir = @abs_builddir@ |
|||
abs_srcdir = @abs_srcdir@ |
|||
abs_top_builddir = @abs_top_builddir@ |
|||
abs_top_srcdir = @abs_top_srcdir@ |
|||
aext = @aext@ |
|||
am__include = @am__include@ |
|||
am__leading_dot = @am__leading_dot@ |
|||
am__quote = @am__quote@ |
|||
am__tar = @am__tar@ |
|||
am__untar = @am__untar@ |
|||
bindir = @bindir@ |
|||
build = @build@ |
|||
build_alias = @build_alias@ |
|||
build_cpu = @build_cpu@ |
|||
build_os = @build_os@ |
|||
build_vendor = @build_vendor@ |
|||
builddir = @builddir@ |
|||
datadir = @datadir@ |
|||
datarootdir = @datarootdir@ |
|||
docdir = @docdir@ |
|||
dvidir = @dvidir@ |
|||
exec_prefix = @exec_prefix@ |
|||
host = @host@ |
|||
host_alias = @host_alias@ |
|||
host_cpu = @host_cpu@ |
|||
host_os = @host_os@ |
|||
host_vendor = @host_vendor@ |
|||
htmldir = @htmldir@ |
|||
includedir = @includedir@ |
|||
infodir = @infodir@ |
|||
install_sh = @install_sh@ |
|||
libdir = @libdir@ |
|||
libexecdir = @libexecdir@ |
|||
libm_machine_dir = @libm_machine_dir@ |
|||
localedir = @localedir@ |
|||
localstatedir = @localstatedir@ |
|||
lpfx = @lpfx@ |
|||
machine_dir = @machine_dir@ |
|||
mandir = @mandir@ |
|||
mkdir_p = @mkdir_p@ |
|||
newlib_basedir = @newlib_basedir@ |
|||
oext = @oext@ |
|||
oldincludedir = @oldincludedir@ |
|||
pdfdir = @pdfdir@ |
|||
prefix = @prefix@ |
|||
program_transform_name = @program_transform_name@ |
|||
psdir = @psdir@ |
|||
sbindir = @sbindir@ |
|||
sharedstatedir = @sharedstatedir@ |
|||
srcdir = @srcdir@ |
|||
sys_dir = @sys_dir@ |
|||
sysconfdir = @sysconfdir@ |
|||
target_alias = @target_alias@ |
|||
top_build_prefix = @top_build_prefix@ |
|||
top_builddir = @top_builddir@ |
|||
top_srcdir = @top_srcdir@ |
|||
AUTOMAKE_OPTIONS = cygnus |
|||
INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) |
|||
AM_CCASFLAGS = $(INCLUDES) |
|||
noinst_LIBRARIES = lib.a |
|||
lib_a_SOURCES = getreent.S mlock.c |
|||
lib_a_CCASFLAGS = $(AM_CCASFLAGS) |
|||
lib_a_CFLAGS = $(AM_CFLAGS) |
|||
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. |
|||
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host |
|||
all: all-am |
|||
|
|||
.SUFFIXES: |
|||
.SUFFIXES: .S .c .o .obj |
|||
am--refresh: Makefile |
|||
@: |
|||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) |
|||
@for dep in $?; do \
|
|||
case '$(am__configure_deps)' in \
|
|||
*$$dep*) \
|
|||
echo ' cd $(srcdir) && $(AUTOMAKE) --cygnus'; \
|
|||
$(am__cd) $(srcdir) && $(AUTOMAKE) --cygnus \
|
|||
&& exit 0; \
|
|||
exit 1;; \
|
|||
esac; \
|
|||
done; \
|
|||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile'; \
|
|||
$(am__cd) $(top_srcdir) && \
|
|||
$(AUTOMAKE) --cygnus Makefile |
|||
.PRECIOUS: Makefile |
|||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
|||
@case '$?' in \
|
|||
*config.status*) \
|
|||
echo ' $(SHELL) ./config.status'; \
|
|||
$(SHELL) ./config.status;; \
|
|||
*) \
|
|||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
|||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
|||
esac; |
|||
|
|||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) |
|||
$(SHELL) ./config.status --recheck |
|||
|
|||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) |
|||
$(am__cd) $(srcdir) && $(AUTOCONF) |
|||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) |
|||
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) |
|||
$(am__aclocal_m4_deps): |
|||
|
|||
clean-noinstLIBRARIES: |
|||
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) |
|||
lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) $(EXTRA_lib_a_DEPENDENCIES) |
|||
-rm -f lib.a |
|||
$(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) |
|||
$(RANLIB) lib.a |
|||
|
|||
mostlyclean-compile: |
|||
-rm -f *.$(OBJEXT) |
|||
|
|||
distclean-compile: |
|||
-rm -f *.tab.c |
|||
|
|||
.S.o: |
|||
$(CPPASCOMPILE) -c -o $@ $< |
|||
|
|||
.S.obj: |
|||
$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` |
|||
|
|||
lib_a-getreent.o: getreent.S |
|||
$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-getreent.o `test -f 'getreent.S' || echo '$(srcdir)/'`getreent.S |
|||
|
|||
lib_a-getreent.obj: getreent.S |
|||
$(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-getreent.obj `if test -f 'getreent.S'; then $(CYGPATH_W) 'getreent.S'; else $(CYGPATH_W) '$(srcdir)/getreent.S'; fi` |
|||
|
|||
.c.o: |
|||
$(COMPILE) -c $< |
|||
|
|||
.c.obj: |
|||
$(COMPILE) -c `$(CYGPATH_W) '$<'` |
|||
|
|||
lib_a-mlock.o: mlock.c |
|||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-mlock.o `test -f 'mlock.c' || echo '$(srcdir)/'`mlock.c |
|||
|
|||
lib_a-mlock.obj: mlock.c |
|||
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-mlock.obj `if test -f 'mlock.c'; then $(CYGPATH_W) 'mlock.c'; else $(CYGPATH_W) '$(srcdir)/mlock.c'; fi` |
|||
|
|||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) |
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
mkid -fID $$unique |
|||
tags: TAGS |
|||
|
|||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ |
|||
$(TAGS_FILES) $(LISP) |
|||
set x; \
|
|||
here=`pwd`; \
|
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
shift; \
|
|||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
|||
test -n "$$unique" || unique=$$empty_fix; \
|
|||
if test $$# -gt 0; then \ |
|||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|||
"$$@" $$unique; \
|
|||
else \
|
|||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|||
$$unique; \
|
|||
fi; \
|
|||
fi |
|||
ctags: CTAGS |
|||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ |
|||
$(TAGS_FILES) $(LISP) |
|||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|||
unique=`for i in $$list; do \
|
|||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|||
done | \
|
|||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
|||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
|||
test -z "$(CTAGS_ARGS)$$unique" \
|
|||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|||
$$unique |
|||
|
|||
GTAGS: |
|||
here=`$(am__cd) $(top_builddir) && pwd` \
|
|||
&& $(am__cd) $(top_srcdir) \
|
|||
&& gtags -i $(GTAGS_ARGS) "$$here" |
|||
|
|||
cscope: cscope.files |
|||
test ! -s cscope.files \
|
|||
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) |
|||
|
|||
clean-cscope: |
|||
-rm -f cscope.files |
|||
|
|||
cscope.files: clean-cscope cscopelist |
|||
|
|||
cscopelist: $(HEADERS) $(SOURCES) $(LISP) |
|||
list='$(SOURCES) $(HEADERS) $(LISP)'; \
|
|||
case "$(srcdir)" in \
|
|||
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
|||
*) sdir=$(subdir)/$(srcdir) ;; \
|
|||
esac; \
|
|||
for i in $$list; do \
|
|||
if test -f "$$i"; then \
|
|||
echo "$(subdir)/$$i"; \
|
|||
else \
|
|||
echo "$$sdir/$$i"; \
|
|||
fi; \
|
|||
done >> $(top_builddir)/cscope.files |
|||
|
|||
distclean-tags: |
|||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags |
|||
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files |
|||
check-am: |
|||
check: check-am |
|||
all-am: Makefile $(LIBRARIES) |
|||
installdirs: |
|||
install: install-am |
|||
install-exec: install-exec-am |
|||
install-data: install-data-am |
|||
uninstall: uninstall-am |
|||
|
|||
install-am: all-am |
|||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am |
|||
|
|||
installcheck: installcheck-am |
|||
install-strip: |
|||
if test -z '$(STRIP)'; then \
|
|||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|||
install; \
|
|||
else \
|
|||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
|||
fi |
|||
mostlyclean-generic: |
|||
|
|||
clean-generic: |
|||
|
|||
distclean-generic: |
|||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) |
|||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) |
|||
|
|||
maintainer-clean-generic: |
|||
@echo "This command is intended for maintainers to use" |
|||
@echo "it deletes files that may require special tools to rebuild." |
|||
clean: clean-am |
|||
|
|||
clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am |
|||
|
|||
distclean: distclean-am |
|||
-rm -f $(am__CONFIG_DISTCLEAN_FILES) |
|||
-rm -f Makefile |
|||
distclean-am: clean-am distclean-compile distclean-generic \ |
|||
distclean-tags |
|||
|
|||
dvi: dvi-am |
|||
|
|||
dvi-am: |
|||
|
|||
html: html-am |
|||
|
|||
html-am: |
|||
|
|||
info: info-am |
|||
|
|||
info-am: |
|||
|
|||
install-data-am: |
|||
|
|||
install-dvi: install-dvi-am |
|||
|
|||
install-dvi-am: |
|||
|
|||
install-exec-am: |
|||
|
|||
install-html: install-html-am |
|||
|
|||
install-html-am: |
|||
|
|||
install-info: install-info-am |
|||
|
|||
install-info-am: |
|||
|
|||
install-man: |
|||
|
|||
install-pdf: install-pdf-am |
|||
|
|||
install-pdf-am: |
|||
|
|||
install-ps: install-ps-am |
|||
|
|||
install-ps-am: |
|||
|
|||
installcheck-am: |
|||
|
|||
maintainer-clean: maintainer-clean-am |
|||
-rm -f $(am__CONFIG_DISTCLEAN_FILES) |
|||
-rm -rf $(top_srcdir)/autom4te.cache |
|||
-rm -f Makefile |
|||
maintainer-clean-am: distclean-am maintainer-clean-generic |
|||
|
|||
mostlyclean: mostlyclean-am |
|||
|
|||
mostlyclean-am: mostlyclean-compile mostlyclean-generic |
|||
|
|||
pdf: pdf-am |
|||
|
|||
pdf-am: |
|||
|
|||
ps: ps-am |
|||
|
|||
ps-am: |
|||
|
|||
uninstall-am: |
|||
|
|||
.MAKE: install-am install-strip |
|||
|
|||
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ |
|||
clean-cscope clean-generic clean-noinstLIBRARIES cscope \
|
|||
cscopelist ctags distclean distclean-compile distclean-generic \
|
|||
distclean-tags dvi dvi-am html html-am info info-am install \
|
|||
install-am install-data install-data-am install-dvi \
|
|||
install-dvi-am install-exec install-exec-am install-html \
|
|||
install-html-am install-info install-info-am install-man \
|
|||
install-pdf install-pdf-am install-ps install-ps-am \
|
|||
install-strip installcheck installcheck-am installdirs \
|
|||
maintainer-clean maintainer-clean-generic mostlyclean \
|
|||
mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
|
|||
tags uninstall uninstall-am |
|||
|
|||
|
|||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|||
.NOEXPORT: |
|||
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,14 @@ |
|||
dnl This is the newlib/libc/sys/arm configure.in file. |
|||
dnl Process this file with autoconf to produce a configure script. |
|||
|
|||
AC_PREREQ(2.59) |
|||
AC_INIT([newlib],[NEWLIB_VERSION]) |
|||
AC_CONFIG_SRCDIR([getreent.S]) |
|||
|
|||
dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. |
|||
AC_CONFIG_AUX_DIR(../../../..) |
|||
|
|||
NEWLIB_CONFIGURE(../../..) |
|||
|
|||
AC_CONFIG_FILES([Makefile]) |
|||
AC_OUTPUT |
|||
@ -0,0 +1,26 @@ |
|||
/* getreent.S. Return reentrancy pointer. |
|||
|
|||
Copyright (C) 2014, Authors |
|||
|
|||
Contributor Stefan Wallentowitz <stefan.wallentowitz@tum.de> |
|||
|
|||
* 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. |
|||
*/ |
|||
|
|||
#include "or1k-asm.h" |
|||
|
|||
.extern _or1k_libc_getreent |
|||
|
|||
.global __getreent |
|||
.type __getreent,@function |
|||
|
|||
__getreent: |
|||
OR1K_DELAYED_NOP(OR1K_INST(l.j _or1k_libc_getreent)) |
|||
@ -0,0 +1,90 @@ |
|||
/* malloc-lock.c. Lock malloc.
|
|||
* |
|||
* Copyright (C) 2014, Authors |
|||
* |
|||
* Contributor Stefan Wallentowitz <stefan.wallentowitz@tum.de> |
|||
* |
|||
* 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. |
|||
*/ |
|||
|
|||
#include <reent.h> |
|||
#include <or1k-support.h> |
|||
|
|||
/* Lock calls from different cores, but allows recursive calls from the same
|
|||
* core. The lock is not only atomic to other cores calling malloc, but also |
|||
* disables all external interrupts. This is necessary as it could otherwise |
|||
* lead to a deadlock to interrupt while in malloc and then call it from an |
|||
* exception. But as we want the exceptions to be flexible to use all library |
|||
* calls and especially memory management this is necessary. |
|||
*/ |
|||
|
|||
// The lock. It is zero when unlocked and contains a unique value for each core.
|
|||
// This value is not the core id (to avoid id zero), but the pointer value of
|
|||
// the core specific struct _reent.
|
|||
volatile uint32_t _or1k_malloc_lock; |
|||
|
|||
// Count how often the current holder has entered the lock
|
|||
volatile uint32_t _or1k_malloc_lock_cnt; |
|||
// The exception enable restore of the current mutex holder
|
|||
volatile uint32_t _or1k_malloc_lock_restore; |
|||
|
|||
/**
|
|||
* Recursive lock of the malloc |
|||
*/ |
|||
void __malloc_lock(struct _reent *ptr) { |
|||
uint32_t restore; |
|||
uint32_t id; |
|||
|
|||
// Each core is identified by its struct _reent pointer
|
|||
id = (uint32_t) ptr; |
|||
|
|||
// Disable timer and interrupt exception, save TEE and IEE flag
|
|||
// temporarily to restore them later on unlock
|
|||
restore = or1k_critical_begin(); |
|||
|
|||
// We cannot be disturbed by an interrupt or timer exception from here
|
|||
|
|||
// Check if we currently don't hold the lock
|
|||
if (_or1k_malloc_lock != id) { |
|||
do { |
|||
// Repeatedly check the lock until it is set to zero
|
|||
while (_or1k_malloc_lock != 0) {} |
|||
// .. and then try to set it atomically. As this may
|
|||
// fail, we need to repeat this
|
|||
} while (or1k_sync_cas(&_or1k_malloc_lock, 0, id) != 0); |
|||
} |
|||
|
|||
// Store the TEE and IEE flags for later restore
|
|||
_or1k_malloc_lock_restore = restore; |
|||
|
|||
// Increment counter. The lock may be accessed recursively
|
|||
_or1k_malloc_lock_cnt++; |
|||
|
|||
return; |
|||
} |
|||
|
|||
void __malloc_unlock(struct _reent *ptr) { |
|||
// Decrement counter. The lock may be unlocked recursively
|
|||
_or1k_malloc_lock_cnt--; |
|||
|
|||
// If this was the last recursive unlock call
|
|||
if(_or1k_malloc_lock_cnt == 0){ |
|||
// We need to temporarily store the value to avoid a race
|
|||
// condition between unlocking and reading restore
|
|||
uint32_t restore = _or1k_malloc_lock_restore; |
|||
// unset lock
|
|||
_or1k_malloc_lock = 0; |
|||
// Restore flags
|
|||
or1k_critical_end(_or1k_malloc_lock_restore); |
|||
} |
|||
|
|||
return; |
|||
} |
|||
@ -0,0 +1,83 @@ |
|||
/* or1k-asm.h -- OR1K assembly helper macros
|
|||
|
|||
Copyright (c) 2014 OpenRISC Project Maintainers |
|||
Copyright (C) 2012-2014 Peter Gavin <pgavin@gmail.com> |
|||
All rights reserved. |
|||
|
|||
Redistribution and use in source and binary forms, with or without |
|||
modification, are permitted provided that the following condition |
|||
is met: |
|||
|
|||
1. Redistributions of source code must retain the above copyright |
|||
notice, this list of conditions and the following disclaimer. |
|||
|
|||
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. |
|||
|
|||
*/ |
|||
|
|||
#ifndef OR1K_ASM_H |
|||
#define OR1K_ASM_H |
|||
|
|||
/* The purpose of the OR1K_INST macro is simply to protect the commas
|
|||
embedded within an instruction from the C preprocessor. An entire |
|||
instruction can be safely embedded within its arguments, including |
|||
an arbitrary number of commas, and it will be reproduced |
|||
exactly. */ |
|||
#define OR1K_INST(...) __VA_ARGS__ |
|||
|
|||
/* OR1K_DELAYED takes two arguments which must be instructions. They
|
|||
should be wrapped in OR1K_INST if the instructions require commas. |
|||
The second argument should be a jump or branch instruction. If we |
|||
are assembling the code in delay-slot mode (e.g., for the standard |
|||
OR1K) the first instruction will be emitted in the delay slot of |
|||
the second instruction. In no-delay-slot mode they will be emitted |
|||
in order. If we are using compat-delay mode, they will be emitted |
|||
in order, but an l.nop instruction will be emitted immediately |
|||
after. */ |
|||
|
|||
/* OR1K_DELAYED_NOP takes a single argument, which should be a
|
|||
branch/jump instruction. In delay-slot or compat-delay modes, the |
|||
instruction will be emitted with an l.nop in its delay slot. In |
|||
no-delay mode, the instruction will be emitted by itself. */ |
|||
|
|||
#if defined(__OR1K_NODELAY__) |
|||
|
|||
#define OR1K_DELAYED(a, b) a; b |
|||
#define OR1K_DELAYED_NOP(a) a |
|||
|
|||
/* Go ahead and emit the .nodelay directive when in no-delay mode, so
|
|||
that the flags are appropriately set in the binary. */ |
|||
.nodelay |
|||
|
|||
#elif defined(__OR1K_DELAY__) |
|||
|
|||
#define OR1K_DELAYED(a, b) b; a |
|||
#define OR1K_DELAYED_NOP(a) a; l.nop |
|||
|
|||
#elif defined(__OR1K_DELAY_COMPAT__) |
|||
|
|||
#define OR1K_DELAYED(a, b) a; b; l.nop |
|||
#define OR1K_DELAYED_NOP(a) a; l.nop |
|||
|
|||
#else |
|||
|
|||
#error One of __OR1K_NODELAY__, __OR1K_DELAY__, or __OR1K_DELAY_COMPAT__ must be defined |
|||
|
|||
#endif |
|||
|
|||
#define LOAD_SYMBOL_2_GPR(gpr,symbol) \ |
|||
.global symbol ; \ |
|||
l.movhi gpr, hi(symbol) ; \ |
|||
l.ori gpr, gpr, lo(symbol) |
|||
#endif |
|||
Loading…
Reference in new issue