head	1.18;
access;
symbols
	gcc-2_8_1-990325:1.18
	gcc-2_8_1-990319:1.18
	gcc-2_8_1-990302:1.18
	gcc_2_8_1-990302:1.18
	gcc_2_8_1-990222:1.18
	gcc-2_8_1-990109:1.18
	gcc-2_8_1-981210:1.18
	gcc-2_8_1-981208:1.18
	gcc-2_8_1-980929:1.18
	gcc_2_8_1-980929:1.18
	gcc-2_8_1-980928:1.18
	gcc-2_8_1-980813:1.18
	gcc-2_8_1-980811:1.18
	gcc-2_8_1-980718:1.18
	gcc-2_8_1-980705:1.18
	gcc-2_8_1-980627:1.18
	gcc-2_8_1-980609:1.18
	gcc-2_8_1-980608:1.18
	gcc-2_8_1-980529:1.18
	gcc-2_8_1-980525:1.18
	gcc-2_8_1-980513:1.18
	gcc-2_8_1-980502:1.18
	gcc-2_8_1-980426:1.18
	gcc-2_8_1-980419:1.18
	gcc-2_8_1-980413:1.18
	gcc-2_8_1-980412:1.18
	gcc-2_8_1-980407:1.18
	gcc-2_8_1-980401:1.18
	gcc_2_8_1-980315:1.18
	gcc-2_8_1-RELEASE:1.18;
locks; strict;
comment	@# @;


1.18
date	97.06.10.21.27.51;	author meissner;	state Exp;
branches;
next	1.17;

1.17
date	96.12.12.20.55.56;	author meissner;	state Exp;
branches;
next	1.16;

1.16
date	96.11.19.22.08.04;	author meissner;	state Exp;
branches;
next	1.15;

1.15
date	96.10.31.16.51.25;	author meissner;	state Exp;
branches;
next	1.14;

1.14
date	96.10.28.15.17.18;	author meissner;	state Exp;
branches;
next	1.13;

1.13
date	96.08.22.15.47.12;	author meissner;	state Exp;
branches;
next	1.12;

1.12
date	96.08.13.20.51.55;	author meissner;	state Exp;
branches;
next	1.11;

1.11
date	96.07.23.16.44.34;	author meissner;	state Exp;
branches;
next	1.10;

1.10
date	96.05.31.19.02.31;	author meissner;	state Exp;
branches;
next	1.9;

1.9
date	96.04.27.14.31.22;	author meissner;	state Exp;
branches;
next	1.8;

1.8
date	96.04.24.16.54.48;	author meissner;	state Exp;
branches;
next	1.7;

1.7
date	96.01.24.20.56.01;	author meissner;	state Exp;
branches;
next	1.6;

1.6
date	96.01.10.16.45.21;	author meissner;	state Exp;
branches;
next	1.5;

1.5
date	95.11.30.20.02.16;	author meissner;	state Exp;
branches;
next	1.4;

1.4
date	95.07.21.18.15.38;	author meissner;	state Exp;
branches;
next	1.3;

1.3
date	95.05.22.18.57.01;	author meissner;	state Exp;
branches;
next	1.2;

1.2
date	95.05.10.20.30.43;	author meissner;	state Exp;
branches;
next	1.1;

1.1
date	95.05.10.18.26.30;	author meissner;	state Exp;
branches;
next	;


desc
@Target makefile fragment for PowerPC on V.4 with gas.
@


1.18
log
@Build libgcc.a with -mstrict-align
@
text
@# PowerPC embedded support with gas.
# Build libgcc.a with different options.

MULTILIB_OPTIONS	= msoft-float \
			  mlittle/mbig \
			  mcall-sysv/mcall-aix/mcall-solaris/mcall-linux

MULTILIB_DIRNAMES	= nof \
			  le be \
			  cs ca sol lin

MULTILIB_EXTRA_OPTS	= mrelocatable-lib mno-eabi mstrict-align
MULTILIB_EXCEPTIONS	= *mbig/*mcall-solaris* \
			  *mlittle/*mcall-solaris* \
			  *msoft-float/*mcall-solaris* \
			  *mbig/*mcall-linux* \
			  *mlittle/*mcall-linux* \
			  *msoft-float/*mcall-linux*

MULTILIB_MATCHES	= ${MULTILIB_MATCHES_FLOAT} \
			  ${MULTILIB_MATCHES_ENDIAN} \
			  ${MULTILIB_MATCHES_SYSV}
@


1.17
log
@Add @@plt if -fpic; Fix double->int conversions if stack > 32k; Redo t-* files; Fix trampolines on System V systems
@
text
@d12 1
a12 1
MULTILIB_EXTRA_OPTS	= mrelocatable-lib mno-eabi
@


1.16
log
@Use configure to set EXTRA_HEADERS, not t-* file
@
text
@d1 1
a1 21
# Do not build libgcc1.
LIBGCC1 =
CROSS_LIBGCC1 =

# These are really part of libgcc1, but this will cause them to be
# built correctly, so... [taken from t-sparclite]
LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c eabi.S eabi-ctors.c

dp-bit.c: $(srcdir)/config/fp-bit.c
	cat $(srcdir)/config/fp-bit.c > dp-bit.c

fp-bit.c: $(srcdir)/config/fp-bit.c
	echo '#define FLOAT' > fp-bit.c
	cat $(srcdir)/config/fp-bit.c >> fp-bit.c

eabi.S: $(srcdir)/config/rs6000/eabi.asm
	cat $(srcdir)/config/rs6000/eabi.asm > eabi.S

eabi-ctors.c: $(srcdir)/config/rs6000/eabi-ctors.c
	cat $(srcdir)/config/rs6000/eabi-ctors.c > eabi-ctors.c

a11 8
MULTILIB_MATCHES	= mlittle=mlittle-endian \
			  mbig=mbig-endian \
			  msoft-float=mcpu?403 \
			  msoft-float=mcpu?821 \
			  msoft-float=mcpu?860 \
			  mcall-sysv=mcall-sysv-eabi \
			  mcall-sysv=mcall-sysv-noeabi

d20 3
a22 38
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
EXTRA_MULTILIB_PARTS = ecrti$(objext) ecrtn$(objext) scrt0$(objext) scrti$(objext) scrtn$(objext)

# For eabigas we build {e,s}crti.o and {e,s}crtn.o which serve to add begin and
# end labels to all of the special sections used when we link using gcc.

# Assemble startup files.
ecrti.S: $(srcdir)/config/rs6000/eabi-ci.asm
	cat $(srcdir)/config/rs6000/eabi-ci.asm >ecrti.S

ecrtn.S: $(srcdir)/config/rs6000/eabi-cn.asm
	cat $(srcdir)/config/rs6000/eabi-cn.asm >ecrtn.S

scrti.S: $(srcdir)/config/rs6000/sol-ci.asm
	cat $(srcdir)/config/rs6000/sol-ci.asm >scrti.S

scrtn.S: $(srcdir)/config/rs6000/sol-cn.asm
	cat $(srcdir)/config/rs6000/sol-cn.asm >scrtn.S

scrt0.c: $(srcdir)/config/rs6000/sol-c0.c
	cat $(srcdir)/config/rs6000/sol-c0.c >scrt0.c

# Build multiple copies of ?crt{i,n}.o, one for each target switch.
$(T)ecrti$(objext): ecrti.S
	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrti.S -o $(T)ecrti$(objext)

$(T)ecrtn$(objext): ecrtn.S
	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrtn.S -o $(T)ecrtn$(objext)

$(T)scrti$(objext): scrti.S
	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrti.S -o $(T)scrti$(objext)

$(T)scrtn$(objext): scrtn.S
	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrti.S -o $(T)scrtn$(objext)

$(T)scrt0$(objext): scrt0.c
	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrti.S -o $(T)scrt0$(objext)
@


1.15
log
@Use EXTRA_MULTILIB_PARTS
@
text
@a4 2
EXTRA_HEADERS = $(srcdir)/ginclude/ppc-asm.h

@


1.14
log
@Work with latest changes to Makefile; -fpic does not need a TOC area
@
text
@d50 3
a52 2
LIBGCC = stmp-multilib stmp-crt
INSTALL_LIBGCC = install-multilib install-crt
d74 14
a87 53
stmp-crt: ecrti.S ecrtn.S scrt0.c scrti.S scrtn.S libgcc2.ready config.status
	for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \
	  dir=`echo $$i | sed -e 's/;.*$$//'`; \
	  flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@@/ -/g'`; \
	  case "$$flags" in \
	    *-mcall-solaris*) \
	      $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
	        LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS) $${flags}" \
	        dir="$${dir}" stmp-crt-sub2; \
	      if [ $$? -eq 0 ] ; then true; else exit 1; fi;; \
	    *-mcall-linux*) \
	      true;; \
	    *) \
	      $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
		LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS) $${flags}" \
		dir="$${dir}" stmp-crt-sub; \
	      if [ $$? -eq 0 ] ; then true; else exit 1; fi;; \
	  esac; \
	done
	touch stmp-crt

# Subroutine of stmp-crt so make -n works.
stmp-crt-sub:
	if [ -d $(dir) ]; then true; else mkdir $(dir); fi
	$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o $(dir)/ecrti.o ecrti.S
	$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o $(dir)/ecrtn.o ecrtn.S

# Subroutine of stmp-crt so make -n works.
stmp-crt-sub2:
	if [ -d $(dir) ]; then true; else mkdir $(dir); fi
	$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o $(dir)/scrti.o scrti.S
	$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o $(dir)/scrtn.o scrtn.S
	$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o $(dir)/scrt0.o scrt0.c

# Install multiple versions of ?crt[in].o
install-crt: stmp-crt installdirs install-multilib
	for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \
	  dir=`echo $$i | sed -e 's/;.*$$//'`; \
	  flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@@/ -/g'`; \
	  case "$$flags" in \
	    *-mcall-solaris*) \
	      rm -f $(libsubdir)/$${dir}/scrt[in0].o; \
	      $(INSTALL_DATA) $${dir}/scrti.o $(libsubdir)/$${dir}/scrti.o; \
	      $(INSTALL_DATA) $${dir}/scrtn.o $(libsubdir)/$${dir}/scrtn.o; \
	      $(INSTALL_DATA) $${dir}/scrt0.o $(libsubdir)/$${dir}/scrt0.o;; \
	    *-mcall-linux*) \
	      true;; \
	    *) \
	      rm -f $(libsubdir)/$${dir}/ecrt[in].o; \
	      $(INSTALL_DATA) $${dir}/ecrti.o $(libsubdir)/$${dir}/ecrti.o; \
	      $(INSTALL_DATA) $${dir}/ecrtn.o $(libsubdir)/$${dir}/ecrtn.o; \
	  esac; \
	done
@


1.13
log
@Only build eabi crtx in eabi dirs; ditto for solaris; fix multilib solaris/linux
@
text
@d108 1
a108 1
install-crt: stmp-crt install-dir install-multilib
@


1.12
log
@Build fewer multilibs
@
text
@a35 1
			  mbig=mcall-linux \
a38 1
			  mcall-sysv=mcall-solaris \
d72 2
a73 2
# Build multiple copies of crt{i,n}.o, one for each target switch.
stmp-crt: ecrti.S ecrtn.S scrti.S scrtn.S scrt0.c $(GCC_PASSES) $(EXTRA_HEADERS) stmp-multilib config.status
d77 14
a90 4
	  $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
	    LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS) $${flags}" \
	    dir="$${dir}" stmp-crt-sub; \
	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
d96 1
d99 4
d107 1
a107 1
# Install multiple versions of crt[in].o
d111 14
a124 6
	  rm -f $(libsubdir)/$${dir}/[es]crt[in0].o; \
	  $(INSTALL_DATA) $${dir}/ecrti.o $(libsubdir)/$${dir}/ecrti.o; \
	  $(INSTALL_DATA) $${dir}/ecrtn.o $(libsubdir)/$${dir}/ecrtn.o; \
	  $(INSTALL_DATA) $${dir}/scrti.o $(libsubdir)/$${dir}/scrti.o; \
	  $(INSTALL_DATA) $${dir}/scrtn.o $(libsubdir)/$${dir}/scrtn.o; \
	  $(INSTALL_DATA) $${dir}/scrt0.o $(libsubdir)/$${dir}/scrt0.o; \
@


1.11
log
@Fix -fpic problems
@
text
@a26 1
			  mrelocatable-lib \
d28 1
a28 1
			  mcall-sysv-noeabi/mcall-sysv-eabi/mcall-aix
a30 1
			  rel \
d32 1
a32 1
			  cs ce ca
a34 1
			  mlittle=mcall-solaris \
d40 11
a50 8
			  mcall-sysv-noeabi=mcall-linux \
			  mcall-sysv-eabi=meabi \
			  mcall-sysv-noeabi=mno-eabi \
			  mcall-sysv-noeabi=mcall-solaris \
			  mrelocatable-lib=mrelocatable \
			  mrelocatable-lib=fpic \
			  mrelocatable-lib=fPIC \
			  mrelocatable-lib=shared
@


1.10
log
@Solaris fixes
@
text
@d27 1
a27 1
			  mrelocatable \
d29 1
a29 1
			  mcall-sysv-noeabi/mcall-sysv-eabi/mcall-aix/mcall-solaris
d34 1
a34 1
			  cs ce ca sol
d37 1
d45 6
a50 6
			  mcall-sysv-noeabi=mno-eabi

MULTILIB_EXCEPTIONS	= *mrelocatable*/*mcall-sysv-noeabi* \
			  *mrelocatable*/*mcall-solaris* \
			  *mbig*/*mcall-solaris* \
			  *mlittle*/*mcall-solaris*
@


1.9
log
@-mrelocatable needs -meabi
@
text
@d29 1
a29 1
			  mcall-sysv-noeabi/mcall-sysv-eabi/mcall-aix
d34 1
a34 1
			  cs ce ca
a37 1
			  mlittle=mcall-solaris \
a41 1
			  mcall-sysv-noeabi=mcall-solaris \
d46 4
a49 1
MULTILIB_EXCEPTIONS	= *mrelocatable*/*mcall-sysv-noeabi*
@


1.8
log
@Solaris, Linux changes
@
text
@d48 1
a48 1
MULTILIB_EXCEPTIONS	=
@


1.7
log
@Small data support; Windows NT attributes; windows NT call indrect fix
@
text
@d9 1
a9 1
LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c
d18 6
d27 1
d29 1
a29 1
			  mcall-sysv/mcall-aix	# /mcall-aixdesc
d31 4
a34 3
MULTILIB_DIRNAMES	= soft-float \
			  little big \
			  sysv aix # aixdesc
d38 2
d42 61
a102 6
			  msoft-float=mcpu?860

#MULTILIB_EXCEPTIONS	= *mlittle/*mcall-aixdesc*

LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
@


1.6
log
@Make powerpc-eabi work again
@
text
@d22 1
a22 1
			  mcall-sysv/mcall-aix/mcall-aixdesc
d26 1
a26 1
			  sysv aix aixdesc
d34 1
a34 1
MULTILIB_EXCEPTIONS	= *mlittle/*mcall-aixdesc*
@


1.5
log
@update PowerPC support
@
text
@d30 3
a32 1
			  msoft-float=mcpu?403
@


1.4
log
@V.4 support.
@
text
@d5 2
d21 2
a22 1
			  mlittle
d25 2
a26 1
			  little-endian
d29 4
a32 3
			  msoft-float=mcpu?403 \
			  msoft-float=mcpu?mpc403 \
			  msoft-float=mcpu?ppc403
@


1.3
log
@Add -mno-toc; Support block moves if -mno-string.
@
text
@d19 1
a19 2
			  mno-toc \
			  mlittle/mbig
d22 1
a22 2
			  no-toc \
			  little-endian big-endian
a24 1
			  mbig=mbig-endian \
@


1.2
log
@Do not build -mmultiple/-mno-multiple libgcc.a variants
@
text
@d19 1
d23 1
@


1.1
log
@Add little endian PowerPC support.
@
text
@d19 1
a19 2
			  mlittle/mbig \
			  mmultiple/mno-multiple
d22 1
a22 2
			  little-endian big-endian \
			  multiple no-multiple
@
