default_use_cxa_atexit=yes
;;
rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
- tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
tmake_file="rs6000/t-aix52 t-slibgcc"
+ if test x$cpu_is_64bit = xyes; then
+ tm_file="${tm_file} rs6000/biarch64.h rs6000/defaultaix64.h"
+ tmake_file="rs6000/t-aix64 t-slibgcc"
+ fi
+ tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
extra_options="${extra_options} rs6000/aix64.opt"
use_collect2=yes
thread_file='aix'
} \
} while (0)
-#undef ASM_SPEC
-#define ASM_SPEC "-u %{maix64:-a64} %(asm_cpu)"
+#define ASM_SPEC32 "-a32"
+#define ASM_SPEC64 "-a64"
+#define ASM_SPEC_COMMON "-u %(asm_cpu)"
/* Common ASM definitions used by ASM_SPEC amongst the various targets for
handling -mcpu=xxx switches. There is a parallel list in driver-rs6000.c to
mcpu=620: -m620; \
mcpu=630: -m620; \
mcpu=970|mcpu=G5: -m970; \
- !mcpu*: %{mvsx: -mpwr6; \
- maltivec: -m970; \
- maix64|mpowerpc64: -mppc64; \
- : %(asm_default)}} \
+ !mcpu*: %(asm_default)} \
-many"
#undef ASM_DEFAULT_SPEC
} \
while (0)
-#undef CPP_SPEC
-#define CPP_SPEC "%{posix: -D_POSIX_SOURCE} \
+#define CPP_SPEC32 ""
+#define CPP_SPEC64 "-D__64BIT__"
+#define CPP_SPEC_COMMON "%{posix: -D_POSIX_SOURCE} \
%{ansi: -D_ANSI_C_SOURCE} \
- %{maix64: -D__64BIT__} \
%{mpe: -I%R/usr/lpp/ppe.poe/include} \
%{pthread: -D_THREAD_SAFE}"
/* The GNU C++ standard library requires that these macros be
defined. Synchronize with libstdc++ os_defines.h. */
-#undef CPLUSPLUS_CPP_SPEC
-#define CPLUSPLUS_CPP_SPEC \
+#define CPLUSPLUS_CPP_SPEC_COMMON \
"-D_ALL_SOURCE -D__COMPATMATH__ \
- %{maix64: -D__64BIT__} \
%{mpe: -I%R/usr/lpp/ppe.poe/include} \
%{pthread: -D_THREAD_SAFE}"
#include "rs6000-cpus.def"
#undef RS6000_CPU
+#ifndef RS6000_BI_ARCH
#undef TARGET_DEFAULT
#define TARGET_DEFAULT ISA_2_6_MASKS_EMBEDDED
+#endif
#undef PROCESSOR_DEFAULT
#define PROCESSOR_DEFAULT PROCESSOR_POWER7
the target makefile fragment or if none of the options listed in
`MULTILIB_OPTIONS' are set by default. *Note Target Fragment::. */
-#undef MULTILIB_DEFAULTS
+#undef MULTILIB_DEFAULTS
-#undef LIB_SPEC
-#define LIB_SPEC "%{pg:-L%R/lib/profiled -L%R/usr/lib/profiled}\
+#define DEFAULT_ARCH64_P (TARGET_DEFAULT & MASK_64BIT)
+
+#define LIB_SPEC32 "%{!shared:%{g*:-lg}}"
+#define LIB_SPEC64 ""
+#define LIB_SPEC_COMMON "%{pg:-L%R/lib/profiled -L%R/usr/lib/profiled}\
%{p:-L%R/lib/profiled -L%R/usr/lib/profiled}\
- %{!maix64:%{!shared:%{g*:-lg}}}\
%{fprofile-arcs|fprofile-generate*|coverage:-lpthreads}\
%{mpe:-L%R/usr/lpp/ppe.poe/lib -lmpi -lvtd}\
%{mlong-double-128:-lc128}\
%{pthread:-lpthreads} -lc"
-#undef LINK_SPEC
-#define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro}\
+#define LINK_SPEC32 "%{!shared:%{g*: %(link_libg) }} -b32"
+#define LINK_SPEC64 "-b64"
+#define LINK_SPEC_COMMON "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro}\
%{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\
- %{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}\
- %{mpe:-binitfini:poe_remote_main}"
+ %{mpe:-binitfini:poe_remote_main} "
#undef STARTFILE_SPEC
+#if DEFAULT_ARCH64_P
+#define STARTFILE_SPEC "%{!shared:\
+ %{!maix32:%{pg:gcrt0_64%O%s;:%{p:mcrt0_64%O%s;:crt0_64%O%s}};:\
+ %{pthread:%{pg:gcrt0_r%O%s;:%{p:mcrt0_r%O%s;:crt0_r%O%s}};:\
+ %{pg:gcrt0%O%s;:%{p:mcrt0%O%s;:crt0%O%s}}}}}\
+ %{!maix32:%{shared:crtcxa_64_s%O%s;:crtcxa_64%O%s} crtdbase_64%O%s;:\
+ %{shared:crtcxa_s%O%s;:crtcxa%O%s} crtdbase%O%s}"
+#else
#define STARTFILE_SPEC "%{!shared:\
%{maix64:%{pg:gcrt0_64%O%s;:%{p:mcrt0_64%O%s;:crt0_64%O%s}};:\
%{pthread:%{pg:gcrt0_r%O%s;:%{p:mcrt0_r%O%s;:crt0_r%O%s}};:\
%{pg:gcrt0%O%s;:%{p:mcrt0%O%s;:crt0%O%s}}}}}\
- %{shared:crtcxa_s%O%s;:crtcxa%O%s} crtdbase%O%s"
+ %{maix64:%{shared:crtcxa_64_s%O%s;:crtcxa_64%O%s} crtdbase_64%O%s;:\
+ %{shared:crtcxa_s%O%s;:crtcxa%O%s} crtdbase%O%s}"
+#endif
+
+
+#undef ASM_SPEC
+#undef CPP_SPEC
+#undef CPLUSPLUS_CPP_SPEC
+#undef LIB_SPEC
+#undef LINK_SPEC
+
+#if DEFAULT_ARCH64_P
+#define ASM_SPEC "%{maix32:%(asm_spec32);:%(asm_spec64)} %(asm_spec_common)"
+#define CPP_SPEC "%{maix32:%(cpp_spec32);:%(cpp_spec64)} %(cpp_spec_common)"
+#define CPLUSPLUS_CPP_SPEC "%{maix32:%(cpp_spec32);:%(cpp_spec64)} %(cplusplus_cpp_spec_common)"
+#define LIB_SPEC "%{maix32:%(lib_spec32);:%(lib_spec64)} %(lib_spec_common)"
+#define LINK_SPEC "%{maix32:%(link_spec32);:%(link_spec64)} %(link_spec_common)"
+#else
+#define ASM_SPEC "%{maix64:%(asm_spec64);:%(asm_spec32)} %(asm_spec_common)"
+#define CPP_SPEC "%{maix64:%(cpp_spec64);:%(cpp_spec32)} %(cpp_spec_common)"
+#define CPLUSPLUS_CPP_SPEC "%{maix64:%(cpp_spec64);:%(cpp_spec32)} %(cplusplus_cpp_spec_common)"
+#define LIB_SPEC "%{maix64:%(lib_spec64);:%(lib_spec32)} %(lib_spec_common)"
+#define LINK_SPEC "%{maix64:%(link_spec64);:%(link_spec32)} %(link_spec_common)"
+#endif
+
+#undef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS \
+ { "asm_spec_common", ASM_SPEC_COMMON }, \
+ { "asm_spec32", ASM_SPEC32 }, \
+ { "asm_spec64", ASM_SPEC64 }, \
+ { "cpp_spec_common", CPP_SPEC_COMMON }, \
+ { "cplusplus_cpp_spec_common", CPLUSPLUS_CPP_SPEC_COMMON }, \
+ { "cpp_spec32", CPP_SPEC32 }, \
+ { "cpp_spec64", CPP_SPEC64 }, \
+ { "lib_spec_common", LIB_SPEC_COMMON }, \
+ { "lib_spec32", LIB_SPEC32 }, \
+ { "lib_spec64", LIB_SPEC64 }, \
+ { "link_spec_common", LINK_SPEC_COMMON }, \
+ { "link_spec32", LINK_SPEC32 }, \
+ { "link_spec64", LINK_SPEC64 },
/* AIX V5 typedefs ptrdiff_t as "long" while earlier releases used "int". */
--- /dev/null
+/* Definitions of target machine for GNU compiler,
+ for 64 bit powerpc linux defaulting to -m64.
+ Copyright (C) 2003-2020 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#define RS6000_CPU(NAME, CPU, FLAGS)
+#include "rs6000-cpus.def"
+#undef RS6000_CPU
+
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT (ISA_2_6_MASKS_EMBEDDED | MASK_POWERPC64 | MASK_64BIT)
+#undef ASM_DEFAULT_SPEC
+#define ASM_DEFAULT_SPEC "-mpwr7"
--- /dev/null
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# Build the libraries for pthread and all of the
+# different processor models
+
+MULTILIB_OPTIONS = pthread maix64/maix32
+
+MULTILIB_DIRNAMES = pthread ppc64 ppc32
+
+MULTILIB_MATCHES = .=maix32
+
all-multi: $(libatomic_la_LIBADD)
$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
+# target overrides
+ifneq ($(tmake_file),)
+include $(tmake_file)
+endif
+
include $(top_srcdir)/../multilib.am
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
+tmake_file = @tmake_file@
toolexecdir = @toolexecdir@
toolexeclibdir = @toolexeclibdir@
top_build_prefix = @top_build_prefix@
all-multi: $(libatomic_la_LIBADD)
$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
+# target overrides
+ifneq ($(tmake_file),)
+include $(tmake_file)
+endif
+
# GNU Make needs to see an explicit $(MAKE) variable in the command it
# runs to enable its job server during parallel builds. Hence the
# comments below.
--- /dev/null
+ifeq ($(MULTIBUILDTOP),)
+BITS=$(shell if test -z "`ar -X64 t .libs/$(PACKAGE).a`" ; then \
+ echo '64'; else echo '32'; fi)
+#MAJOR=$(firstword $(subst :, ,$(libtool_VERSION)))
+MAJOR=1
+all-local:
+ ar -X$(BITS) rc .libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+ ar -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+endif
+
ARCH_AARCH64_LINUX_TRUE
HAVE_IFUNC_FALSE
HAVE_IFUNC_TRUE
+tmake_file
SIZES
XLDFLAGS
XCFLAGS
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11390 "configure"
+#line 11391 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11496 "configure"
+#line 11497 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
+# Conditionalize the makefile for this target machine.
+tmake_file_=
+for f in ${tmake_file}
+do
+ if test -f ${srcdir}/config/$f
+ then
+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+ fi
+done
+tmake_file="${tmake_file_}"
+
+
+
if test x$libat_cv_have_ifunc = xyes; then
HAVE_IFUNC_TRUE=
HAVE_IFUNC_FALSE='#'
AC_SUBST(LIBS)
AC_SUBST(SIZES)
+# Conditionalize the makefile for this target machine.
+tmake_file_=
+for f in ${tmake_file}
+do
+ if test -f ${srcdir}/config/$f
+ then
+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+ fi
+done
+tmake_file="${tmake_file_}"
+AC_SUBST(tmake_file)
+
+
AM_CONDITIONAL(HAVE_IFUNC, test x$libat_cv_have_ifunc = xyes)
AM_CONDITIONAL(ARCH_AARCH64_LINUX,
[expr "$config_path" : ".* linux/aarch64 .*" > /dev/null])
config_path="$ARCH"
fi
+tmake_file=
# Other system configury
case "${target}" in
aarch64*-*-linux*)
config_path="${config_path} s390 posix"
;;
+ powerpc*-*-aix*)
+ config_path="${config_path} posix"
+ tmake_file="t-aix"
+ ;;
+
*-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu \
| *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly* \
| *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11* \
rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
md_unwind_header=rs6000/aix-unwind.h
tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble rs6000/t-aix-cxa"
- extra_parts="crtcxa.o crtcxa_s.o crtdbase.o"
+ extra_parts="crtcxa.o crtcxa_s.o crtdbase.o crtcxa_64.o crtcxa_64_s.o crtdbase_64.o"
;;
rl78-*-elf)
tmake_file="$tm_file t-fdpbit rl78/t-rl78"
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-aix-cxa.ver
crtdbase.o: $(srcdir)/config/rs6000/crtdbase.S
- $(crt_compile) -c $<
+ $(crt_compile) -maix32 -c $<
crtcxa.o: $(srcdir)/config/rs6000/crtcxa.c
- $(crt_compile) -c $<
+ $(crt_compile) -maix32 -c $<
crtcxa_s.o: $(srcdir)/config/rs6000/crtcxa.c
- $(crt_compile) -DSHARED -c $<
+ $(crt_compile) -maix32 -DSHARED -c $<
+
+crtdbase_64.o: $(srcdir)/config/rs6000/crtdbase.S
+ $(crt_compile) -maix64 -c $<
+
+crtcxa_64.o: $(srcdir)/config/rs6000/crtcxa.c
+ $(crt_compile) -maix64 -c $<
+
+crtcxa_64_s.o: $(srcdir)/config/rs6000/crtcxa.c
+ $(crt_compile) -maix64 -DSHARED -c $<
SHLIB_LINK = \
if test svr4 != $(with_aix_soname) ; then \
$(CC) $(LIBGCC2_CFLAGS) -shared -Wl,-bnortl -nodefaultlibs \
- -Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \
+ -Wl,-bE:@shlib_map_file@ -o shr.o \
@multilib_flags@ @shlib_objs@ -lc \
`case @multilib_dir@ in \
*pthread*) echo -L$(TARGET_SYSTEM_ROOT)/usr/lib/threads -lpthreads -lc_r $(TARGET_SYSTEM_ROOT)/usr/lib/libc.a ;; \
*) echo -lc ;; esac` ; \
- rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \
- $(AR_CREATE_FOR_TARGET) @multilib_dir@/tmp-@shlib_base_name@.a \
- @multilib_dir@/shr.o ; \
- mv @multilib_dir@/tmp-@shlib_base_name@.a \
- @multilib_dir@/@shlib_base_name@.a ; \
- rm -f @multilib_dir@/shr.o ; \
+ rm -f tmp-@shlib_base_name@.a ; \
+ $(AR_CREATE_FOR_TARGET) tmp-@shlib_base_name@.a shr.o ; \
+ mv tmp-@shlib_base_name@.a @shlib_base_name@.a ; \
+ rm -f shr.o ; \
fi ; \
if test aix != $(with_aix_soname) ; then \
case @multilib_dir@ in *64*) shr='shr_64' ;; *) shr='shr' ;; esac ; \
$(CC) $(LIBGCC2_CFLAGS) -shared -Wl,-G -nodefaultlibs \
- -Wl,-bE:@shlib_map_file@ -o @multilib_dir@/$$shr.o \
+ -Wl,-bE:@shlib_map_file@ -o $$shr.o \
@multilib_flags@ @shlib_objs@ -lc \
`case @multilib_dir@ in \
*pthread*) echo -L$(TARGET_SYSTEM_ROOT)/usr/lib/threads -lpthreads -lc_r $(TARGET_SYSTEM_ROOT)/usr/lib/libc.a ;; \
*) echo -lc ;; esac` ; \
- $(STRIP_FOR_TARGET) -X32_64 -e @multilib_dir@/$$shr.o ; \
+ $(STRIP_FOR_TARGET) -X32_64 -e $$shr.o ; \
{ echo "\#! $(SHLIB_SONAME)($$shr.o)" ; \
case @multilib_dir@ in *64*) echo '\# 64' ;; *) echo '\# 32' ;; esac ; \
cat @shlib_map_file@ ; \
- } > @multilib_dir@/$$shr.imp ; \
- rm -f @multilib_dir@/tmp-$(SHLIB_SONAME) ; \
- $(AR_CREATE_FOR_TARGET) @multilib_dir@/tmp-$(SHLIB_SONAME) \
- @multilib_dir@/$$shr.imp @multilib_dir@/$$shr.o ; \
- mv @multilib_dir@/tmp-$(SHLIB_SONAME) \
- @multilib_dir@/$(SHLIB_SONAME) ; \
- rm -f @multilib_dir@/@shlib_base_name@.so ; \
- $(LN_S) $(SHLIB_SONAME) @multilib_dir@/@shlib_base_name@.so ; \
- rm -f @multilib_dir@/$$shr.imp @multilib_dir@/$$shr.o ; \
+ } > $$shr.imp ; \
+ rm -f tmp-$(SHLIB_SONAME) ; \
+ $(AR_CREATE_FOR_TARGET) tmp-$(SHLIB_SONAME) $$shr.imp $$shr.o ; \
+ mv tmp-$(SHLIB_SONAME) $(SHLIB_SONAME) ; \
+ rm -f @shlib_base_name@.so ; \
+ $(LN_S) $(SHLIB_SONAME) @shlib_base_name@.so ; \
+ rm -f $$shr.imp $$shr.o ; \
fi
SHLIB_INSTALL = \
$(mkinstalldirs) $(DESTDIR)$(slibdir)@shlib_slibdir_qual@; \
if test svr4 != $(with_aix_soname) ; then \
- $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \
+ $(INSTALL_DATA) @shlib_base_name@.a \
$(DESTDIR)$(slibdir)@shlib_slibdir_qual@/ ; \
fi ; \
if test aix != $(with_aix_soname) ; then \
- $(INSTALL_DATA) @multilib_dir@/$(SHLIB_SONAME) \
+ $(INSTALL_DATA) $(SHLIB_SONAME) \
$(DESTDIR)$(slibdir)@shlib_slibdir_qual@/ ; \
rm -f $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so ; \
$(LN_S) $(SHLIB_SONAME) \
# Either 32-bit and 64-bit objects in archives.
AR_FLAGS_FOR_TARGET = -X32_64
+
+# Build and install AIX-style FAT libraries
+ifeq ($(MULTIBUILDTOP),)
+BITS=$(shell if test -z "`ar -X64 t libgcc_s.a`" ; then \
+ echo '64'; else echo '32'; fi)
+all: all-multi
+ifeq ($(enable_shared),yes)
+ ar -X$(BITS) x ../ppc$(BITS)/libgcc/libgcc_s.a shr.o
+ ar -X$(BITS) rc ./libgcc_s.a shr.o
+ rm -f shr.o
+ ar -X$(BITS) x ../pthread/ppc$(BITS)/libgcc/libgcc_s.a shr.o
+ ar -X$(BITS) rc ../pthread/libgcc/libgcc_s.a shr.o
+ rm -f shr.o
+endif
+ ar -X$(BITS) rc libgcc.a \
+ $(addprefix ../ppc$(BITS)/libgcc/,$(libgcc-objects))
+ ar -X$(BITS) rc libgcc_eh.a \
+ $(addprefix ../ppc$(BITS)/libgcc/,$(libgcc-eh-objects))
+ ar -X$(BITS) rc ../pthread/libgcc/libgcc.a \
+ $(addprefix ../pthread/ppc$(BITS)/libgcc/,$(libgcc-objects))
+ ar -X$(BITS) rc ../pthread/libgcc/libgcc_eh.a \
+ $(addprefix ../pthread/ppc$(BITS)/libgcc/,$(libgcc-eh-objects))
+ifeq ($(enable_gcov),yes)
+ ar -X$(BITS) rc libgcov.a \
+ $(addprefix ../ppc$(BITS)/libgcc/,$(libgcov-objects))
+ ar -X$(BITS) rc ../pthread/libgcc/libgcov.a \
+ $(addprefix ../pthread/ppc$(BITS)/libgcc/,$(libgcov-objects))
+endif
+ $(MAKE) install-leaf DESTDIR=$(gcc_objdir) \
+ slibdir= libsubdir= MULTIOSDIR=$(MULTIDIR)
+ cp ../pthread/libgcc/libgcc_s.a ../../gcc/pthread/
+ cp ../pthread/libgcc/libgcc_eh.a ../../gcc/pthread/
+endif
EXTRA_DIST = $(m4_files)
+# target overrides
+ifneq ($(tmake_file),)
+include $(tmake_file)
+endif
+
include $(top_srcdir)/../multilib.am
target_os = @target_os@
target_subdir = @target_subdir@
target_vendor = @target_vendor@
+tmake_file = @tmake_file@
toolexecdir = @toolexecdir@
toolexeclibdir = @toolexeclibdir@
top_build_prefix = @top_build_prefix@
@MAINTAINER_MODE_TRUE@$(gfor_misc_specifics): m4/misc_specifics.m4 m4/head.m4
@MAINTAINER_MODE_TRUE@ $(M4) -Dfile=$@ -I$(srcdir)/m4 misc_specifics.m4 > $@
+# target overrides
+ifneq ($(tmake_file),)
+include $(tmake_file)
+endif
+
# GNU Make needs to see an explicit $(MAKE) variable in the command it
# runs to enable its job server during parallel builds. Hence the
# comments below.
--- /dev/null
+ifeq ($(MULTIBUILDTOP),)
+BITS=$(shell if test -z "`ar -X64 t .libs/$(PACKAGE).a`" ; then \
+ echo '64'; else echo '32'; fi)
+#MAJOR=$(firstword $(subst :, ,$(libtool_VERSION)))
+MAJOR=5
+all-local:
+ ar -X$(BITS) rc .libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+ ar -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+endif
+
get_gcc_base_ver
HAVE_AVX128_FALSE
HAVE_AVX128_TRUE
+tmake_file
IEEE_FLAGS
IEEE_SUPPORT
IEEE_SUPPORT_FALSE
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12726 "configure"
+#line 12727 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12832 "configure"
+#line 12833 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
IEEE_FLAGS="${ieee_flags}"
+# Conditionalize the makefile for this target machine.
+tmake_file_=
+for f in ${tmake_file}
+do
+ if test -f ${srcdir}/config/$f
+ then
+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+ fi
+done
+tmake_file="${tmake_file_}"
+
+
# Check for POSIX getpwuid_r
#
IEEE_FLAGS="${ieee_flags}"
AC_SUBST(IEEE_FLAGS)
+# Conditionalize the makefile for this target machine.
+tmake_file_=
+for f in ${tmake_file}
+do
+ if test -f ${srcdir}/config/$f
+ then
+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+ fi
+done
+tmake_file="${tmake_file_}"
+AC_SUBST(tmake_file)
+
# Check for POSIX getpwuid_r
#
# It sets the following shell variables:
#
# fpu_host FPU-specific code file, defaults to fpu-generic.
+# tmake_file A list of machine-description-specific
+# makefile fragments.
+
# DEFAULTS
sh*)
ieee_flags="-mieee" ;;
esac
+
+tmake_file=
+# Other system configury
+case "${target}" in
+
+ *-*-aix*)
+ # Create AIX-style "FAT" libraries.
+ tmake_file="t-aix"
+ ;;
+
+ *)
+ ;;
+
+esac
+
CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO)
MAINTAINERCLEANFILES = $(srcdir)/libgomp.info
+# target overrides
+ifneq ($(tmake_file),)
+include $(tmake_file)
+endif
+
include $(top_srcdir)/../multilib.am
# Plugins for offload execution, Makefile.am fragment.
#
-# Copyright (C) 2014-2019 Free Software Foundation, Inc.
+# Copyright (C) 2014-2020 Free Software Foundation, Inc.
#
# Contributed by Mentor Embedded.
#
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
+tmake_file = @tmake_file@
toolexecdir = @toolexecdir@
toolexeclibdir = @toolexeclibdir@
top_build_prefix = @top_build_prefix@
affinity.c target.c splay-tree.c libgomp-plugin.c \
oacc-parallel.c oacc-host.c oacc-init.c oacc-mem.c \
oacc-async.c oacc-plugin.c oacc-cuda.c priority_queue.c \
- affinity-fmt.c teams.c allocator.c oacc-profiling.c oacc-target.c \
- $(am__append_4)
+ affinity-fmt.c teams.c allocator.c oacc-profiling.c \
+ oacc-target.c $(am__append_4)
# Nvidia PTX OpenACC plugin.
@PLUGIN_NVPTX_TRUE@libgomp_plugin_nvptx_version_info = -version-info $(libtool_VERSION)
$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi
@touch $@
+# target overrides
+ifneq ($(tmake_file),)
+include $(tmake_file)
+endif
+
# GNU Make needs to see an explicit $(MAKE) variable in the command it
# runs to enable its job server during parallel builds. Hence the
# comments below.
--- /dev/null
+ifeq ($(MULTIBUILDTOP),)
+BITS=$(shell if test -z "`ar -X64 t .libs/$(PACKAGE).a`" ; then \
+ echo '64'; else echo '32'; fi)
+MAJOR=$(firstword $(subst :, ,$(libtool_VERSION)))
+all-local:
+ ar -X$(BITS) rc .libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+ ar -X$(BITS) rc ../pthread/$(PACKAGE)/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)/.libs/$(PACKAGE).so.$(MAJOR)
+endif
+
USE_FORTRAN_FALSE
USE_FORTRAN_TRUE
link_gomp
+tmake_file
XLDFLAGS
XCFLAGS
config_path
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11435 "configure"
+#line 11436 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11541 "configure"
+#line 11542 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CET support" >&5
$as_echo_n "checking for CET support... " >&6; }
+# NB: Avoid nested save_CFLAGS and save_LDFLAGS.
case "$host" in
i[34567]86-*-linux* | x86_64-*-linux*)
case "$enable_cet" in
+# Conditionalize the makefile for this target machine.
+tmake_file_=
+for f in ${tmake_file}
+do
+ if test -f ${srcdir}/config/$f
+ then
+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+ fi
+done
+tmake_file="${tmake_file_}"
+
+
# Cleanup and exit.
CFLAGS="$save_CFLAGS"
cat >confcache <<\_ACEOF
AC_SUBST(XCFLAGS)
AC_SUBST(XLDFLAGS)
+# Conditionalize the makefile for this target machine.
+tmake_file_=
+for f in ${tmake_file}
+do
+ if test -f ${srcdir}/config/$f
+ then
+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+ fi
+done
+tmake_file="${tmake_file_}"
+AC_SUBST(tmake_file)
+
# Cleanup and exit.
CFLAGS="$save_CFLAGS"
AC_CACHE_SAVE
# config subdirectory of the source tree.
# XCFLAGS Add extra compile flags to use.
# XLDFLAGS Add extra link flags to use.
+# tmake_file A list of machine-description-specific
+# makefile fragments.
# Optimize TLS usage by avoiding the overhead of dynamic allocation.
if test $gcc_cv_have_tls = yes ; then
esac
fi
+tmake_file=
# Since we require POSIX threads, assume a POSIX system by default.
config_path="posix"
XLDFLAGS="${XLDFLAGS} -lpthread"
# AIX needs -frandom-seed for bootstrap compare.
XCFLAGS="${XCFLAGS} -frandom-seed=\$@"
+ # Create AIX-style "FAT" libraries.
+ tmake_file="t-aix"
;;
nvptx*-*-*)
# Subdir rules rely on $(FLAGS_TO_PASS)
FLAGS_TO_PASS = $(AM_MAKEFLAGS)
+# target overrides
+ifneq ($(tmake_file),)
+include $(tmake_file)
+endif
+
include $(top_srcdir)/../multilib.am
target_os = @target_os@
target_vendor = @target_vendor@
thread_header = @thread_header@
+tmake_file = @tmake_file@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
# automake-generated TAGS rule. Make a simple one here.
TAGS: tags-recursive $(LISP)
+# target overrides
+ifneq ($(tmake_file),)
+include $(tmake_file)
+endif
+
# GNU Make needs to see an explicit $(MAKE) variable in the command it
# runs to enable its job server during parallel builds. Hence the
# comments below.
--- /dev/null
+ifeq ($(MULTIBUILDTOP),)
+BITS=$(shell if test -z "`ar -X64 t src/.libs/$(PACKAGE).a`" ; then \
+ echo '64'; else echo '32'; fi)
+MAJOR=$(firstword $(subst :, ,$(libtool_VERSION)))
+all-local:
+ ar -X$(BITS) rc src/.libs/$(PACKAGE).a ../ppc$(BITS)/$(PACKAGE)-v3/src/.libs/$(PACKAGE).so.$(MAJOR)
+ ar -X$(BITS) rc ../pthread/$(PACKAGE)-v3/src/.libs/$(PACKAGE).a ../pthread/ppc$(BITS)/$(PACKAGE)-v3/src/.libs/$(PACKAGE).so.$(MAJOR)
+endif
+
gxx_include_dir
glibcxx_prefixdir
EXTRA_CFLAGS
+tmake_file
CPU_OPT_BITS_RANDOM
CPU_OPT_EXT_RANDOM
ERROR_CONSTANTS_SRCDIR
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12062 "configure"
+#line 12063 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12168 "configure"
+#line 12169 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
# Fake what AC_TRY_COMPILE does.
cat > conftest.$ac_ext << EOF
-#line 15860 "configure"
+#line 15861 "configure"
int main()
{
typedef bool atomic_type;
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15895 "configure"
+#line 15896 "configure"
int main()
{
typedef short atomic_type;
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15930 "configure"
+#line 15931 "configure"
int main()
{
// NB: _Atomic_word not necessarily int.
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 15966 "configure"
+#line 15967 "configure"
int main()
{
typedef long long atomic_type;
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 16119 "configure"
+#line 16120 "configure"
int main()
{
_Decimal32 d1;
# unnecessary for this test.
cat > conftest.$ac_ext << EOF
-#line 16161 "configure"
+#line 16162 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
rm -f conftest*
cat > conftest.$ac_ext << EOF
-#line 16195 "configure"
+#line 16196 "configure"
template<typename T1, typename T2>
struct same
{ typedef T2 type; };
+# Conditionalize the makefile for this target machine.
+tmake_file_=
+for f in ${tmake_file}
+do
+ if test -f ${srcdir}/config/$f
+ then
+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+ fi
+done
+tmake_file="${tmake_file_}"
+
# Add CET specific flags if Intel CET is enabled.
# Check whether --enable-cet was given.
AC_SUBST(CPU_OPT_EXT_RANDOM)
AC_SUBST(CPU_OPT_BITS_RANDOM)
+# Conditionalize the makefile for this target machine.
+tmake_file_=
+for f in ${tmake_file}
+do
+ if test -f ${srcdir}/config/$f
+ then
+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+ fi
+done
+tmake_file="${tmake_file_}"
+AC_SUBST(tmake_file)
# Add CET specific flags if Intel CET is enabled.
GCC_CET_FLAGS(CET_FLAGS)
# additional symbols to export from the shared
# library, when symbol versioning is in use
#
+# tmake_file A list of machine-description-specific
+# makefile fragments.
+#
#
# If the defaults will not work for your platform, you need only change the
# variables that won't work, i.e., you do not need to explicitly set a
abi_baseline_subdir_switch=--print-multi-directory
abi_tweaks_dir="cpu/generic"
error_constants_dir="os/generic"
+tmake_file=
# HOST-SPECIFIC OVERRIDES
# Set any CPU-dependent bits.
# Newer versions of AIX only support PowerPC architecture, so use
# atomic instructions directly.
os_include_dir="os/aix"
- ;;
- aix4.[3456789]*)
- # We set os_include_dir to os/aix only on AIX 4.3 and newer, but
- # os/aix/atomicity.h works on earlier versions of AIX 4.*, so we
- # explicitly duplicate the directory for 4.[<3].
- os_include_dir="os/aix"
- atomicity_dir="os/aix"
- ;;
- aix4.*)
- os_include_dir="os/generic"
- atomicity_dir="os/aix"
+ tmake_file="os/aix/t-aix"
;;
aix*)
os_include_dir="os/generic"