gcc/libgcc/config
David Edelsohn 47ddb895df aix: Add GCC64 configuration and FAT target libraries.
This patch adds the ability to configure GCC on AIX to build as a
64 bit application and to build target libraries "FAT" libraries in both
32 bit and 64 bit mode.

The patch adds makefile fragment hooks to target libraries that allows
them to include target-specific rules.  The target specific rules for
AIX place both 32 bit and 64 bit objects and shared objects
in archives at the top-level, not multilib subdirectories.  The
multilibs are built in subdirectories, but must be combined during the
last parts of the target library build process.  Because of the way
that GCC bootstrap works, the libraries must be combined during the
multiple stages of GCC bootstrap, not solely when installed in the
final destination, so the libraries are correct at the end of
each target library build stage, not solely an install recipe.

gcc/ChangeLog

2020-06-21  David Edelsohn  <dje.gcc@gmail.com>

	* config.gcc: Use t-aix64, biarch64 and default64 for cpu_is_64bit.
	* config/rs6000/aix72.h (ASM_SPEC): Remove aix64 option.
	(ASM_SPEC32): New.
	(ASM_SPEC64): New.
	(ASM_CPU_SPEC): Remove vsx and altivec options.
	(CPP_SPEC_COMMON): Rename from CPP_SPEC.
	(CPP_SPEC32): New.
	(CPP_SPEC64): New.
	(CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
	(TARGET_DEFAULT): Only define if not BIARCH.
	(LIB_SPEC_COMMON): Rename from LIB_SPEC.
	(LIB_SPEC32): New.
	(LIB_SPEC64): New.
	(LINK_SPEC_COMMON): Rename from LINK_SPEC.
	(LINK_SPEC32): New.
	(LINK_SPEC64): New.
	(STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
	(ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
	(CPP_SPEC): Same.
	(CPLUSPLUS_CPP_SPEC): Same.
	(LIB_SPEC): Same.
	(LINK_SPEC): Same.
	(SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
	* config/rs6000/defaultaix64.h: New file.
	* config/rs6000/t-aix64: New file.

libgcc/ChangeLog

2020-06-21  David Edelsohn  <dje.gcc@gmail.com>

	* config.host (extra_parts): Add crtcxa_64 and crtdbase_64.
	* config/rs6000/t-aix-cxa: Explicitly compile 32 bit with -maix32
	and 64 bit with -maix64.
	* config/rs6000/t-slibgcc-aix: Remove extra @multilib_dir@ level.
	Build and install AIX-style FAT libraries.

libgomp/ChangeLog

2020-06-21  David Edelsohn  <dje.gcc@gmail.com>

	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
	* Makefile.in: Regenerate
	* configure.ac (tmake_file): Substitute.
	* configure: Regenerate.
	* configure.tgt (powerpc-ibm-aix*): Define tmake_file.
	* config/t-aix: New file.

libstdc++-v3/ChangeLog

2020-06-21  David Edelsohn  <dje.gcc@gmail.com>

	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
	* Makefile.in: Regenerate.
	* configure.ac (tmake_file): Substitute.
	* configure: Regenerate.
	* configure.host (aix*): Define tmake_file.
	* config/os/aix/t-aix: New file.

libatomic/ChangeLog

2020-06-21  David Edelsohn  <dje.gcc@gmail.com>

	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
	* Makefile.in: Regenerate.
	* configure.ac (tmake_file): Substitute.
	* configure: Regenerate.
	* configure.tgt (powerpc-ibm-aix*): Define tmake_file.
	* config/t-aix: New file.

libgfortran/ChangeLog

2020-06-21  David Edelsohn  <dje.gcc@gmail.com>

	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
	* Makefile.in: Regenerate.
	* configure.ac (tmake_file): Substitute.
	* configure: Regenerate.
	* configure.host: Add system configury stanza. Define tmake_file.
	* config/t-aix: New file.
2020-06-21 14:14:46 -04:00
..
aarch64 [AArch64] Use __getauxval instead of getauxval in LSE detection code in libgcc 2020-05-06 16:20:38 +01:00
alpha
arc [ARC] Make libgcc compatible with ARC's reduced register set config. 2020-01-27 14:51:03 +02:00
arm arm: unified syntax for libgcc when built with -Os [PR94220] 2020-03-26 10:59:34 +00:00
avr Typo. 2020-01-14 11:14:23 +01:00
bfin
bpf
c6x
cr16
cris libgcc: cris: Remove support for crisv32-*-* and cris*-*-linux 2020-05-09 03:00:38 +02:00
csky
epiphany
fr30
frv Fix libgcc build failure for FRV with recent versions of gas. 2020-02-10 14:12:32 -07:00
ft32
gcn [amdgcn] Remove dependency on stdint.h in libgcc 2020-01-10 23:19:41 +00:00
h8300
i386 hurd: libgcc unwinding support over signal trampolines 2020-06-18 00:01:27 +02:00
ia64 Missing __divtf3@@GCC_4.4.0 on ia64 2020-06-04 09:56:32 +02:00
iq2000
libbid Add missing ChangeLog entries. 2020-05-05 16:10:13 +02:00
lm32
m32c
m32r
m68k
mcore
microblaze
mips Emit .note.GNU-stack for hard-float linux targets. 2020-01-23 17:00:03 +01:00
mmix
moxie
msp430
nds32
nios2 nios2: Support for GOT-relative DW_EH_PE_datarel encoding. 2020-01-31 16:46:50 -08:00
nvptx
or1k
pa
pdp11
pru
riscv RISC-V: Make __divdi3 handle div by zero same as hardware. 2020-06-02 11:44:44 -07:00
rl78
rs6000 aix: Add GCC64 configuration and FAT target libraries. 2020-06-21 14:14:46 -04:00
rx
s390 S/390 zTPF: Handle skip trace addresses when unwinding 2020-04-03 08:46:11 +02:00
score
sh
sol2
sparc
stormy16
tilegx
tilepro
v850
vax
visium
vms
xtensa xtensa: libgcc: fix PR target/95571 2020-06-08 18:30:07 -07:00
darwin10-unwind-find-enc-func.c
darwin-64.c
darwin-crt3.c
darwin-crt-tm.c
gthr-lynx.h
gthr-rtems.h
gthr-vxworks-cond.c
gthr-vxworks-thread.c
gthr-vxworks-tls.c
gthr-vxworks.c
gthr-vxworks.h
hardfp.c
libgcc-glibc.ver
libgcc-libsystem.ver
no-sfp-machine.h
no-unwind.h
t-crtfm
t-crtstuff-pic
t-darwin
t-dfprules
t-eh-dw2-dip
t-fdpbit
t-fixedpoint-gnu-prefix
t-fpbit
t-freebsd-thread
t-gnu-prefix
t-gthr-noweak
t-gthr-vxworks
t-gthr-vxworksae
t-hardfp
t-hardfp-sfdf
t-libgcc-pic
t-libunwind
t-libunwind-elf
t-linux
t-openbsd-thread
t-rtems
t-slibgcc
t-slibgcc-darwin
t-slibgcc-elf-ver
t-slibgcc-fuchsia
t-slibgcc-gld
t-slibgcc-gld-nover
t-slibgcc-hpux
t-slibgcc-libgcc
t-slibgcc-nolc-override
t-slibgcc-sld
t-slibgcc-vms
t-softfp
t-softfp-compat
t-softfp-excl
t-softfp-sfdf
t-softfp-sfdftf
t-softfp-tf
t-stack
t-tls
t-vxcrtstuff
t-vxworks
t-vxworks7
t-vxworksae
unwind-dw2-fde-darwin.c
vxcache.c
vxcrtstuff.c