xref: /openbsd/gnu/usr.bin/gcc/gcc/config/arc/t-arc (revision c87b03e5)
1LIB1ASMSRC = arc/lib1funcs.asm
2LIB1ASMFUNCS = _mulsi3 _umulsidi3 _udivsi3 _divsi3 _umodsi3 _modsi3 _divmod_tools
3
4# We need libgcc routines to be mangled according to which cpu they
5# were compiled for.
6# ??? -mmangle-cpu passed by default for now.
7#LIBGCC2_CFLAGS = -g1 -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) -mmangle-cpu
8
9# We want fine grained libraries, so use the new code to build the
10# floating point emulation libraries.
11FPBIT = fp-bit.c
12DPBIT = dp-bit.c
13
14dp-bit.c: $(srcdir)/config/fp-bit.c
15	echo '#ifndef __big_endian__' > dp-bit.c
16	echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
17	echo '#endif' >> dp-bit.c
18	cat $(srcdir)/config/fp-bit.c >> dp-bit.c
19
20fp-bit.c: $(srcdir)/config/fp-bit.c
21	echo '#define FLOAT' > fp-bit.c
22	echo '#ifndef __big_endian__' >> fp-bit.c
23	echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
24	echo '#endif' >> fp-bit.c
25	cat $(srcdir)/config/fp-bit.c >> fp-bit.c
26
27# .init/.fini section routines
28
29crtinit.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H)
30	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \
31	  -DCRT_INIT -finhibit-size-directive -fno-inline-functions \
32	  -g0 -c $(srcdir)/config/arc/initfini.c -o crtinit.o
33
34crtfini.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H)
35	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \
36	  -DCRT_FINI -finhibit-size-directive -fno-inline-functions \
37	  -g0 -c $(srcdir)/config/arc/initfini.c -o crtfini.o
38
39MULTILIB_OPTIONS = EB
40MULTILIB_DIRNAMES = be
41
42# We need our own versions to build multiple copies of crt*.o.
43# ??? Use new support in Makefile.
44
45LIBGCC = stmp-multilib-arc
46INSTALL_LIBGCC = install-multilib-arc
47
48stmp-multilib-arc: stmp-multilib
49	for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \
50	  dir=`echo $$i | sed -e 's/;.*$$//'`; \
51	  flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
52	  $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
53	    CC="$(CC)" CFLAGS="$(CFLAGS)" \
54	    BUILD_PREFIX="$(BUILD_PREFIX)" BUILD_PREFIX_1="$(BUILD_PREFIX_1)" \
55	    GCC_CFLAGS="$(GCC_CFLAGS) $${flags}" \
56	    INCLUDES="$(INCLUDES)" CRTSTUFF_T_CFLAGS=$(CRTSTUFF_T_CFLAGS) \
57	    dir="$${dir}" crtinit.o crtfini.o; \
58	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
59	done
60	touch stmp-multilib-arc
61
62install-multilib-arc: install-multilib
63	for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \
64	  dir=`echo $$i | sed -e 's/;.*$$//'`; \
65	  rm -f $(DESTDIR)$(libsubdir)/$${dir}/crtinit.o; \
66	  $(INSTALL_DATA) $${dir}/crtinit.o $(DESTDIR)$(libsubdir)/$${dir}/crtinit.o; \
67	  chmod a-x $(DESTDIR)$(libsubdir)/$${dir}/crtinit.o; \
68	  rm -f $(DESTDIR)$(libsubdir)/$${dir}/crtfini.o; \
69	  $(INSTALL_DATA) $${dir}/crtfini.o $(DESTDIR)$(libsubdir)/$${dir}/crtfini.o; \
70	  chmod a-x $(DESTDIR)$(libsubdir)/$${dir}/crtfini.o; \
71	done
72