Skip to content

Commit 5081709

Browse files
author
Vladimir Isaev
committed
[ARC] [libgloss] Introduce hostlink interface
There is a special interface built in ARC simulators (such as NSIM) called Metaware hostlink IO which can be used to implement system calls. This commit adds support for this interface to the ARC port of libgloss.
1 parent 3ebb48c commit 5081709

32 files changed

+2309
-100
lines changed

libgloss/arc/Makefile.in

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ LD = @LD@
4343
RANLIB = @RANLIB@
4444

4545
UART_CFLAGS = @UART_CFLAGS@
46+
HL_CFLAGS = @HL_CFLAGS@
4647

4748
OBJDUMP = `if [ -f ${objroot}/../binutils/objdump ] ; \
4849
then echo ${objroot}/../binutils/objdump ; \
@@ -51,7 +52,7 @@ OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
5152
then echo ${objroot}/../binutils/objcopy ; \
5253
else t='$(program_transform_name)'; echo objcopy | sed -e $$t ; fi`
5354

54-
CRT0 = gcrt0.o crt0.o
55+
CRT0 = gcrt0.o crt0.o arc-main-helper.o
5556
CRT0_INSTALL = install-crt0
5657

5758
NSIM_BSP = libnsim.a
@@ -60,6 +61,7 @@ NSIM_OBJS = \
6061
nsim-syscalls.o \
6162
sbrk.o \
6263
mcount.o
64+
6365
NSIM_INSTALL = install-nsim
6466
NSIM_SCRIPTS = nsim.specs
6567

@@ -74,6 +76,18 @@ QEMU_OBJS = \
7476
QEMU_INSTALL = install-qemu
7577
QEMU_SCRIPTS = qemu.specs
7678

79+
HL_BSP = libhl.a
80+
HL_OBJS = \
81+
arc-timer.o \
82+
hl-stub.o \
83+
hl-setup.o \
84+
libcfunc.o \
85+
sbrk.o \
86+
mcount.o
87+
88+
HL_INSTALL = install-hl
89+
HL_SCRIPTS = hl.specs
90+
7791
UART_LIB = libdw_uart.a
7892
UART_OBJS = write.o \
7993
read.o \
@@ -88,17 +102,18 @@ MEMORY_MAPS = emsk_em9d.x \
88102
MEMORY_MAP_INSTALL = install-map
89103

90104
UART_DIR = uart-dir
105+
HL_DIR = hl-dir
91106

92107
CFLAGS = -g
93-
override CFLAGS += $(UART_CFLAGS)
108+
override CFLAGS += $(UART_CFLAGS) $(HL_CFLAGS)
94109

95110
CPU_FAMILY = $(findstring em,${MULTISUBDIR})
96111
ifeq ($(CPU_FAMILY), em)
97-
ALL = $(CRT0) $(NSIM_BSP) $(UART_LIB) $(QEMU_BSP)
112+
ALL = $(CRT0) $(NSIM_BSP) $(UART_LIB) $(QEMU_BSP) $(HL_BSP)
98113
else
99-
ALL = $(CRT0) $(NSIM_BSP) $(QEMU_BSP)
114+
ALL = $(CRT0) $(NSIM_BSP) $(QEMU_BSP) $(HL_BSP)
100115
endif
101-
ALL_INSTALL = $(CRT0_INSTALL) $(NSIM_INSTALL) $(NANO_INSTALL) $(UART_INSTALL) $(MEMORY_MAP_INSTALL) $(QEMU_INSTALL)
116+
ALL_INSTALL = $(CRT0_INSTALL) $(NSIM_INSTALL) $(NANO_INSTALL) $(UART_INSTALL) $(MEMORY_MAP_INSTALL) $(QEMU_INSTALL) $(HL_INSTALL)
102117

103118
# These are roughly topologically sorted in order to make porting more
104119
# streamlined.
@@ -139,8 +154,11 @@ $(UART_LIB): $(UART_OBJS) $(UART_DIR)
139154
$(AR) $(ARFLAGS) $@ $(UART_OBJS) dw_uart/*.o
140155
$(RANLIB) $@
141156

157+
$(HL_DIR): hl
142158
$(UART_DIR): dw_uart
143-
for dir in .. ${SUBDIRS}; do \
159+
160+
$(HL_DIR) $(UART_DIR):
161+
for dir in .. $^; do \
144162
if [ x$$dir != x.. ]; then \
145163
if [ -d $$dir ]; then \
146164
(cd $$dir; $(MAKE) $(FLAGS_TO_PASS) all) || exit $$?; \
@@ -152,6 +170,10 @@ $(QEMU_BSP): $(QEMU_OBJS)
152170
$(AR) $(ARFLAGS) $@ $?
153171
$(RANLIB) $@
154172

173+
$(HL_BSP): $(HL_OBJS) $(HL_DIR)
174+
$(AR) $(ARFLAGS) $@ $(HL_OBJS) hl/*.o
175+
$(RANLIB) $@
176+
155177
libcfunc.o: libcfunc.c
156178
nsim-syscalls.o: nsim-syscalls.c
157179
sbrk.o: sbrk.c
@@ -163,6 +185,11 @@ qemu-write.o: qemu-write.c
163185
read.o: read.c
164186
stub.o: stub.c
165187
qemu-stub.o: qemu-stub.c
188+
hl-stub.o: hl-stub.c
189+
hl-setup.o: hl-setup.c
190+
arc-timer.o: arc-timer.c
191+
arc-main-helper.o: arc-main-helper.c
192+
166193
$(UART_OBJS):
167194
$(CC) $(CFLAGS_FOR_TARGET) $(INCLUDES) -c $(CFLAGS) $<
168195

@@ -211,6 +238,11 @@ $(QEMU_INSTALL):
211238
for x in $(QEMU_SCRIPTS); do \
212239
$(INSTALL_DATA) $(srcdir)/$$x $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$$x; done
213240

241+
$(HL_INSTALL):
242+
$(mkinstalldirs) $(DESTDIR)${tooldir}/lib${MULTISUBDIR}
243+
$(INSTALL_DATA) $(HL_BSP) $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$(HL_BSP)
244+
for x in $(HL_SCRIPTS); do \
245+
$(INSTALL_DATA) $(srcdir)/$$x $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$$x; done
214246

215247
$(MEMORY_MAP_INSTALL):
216248
$(mkinstalldirs) $(DESTDIR)${tooldir}/lib${MULTISUBDIR}

0 commit comments

Comments
 (0)