head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC4:1.1.1.6
	netbsd-11-0-RC3:1.1.1.6
	netbsd-11-0-RC2:1.1.1.6
	netbsd-11-0-RC1:1.1.1.6
	gcc-14-3-0:1.1.1.7
	perseant-exfatfs-base-20250801:1.1.1.6
	netbsd-11:1.1.1.6.0.2
	netbsd-11-base:1.1.1.6
	gcc-12-5-0:1.1.1.6
	netbsd-10-1-RELEASE:1.1.1.3.2.1
	perseant-exfatfs-base-20240630:1.1.1.6
	gcc-12-4-0:1.1.1.6
	perseant-exfatfs:1.1.1.5.0.2
	perseant-exfatfs-base:1.1.1.5
	netbsd-8-3-RELEASE:1.1.1.2
	netbsd-9-4-RELEASE:1.1.1.2
	netbsd-10-0-RELEASE:1.1.1.3.2.1
	netbsd-10-0-RC6:1.1.1.3.2.1
	netbsd-10-0-RC5:1.1.1.3.2.1
	netbsd-10-0-RC4:1.1.1.3.2.1
	netbsd-10-0-RC3:1.1.1.3.2.1
	netbsd-10-0-RC2:1.1.1.3.2.1
	netbsd-10-0-RC1:1.1.1.3.2.1
	gcc-12-3-0:1.1.1.5
	gcc-10-5-0:1.1.1.4
	netbsd-10:1.1.1.3.0.2
	netbsd-10-base:1.1.1.3
	netbsd-9-3-RELEASE:1.1.1.2
	gcc-10-4-0:1.1.1.3
	cjep_sun2x-base1:1.1.1.2
	cjep_sun2x:1.1.1.2.0.34
	cjep_sun2x-base:1.1.1.2
	cjep_staticlib_x-base1:1.1.1.2
	netbsd-9-2-RELEASE:1.1.1.2
	cjep_staticlib_x:1.1.1.2.0.32
	cjep_staticlib_x-base:1.1.1.2
	gcc-10-3-0:1.1.1.2
	netbsd-9-1-RELEASE:1.1.1.2
	gcc-9-3-0:1.1.1.2
	gcc-7-5-0:1.1.1.2
	phil-wifi-20200421:1.1.1.2
	phil-wifi-20200411:1.1.1.2
	is-mlppp:1.1.1.2.0.30
	is-mlppp-base:1.1.1.2
	phil-wifi-20200406:1.1.1.2
	netbsd-8-2-RELEASE:1.1.1.2
	gcc-8-4-0:1.1.1.2
	netbsd-9-0-RELEASE:1.1.1.2
	netbsd-9-0-RC2:1.1.1.2
	netbsd-9-0-RC1:1.1.1.2
	phil-wifi-20191119:1.1.1.2
	gcc-8-3-0:1.1.1.2
	netbsd-9:1.1.1.2.0.28
	netbsd-9-base:1.1.1.2
	phil-wifi-20190609:1.1.1.2
	netbsd-8-1-RELEASE:1.1.1.2
	netbsd-8-1-RC1:1.1.1.2
	pgoyette-compat-merge-20190127:1.1.1.2
	pgoyette-compat-20190127:1.1.1.2
	gcc-7-4-0:1.1.1.2
	pgoyette-compat-20190118:1.1.1.2
	pgoyette-compat-1226:1.1.1.2
	pgoyette-compat-1126:1.1.1.2
	gcc-6-5-0:1.1.1.2
	pgoyette-compat-1020:1.1.1.2
	pgoyette-compat-0930:1.1.1.2
	pgoyette-compat-0906:1.1.1.2
	netbsd-7-2-RELEASE:1.1.1.2
	pgoyette-compat-0728:1.1.1.2
	netbsd-8-0-RELEASE:1.1.1.2
	phil-wifi:1.1.1.2.0.26
	phil-wifi-base:1.1.1.2
	pgoyette-compat-0625:1.1.1.2
	netbsd-8-0-RC2:1.1.1.2
	pgoyette-compat-0521:1.1.1.2
	pgoyette-compat-0502:1.1.1.2
	pgoyette-compat-0422:1.1.1.2
	netbsd-8-0-RC1:1.1.1.2
	pgoyette-compat-0415:1.1.1.2
	pgoyette-compat-0407:1.1.1.2
	pgoyette-compat-0330:1.1.1.2
	pgoyette-compat-0322:1.1.1.2
	pgoyette-compat-0315:1.1.1.2
	netbsd-7-1-2-RELEASE:1.1.1.2
	pgoyette-compat:1.1.1.2.0.24
	pgoyette-compat-base:1.1.1.2
	gcc-6-4-0:1.1.1.2
	netbsd-7-1-1-RELEASE:1.1.1.2
	gcc-5-5-0:1.1.1.2
	matt-nb8-mediatek:1.1.1.2.0.22
	matt-nb8-mediatek-base:1.1.1.2
	perseant-stdc-iso10646:1.1.1.2.0.20
	perseant-stdc-iso10646-base:1.1.1.2
	netbsd-8:1.1.1.2.0.18
	netbsd-8-base:1.1.1.2
	prg-localcount2-base3:1.1.1.2
	prg-localcount2-base2:1.1.1.2
	prg-localcount2-base1:1.1.1.2
	prg-localcount2:1.1.1.2.0.16
	prg-localcount2-base:1.1.1.2
	pgoyette-localcount-20170426:1.1.1.2
	bouyer-socketcan-base1:1.1.1.2
	pgoyette-localcount-20170320:1.1.1.2
	netbsd-7-1:1.1.1.2.0.14
	netbsd-7-1-RELEASE:1.1.1.2
	netbsd-7-1-RC2:1.1.1.2
	netbsd-7-nhusb-base-20170116:1.1.1.2
	bouyer-socketcan:1.1.1.2.0.12
	bouyer-socketcan-base:1.1.1.2
	pgoyette-localcount-20170107:1.1.1.2
	netbsd-7-1-RC1:1.1.1.2
	pgoyette-localcount-20161104:1.1.1.2
	netbsd-7-0-2-RELEASE:1.1.1.2
	localcount-20160914:1.1.1.2
	netbsd-7-nhusb:1.1.1.2.0.10
	netbsd-7-nhusb-base:1.1.1.2
	pgoyette-localcount-20160806:1.1.1.2
	pgoyette-localcount-20160726:1.1.1.2
	pgoyette-localcount:1.1.1.2.0.8
	pgoyette-localcount-base:1.1.1.2
	gcc-5-4-0:1.1.1.2
	netbsd-7-0-1-RELEASE:1.1.1.2
	gcc-5-3-0:1.1.1.2
	netbsd-7-0:1.1.1.2.0.6
	netbsd-7-0-RELEASE:1.1.1.2
	gcc-4-8-5-pre-gcc-old-import:1.1.1.2
	netbsd-7-0-RC3:1.1.1.2
	netbsd-7-0-RC2:1.1.1.2
	post-gcc-4-8-5-merge:1.1.1.2
	gcc-4-8-5:1.1.1.2
	netbsd-7-0-RC1:1.1.1.2
	gcc-4-8-4:1.1.1.2
	gcc-4-8-20141009:1.1.1.2
	netbsd-6-0-6-RELEASE:1.1.1.1
	netbsd-6-1-5-RELEASE:1.1.1.1
	netbsd-7:1.1.1.2.0.4
	netbsd-7-base:1.1.1.2
	gcc-4-8-3:1.1.1.2
	yamt-pagecache-base9:1.1.1.2
	yamt-pagecache-tag8:1.1.1.1
	netbsd-6-1-4-RELEASE:1.1.1.1
	netbsd-6-0-5-RELEASE:1.1.1.1
	tls-earlyentropy:1.1.1.2.0.2
	tls-earlyentropy-base:1.1.1.2
	riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.2
	riastradh-drm2-base3:1.1.1.2
	gcc-4-8-3-pre-r208254:1.1.1.2
	gcc-4-8-3-pre-r206687:1.1.1.2
	imported-to-gcc-old-20140227-0107:1.1.1.1
	netbsd-6-1-3-RELEASE:1.1.1.1
	netbsd-6-0-4-RELEASE:1.1.1.1
	netbsd-6-1-2-RELEASE:1.1.1.1
	netbsd-6-0-3-RELEASE:1.1.1.1
	netbsd-6-1-1-RELEASE:1.1.1.1
	riastradh-drm2-base2:1.1.1.1
	riastradh-drm2-base1:1.1.1.1
	riastradh-drm2:1.1.1.1.0.12
	riastradh-drm2-base:1.1.1.1
	netbsd-6-1:1.1.1.1.0.16
	netbsd-6-0-2-RELEASE:1.1.1.1
	netbsd-6-1-RELEASE:1.1.1.1
	netbsd-6-1-RC4:1.1.1.1
	netbsd-6-1-RC3:1.1.1.1
	agc-symver:1.1.1.1.0.14
	agc-symver-base:1.1.1.1
	netbsd-6-1-RC2:1.1.1.1
	netbsd-6-1-RC1:1.1.1.1
	yamt-pagecache-base8:1.1.1.1
	netbsd-6-0-1-RELEASE:1.1.1.1
	yamt-pagecache-base7:1.1.1.1
	matt-nb6-plus-nbase:1.1.1.1
	yamt-pagecache-base6:1.1.1.1
	netbsd-6-0:1.1.1.1.0.10
	netbsd-6-0-RELEASE:1.1.1.1
	gcc-4-5-4:1.1.1.1
	netbsd-6-0-RC2:1.1.1.1
	tls-maxphys:1.1.1.1.0.8
	tls-maxphys-base:1.1.1.2
	matt-nb6-plus:1.1.1.1.0.6
	matt-nb6-plus-base:1.1.1.1
	netbsd-6-0-RC1:1.1.1.1
	yamt-pagecache-base5:1.1.1.1
	yamt-pagecache-base4:1.1.1.1
	netbsd-6:1.1.1.1.0.4
	netbsd-6-base:1.1.1.1
	yamt-pagecache-base3:1.1.1.1
	yamt-pagecache-base2:1.1.1.1
	yamt-pagecache:1.1.1.1.0.2
	yamt-pagecache-base:1.1.1.1
	gcc-4-5-3:1.1.1.1
	FSF:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2011.06.21.01.23.35;	author mrg;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2011.06.21.01.23.35;	author mrg;	state Exp;
branches
	1.1.1.1.2.1
	1.1.1.1.8.1;
next	1.1.1.2;

1.1.1.2
date	2014.03.01.08.41.45;	author mrg;	state Exp;
branches;
next	1.1.1.3;
commitid	TtaB91QNTknAoYqx;

1.1.1.3
date	2022.07.22.19.52.30;	author mrg;	state Exp;
branches
	1.1.1.3.2.1;
next	1.1.1.4;
commitid	fUYPgdKzIHqhwVMD;

1.1.1.4
date	2023.07.11.00.32.45;	author mrg;	state Exp;
branches;
next	1.1.1.5;
commitid	3yo4S98RsOFBNjwE;

1.1.1.5
date	2023.07.30.05.21.15;	author mrg;	state Exp;
branches
	1.1.1.5.2.1;
next	1.1.1.6;
commitid	tk6nV4mbc9nVEMyE;

1.1.1.6
date	2024.06.30.07.35.33;	author mrg;	state Exp;
branches;
next	1.1.1.7;
commitid	m7BwZsPdfJvuHYfF;

1.1.1.7
date	2025.09.13.23.45.43;	author mrg;	state Exp;
branches;
next	;
commitid	KwhwN4krNWa6XBaG;

1.1.1.1.2.1
date	2014.05.22.16.36.24;	author yamt;	state Exp;
branches;
next	;
commitid	NrwbWqQnCbhToyBx;

1.1.1.1.8.1
date	2014.08.19.23.54.24;	author tls;	state Exp;
branches;
next	;
commitid	jTnpym9Qu0o4R1Nx;

1.1.1.3.2.1
date	2023.07.13.09.18.28;	author martin;	state Exp;
branches;
next	;
commitid	nTDZbluVjX9bCCwE;

1.1.1.5.2.1
date	2024.07.01.01.00.54;	author perseant;	state Exp;
branches;
next	;
commitid	NkoYLLCQWWw9v4gF;


desc
@@


1.1
log
@Initial revision
@
text
@# Build a shared libgcc library with the darwin linker.
SHLIB_SOVERSION = 1
SHLIB_VERSTRING = -compatibility_version $(SHLIB_SOVERSION) -current_version $(SHLIB_SOVERSION).0
SHLIB_EXT = .dylib
SHLIB_INSTALL_NAME = @@shlib_base_name@@.$(SHLIB_SOVERSION)$(SHLIB_EXT)
SHLIB_SONAME = @@shlib_base_name@@$(SHLIB_EXT)
SHLIB_SOLINK = @@shlib_base_name@@.so
SHLIB_MAP = @@shlib_map_file@@
SHLIB_OBJS = @@shlib_objs@@
SHLIB_DIR = @@multilib_dir@@
SHLIB_LC = -lc

# Darwin only searches in /usr/lib for shared libraries, not in subdirectories,
# so the libgcc variants have different names not different locations.
# Note that this version is used for the loader, not the linker; the linker
# uses the stub versions named by the versioned members of $(INSTALL_FILES).

SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -dynamiclib -nodefaultlibs \
	-install_name @@shlib_slibdir@@/$(SHLIB_INSTALL_NAME) \
	-single_module -o $(SHLIB_DIR)/$(SHLIB_SONAME) \
	-Wl,-exported_symbols_list,$(SHLIB_MAP) \
	$(SHLIB_VERSTRING) \
	@@multilib_flags@@ $(SHLIB_OBJS) $(SHLIB_LC)

SHLIB_MKMAP = $(gcc_srcdir)/mkmap-flat.awk
SHLIB_MKMAP_OPTS = -v leading_underscore=1
SHLIB_MAPFILES += $(gcc_srcdir)/libgcc-std.ver $(gcc_srcdir)/libgcc-libsystem.ver

# we're only going to build the stubs if the target slib is /usr/lib
# there is no other case in which they're useful in a live system.
ifeq (/usr/lib,$(shlib_slibdir))
LGCC_STUBS = libgcc_s.10.4.dylib libgcc_s.10.5.dylib
else
LGCC_STUBS =
endif

LGCC_FILES = libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)
LGCC_FILES += $(LGCC_STUBS)
LEXT_STUBS = libgcc_ext.10.4$(SHLIB_EXT) libgcc_ext.10.5$(SHLIB_EXT)
LGCC_FILES += $(LEXT_STUBS)
INSTALL_FILES=$(LGCC_FILES)

# we do our own thing
SHLIB_INSTALL =

# For the toplevel multilib, build a fat archive including all the multilibs.
ifeq ($(MULTIBUILDTOP),)

ifeq ($(enable_shared),yes)
all: $(INSTALL_FILES)
install-leaf: install-darwin-libgcc-stubs
endif

# In order to support -mmacosx-version-min, you need to have multiple
# different libgcc_s libraries that actually get linked against, one for
# each system version supported.  They are 'stub' libraries that
# contain no code, just a list of exported symbols.
# The actual use of the libraries is controlled by REAL_LIBGCC_SPEC.
#
# This assumes each multilib corresponds to a different architecture.
libgcc_s.%.dylib : all-multi $(SHLIB_VERPFX).%.ver libgcc_s$(SHLIB_EXT)
	MLIBS=`$(CC) --print-multi-lib | sed -e 's/;.*$$//'` ; \
	for mlib in $$MLIBS ; do \
	  $(STRIP) -o $(@@)_T$${mlib} \
	    -s $(SHLIB_VERPFX).$(*).ver -c -u \
	    ../$${mlib}/libgcc/$${mlib}/libgcc_s$(SHLIB_EXT)  || exit 1 ; \
	done
	$(LIPO) -output $@@ -create $(@@)_T*
	rm $(@@)_T*

libgcc_ext.%.dylib : all-multi $(SHLIB_VERPFX).%.ver libgcc_s$(SHLIB_EXT) 
	MLIBS=`$(CC) --print-multi-lib | sed -e 's/;.*$$//'` ; \
	for mlib in $$MLIBS ; do \
	  $(STRIP) -o $(@@)_T$${mlib} \
	    -R $(SHLIB_VERPFX).$(*).ver -c -urx \
	    ../$${mlib}/libgcc/$${mlib}/libgcc_s$(SHLIB_EXT) || exit 1 ; \
	done
	$(LIPO) -output $@@ -create $(@@)_T*
	rm $(@@)_T*

libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT): all-multi libgcc_s$(SHLIB_EXT)
	MLIBS=`$(CC) --print-multi-lib | sed -e 's/;.*$$//'` ; \
	for mlib in $$MLIBS ; do \
	  cp ../$${mlib}/libgcc/$${mlib}/libgcc_s$(SHLIB_EXT)  \
	    ./libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
	done
	$(LIPO) -output libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT) \
	  -create libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
	rm libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*

install-darwin-libgcc-stubs :
	$(mkinstalldirs) $(DESTDIR)$(slibdir)
	for d in $(INSTALL_FILES) ; do \
	  $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	done
	if [ -f $(DESTDIR)$(slibdir)/libgcc_s_ppc64.1.dylib ]; then \
	  rm -f $(DESTDIR)$(slibdir)/libgcc_s_ppc64.1.dylib; \
	else true; fi
	$(LN_S) libgcc_s.1.dylib \
		$(DESTDIR)$(slibdir)/libgcc_s_ppc64.1.dylib
	if [ -f $(DESTDIR)$(slibdir)/libgcc_s_x86_64.1.dylib ]; then \
	  rm -f $(DESTDIR)$(slibdir)/libgcc_s_x86_64.1.dylib; \
	else true; fi
	$(LN_S) libgcc_s.1.dylib \
		$(DESTDIR)$(slibdir)/libgcc_s_x86_64.1.dylib

else

# Do not install shared libraries for any other multilibs.  Unless
# we're putting them in the gcc directory during a build, for
# compatibility with the pre-top-level layout.  In that case we
# need symlinks.

ifeq ($(enable_shared),yes)
all: install-darwin-libgcc-links
endif

install-darwin-libgcc-links:
	$(mkinstalldirs) $(gcc_objdir)$(MULTISUBDIR)
	for file in $(INSTALL_FILES); do			\
	  rm -f $(gcc_objdir)$(MULTISUBDIR)/$$file;		\
	  $(LN_S) ../$$file $(gcc_objdir)$(MULTISUBDIR)/;	\
	done

	rm -f $(gcc_objdir)$(MULTISUBDIR)/libgcc_s_x86_64.1.dylib
	$(LN_S) libgcc_s.1.dylib \
		$(gcc_objdir)$(MULTISUBDIR)/libgcc_s_x86_64.1.dylib

	rm -f $(gcc_objdir)$(MULTISUBDIR)/libgcc_s_ppc64.1.dylib
	$(LN_S) libgcc_s.1.dylib \
		$(gcc_objdir)$(MULTISUBDIR)/libgcc_s_ppc64.1.dylib

endif
@


1.1.1.1
log
@initial import of GCC 4.5.3 sources.  changes since 4.1 are way too numerous
to review, please see http://gcc.gnu.org/gcc-4.5/changes.html (and the 4.2,
4.3 and 4.4 versions, too.)

this includes the core, c++, objc and the non java/ada/fortran parts of the
testsuite.
@
text
@@


1.1.1.1.8.1
log
@Rebase to HEAD as of a few days ago.
@
text
@d25 1
a25 1
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
d27 1
a27 2
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/libgcc-libsystem.ver
SHLIB_VERPFX = $(srcdir)/config/$(cpu_type)/libgcc-darwin
@


1.1.1.1.2.1
log
@sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")
@
text
@d25 1
a25 1
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
d27 1
a27 2
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/libgcc-libsystem.ver
SHLIB_VERPFX = $(srcdir)/config/$(cpu_type)/libgcc-darwin
@


1.1.1.2
log
@import GCC 4.8 branch at r206687.

highlights from: http://gcc.gnu.org/gcc-4.6/changes.html

   GCC now has stricter checks for invalid command-line options
   New -Wunused-but-set-variable and -Wunused-but-set-parameter
      warnings
   Many platforms have been obsoleted
   Link-time optimization improvements
   A new switch -fstack-usage has been added
   A new function attribute leaf was introduced
   A new warning, enabled by -Wdouble-promotion
   Support for selectively enabling and disabling warnings via
      #pragma GCC diagnostic has been added
   There is now experimental support for some features from the
      upcoming C1X revision of the ISO C standard
   Improved experimental support for the upcoming C++0x ISO C++
      standard
   G++ now issues clearer diagnostics in several cases
   Updates for ARM, x86, MIPS, PPC/PPC64, SPARC
   Darwin, FreeBSD, Solaris 2, MinGW and Cygwin now all support
      __float128 on 32-bit and 64-bit x86 targets. [*1]

highlights from: http://gcc.gnu.org/gcc-4.7/changes.html

   The -fconserve-space flag has been deprecated
   Support for a new parameter --param case-values-threshold=n
      was added
   Interprocedural and Link-time optimization improvements
   A new built-in, __builtin_assume_aligned, has been added
   A new warning option -Wunused-local-typedefs was added
   A new experimental command-line option -ftrack-macro-expansion
      was added
   Support for atomic operations specifying the C++11/C11 memory
      model has been added
   There is support for some more features from the C11 revision
      of the ISO C standard
   Improved experimental support for the new ISO C++ standard,
      C++11
   Updates for ARM, x86, MIPS, PPC/PPC64, SH, SPARC, TILE*
   A new option (-grecord-gcc-switches) was added

highlights from: http://gcc.gnu.org/gcc-4.8/changes.html

   GCC now uses C++ as its implementation language.  This means
      that to build GCC from sources, you will need a C++
      compiler that understands C++ 2003
   DWARF4 is now the default when generating DWARF debug
      information
   A new general optimization level, -Og, has been introduced
   A new option -ftree-partial-pre was added
   The option -fconserve-space has been removed
   The command-line options -fipa-struct-reorg and
      -fipa-matrix-reorg have been removed
   Interprocedural and Link-time optimization improvements
   AddressSanitizer, a fast memory error detector, has been
      added  [*2]
   A new -Wsizeof-pointer-memaccess warning has been added
   G++ now supports a -std=c++1y option for experimentation
      with features proposed for the next revision of the
      standard, expected around 2014
   Improved experimental support for the new ISO C++ standard,
      C++11
   A new port has been added to support AArch64
   Updates for ARM, x86, MIPS, PPC/PPC64, SH, SPARC, TILE*


[*1] we should support this too!
[*2] we should look into this.
     https://code.google.com/p/address-sanitizer/
@
text
@d25 1
a25 1
SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
d27 1
a27 2
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/libgcc-libsystem.ver
SHLIB_VERPFX = $(srcdir)/config/$(cpu_type)/libgcc-darwin
@


1.1.1.3
log
@initial import of GCC 10.4.0 sources.

mostly a large list of PRs fixed (210 total), plus one x86-64
specific change related to MMX and 64 bit integer return.

https://gcc.gnu.org/gcc-10/changes.html links to the full list
of PRs fixed.
@
text
@d2 2
a3 5

SHLIB_SOVERSION = 1.1
SHLIB_SO_MINVERSION = 1
SHLIB_VERSTRING = -compatibility_version $(SHLIB_SO_MINVERSION) \
		  -current_version $(SHLIB_SOVERSION)
a4 8
SHLIB_LC = -lSystem
SHLIB_INSTALL_DIR = $(slibdir)

SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
SHLIB_MKMAP_OPTS = -v leading_underscore=1

# Shorthand expressions for the LINK below, these are substituted in the
# link expression.
d6 2
d9 1
d11 1
a11 1
SHLIB_SONAME = @@shlib_base_name@@$(SHLIB_EXT)
d13 4
a16 4
# Darwin only searches in shlib_slibdir for shared libraries, not in
# subdirectories.  The link builds one architecture slice in its designated
# subdir.  The code under MULTIBUILDTOP combines these into a single FAT
# library, that is what we eventually install.
d18 2
a19 2
SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) $(LDFLAGS) -dynamiclib -nodefaultlibs \
	-install_name $(SHLIB_INSTALL_DIR)/$(SHLIB_INSTALL_NAME) \
d23 1
a23 1
	@@multilib_flags@@ @@shlib_objs@@ $(SHLIB_LC)
d25 4
a28 40
# we do our own thing
SHLIB_INSTALL =

LGCC_FILES = libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)

ifeq ($(BUILD_LIBGCCS1),YES)

# We are going to build a libgcc_s.1.dylib so that distributions can
# install it for compatibility with binaries linked against the old
# libgcc_ext.10.x.dylib stubs.

# For systems after macOS 10.7 we can forward the correct unwinder symbols
# from libSystem.

# For older systems we have to forward an entire library (since they cannot
# selectively forward symbols, which means that we cannot forward the unwinder
# in /usr/lib/libgcc_s.1.dylib).  We also cannot forward the entire library
# since that creates a self-referencing loop when DYLD_LIBRARY_PATH is used.
# To provide the unwinder symbols in this case, we build the unwinder into a
# separate shared lib (libgcc_ehs) and forward that.

# These targets are local to this make fragment, which means that they do not
# get the substitutions seen in SHLIB_LINK.

ifneq ($(LIBEHSOBJS),)

EHS_INSTNAME = libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)

# multilib build for a shared EH lib.

libgcc_ehs$(SHLIB_EXT): $(LIBEHSOBJS) $(extra-parts)
	mkdir -p $(MULTIDIR)
	$(CC) $(LIBGCC2_CFLAGS) $(LDFLAGS) -dynamiclib -nodefaultlibs \
	-install_name $(SHLIB_INSTALL_DIR)/$(EHS_INSTNAME) \
	-o $(MULTIDIR)/libgcc_ehs$(SHLIB_EXT) $(SHLIB_VERSTRING) \
	$(LIBEHSOBJS) $(SHLIB_LC)

all: libgcc_ehs$(SHLIB_EXT)

LGCC_FILES += libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)
d30 6
d38 5
a42 2
# Provide libgcc_s.1 for backwards compatibility.
LGCC_FILES += libgcc_s.1.dylib
d44 2
a45 3
endif

INSTALL_FILES=$(LGCC_FILES)
d47 1
a47 1
# For the toplevel multilib, build FAT dylibs including all the multilibs.
d55 8
a62 1
libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT): all-multi libgcc_s$(SHLIB_EXT)
d65 3
a67 2
	  cp ../$${mlib}/libgcc/$${mlib}/libgcc_s$(SHLIB_EXT)  \
	    ./libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
d69 2
a70 3
	$(LIPO) -output libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT) \
	  -create libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
	rm libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
d72 1
a72 4
ifeq ($(BUILD_LIBGCCS1),YES)
ifneq ($(LIBEHSOBJS),)

libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT): all-multi libgcc_ehs$(SHLIB_EXT)
d75 3
a77 2
	  cp ../$${mlib}/libgcc/$${mlib}/libgcc_ehs$(SHLIB_EXT)  \
	    ./libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
d79 2
a80 3
	$(LIPO) -output libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT) \
	  -create libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
	rm libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
d82 1
a82 3

libgcc_s.1.dylib: all-multi libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT) \
		  libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)
a86 9
	  cp ../$${mlib}/libgcc/$${mlib}/libgcc_ehs$(SHLIB_EXT)  \
	    ./libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
	  arch=`$(LIPO) -info libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} | sed -e 's/.*:\ //'` ; \
	  $(CC) -arch $${arch} -nodefaultlibs -dynamiclib \
	    -o libgcc_s.1$(SHLIB_EXT)_T_$${mlib} \
	    -Wl,-reexport_library,libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} \
	    -Wl,-reexport_library,libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} \
	    -install_name $(SHLIB_INSTALL_DIR)/libgcc_s.1.dylib \
	    -compatibility_version 1 -current_version 1 ; \
d88 2
a89 1
	$(LIPO) -output libgcc_s.1$(SHLIB_EXT) -create libgcc_s.1$(SHLIB_EXT)_T*
a90 25
	rm libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*

else

libgcc_s.1.dylib: all-multi libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)
	MLIBS=`$(CC) --print-multi-lib | sed -e 's/;.*$$//'` ; \
	for mlib in $$MLIBS ; do \
	  cp ../$${mlib}/libgcc/$${mlib}/libgcc_s$(SHLIB_EXT)  \
	    ./libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
	  arch=`$(LIPO) -info libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} | sed -e 's/.*:\ //'` ; \
	  $(CC) -arch $${arch} -nodefaultlibs -dynamiclib \
	    -o libgcc_s.1$(SHLIB_EXT)_T_$${mlib} \
	    -Wl,-reexport_library,libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} \
	    -lSystem \
	    -Wl,-reexported_symbols_list,$(srcdir)/config/darwin-unwind.ver \
	    -install_name $(SHLIB_INSTALL_DIR)/libgcc_s.1.dylib \
	    -compatibility_version 1 -current_version 1 ; \
	done
	$(LIPO) -output libgcc_s.1$(SHLIB_EXT) -create libgcc_s.1$(SHLIB_EXT)_T*
	rm libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*

endif
endif

# Install the shared libraries.
d97 10
d110 4
a113 4
# Do not install shared libraries for multilibs.  Unless we are putting them
# in the gcc directory during a build, for compatibility with the pre-top-
# level layout.  In that case we provide symlinks to the FAT lib from the
# multilib sub-directories.
d126 8
@


1.1.1.3.2.1
log
@Sync to head external/gpl3/gcc/dist, pulling up the following revisions
(requested by mrg in ticket #231):

	external/gpl3/gcc/dist/fixincludes/tests/base/objc/runtime.h up to 1.1.1.1
	external/gpl3/gcc/dist/gcc/opts-jobserver.h     up to 1.1.1.1
	external/gpl3/gcc/dist/libgcc/config/t-darwin-min-1 up to 1.1.1.1
	external/gpl3/gcc/dist/libgcc/config/t-darwin-min-5 up to 1.1.1.1
	external/gpl3/gcc/dist/libgcc/config/t-darwin-min-8 up to 1.1.1.1
	external/gpl3/gcc/dist/ChangeLog                up to 1.1.1.21
	external/gpl3/gcc/dist/LAST_UPDATED             up to 1.18
	external/gpl3/gcc/dist/MD5SUMS                  up to 1.18
	external/gpl3/gcc/dist/NEWS                     up to 1.16
	external/gpl3/gcc/dist/INSTALL/binaries.html    up to 1.13
	external/gpl3/gcc/dist/INSTALL/build.html       up to 1.15
	external/gpl3/gcc/dist/INSTALL/configure.html   up to 1.15
	external/gpl3/gcc/dist/INSTALL/download.html    up to 1.14
	external/gpl3/gcc/dist/INSTALL/finalinstall.html up to 1.13
	external/gpl3/gcc/dist/INSTALL/gfdl.html        up to 1.13
	external/gpl3/gcc/dist/INSTALL/index.html       up to 1.13
	external/gpl3/gcc/dist/INSTALL/old.html         up to 1.13
	external/gpl3/gcc/dist/INSTALL/prerequisites.html up to 1.15
	external/gpl3/gcc/dist/INSTALL/specific.html    up to 1.14
	external/gpl3/gcc/dist/INSTALL/test.html        up to 1.13
	external/gpl3/gcc/dist/config/ChangeLog         up to 1.1.1.21
	external/gpl3/gcc/dist/contrib/ChangeLog        up to 1.1.1.21
	external/gpl3/gcc/dist/contrib/header-tools/ChangeLog up to 1.1.1.11
	external/gpl3/gcc/dist/contrib/reghunt/ChangeLog up to 1.1.1.20
	external/gpl3/gcc/dist/contrib/regression/ChangeLog up to 1.1.1.20
	external/gpl3/gcc/dist/fixincludes/ChangeLog    up to 1.1.1.20
	external/gpl3/gcc/dist/fixincludes/fixincl.x    up to 1.1.1.16
	external/gpl3/gcc/dist/fixincludes/inclhack.def up to 1.1.1.15
	external/gpl3/gcc/dist/fixincludes/tests/base/stdio.h up to 1.1.1.6
	external/gpl3/gcc/dist/gcc/BASE-VER             up to 1.1.1.19
	external/gpl3/gcc/dist/gcc/ChangeLog            up to 1.24
	external/gpl3/gcc/dist/gcc/DATESTAMP            up to 1.1.1.22
	external/gpl3/gcc/dist/gcc/asan.c               up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/bb-reorder.c         up to 1.1.1.15
	external/gpl3/gcc/dist/gcc/builtins.c           up to 1.20
	external/gpl3/gcc/dist/gcc/cfgbuild.c           up to 1.1.1.11
	external/gpl3/gcc/dist/gcc/cgraphclones.c       up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/cgraphunit.c         up to 1.1.1.14
	external/gpl3/gcc/dist/gcc/config.gcc           up to 1.72
	external/gpl3/gcc/dist/gcc/cse.c                up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/expr.c               up to 1.19
	external/gpl3/gcc/dist/gcc/function.c           up to 1.1.1.18
	external/gpl3/gcc/dist/gcc/function.h           up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/gcc.c                up to 1.25
	external/gpl3/gcc/dist/gcc/generic-match-head.c up to 1.1.1.9
	external/gpl3/gcc/dist/gcc/gimple-ssa-store-merging.c up to 1.1.1.9
	external/gpl3/gcc/dist/gcc/ifcvt.c              up to 1.1.1.15
	external/gpl3/gcc/dist/gcc/ira-color.c          up to 1.10
	external/gpl3/gcc/dist/gcc/loop-invariant.c     up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/lto-streamer-in.c    up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/lto-wrapper.c        up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/match.pd             up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/omp-expand.c         up to 1.1.1.8
	external/gpl3/gcc/dist/gcc/omp-low.c            up to 1.1.1.19
	external/gpl3/gcc/dist/gcc/optabs.c             up to 1.1.1.15
	external/gpl3/gcc/dist/gcc/optc-save-gen.awk    up to 1.1.1.10
	external/gpl3/gcc/dist/gcc/opts-common.c        up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/predict.c            up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/ree.c                up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/reg-stack.c          up to 1.1.1.11
	external/gpl3/gcc/dist/gcc/regrename.c          up to 1.1.1.11
	external/gpl3/gcc/dist/gcc/sanopt.c             up to 1.1.1.10
	external/gpl3/gcc/dist/gcc/selftest-diagnostic.c up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/symbol-summary.h     up to 1.1.1.9
	external/gpl3/gcc/dist/gcc/tree-inline.c        up to 1.1.1.18
	external/gpl3/gcc/dist/gcc/tree-loop-distribution.c up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/tree-nested.c        up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/tree-sra.c           up to 1.1.1.17
	external/gpl3/gcc/dist/gcc/tree-ssa-ccp.c       up to 1.16
	external/gpl3/gcc/dist/gcc/tree-ssa-dom.c       up to 1.1.1.16
	external/gpl3/gcc/dist/gcc/tree-ssa-loop-ivopts.c up to 1.1.1.14
	external/gpl3/gcc/dist/gcc/tree-ssa-reassoc.c   up to 1.1.1.18
	external/gpl3/gcc/dist/gcc/tree-ssa-sccvn.c     up to 1.1.1.18
	external/gpl3/gcc/dist/gcc/tree-ssa-strlen.c    up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/tree-ssa.c           up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/tree.c               up to 1.5
	external/gpl3/gcc/dist/gcc/tree.h               up to 1.5
	external/gpl3/gcc/dist/gcc/varasm.c             up to 1.14
	external/gpl3/gcc/dist/gcc/wide-int.cc          up to 1.1.1.10
	external/gpl3/gcc/dist/gcc/wide-int.h           up to 1.1.1.10
	external/gpl3/gcc/dist/gcc/analyzer/ChangeLog   up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/brig/ChangeLog       up to 1.1.1.9
	external/gpl3/gcc/dist/gcc/c/ChangeLog          up to 1.1.1.19
	external/gpl3/gcc/dist/gcc/c/c-parser.c         up to 1.1.1.16
	external/gpl3/gcc/dist/gcc/c/c-typeck.c         up to 1.1.1.17
	external/gpl3/gcc/dist/gcc/c-family/ChangeLog   up to 1.1.1.18
	external/gpl3/gcc/dist/gcc/c-family/c-common.c  up to 1.1.1.17
	external/gpl3/gcc/dist/gcc/c-family/c-ubsan.c   up to 1.1.1.10
	external/gpl3/gcc/dist/gcc/c-family/c-warn.c    up to 1.1.1.8
	external/gpl3/gcc/dist/gcc/common/config/i386/i386-cpuinfo.h up to 1.1.1.2
	external/gpl3/gcc/dist/gcc/config/darwin.c      up to 1.1.1.15
	external/gpl3/gcc/dist/gcc/config/darwin.h      up to 1.1.1.14
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-c.c up to 1.1.1.9
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-cores.def up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-cost-tables.h up to 1.1.1.9
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-fusion-pairs.def up to 1.1.1.8
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-netbsd.h up to 1.7
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-protos.h up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-simd.md up to 1.1.1.13
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-sve-builtins.cc up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-sve.md up to 1.1.1.5
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-tune.md up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64-tuning-flags.def up to 1.1.1.8
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.c up to 1.1.1.19
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.h up to 1.4
	external/gpl3/gcc/dist/gcc/config/aarch64/aarch64.md up to 1.1.1.17
	external/gpl3/gcc/dist/gcc/config/aarch64/driver-aarch64.c up to 1.14
	external/gpl3/gcc/dist/gcc/config/aarch64/iterators.md up to 1.1.1.14
	external/gpl3/gcc/dist/gcc/config/i386/i386-builtin.def up to 1.1.1.8
	external/gpl3/gcc/dist/gcc/config/i386/i386-expand.c up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/config/i386/i386-features.c up to 1.1.1.2
	external/gpl3/gcc/dist/gcc/config/i386/i386-options.c up to 1.1.1.2
	external/gpl3/gcc/dist/gcc/config/i386/smmintrin.h up to 1.1.1.11
	external/gpl3/gcc/dist/gcc/config/i386/t-i386   up to 1.1.1.11
	external/gpl3/gcc/dist/gcc/config/nvptx/nvptx.c up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/config/nvptx/nvptx.h up to 1.1.1.9
	external/gpl3/gcc/dist/gcc/config/nvptx/nvptx.md up to 1.1.1.9
	external/gpl3/gcc/dist/gcc/config/pa/pa.md      up to 1.1.1.17
	external/gpl3/gcc/dist/gcc/config/riscv/t-rtems up to 1.1.1.2
	external/gpl3/gcc/dist/gcc/config/rs6000/altivec.md up to 1.1.1.19
	external/gpl3/gcc/dist/gcc/config/rs6000/mma.md up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-builtin.def up to 1.1.1.19
	external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-call.c up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-logue.c up to 1.4
	external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-p8swap.c up to 1.1.1.6
	external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-protos.h up to 1.1.1.15
	external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c up to 1.32
	external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.h up to 1.1.1.17
	external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.md up to 1.1.1.20
	external/gpl3/gcc/dist/gcc/config/rs6000/rtems.h up to 1.1.1.11
	external/gpl3/gcc/dist/gcc/config/rs6000/t-rtems up to 1.1.1.11
	external/gpl3/gcc/dist/gcc/config/rs6000/vector.md up to 1.1.1.15
	external/gpl3/gcc/dist/gcc/config/rs6000/vsx.md up to 1.1.1.20
	external/gpl3/gcc/dist/gcc/config/s390/s390.c   up to 1.1.1.18
	external/gpl3/gcc/dist/gcc/config/sparc/sparc.c up to 1.1.1.19
	external/gpl3/gcc/dist/gcc/cp/ChangeLog         up to 1.1.1.22
	external/gpl3/gcc/dist/gcc/cp/constexpr.c       up to 1.1.1.14
	external/gpl3/gcc/dist/gcc/cp/cp-gimplify.c     up to 1.1.1.15
	external/gpl3/gcc/dist/gcc/cp/cp-tree.h         up to 1.1.1.15
	external/gpl3/gcc/dist/gcc/cp/cvt.c             up to 1.1.1.15
	external/gpl3/gcc/dist/gcc/cp/decl.c            up to 1.10
	external/gpl3/gcc/dist/gcc/cp/decl2.c           up to 1.1.1.18
	external/gpl3/gcc/dist/gcc/cp/expr.c            up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/cp/friend.c          up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/cp/lambda.c          up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/cp/parser.c          up to 1.1.1.21
	external/gpl3/gcc/dist/gcc/cp/pt.c              up to 1.1.1.19
	external/gpl3/gcc/dist/gcc/cp/semantics.c       up to 1.1.1.20
	external/gpl3/gcc/dist/gcc/cp/tree.c            up to 1.1.1.18
	external/gpl3/gcc/dist/gcc/cp/typeck.c          up to 1.1.1.19
	external/gpl3/gcc/dist/gcc/d/ChangeLog          up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/d/d-convert.cc       up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/d/decl.cc            up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/d/expr.cc            up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/d/gdc.texi           up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/d/imports.cc         up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/d/toir.cc            up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/d/dmd/dinterpret.c   up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/d/dmd/expressionsem.c up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/doc/cpp.1            up to 1.17
	external/gpl3/gcc/dist/gcc/doc/cpp.info         up to 1.16
	external/gpl3/gcc/dist/gcc/doc/cppinternals.info up to 1.18
	external/gpl3/gcc/dist/gcc/doc/cppopts.texi     up to 1.10
	external/gpl3/gcc/dist/gcc/doc/extend.texi      up to 1.10
	external/gpl3/gcc/dist/gcc/doc/fsf-funding.7    up to 1.15
	external/gpl3/gcc/dist/gcc/doc/g++.1            up to 1.18
	external/gpl3/gcc/dist/gcc/doc/gcc.1            up to 1.18
	external/gpl3/gcc/dist/gcc/doc/gcc.info         up to 1.16
	external/gpl3/gcc/dist/gcc/doc/gccinstall.info  up to 1.18
	external/gpl3/gcc/dist/gcc/doc/gccint.info      up to 1.17
	external/gpl3/gcc/dist/gcc/doc/gcov-dump.1      up to 1.1.1.12
	external/gpl3/gcc/dist/gcc/doc/gcov-tool.1      up to 1.11
	external/gpl3/gcc/dist/gcc/doc/gcov.1           up to 1.17
	external/gpl3/gcc/dist/gcc/doc/gfdl.7           up to 1.15
	external/gpl3/gcc/dist/gcc/doc/gfortran.1       up to 1.14
	external/gpl3/gcc/dist/gcc/doc/gpl.7            up to 1.15
	external/gpl3/gcc/dist/gcc/doc/invoke.texi      up to 1.23
	external/gpl3/gcc/dist/gcc/doc/lto-dump.1       up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/fortran/ChangeLog    up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/array.c      up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/check.c      up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/decl.c       up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/dependency.c up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/fortran/expr.c       up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/f95-lang.c   up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/fortran/gfortran.info up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/interface.c  up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/iresolve.c   up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/fortran/match.c      up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/parse.c      up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/primary.c    up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/resolve.c    up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/simplify.c   up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/symbol.c     up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/fortran/trans-decl.c up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/trans-expr.c up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/trans-intrinsic.c up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/trans-types.c up to 1.1.1.4
	external/gpl3/gcc/dist/gcc/fortran/trans.h      up to 1.1.1.3
	external/gpl3/gcc/dist/gcc/jit/ChangeLog        up to 1.1.1.14
	external/gpl3/gcc/dist/gcc/lto/ChangeLog        up to 1.1.1.20
	external/gpl3/gcc/dist/gcc/objc/ChangeLog       up to 1.1.1.20
	external/gpl3/gcc/dist/gcc/objcp/ChangeLog      up to 1.1.1.20
	external/gpl3/gcc/dist/include/ChangeLog        up to 1.1.1.20
	external/gpl3/gcc/dist/intl/ChangeLog           up to 1.1.1.20
	external/gpl3/gcc/dist/libbacktrace/ChangeLog   up to 1.1.1.19
	external/gpl3/gcc/dist/libcc1/ChangeLog         up to 1.1.1.14
	external/gpl3/gcc/dist/libcpp/ChangeLog         up to 1.1.1.20
	external/gpl3/gcc/dist/libcpp/directives.c      up to 1.1.1.13
	external/gpl3/gcc/dist/libdecnumber/ChangeLog   up to 1.1.1.20
	external/gpl3/gcc/dist/libgcc/ChangeLog         up to 1.1.1.22
	external/gpl3/gcc/dist/libgcc/config.host       up to 1.33
	external/gpl3/gcc/dist/libgcc/config/darwin10-unwind-find-enc-func.c up to 1.1.1.2
	external/gpl3/gcc/dist/libgcc/config/t-darwin   up to 1.1.1.6
	external/gpl3/gcc/dist/libgcc/config/t-slibgcc-darwin up to 1.1.1.4
	external/gpl3/gcc/dist/libgcc/config/avr/libf7/ChangeLog up to 1.1.1.3
	external/gpl3/gcc/dist/libgcc/config/avr/libf7/libf7-asm.sx up to 1.1.1.2
	external/gpl3/gcc/dist/libgcc/config/i386/cpuinfo.c up to 1.1.1.11
	external/gpl3/gcc/dist/libgcc/config/libbid/ChangeLog up to 1.1.1.20
	external/gpl3/gcc/dist/libgcc/config/riscv/div.S up to 1.1.1.7
	external/gpl3/gcc/dist/libgcc/config/riscv/riscv-asm.h up to 1.1.1.4
	external/gpl3/gcc/dist/libgfortran/ChangeLog    up to 1.1.1.4
	external/gpl3/gcc/dist/libgomp/ChangeLog        up to 1.1.1.20
	external/gpl3/gcc/dist/libgomp/libgomp.info     up to 1.15
	external/gpl3/gcc/dist/libgomp/libgomp.texi     up to 1.1.1.11
	external/gpl3/gcc/dist/libgomp/target.c         up to 1.1.1.9
	external/gpl3/gcc/dist/libgomp/task.c           up to 1.1.1.12
	external/gpl3/gcc/dist/libhsail-rt/ChangeLog    up to 1.1.1.9
	external/gpl3/gcc/dist/libiberty/ChangeLog      up to 1.1.1.20
	external/gpl3/gcc/dist/libiberty/strstr.c       up to 1.1.1.2
	external/gpl3/gcc/dist/libobjc/ChangeLog        up to 1.1.1.21
	external/gpl3/gcc/dist/libphobos/ChangeLog      up to 1.1.1.4
	external/gpl3/gcc/dist/libphobos/src/std/path.d up to 1.1.1.2
	external/gpl3/gcc/dist/libquadmath/ChangeLog    up to 1.1.1.4
	external/gpl3/gcc/dist/libquadmath/libquadmath.info up to 1.1.1.4
	external/gpl3/gcc/dist/libquadmath/strtod/strtod_l.c up to 1.1.1.2
	external/gpl3/gcc/dist/libsanitizer/ChangeLog   up to 1.4
	external/gpl3/gcc/dist/libsanitizer/configure.tgt up to 1.10
	external/gpl3/gcc/dist/libssp/ChangeLog         up to 1.1.1.20
	external/gpl3/gcc/dist/libstdc++-v3/ChangeLog   up to 1.1.1.22
	external/gpl3/gcc/dist/libstdc++-v3/config/os/gnu-linux/os_defines.h up to 1.1.1.11
	external/gpl3/gcc/dist/libstdc++-v3/doc/doxygen/user.cfg.in up to 1.1.1.7
	external/gpl3/gcc/dist/libstdc++-v3/doc/html/bk02.html up to 1.1.1.4
	external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/api.html up to 1.1.1.11
	external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/ext_demangling.html up to 1.1.1.7
	external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/extensions.html up to 1.1.1.6
	external/gpl3/gcc/dist/libstdc++-v3/doc/html/manual/index.html up to 1.1.1.14
	external/gpl3/gcc/dist/libstdc++-v3/doc/xml/authors.xml up to 1.1.1.4
	external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/evolution.xml up to 1.1.1.10
	external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/extensions.xml up to 1.1.1.13
	external/gpl3/gcc/dist/libstdc++-v3/doc/xml/manual/spine.xml up to 1.1.1.11
	external/gpl3/gcc/dist/libstdc++-v3/include/Makefile.am up to 1.1.1.16
	external/gpl3/gcc/dist/libstdc++-v3/include/Makefile.in up to 1.1.1.16
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/fs_path.h up to 1.1.1.6
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/gslice_array.h up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/indirect_array.h up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/list.tcc up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/mask_array.h up to 1.1.1.13
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/range_access.h up to 1.1.1.11
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex.h up to 1.1.1.13
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex.tcc up to 1.1.1.10
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_automaton.h up to 1.1.1.11
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_compiler.h up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_compiler.tcc up to 1.1.1.10
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_error.h up to 1.1.1.11
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_executor.tcc up to 1.1.1.10
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_scanner.h up to 1.1.1.11
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/regex_scanner.tcc up to 1.1.1.10
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/shared_ptr_base.h up to 1.1.1.16
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/slice_array.h up to 1.1.1.13
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_iterator.h up to 1.1.1.14
	external/gpl3/gcc/dist/libstdc++-v3/include/bits/stl_uninitialized.h up to 1.1.1.13
	external/gpl3/gcc/dist/libstdc++-v3/include/experimental/numeric up to 1.1.1.8
	external/gpl3/gcc/dist/libstdc++-v3/include/experimental/optional up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/include/std/any up to 1.1.1.9
	external/gpl3/gcc/dist/libstdc++-v3/include/std/memory up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/include/std/numeric up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/include/std/ranges up to 1.1.1.3
	external/gpl3/gcc/dist/libstdc++-v3/include/std/span up to 1.1.1.3
	external/gpl3/gcc/dist/libstdc++-v3/include/std/valarray up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/python/libstdcxx/v6/xmethods.py up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/src/c++11/thread.cc up to 1.1.1.12
	external/gpl3/gcc/dist/libstdc++-v3/src/c++17/fs_path.cc up to 1.1.1.4
	external/gpl3/gcc/dist/lto-plugin/ChangeLog     up to 1.1.1.20
	external/gpl3/gcc/dist/maintainer-scripts/ChangeLog up to 1.1.1.21

Import gcc 10.5.
@
text
@d75 4
a82 5
ifeq ($(BUILD_LIBGCCS1),YES)
# Provide libgcc_s.1 for backwards compatibility.
INSTALL_FILES += libgcc_s.1.dylib
endif

d161 3
a163 9
	if test x$(slibdir) = x; then \
	  for d in $(LGCC_FILES) ; do \
	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	  done; \
	else \
	  for d in $(INSTALL_FILES) ; do \
	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	  done; \
	fi
@


1.1.1.4
log
@initial import of GCC 10.5.0.

(we plan to import 12.3 soon as well, this is mostly so it can be pulled up
to netbsd-10 branch more easily.)

the list of PR's fixed since 10.4.0 can be found here:

https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.5

which includes 3 C, 25 C++, 4 debug, 17 libstdc++, and many others for the
internals.
@
text
@d75 4
a82 5
ifeq ($(BUILD_LIBGCCS1),YES)
# Provide libgcc_s.1 for backwards compatibility.
INSTALL_FILES += libgcc_s.1.dylib
endif

d161 3
a163 9
	if test x$(slibdir) = x; then \
	  for d in $(LGCC_FILES) ; do \
	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	  done; \
	else \
	  for d in $(INSTALL_FILES) ; do \
	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	  done; \
	fi
@


1.1.1.5
log
@initial import of GCC 12.3.0.

major changes in GCC 11 included:

- The default mode for C++ is now -std=gnu++17 instead of -std=gnu++14.
- When building GCC itself, the host compiler must now support C++11,
  rather than C++98.
- Some short options of the gcov tool have been renamed: -i to -j and
  -j to -H.
- ThreadSanitizer improvements.
- Introduce Hardware-assisted AddressSanitizer support.
- For targets that produce DWARF debugging information GCC now defaults
  to DWARF version 5. This can produce up to 25% more compact debug
  information compared to earlier versions.
- Many optimisations.
- The existing malloc attribute has been extended so that it can be
  used to identify allocator/deallocator API pairs. A pair of new
  -Wmismatched-dealloc and -Wmismatched-new-delete warnings are added.
- Other new warnings:
  -Wsizeof-array-div, enabled by -Wall, warns about divisions of two
    sizeof operators when the first one is applied to an array and the
    divisor does not equal the size of the array element.
  -Wstringop-overread, enabled by default, warns about calls to string
    functions reading past the end of the arrays passed to them as
    arguments.
  -Wtsan, enabled by default, warns about unsupported features in
    ThreadSanitizer (currently std::atomic_thread_fence).
- Enchanced warnings:
  -Wfree-nonheap-object detects many more instances of calls to
    deallocation functions with pointers not returned from a dynamic
    memory allocation function.
  -Wmaybe-uninitialized diagnoses passing pointers or references to
    uninitialized memory to functions taking const-qualified arguments.
  -Wuninitialized detects reads from uninitialized dynamically
    allocated memory.
  -Warray-parameter warns about functions with inconsistent array forms.
  -Wvla-parameter warns about functions with inconsistent VLA forms.
- Several new features from the upcoming C2X revision of the ISO C
  standard are supported with -std=c2x and -std=gnu2x.
- Several C++20 features have been implemented.
- The C++ front end has experimental support for some of the upcoming
  C++23 draft.
- Several new C++ warnings.
- Enhanced Arm, AArch64, x86, and RISC-V CPU support.
- The implementation of how program state is tracked within
  -fanalyzer has been completely rewritten with many enhancements.

see https://gcc.gnu.org/gcc-11/changes.html for a full list.

major changes in GCC 12 include:

- An ABI incompatibility between C and C++ when passing or returning
  by value certain aggregates containing zero width bit-fields has
  been discovered on various targets. x86-64, ARM and AArch64
  will always ignore them (so there is a C ABI incompatibility
  between GCC 11 and earlier with GCC 12 or later), PowerPC64 ELFv2
  always take them into account (so there is a C++ ABI
  incompatibility, GCC 4.4 and earlier compatible with GCC 12 or
  later, incompatible with GCC 4.5 through GCC 11). RISC-V has
  changed the handling of these already starting with GCC 10. As
  the ABI requires, MIPS takes them into account handling function
  return values so there is a C++ ABI incompatibility with GCC 4.5
  through 11.
- STABS: Support for emitting the STABS debugging format is
  deprecated and will be removed in the next release. All ports now
  default to emit DWARF (version 2 or later) debugging info or are
  obsoleted.
- Vectorization is enabled at -O2 which is now equivalent to the
  original -O2 -ftree-vectorize -fvect-cost-model=very-cheap.
- GCC now supports the ShadowCallStack sanitizer.
- Support for __builtin_shufflevector compatible with the clang
  language extension was added.
- Support for attribute unavailable was added.
- Support for __builtin_dynamic_object_size compatible with the
  clang language extension was added.
- New warnings:
  -Wbidi-chars warns about potentially misleading UTF-8
    bidirectional control characters.
  -Warray-compare warns about comparisons between two operands of
    array type.
- Some new features from the upcoming C2X revision of the ISO C
  standard are supported with -std=c2x and -std=gnu2x.
- Several C++23 features have been implemented.
- Many C++ enhancements across warnings and -f options.

see https://gcc.gnu.org/gcc-12/changes.html for a full list.
@
text
@d75 3
d79 1
d81 1
a81 2
LGCC_FILES += libgcc_s.1.dylib

a83 2
INSTALL_FILES=$(LGCC_FILES)

d162 9
a170 3
	for d in $(INSTALL_FILES) ; do \
	  $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	done
@


1.1.1.5.2.1
log
@Sync with HEAD.
@
text
@d75 4
a82 5
ifeq ($(BUILD_LIBGCCS1),YES)
# Provide libgcc_s.1 for backwards compatibility.
INSTALL_FILES += libgcc_s.1.dylib
endif

d161 3
a163 9
	if test x$(slibdir) = x; then \
	  for d in $(LGCC_FILES) ; do \
	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	  done; \
	else \
	  for d in $(INSTALL_FILES) ; do \
	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	  done; \
	fi
@


1.1.1.6
log
@import GCC 12.4.0.

this includes at least 85 GCC PRs fixed, 2 C, 17 C++, 16 libstdc++-v3,
at least 13 target-specific (x86, arm64, riscv mostly), and at least
24 optimisation PRs.
@
text
@d75 4
a82 5
ifeq ($(BUILD_LIBGCCS1),YES)
# Provide libgcc_s.1 for backwards compatibility.
INSTALL_FILES += libgcc_s.1.dylib
endif

d161 3
a163 9
	if test x$(slibdir) = x; then \
	  for d in $(LGCC_FILES) ; do \
	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	  done; \
	else \
	  for d in $(INSTALL_FILES) ; do \
	    $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
	  done; \
	fi
@


1.1.1.7
log
@initial import of GCC 14.3.0.

major changes in GCC 13:
- improved sanitizer
- zstd debug info compression
- LTO improvements
- SARIF based diagnostic support
- new warnings: -Wxor-used-as-pow, -Wenum-int-mismatch, -Wself-move,
  -Wdangling-reference
- many new -Wanalyzer* specific warnings
- enhanced warnings: -Wpessimizing-move, -Wredundant-move
- new attributes to mark file descriptors, c++23 "assume"
- several C23 features added
- several C++23 features added
- many new features for Arm, x86, RISC-V

major changes in GCC 14:
- more strict C99 or newer support
- ia64* marked deprecated (but seemingly still in GCC 15.)
- several new hardening features
- support for "hardbool", which can have user supplied values of true/false
- explicit support for stack scrubbing upon function exit
- better auto-vectorisation support
- added clang-compatible __has_feature and __has_extension
- more C23, including -std=c23
- several C++26 features added
- better diagnostics in C++ templates
- new warnings: -Wnrvo, Welaborated-enum-base
- many new features for Arm, x86, RISC-V
- possible ABI breaking change for SPARC64 and small structures with arrays
  of floats.
@
text
@d1 1
a1 1
# Build a shared libgcc library able to use embedded runpaths.
d9 1
a25 5
# When enable_darwin_at_rpath is true, use @@rpath instead of $(slibdir) for
# this and dylibs that depend on this.  So this def must come first and be
# overridden in a make fragment that depends on the rpath setting.
SHLIB_RPATH = $(slibdir)

d27 1
a27 1
	-install_name $(SHLIB_RPATH)/$(SHLIB_INSTALL_NAME) \
d30 1
a30 1
	$(SHLIB_VERSTRING) -nodefaultrpaths \
d66 1
a66 1
	-install_name $(SHLIB_RPATH)/$(EHS_INSTNAME) \
d68 1
a68 1
	-nodefaultrpaths $(LIBEHSOBJS) $(SHLIB_LC)
d125 1
a125 1
	  $(CC) -arch $${arch} -nodefaultlibs -dynamiclib -nodefaultrpaths \
d129 2
a130 2
	    -install_name $(SHLIB_RPATH)/libgcc_s.1.dylib \
	    -compatibility_version 1 -current_version 1.1 ; \
d144 1
a144 1
	  $(CC) -arch $${arch} -nodefaultlibs -dynamiclib -nodefaultrpaths \
d149 2
a150 2
	    -install_name $(SHLIB_RPATH)/libgcc_s.1.dylib \
	    -compatibility_version 1 -current_version 1.1 ; \
@


