lang/gcc45

This commit is contained in:
2015-04-25 11:56:21 +00:00
committed by Lionel Sambuc
parent 2b37a2bca1
commit 612ad0a18c
455 changed files with 25999 additions and 991 deletions

View File

@@ -1,8 +1,8 @@
# $NetBSD: Makefile,v 1.18 2015/04/10 22:01:43 rodent Exp $
# $NetBSD: Makefile,v 1.13 2013/05/31 12:41:11 wiz Exp $
DISTNAME= gcc-${GCC_VERSION}
PKGNAME= gcc45-${GCC_VERSION}
PKGREVISION= 7
PKGREVISION= 5
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_VERSION}/}
EXTRACT_SUFX= .tar.bz2
@@ -13,7 +13,6 @@ COMMENT= GNU Compiler Collection 4.5
LICENSE= gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3
USE_TOOLS+= awk:run bash:run chmod gmake:run makeinfo sed:run
GCC_REQD+= 4.4
GCC_VERSION= 4.5.3
@@ -66,12 +65,37 @@ REPLACE_BASH+= libstdc++-v3/scripts/run_doxygen
CONFIGURE_ARGS+= --prefix=${GCC_PREFIX:Q}
CONFIGURE_ARGS+= --enable-languages=${LANGS:Q}
CONFIGURE_ARGS+= --enable-shared
CONFIGURE_ARGS+= --enable-long-long
CONFIGURE_ARGS+= --with-local-prefix=${GCC_PREFIX:Q}
CONFIGURE_ARGS+= --enable-languages=${LANGS:Q}
.if ${OPSYS} == "NetBSD" && ${OS_VARIANT} == "Minix"
CPPFLAGS+= -DNETBSD_NATIVE
MAKE_ENV+= gcc_cv_as_hidden=yes gcc_cv_ld_hidden=yes
CONFIGURE_ARGS+= --disable-libssp
CONFIGURE_ARGS+= --disable-threads
CONFIGURE_ARGS+= --disable-multilib
CONFIGURE_ARGS+= --with-sysroot=/
CONFIGURE_ARGS+= --with-as=${PREFIX}/gnu/bin/as
CONFIGURE_ARGS+= --with-system-zlib
CONFIGURE_ARGS+= --target=i586-elf32-minix
CONFIGURE_ARGS+= --with-arch=i586
CONFIGURE_ARGS+= --with-tune=nocona
# BJG: Workaround for minix patch breaking on NUL inputs.
USE_TOOLS+= gsed
post-extract:
.for f in libgomp/libgomp.info libjava/classpath/doc/cp-tools.info gcc/doc/gcj.info gcc/doc/gcc.info gcc/doc/gccinstall.info gcc/doc/cppinternals.info gcc/doc/gccint.info gcc/doc/cpp.info gcc/fortran/gfortran.info
gsed -i.prev -s 's/^..\[index..\]$$/[index]/' ${WRKSRC}/${f}
.endfor
.else
CONFIGURE_ARGS+= --enable-libssp
CONFIGURE_ARGS+= --enable-threads=posix
.endif # ${OPSYS} == "NetBSD" && ${OS_VARIANT} == "Minix"
.if ${OPSYS} == "NetBSD"
.include "../../devel/binutils/buildlink3.mk"
.include "../../devel/libelf/buildlink3.mk"
@@ -82,21 +106,6 @@ MAKE_ENV+= ac_cv_func_clock_gettime=yes
.if ${OPSYS} == "Linux"
CONFIGURE_ARGS+= --disable-libquadmath --disable-libquadmath-support
.endif
.if ${OPSYS} == "Darwin"
# See ${WRKSRC}/libgcc/config/t-slibgcc-darwin: It uses strip(1) to
# create a stub library, not just to remove symbols, so we must not
# let strip(1) be a no-op regardless of ${INSTALL_UNSTRIPPED} or the
# build fails for missing files.
CONFIGURE_ARGS+= STRIP_FOR_TARGET=${TOOLS_PLATFORM.strip}
.endif
.if !empty(MACHINE_PLATFORM:MDarwin-[0-8].*-*)
CONFIGURE_ARGS+= --with-dwarf2
.endif
.if !empty(MACHINE_PLATFORM:MDarwin-[0-8].*-powerpc)
CONFIGURE_ARGS+= --disable-multilib
.endif
CONFIGURE_ENV+= CONFIG_SHELL=${CONFIG_SHELL}
@@ -130,6 +139,15 @@ pre-configure:
.if ${OPSYS} == "NetBSD"
${CP} ${WRKSRC}/gcc/config/freebsd-stdint.h ${WRKSRC}/gcc/config/netbsd-stdint.h
.if ${OS_VARIANT} == "Minix"
${CP} ${FILESDIR}/minix.h ${WRKSRC}/gcc/config/
${CP} ${FILESDIR}/t-minix ${WRKSRC}/gcc/config/
${CP} ${FILESDIR}/minix-spec.h ${WRKSRC}/gcc/config/
${CP} ${FILESDIR}/arm-minix.h ${WRKSRC}/gcc/config/arm/minix.h
${CP} ${FILESDIR}/i386-minix.h ${WRKSRC}/gcc/config/i386/minix.h
${CP} ${FILESDIR}/gcov-minix-fs-wrapper.h ${WRKSRC}/gcc/
.endif
.endif
do-configure:
@@ -146,8 +164,14 @@ do-test:
(cd ${WRKDIR}/obj && ${GMAKE} -k check)
do-install:
(cd ${WRKDIR}/obj && ${SETENV} ${MAKE_ENV} ${GMAKE} install DESTDIR=${DESTDIR} \
&& ${TEST} -f ${DESTDIR}${GCC_PREFIX}/bin/cc || ${LN} -f ${DESTDIR}${GCC_PREFIX}/bin/gcc ${DESTDIR}${GCC_PREFIX}/bin/cc)
(cd ${WRKDIR}/obj && ${SETENV} ${MAKE_ENV} ${GMAKE} install DESTDIR=${DESTDIR} )
${MKDIR} -p ${DESTDIR}/${PREFIX}/bin
.for f in g++ c++ gcov gccbug cpp gcc
${LN} -sf i586-elf32-minix-${f} ${DESTDIR}/${GCC_PREFIX}/bin/${f}
${LN} -sf ${GCC_PREFIX}/bin/i586-elf32-minix-${f} ${DESTDIR}/${PREFIX}/bin/${f}
${LN} -sf ${GCC_PREFIX}/bin/i586-elf32-minix-${f} ${DESTDIR}/${PREFIX}/bin/i586-elf32-minix-${f}
.endfor
${TEST} -f ${DESTDIR}${GCC_PREFIX}/bin/cc || ${LN} -f ${DESTDIR}${GCC_PREFIX}/bin/gcc ${DESTDIR}${GCC_PREFIX}/bin/cc
.if ${OPSYS} == "SunOS" && ${OS_VERSION} != "5.11" && !empty(MACHINE_ARCH:M*86*)
post-install:
@@ -156,7 +180,7 @@ post-install:
.endif
GENERATE_PLIST+= \
cd ${DESTDIR}${PREFIX} && ${FIND} ${GCC_SUBPREFIX} \( -type f -o -type l \) -print \
cd ${DESTDIR}${PREFIX} && ${FIND} . \( -type f -o -type l \) -a ! -name 'crt*.o' -print \
| ${SORT} ;
.include "../../mk/bsd.pkg.mk"

View File

@@ -1,4 +1,4 @@
# $NetBSD: buildlink3.mk,v 1.7 2014/09/06 08:20:29 jperkin Exp $
# $NetBSD: buildlink3.mk,v 1.6 2013/04/06 11:06:52 rodent Exp $
BUILDLINK_TREE+= gcc45
@@ -11,7 +11,7 @@ FIND_PREFIX:= BUILDLINK_PREFIX.gcc45=gcc45
_GCC45_SUBDIR= gcc45
_GCC45_PREFIX= ${BUILDLINK_PREFIX.gcc45}/${_GCC45_SUBDIR}
BUILDLINK_API_DEPENDS.gcc45+= gcc45>=4.5
BUILDLINK_API_DEPENDS.gcc45+= gcc45>=${_GCC_REQD}
BUILDLINK_ABI_DEPENDS.gcc45+= gcc45>=4.5.0
BUILDLINK_PKGSRCDIR.gcc45?= ../../lang/gcc45

View File

@@ -1,20 +1,433 @@
$NetBSD: distinfo,v 1.11 2014/12/06 18:47:01 dholland Exp $
$NetBSD: distinfo,v 1.8 2014/03/26 11:07:27 jperkin Exp $
SHA1 (gcc-4.5.3.tar.bz2) = 73c45dfda5eef6b124be53e56828b5925198cc1b
RMD160 (gcc-4.5.3.tar.bz2) = d07aa90f2186b4e082dfd5ad5d5188c097fb6247
Size (gcc-4.5.3.tar.bz2) = 66374586 bytes
SHA1 (patch-aa) = b20d2e95229bddba42819780725ab159e14f06f0
SHA1 (patch-ab) = 61bc2ebf150c6e471917e145d74e7795dc162194
SHA1 (patch-ac) = 7da8c27d521164c1a7801dda8ca62d1057ac8d32
SHA1 (patch-ad) = b72c93d8477a567363616717e20eef1b33e7d307
SHA1 (patch-af) = 54fb9fb3438eb7c646b9d51b6b0cf3ded27d4989
SHA1 (patch-ag) = b58f8b82fcf17c60eb2700bc54d6625ca45e542b
SHA1 (patch-ah) = a963394b0434b82494b7510d4b2705f77acfb668
SHA1 (patch-aj) = 1927ff77d1c51fe9e8927dba582c7d399545ae7b
SHA1 (patch-ak) = 3d8a859ba436a4b204bb99f59cd5331d695aa811
SHA1 (patch-gcc_doc_cppopts.texi) = fba9b651bdef12f9034e75cb43533b50c2c94540
SHA1 (patch-gcc_doc_generic.texi) = b255fb30f889a415318a29c50ac0510ccece0bc4
SHA1 (patch-gcc_doc_invoke.texi) = 7418eddc7e4d39fab3da1922ff86965240661fb4
SHA1 (patch-libgcc_config_t-slibgcc-darwin) = 2ddda2dd979f27c623e47db70c5abb3befdb68c9
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h) = e328bc56bbb9c3e0a76c8d98a7c0a7b8b8eda22e
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__noninline.h) = 38dd700202d741de1eeee01c44eee6e2e363b9c5
SHA1 (patch-ChangeLog) = d622f0231843d2aa16c576087eb44a53b39c50c9
SHA1 (patch-INSTALL_configure.html) = 8364340699d8b6982948c2c2ff307dcd9937c859
SHA1 (patch-LAST__UPDATED) = 8daa821d1d697b7b0ae962a51e84af8ee88db933
SHA1 (patch-MD5SUMS) = 0fcf74375e331e9b5004db6db1634ee2a0a58cd8
SHA1 (patch-Makefile.def) = 5414ce33a3828b39223a8fb947e167d78e9ed129
SHA1 (patch-Makefile.in) = f86407c1730982634816a24cb9a9e1734b21793e
SHA1 (patch-NEWS) = 00df61252f604487bf27d79e2c01eecce8953b5f
SHA1 (patch-config.guess) = 2b5046e6b1691e81f846523d32c3f9bed335a8f8
SHA1 (patch-config.sub) = 535d6136de8ed620f47015031284d084bb19bc36
SHA1 (patch-config_ChangeLog) = 0d373f6931aaab9cb68d8cd7c8834ff8c3699a26
SHA1 (patch-config_acx.m4) = fe1a075bedf90eda9dd320912d47af4385963022
SHA1 (patch-config_mh-x86-darwin) = 540c575be0867f64bbb2b09f21aeb9c8115fcdc7
SHA1 (patch-configure) = 7e92bb721b8f2609951c7c82f9ec287f86b65625
SHA1 (patch-configure.ac) = 0ebab2b51e5d1954fa2a3ee0abb5d735f91dcfe7
SHA1 (patch-contrib_ChangeLog) = b1e999b6f8693250e9c963bb92cddcc2e43d0db0
SHA1 (patch-contrib_reghunt_ChangeLog) = 27a2674cb080bc7f2c114211f6dd426831fb7eed
SHA1 (patch-contrib_regression_ChangeLog) = 75a2333efe1edf928979bc613b6172df4ff82afb
SHA1 (patch-fixincludes_ChangeLog) = 833ded2816424b0d7b400f2a03694a8fd89f2ac8
SHA1 (patch-gcc_BASE-VER) = 170b504b1462e288a09a6998293b66ceb00079e4
SHA1 (patch-gcc_ChangeLog) = eb071520d0936c96db2a7dcd6e067731933898c7
SHA1 (patch-gcc_DATESTAMP) = 6d1ec3f06df8a85c5da6548a027dfdaf96f67364
SHA1 (patch-gcc_Makefile.in) = cae6f8389a87ed025ae35b978ce61fc242eda7bc
SHA1 (patch-gcc_builtins.c) = a8a95735e4349eb6bf25627fffa0d78596a308f8
SHA1 (patch-gcc_c-common.c) = 9c445ab1e40a263c80b333b1fba1d4ba496572c4
SHA1 (patch-gcc_c-decl.c) = 1e335e1986481bf3493657348ae1bddac1f2cba1
SHA1 (patch-gcc_c-lex.c) = 691b1c776532f145b6308ccfa523b6dc56b8fa94
SHA1 (patch-gcc_c-opts.c) = da1d5a61c514da5b7a8fa65145ef5363a84fc405
SHA1 (patch-gcc_c-typeck.c) = 33c322df5e46fee3af3a888ec3b2c7789dc209e7
SHA1 (patch-gcc_c.opt) = 8b1150bca18ab39a96991ff164d910bc8666f356
SHA1 (patch-gcc_caller-save.c) = 152343f4a5e5ef21fd3918174b16106680f82cbf
SHA1 (patch-gcc_cfgexpand.c) = 8819e6622569dbfcd39efac5d6f3ec45e57ea796
SHA1 (patch-gcc_cfgrtl.c) = 4d7706dcd255405069211693a54e7915558ee614
SHA1 (patch-gcc_combine.c) = 5bddbc1f41052337306c2634ae79a9fea0da40b9
SHA1 (patch-gcc_config.gcc) = c0ca75b48ccc5a6cebcf814e82641c88b8b9ab76
SHA1 (patch-gcc_config_alpha_alpha.c) = 9fcfb4e1f993e37e9f40abf41bc288472f908579
SHA1 (patch-gcc_config_alpha_elf.h) = 04afd60eb34320b9a2148facc3c74d54f40a1062
SHA1 (patch-gcc_config_alpha_linux-unwind.h) = f616e3cf096fd9fbb09d9bb45bf2544216185a8c
SHA1 (patch-gcc_config_arm_arm-cores.def) = 46e994e2de516eff3f21a7a5c38669c21c5a829a
SHA1 (patch-gcc_config_arm_arm.c) = 6fcaf2cfc510d6ada0539e62ca44998043a3c32c
SHA1 (patch-gcc_config_arm_arm.h) = af065a0831bc70917a39195c5999664ed85b919b
SHA1 (patch-gcc_config_arm_arm.md) = 9fd644c21d371ed6b48625a2185ae0eed7e12216
SHA1 (patch-gcc_config_arm_bpabi-netbsd.c) = 75591ca45937aa538ad1cdebea0008f5bbd7ef14
SHA1 (patch-gcc_config_arm_bpabi.h) = 8bfc795506364eff45c0437a88aba0e8d9ccf934
SHA1 (patch-gcc_config_arm_elf.h) = 3f350fe20657343085e2fd88f9fb55dc72a03e4c
SHA1 (patch-gcc_config_arm_neon.md) = 14fac78792f66cd011f0fa1c876b97723647d476
SHA1 (patch-gcc_config_arm_netbsd-eabi.h) = d5b4e9b08a90f242e93d30b913f60143f041d85b
SHA1 (patch-gcc_config_arm_netbsd-elf.h) = bf1ff22d780a550c330f32be23e110d316aef228
SHA1 (patch-gcc_config_arm_t-arm) = 8cd5fb8b6862ae715d7fe08d4302475be57524a1
SHA1 (patch-gcc_config_arm_t-netbsd) = b87847d613243f01d9220f3682092988007cbd01
SHA1 (patch-gcc_config_arm_t-netbsd-eabi) = 01f4f16cf0f059aff4da5b0d30728183fb5878a9
SHA1 (patch-gcc_config_arm_thumb2.md) = e4d068e273279776d0e6b38f3fa8aea4bc7ac9f0
SHA1 (patch-gcc_config_avr_avr-stdint.h) = 19401e7a9d33577b3fc4c694ac01352c5072f067
SHA1 (patch-gcc_config_avr_avr.c) = b403d232b4a6240191a111b0bebfa2ab7368998a
SHA1 (patch-gcc_config_avr_libgcc.S) = f6c3547d29cbff835c78df44deebfe34b421dc0a
SHA1 (patch-gcc_config_bfin_linux-unwind.h) = 5766e6745f50c0ad912886e0d42e09d91254d373
SHA1 (patch-gcc_config_darwin-protos.h) = 80461a44f952733e0e2a7b340d2a5fd1cee8625c
SHA1 (patch-gcc_config_darwin.c) = 53c3906cfb9aef0dd70de70e29c64b58af6fc9f0
SHA1 (patch-gcc_config_freebsd-spec.h) = 8d0c56d129d708675a2a78bdc9aa0ae0e19a7be9
SHA1 (patch-gcc_config_i386_athlon.md) = 04e8b68b1718554fc136e8f8fcd620e6d3af3d68
SHA1 (patch-gcc_config_i386_avxintrin.h) = f197b50f151dd87a62b0d1b266ddf0df298349f5
SHA1 (patch-gcc_config_i386_constraints.md) = 45882b236c2c8f536dccc18f8dc04a9f50ea5183
SHA1 (patch-gcc_config_i386_darwin.h) = be39a2217df86fe585cdb5e7f0ac1889556331b4
SHA1 (patch-gcc_config_i386_driver-i386.c) = 07240f0d8f1f3efff7f2b2f8e6e66dae2512aa07
SHA1 (patch-gcc_config_i386_i386-protos.h) = 3bf123a4f831aafe4e33d1a6caa7820091b03419
SHA1 (patch-gcc_config_i386_i386.c) = 273b676db37a382afc7292d90f7b1782ee0ebda5
SHA1 (patch-gcc_config_i386_i386.h) = 292586a940379035c14d0ab443b183aa8b9d673a
SHA1 (patch-gcc_config_i386_i386.md) = 05303cc2d596b9a175dd7e6b637c5300bff1b384
SHA1 (patch-gcc_config_i386_linux-unwind.h) = e4aa5ddbfa08239c24a038cdcc3267bfa638eecb
SHA1 (patch-gcc_config_i386_mmx.md) = bccf4c87349ed0f13fe1d3e5f53fd2149d80ce44
SHA1 (patch-gcc_config_i386_netbsd-elf.h) = ae31ac8cc54d3d2db7d2b5262090301ac6ebdb06
SHA1 (patch-gcc_config_i386_netbsd64.h) = 26e0c3a905de1310ef0e97709e059135361adf31
SHA1 (patch-gcc_config_i386_sse.md) = 74b75ed3a3e7ccbbeb078af08d8bba424d6dbeaf
SHA1 (patch-gcc_config_i386_t-netbsd64) = 2a002275a83f63375f7d2ae027888470f2f63891
SHA1 (patch-gcc_config_i386_winnt-cxx.c) = a01f294a1e8671212bc5616a9f639726edb6eb5d
SHA1 (patch-gcc_config_ia64_fde-glibc.c) = b3890e513304a988d95899d6eaf20f6d378d996b
SHA1 (patch-gcc_config_ia64_linux-unwind.h) = 8f0b264914e5f03a90f59f92d5241329e1ab27de
SHA1 (patch-gcc_config_ia64_netbsd.h) = aca0e3549e540bfd3ab100eb3ace987f5e87aefc
SHA1 (patch-gcc_config_lm32_t-lm32) = 20ce66266818a9ff474dd9dc40a4975e2f5fe2c5
SHA1 (patch-gcc_config_m68k_constraints.md) = 16d02f2d9380b58e878c6b0e6aa93dfcad585dcf
SHA1 (patch-gcc_config_m68k_fpgnulib.c) = eca24b05d4b5c608f1b682493203a279c2278db2
SHA1 (patch-gcc_config_m68k_lb1sf68.asm) = 1e1a6df6f2b8e01e5952ad31902d422e6c6b6633
SHA1 (patch-gcc_config_m68k_m68k.md) = c224b7b7b1a91b6c70737678856a35a96e5bfdd5
SHA1 (patch-gcc_config_m68k_netbsd-elf.h) = 6ed0abb8e8699373ea865fc2914ad4e89d7794cf
SHA1 (patch-gcc_config_m68k_t-m68010-netbsd) = 6a9b3d03d41b8bbcec12ec219280c327785382c7
SHA1 (patch-gcc_config_mips_linux-unwind.h) = 52b75d1723d013795f57f78d8ca4215a48b9fabd
SHA1 (patch-gcc_config_mips_mips.c) = f593f6442c0f9e45ad989ae296d09775d4adae56
SHA1 (patch-gcc_config_mips_mips.md) = af14e6e93c9bc5d4de7626127fe319eacdd1c4b3
SHA1 (patch-gcc_config_mips_netbsd.h) = 38db596abd34c3627dae66d48800d68aaa327ce4
SHA1 (patch-gcc_config_mips_netbsd64.h) = dc20e8c6be66872661dae3e953d77d87f27524e2
SHA1 (patch-gcc_config_mips_t-netbsd64) = d60639d5aa3864fc004a141698cccd391371ecd2
SHA1 (patch-gcc_config_netbsd-elf.h) = d221928981b0e0605bad162dad9048b2d701e4f5
SHA1 (patch-gcc_config_netbsd.h) = efb6cef0c445ad47eefd16d288860d89f7e7ebd3
SHA1 (patch-gcc_config_pa_linux-unwind.h) = ec360e35c5fe63cdbd83fb894b2f99a3da3f9ba3
SHA1 (patch-gcc_config_pa_milli64.S) = f5dc19ca378ef21ec5093f12bfaed419035d223e
SHA1 (patch-gcc_config_pa_pa-netbsd.h) = 9c99102509aeb7be2e1d5ad1304a494fd5a6f7a8
SHA1 (patch-gcc_config_pa_pa-protos.h) = f82bf6debd60ff16bb39cf98aeee2ae36345192a
SHA1 (patch-gcc_config_pa_pa.c) = 92b08811bee84c54c9a2e5bb7571d89a4e310ad1
SHA1 (patch-gcc_config_pa_pa.h) = 4eb66e5e49c6c4687152c982cbf535e5f35537ca
SHA1 (patch-gcc_config_pa_pa.md) = 1e8ed0373acee0193fc30fe5047f6d631eb46478
SHA1 (patch-gcc_config_pa_pa32-netbsd.h) = 8c2e7387beb9c6cacbc882a0049c7b309dacdf0a
SHA1 (patch-gcc_config_pa_predicates.md) = b62155767425db9b6b3def825a920e93fcd25650
SHA1 (patch-gcc_config_pa_t-netbsd) = 4e387e6975dbd94845bdcef6a5b6ad3ff0349633
SHA1 (patch-gcc_config_rs6000_altivec.md) = e2124cac3cadf8a15534de19f61919b7b72e54a7
SHA1 (patch-gcc_config_rs6000_netbsd.h) = deee09c4f836ac8d4dac421faa37f17914871619
SHA1 (patch-gcc_config_rs6000_netbsd64.h) = 45b0268a5dd23dc59e32a89e6d5a7c28aa94431d
SHA1 (patch-gcc_config_rs6000_rs6000.c) = ec6f84469fdecfcfa33a4d885d4cfe1fa00c8cc8
SHA1 (patch-gcc_config_rs6000_rs6000.h) = 1e5081dc3cac1bb3a674f9d5783d51fcf690dfd6
SHA1 (patch-gcc_config_rs6000_rs6000.md) = 06fa6b53197ebdda94667487256e7afc56d40278
SHA1 (patch-gcc_config_rs6000_sysv4.h) = 98bde4c13303a1aa7a636b1031057ef98909a0b9
SHA1 (patch-gcc_config_rs6000_t-netbsd) = b63390c87745b64c0ff13817dfdf0883a5d57e5a
SHA1 (patch-gcc_config_rs6000_t-netbsd64) = 5055b170c963ec9720f7d939bd66b30b93107d99
SHA1 (patch-gcc_config_rs6000_vector.md) = cca45306af17985a740b6c9871e59d46f689663f
SHA1 (patch-gcc_config_rs6000_vsx.md) = 1876423ee6501ade195c67baec9aad205ddf0fa0
SHA1 (patch-gcc_config_rx_rx.c) = 7969fc037358fd95fac006ac9831bee10270ce73
SHA1 (patch-gcc_config_rx_rx.h) = 11056293364a2009bf9d67ea6d46e4e8150da439
SHA1 (patch-gcc_config_rx_rx.md) = 87570c83a88542833902a26f0186e3fc39bbc335
SHA1 (patch-gcc_config_sh_linux-unwind.h) = a19d10c649bea425dd347c633472386ceaf76c7b
SHA1 (patch-gcc_config_sh_sh.c) = 2818b9eca941c2c1f45b1f4bdec999b355144e40
SHA1 (patch-gcc_config_sh_sh.md) = 33dcf6e09cfcf01a1ef4d5a14a9bb1dd4940172f
SHA1 (patch-gcc_config_sh_t-netbsd) = 139290741b5bbf41ae5559613f553d3956e011d9
SHA1 (patch-gcc_config_sparc_netbsd-elf.h) = 698719d85164648b5f50c67c8454699cf15bcb11
SHA1 (patch-gcc_config_sparc_sol2-64.h) = 7561b91f49a1d17e31f3fb4bb372ab5fc088fa4f
SHA1 (patch-gcc_config_sparc_sol2-unwind.h) = 55a53fff4b8a1deea095d214f41eccb19968939a
SHA1 (patch-gcc_config_sparc_sol2.h) = de92e717117788e687545bf2f14f722af7a85564
SHA1 (patch-gcc_config_sparc_sparc-protos.h) = 3ac5b635a145eb977748be4f68bbd451f88e35b7
SHA1 (patch-gcc_config_sparc_sparc.c) = 9f155b9a7d1ad2cb4336eb66bd6f4c0a7d57249e
SHA1 (patch-gcc_config_sparc_sparc.h) = 4d20eef1528787c15c752a561df6cae8dc7dd54f
SHA1 (patch-gcc_config_sparc_sparc.md) = 0cf420977a67e363647dd170b493f4a5bdb45306
SHA1 (patch-gcc_config_sparc_t-netbsd64) = 4a6a35c658ff0b7a2ccef70325fe70c8831cf1de
SHA1 (patch-gcc_config_t-minix) = 40765debc854309846bf74c6bef4f509106e65f1
SHA1 (patch-gcc_config_t-netbsd) = 9cb716951f8f4694b4743008022aa0cf288ee2e9
SHA1 (patch-gcc_config_vax_builtins.md) = 621e1fefb610e41f379d9bb5e5d64fc8503235f6
SHA1 (patch-gcc_config_vax_constraints.md) = 86a3199d37802be6d4af83da96ef3f58150f2d24
SHA1 (patch-gcc_config_vax_elf.h) = e839b143e473697c7a29f57f0cbfdb14b4d85623
SHA1 (patch-gcc_config_vax_vax.c) = cfb52a2696f8f590c397062804c32a137fd04f32
SHA1 (patch-gcc_config_vax_vax.md) = d88640032f283ae3b73498d03aaafed5b0b2cb29
SHA1 (patch-gcc_config_xtensa_linux-unwind.h) = a23613abefdded7a42f8478cbe55e77158807fe7
SHA1 (patch-gcc_configure) = c7fbcf516f97e15985a4b1f0b9d4171f2224301e
SHA1 (patch-gcc_configure.ac) = 0e7b894c3364676395f609688f624c8733c08b56
SHA1 (patch-gcc_convert.c) = 7fc2be82e26dc8fa7d69f2379575b19c8a67a283
SHA1 (patch-gcc_cp_ChangeLog) = 465eab23f81a5df16edf32281048b4b05d9b5e83
SHA1 (patch-gcc_cp_Make-lang.in) = 996df37ffdbdc9fa1b82138f0270002d95554f2f
SHA1 (patch-gcc_cp_class.c) = 28cb2c714afc74e0e06c932275c605f5755562d1
SHA1 (patch-gcc_cp_decl.c) = 397c72cf93ee8060b478c0f6f9d880f81589ea6e
SHA1 (patch-gcc_cp_decl2.c) = a4e32c19673d87bdbdb523302a82678c1c5a88ca
SHA1 (patch-gcc_cp_init.c) = b872bff683777480a260ab90c7cd2ca77c65a64d
SHA1 (patch-gcc_cp_mangle.c) = 0c25d23fbfea5287d7b8d76d64397da21f0f9065
SHA1 (patch-gcc_cp_method.c) = 4c05ab18c5eba7102aa463e5daf04a813f2e2e61
SHA1 (patch-gcc_cp_parser.c) = 650ca0fe514f0eadb6b6af463bcdea5bb9889ded
SHA1 (patch-gcc_cp_tree.c) = 3070a8ef20b23f81eb9b2e4b897e750bc02aae1a
SHA1 (patch-gcc_cp_typeck.c) = e8236b3dc576220c9df6d360b406093f5c62f0fd
SHA1 (patch-gcc_crtstuff.c) = e830707a1c6bc26270c5504ef24940cc9d63188a
SHA1 (patch-gcc_df-problems.c) = 0428f0c22fd9e035d4ce587646bb9ad4178887da
SHA1 (patch-gcc_df.h) = a72ab98b225475d4f7d0a8cf4660a42787fd40b6
SHA1 (patch-gcc_doc_aot-compile.1) = 87f0a8a12efa68f5448118a57d3c8193294420e6
SHA1 (patch-gcc_doc_cpp.1) = 9ab9dd4dae2655eb8365ab1a8156c888eab4291f
SHA1 (patch-gcc_doc_cpp.info) = 2fe2927aff551f84550e10da337db0c05de68ae9
SHA1 (patch-gcc_doc_cpp.texi) = 7ee0b8f29950f4c70de9d8be550301d8e7296fa3
SHA1 (patch-gcc_doc_cppenv.texi) = c01cbeffd4a4160dd01f7d695d503a407f01e7c6
SHA1 (patch-gcc_doc_cppopts.texi) = 79bb79aac955cfcd9a8f737b0129892b643c2511
SHA1 (patch-gcc_doc_fsf-funding.7) = 8b2bf6933982a86d1ebacf745b2885f149fef4b3
SHA1 (patch-gcc_doc_g++.1) = 28da050ac624e5ac0cc32c6f29040871dc40eaed
SHA1 (patch-gcc_doc_gc-analyze.1) = d9c78dcfa5ffaa866aa565c5b78afff639906942
SHA1 (patch-gcc_doc_gcc.1) = 3cc0d4a6ff8ad20ab5d4ca9b3f09d91b84b63ca7
SHA1 (patch-gcc_doc_gcc.info) = a3de2570f49e03fb87cb906e6772b49e63147f3a
SHA1 (patch-gcc_doc_gccinstall.info) = 5f5925bf2782fe1130e8c309a318022f86ee319a
SHA1 (patch-gcc_doc_gccint.info) = 23e12265b136f33bc14292161c015d77cf6528fc
SHA1 (patch-gcc_doc_gcj-dbtool.1) = 6c73f5af09f45cbdeee9f79d532e105ac897a31a
SHA1 (patch-gcc_doc_gcj.1) = 9ab8f874e4432e2939851a022b32f0d7b4d973e7
SHA1 (patch-gcc_doc_gcj.info) = 4fbf44e9a48e0eb4a929e62240b391c40314cbd8
SHA1 (patch-gcc_doc_gcov.1) = 9f84f97b28d38d46c88e9af83f078997873107c3
SHA1 (patch-gcc_doc_gcov.texi) = 569ecfd1074e7d55d228e58da844f53b6d92cf85
SHA1 (patch-gcc_doc_gfdl.7) = 8bc486693aa383c03e01ba9884fe14e4bcd9c8f5
SHA1 (patch-gcc_doc_gfortran.1) = d6374af3458f9d47704a73dc89063761ce824e82
SHA1 (patch-gcc_doc_gij.1) = cdd54d251468f3af5854ca7f9ed10a4ef2010f84
SHA1 (patch-gcc_doc_gpl.7) = 26902cc2f1ac2cfc19e8d03dc4ff5e3d8d86ca4e
SHA1 (patch-gcc_doc_grmic.1) = 8b73264f2edb25c9d0ee292318778d80a03292f8
SHA1 (patch-gcc_doc_install.texi) = eb242ab314223533d906a194e9a102baf3f01a18
SHA1 (patch-gcc_doc_invoke.texi) = 75fb6157449a78c6ef418c4e2737c63aea1c2c31
SHA1 (patch-gcc_doc_jcf-dump.1) = 7a5a2996f6e9ffa7eb5ed6cb82d33ad9be1dd3ca
SHA1 (patch-gcc_doc_jv-convert.1) = ab6273731a845221793a45f52dccf1899844ff3c
SHA1 (patch-gcc_doc_md.texi) = 550e44e46af625701d0e9a2243d54ddf8b52cb50
SHA1 (patch-gcc_doc_rebuild-gcj-db.1) = 3c3a47e80d4dda0c6abf064bc1acb6348a914f49
SHA1 (patch-gcc_dojump.c) = bfef54fe05e453c2d5c733de935e9adefd010c33
SHA1 (patch-gcc_dwarf2out.c) = 17a7469f1e9e98c2f07338a137e005d3b9236aef
SHA1 (patch-gcc_expr.c) = 672e5023d489bf0fb9b0bcb8622fdd4be1113af3
SHA1 (patch-gcc_expr.h) = a0eeacaaff9425a9d834abeaeee341f1f2f312ee
SHA1 (patch-gcc_final.c) = cf7492a869f5626014b84779e2b9a1791afd0dd1
SHA1 (patch-gcc_fold-const.c) = b9abbe554f9aad91f2057749e66745fa8abf0ab3
SHA1 (patch-gcc_function.c) = 9885996a87e81942aa9ebe0a02b6493d022407c1
SHA1 (patch-gcc_fwprop.c) = f8f5253f262b52f954ae8619034ce2dbfb989770
SHA1 (patch-gcc_gcc.c) = 2922632460185ed4e9be36e3a697447b253c9c1c
SHA1 (patch-gcc_gcc.h) = 7a14473cec164b5ec953bc6e376cbd86643ba80e
SHA1 (patch-gcc_gcov-iov.c) = e92b332a4f9853256420844336850acb0ce2a7a9
SHA1 (patch-gcc_gcov.c) = 917b8a352881a7280ccfd795e8f81a1678e837bb
SHA1 (patch-gcc_genemit.c) = 03c197f0ba53b68ec0bc5002936a97f0d1a72e8b
SHA1 (patch-gcc_gengtype-lex.c) = 47803de01e16aa8391e0b33cb4deb676a51d0e78
SHA1 (patch-gcc_genmultilib) = 8ba4c03be6f91063c6507ff688f803d860471033
SHA1 (patch-gcc_genrecog.c) = 296af75c3a7b0b91855f2b5abd029986cdf34192
SHA1 (patch-gcc_gimplify.c) = 32ffb26c5ac8cb1b1423b3f61e3870b0ffae2795
SHA1 (patch-gcc_ginclude_stddef.h) = 3504b1d765cacabaacff05cd1294b7d9a0b0ae49
SHA1 (patch-gcc_hwint.h) = 74aa3c5753cacce0c63c33b6ea4e1bbaca07620c
SHA1 (patch-gcc_ifcvt.c) = 09da3948b3750e230a4318ce6ff96e28b3123669
SHA1 (patch-gcc_ipa-prop.c) = ba41e00dae01cc51387cd71d1ce0df8edd906725
SHA1 (patch-gcc_libgcc2.c) = d9f7aa89bbc235e0e41ea29055c431b8122b03b4
SHA1 (patch-gcc_libgcov.c) = 3a57dbef67839d484a343f8563a2063b52de2fef
SHA1 (patch-gcc_loop-doloop.c) = e8db788d7680eb1062778beae47b6de191a04bb4
SHA1 (patch-gcc_lto-opts.c) = 098a9b06010db77e41b09e693c4cc19479645a6e
SHA1 (patch-gcc_lto-section-in.c) = d2814ac224afc378cdc11897b57dc1f7fd19f932
SHA1 (patch-gcc_lto-streamer-in.c) = 0db24a5d93e118c60358dca0ba7353bc70480052
SHA1 (patch-gcc_lto-streamer-out.c) = c0654d0755e31ce981db5c9a0aa32e9871113a32
SHA1 (patch-gcc_lto_ChangeLog) = d665eeff7daae814afc111f5006a96297c5f8785
SHA1 (patch-gcc_lto_lto.c) = 475d2c9d4c291be8578c045c51dcf983408b2b1b
SHA1 (patch-gcc_lto_lto.h) = b771af4d88772ea24885d98acf40cb6f96734f32
SHA1 (patch-gcc_objc_ChangeLog) = d216369a64195e7da1242f52e45dcd910554a9b6
SHA1 (patch-gcc_objcp_ChangeLog) = 46927baddb7e4ae3fb5e60212e2f6435750ba286
SHA1 (patch-gcc_output.h) = 82542228b511f069bc54b6000c4ef4b5fd98c252
SHA1 (patch-gcc_po_ChangeLog) = 976ee6b620b7b6d94a97e237b4b6d45c34f1773a
SHA1 (patch-gcc_profile.c) = 70f257b784694d5a423687193b58ab9d48c2f749
SHA1 (patch-gcc_real.c) = 424b098f9a16c82531bcf5fa6829043f330f3bd4
SHA1 (patch-gcc_recog.c) = 24799604585c8de7e3448cfc7a99182e12de721b
SHA1 (patch-gcc_regmove.c) = 46ee8498021a4dd91d2ed2aaf1147384f2f6c013
SHA1 (patch-gcc_reload.c) = fbc1ce5163b3aaa78e307c35e96dfc6fee073d5a
SHA1 (patch-gcc_reload1.c) = d6d48734a6ee5f4959d3ae2d46c852f99dfd3b6c
SHA1 (patch-gcc_reorg.c) = 0676c821b77eaa49b23bb784041867d542486450
SHA1 (patch-gcc_stmt.c) = 4b1c22f7e05ad23bcf848fd65a18d643b64e177f
SHA1 (patch-gcc_target-def.h) = bdd4f0efdb0b3d1c3d60676a086736d7cbea9196
SHA1 (patch-gcc_targhooks.c) = 2a230ffb59008b92f2b0fe0e8ded1d4a446b824a
SHA1 (patch-gcc_testsuite_ChangeLog) = 12eace922fed6131af56f15f8a6be4a0418f9c18
SHA1 (patch-gcc_testsuite_c-c++-common_pr51768.c) = 4b74cfbb98431669eb958e4d4c0df097bcf1aca1
SHA1 (patch-gcc_testsuite_g++.dg_cpp0x_rv-cast3.C) = c3affd4d05d0ce903f8c904953dbd57c90aa7b9b
SHA1 (patch-gcc_testsuite_g++.dg_cpp0x_rv-cast4.C) = 37ba057d542ff3cc987832c8818c979533b2d151
SHA1 (patch-gcc_testsuite_g++.dg_debug_dwarf2_icf.C) = 06867ffb6d67b34e6fa620473b63ff9a4136caee
SHA1 (patch-gcc_testsuite_g++.dg_dfp_44473-1.C) = 94a775cb75e4d7b1ba7a06f8f5c163e228494bd3
SHA1 (patch-gcc_testsuite_g++.dg_dfp_44473-2.C) = 1342dbb97a4896388ecd9a59ee98c0721d4efad7
SHA1 (patch-gcc_testsuite_g++.dg_dfp_mangle-1.C) = b116ce05e0e1fc74db16910f6c30f2f52ebca298
SHA1 (patch-gcc_testsuite_g++.dg_dfp_mangle-2.C) = ca0f2bb94ec3b97862e6352ff1cebf4bcfbb56d2
SHA1 (patch-gcc_testsuite_g++.dg_dfp_mangle-3.C) = 65a2008d93d292c2f6e0e9e7adf018f48ff2f214
SHA1 (patch-gcc_testsuite_g++.dg_dfp_mangle-4.C) = 5dc057ce54d7e27332ffc1a31102006a3f93ddcf
SHA1 (patch-gcc_testsuite_g++.dg_dfp_mangle-5.C) = 69efc91b5643ff0f5751d4f80d3f4fc39abb3d55
SHA1 (patch-gcc_testsuite_g++.dg_eh_cond5.C) = 3ea6bd4b3fa54925009663f9fa3923d945d30129
SHA1 (patch-gcc_testsuite_g++.dg_eh_cond6.C) = 668eeabbc1eb24e44324d8b96e6b3bd2feb53c5b
SHA1 (patch-gcc_testsuite_g++.dg_gcov_gcov-2.C) = 32cc8a31718a10cc7806d044c81f833264caf913
SHA1 (patch-gcc_testsuite_g++.dg_init_new30.C) = 6b7ebfa1efabab9009324a38f463227a9b454e38
SHA1 (patch-gcc_testsuite_g++.dg_init_new32.C) = 788780ae87e856cfbb8e0fad6fea233999f420bc
SHA1 (patch-gcc_testsuite_g++.dg_init_value9.C) = 8163f54b63ff12583e74464ae3cfcf4a9dcb1a61
SHA1 (patch-gcc_testsuite_g++.dg_init_vbase1.C) = 3fd05fad3c1a21ec3e7eb95ed4702e08b9f4eef5
SHA1 (patch-gcc_testsuite_g++.dg_ipa_pr51759.C) = 36ded617e28d164eda4e734bfedb8ac7070ddb72
SHA1 (patch-gcc_testsuite_g++.dg_other_pr49133.C) = 3912ff9a94c66cd9dfe80f95d0ecc9b5a358aa28
SHA1 (patch-gcc_testsuite_g++.dg_other_pr50464.C) = 1bf842133469ac6b5c834cdf93d7a5ca2492fba5
SHA1 (patch-gcc_testsuite_g++.dg_parse_ambig6.C) = 14590a1b90a03578c3541315a22dfc45daaeb740
SHA1 (patch-gcc_testsuite_g++.dg_pr48660.C) = d830f9254b20fa16461e57c4d32926d18a57c3c5
SHA1 (patch-gcc_testsuite_g++.dg_rtti_anon-ns1.C) = 4707600584304cf9614c088a21dba3f0b2d982cb
SHA1 (patch-gcc_testsuite_g++.dg_template_nontype23.C) = 4601355a703acd95a32f8fea1e7455779ec37acf
SHA1 (patch-gcc_testsuite_g++.dg_torture_pr47714.C) = 44ae702709d20f5f6d49262746299c7b777e0373
SHA1 (patch-gcc_testsuite_g++.dg_torture_pr49039.C) = d5d873ce9b9ff9968aa1f1493cc6f4c3cfea7375
SHA1 (patch-gcc_testsuite_g++.dg_torture_pr49115.C) = 75218a34e3e00807f25d5bae13c5bf198d14c777
SHA1 (patch-gcc_testsuite_g++.dg_torture_pr49615.C) = 446bd73a0f69a79691eb9ba91090291ae4896c19
SHA1 (patch-gcc_testsuite_g++.dg_torture_pr49644.C) = e23636c8b0c0e262d2392971e7ff6a3606e61fd5
SHA1 (patch-gcc_testsuite_g++.dg_torture_pr50189.C) = ee6e16986279a6f6c769abc5da19b9cc2d90f4dd
SHA1 (patch-gcc_testsuite_g++.dg_torture_pr51344.C) = 7d9a61964db8612e597c309ee88c73fec04b8b48
SHA1 (patch-gcc_testsuite_g++.dg_tree-ssa_pr49911.C) = 19dd6346be605f4c312c9a93f9ea166d6b2cacbb
SHA1 (patch-gcc_testsuite_g++.old-deja_g++.oliva_ChangeLog) = a833b27a5e250726df95eb1cd1046ecf9a37334b
SHA1 (patch-gcc_testsuite_gcc.c-torture_compile_limits-externdecl.) = c84ff45bf0648438e75b40548c650bf3299b5dcb
SHA1 (patch-gcc_testsuite_gcc.c-torture_compile_pr38752.c) = a96e848389bde44a778708dd1bec90e643afa2a2
SHA1 (patch-gcc_testsuite_gcc.c-torture_compile_pr48742.c) = a8c4fe706d6ce2e4b39a989a45f95f0122e7bf1c
SHA1 (patch-gcc_testsuite_gcc.c-torture_compile_pr49238.c) = 819880f8980914fbb1d5d9cfc4e38f25e225c73d
SHA1 (patch-gcc_testsuite_gcc.c-torture_compile_pr50565-1.c) = 8d6ab3598ade1225757cf7c466a60eafa1feeaeb
SHA1 (patch-gcc_testsuite_gcc.c-torture_compile_pr50565-2.c) = 37a7a6b31c8528e7c9c3c01d3d64462df441401f
SHA1 (patch-gcc_testsuite_gcc.c-torture_compile_pr51767.c) = 359d6c824f35bdd859987db9331ff06870921010
SHA1 (patch-gcc_testsuite_gcc.c-torture_compile_pr53418-1.c) = c55813dda04a802731ac9dbeb0b3982b7af17870
SHA1 (patch-gcc_testsuite_gcc.c-torture_compile_pr53418-2.c) = d6c37fa8f29bcfa9d043658ae5d310d0a9f01187
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_20120111-1.c) = 152eb9a47424e9ecabac174ea18b3638d0505ddf
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_20120427-1.c) = 0e0343d7eacbd34eefd079e64fc56761f5e7cafc
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_960321-1.x) = 3da270f52d50c00b7b31e03a4343f316e394a91e
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_doloop-1.c) = 81b4956bb485c330f34bb4c5817affa015732ea5
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_doloop-2.c) = 0931f11ec03aff7fd582c0294053d6f7056b51d7
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_pr48809.c) = b76eef4cf1b02c871f78199ed55135b30f71c8ed
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_pr48973-1.c) = 885268365fb9af9331d640e0fab706c8b01c8ab9
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_pr48973-2.c) = 1898671a2cf3115280d4f04730422c223fb26907
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_pr49039.c) = 2d9ce797a58332d0ea731d7bc67d1e55b152dfd9
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_pr49161.c) = acbfe6411d5e46d3ce71078762b3df3e763513e2
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_pr49186.c) = 8886dd14e0580a60806c51ef1d4609abd1de92c8
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_pr49279.c) = 63ffdda3cb200f306e70c9b293a5d8a50804e264
SHA1 (patch-gcc_testsuite_gcc.c-torture_execute_pr49644.c) = f99bc6fc7380a0ce61db26159f4643ab58b7d3b5
SHA1 (patch-gcc_testsuite_gcc.dg_cpp_#cmdlne-M-2.h) = 74ed4fffe00d4b972b5ae7b80b985ae41a3f0512
SHA1 (patch-gcc_testsuite_gcc.dg_delay-slot-2.c) = 8bf4b5c4748e3acb517176a9904e8d167c4c4b8a
SHA1 (patch-gcc_testsuite_gcc.dg_dfp_pr52140.c) = 262dee1503b18cb616f61cb1bb301c721193f490
SHA1 (patch-gcc_testsuite_gcc.dg_gomp_pr49640.c) = c3c2cb537e4528811f27ba7ffbee2d6bfceccae3
SHA1 (patch-gcc_testsuite_gcc.dg_ipa_pr45644.c) = 47d0426b9e38e7d89c5861a86fe85898d6a1be9b
SHA1 (patch-gcc_testsuite_gcc.dg_noncompile_pr52290.c) = 6f53af47f49acd52a1f6ffb247f533401f11607e
SHA1 (patch-gcc_testsuite_gcc.dg_pr48685.c) = fe2a7d3bcf944bf0357b49dc25b4715e457bcb91
SHA1 (patch-gcc_testsuite_gcc.dg_pr48774.c) = 9a022d84b38a45cc16e1177f781736860bd177d7
SHA1 (patch-gcc_testsuite_gcc.dg_pr48837.c) = e03bece3057f615a9f55b2f49c5d222713f9160a
SHA1 (patch-gcc_testsuite_gcc.dg_pr49120.c) = c3699715aca10f5c15ea86da71db1aa9f22b70ef
SHA1 (patch-gcc_testsuite_gcc.dg_pr49307.c) = 996d3b78252452e859f951941f04845bad1a9b41
SHA1 (patch-gcc_testsuite_gcc.dg_pr49619.c) = 50c4b8c57da3fbb60c9c8a0e7cb2a2cb34c9fab5
SHA1 (patch-gcc_testsuite_gcc.dg_pr51408.c) = b96aa2467757d534e1cecfc78d713caa23a3fa0e
SHA1 (patch-gcc_testsuite_gcc.dg_pr51821.c) = 431c4c2e646c3061b9edc4b413b35287bc668e4e
SHA1 (patch-gcc_testsuite_gcc.dg_pr52139.c) = ec34294eb20637f6ada316e996efe41ff3e87791
SHA1 (patch-gcc_testsuite_gcc.dg_torture_pr48542.c) = ecb7b9dc0b95e47908535b53ed3d9534d509e118
SHA1 (patch-gcc_testsuite_gcc.dg_torture_pr48822.c) = 983a831afa7cee0257544c0b13da53d4bdbb86d3
SHA1 (patch-gcc_testsuite_gcc.dg_torture_pr49651.c) = 503924ba7576b7eeb67e4011c7c69c7ad9c0eb43
SHA1 (patch-gcc_testsuite_gcc.dg_torture_pr51106-1.c) = 42576ddd130aad033197bdeae4878ea97d0c4bee
SHA1 (patch-gcc_testsuite_gcc.dg_torture_pr51106-2.c) = d0e9856a1a43b48794b909fcd593686621c589ed
SHA1 (patch-gcc_testsuite_gcc.dg_torture_pr52693.c) = 2c2b37f3628c0c25c84fa78c384df2dc98ce0a60
SHA1 (patch-gcc_testsuite_gcc.dg_tree-prof_pr44777.c) = b8b4fdb3d461937e5b65e3f4718411fc9439a6de
SHA1 (patch-gcc_testsuite_gcc.dg_tree-ssa_pr49039.c) = b680a0024f5c842fc9fd9a0487344acfea8d5a33
SHA1 (patch-gcc_testsuite_gcc.dg_vect_pr48172.c) = 0765eeaf0e8baeb509d2dca353d8ca13f751ffeb
SHA1 (patch-gcc_testsuite_gcc.dg_vect_pr49038.c) = 1bd6b3fb8334c000cbebb2a047a05da188b304c0
SHA1 (patch-gcc_testsuite_gcc.dg_vect_vect-strided-u8-i8-gap4-unkn) = 4cfa861fabdcd8cb2ec06361791bb9a9d19bc45f
SHA1 (patch-gcc_testsuite_gcc.target_arm_neon-vset__lanes8.c) = 6e985f5b3501aee5c924c39515bb117aea3a2aa1
SHA1 (patch-gcc_testsuite_gcc.target_arm_pr48252.c) = a6a0a1f72f50a4a0f9fccd710ca8950c2bac18c0
SHA1 (patch-gcc_testsuite_gcc.target_arm_pr51835.c) = ceecbcf1879202fdb46730d6b589da1852c1b54d
SHA1 (patch-gcc_testsuite_gcc.target_i386_aes-avx-check.h) = 158814855b6cf5f6fe1119a4932acb38347be152
SHA1 (patch-gcc_testsuite_gcc.target_i386_avx-check.h) = c87d033c8646e1f9e0673a9b7ebc470577f720a9
SHA1 (patch-gcc_testsuite_gcc.target_i386_avx-os-support.h) = 8d4acd81ccb2c3f3c756de0e8e4448a7a3d4fa6c
SHA1 (patch-gcc_testsuite_gcc.target_i386_pclmul-avx-check.h) = b59c373252e5864e4f163ecf70f64920142b5911
SHA1 (patch-gcc_testsuite_gcc.target_i386_pr47780.c) = cf536ca4e11a27ec3eebe6b02de631b1a4de7cef
SHA1 (patch-gcc_testsuite_gcc.target_i386_pr48708.c) = 771b0a84cecc353b264aa2067ef27a11e6243379
SHA1 (patch-gcc_testsuite_gcc.target_i386_pr49920.c) = 40ecfda1c24687d25911092b94a1f65a7dce598f
SHA1 (patch-gcc_testsuite_gcc.target_i386_pr50788.c) = e55c8f24d7aaf0f5ea821820ffb768960fffe258
SHA1 (patch-gcc_testsuite_gcc.target_i386_pr51393.c) = 2b61beb508e1792aae5a57329dc437c4926cfd2d
SHA1 (patch-gcc_testsuite_gcc.target_i386_pr52330.c) = 5eb2c37cce4bf1dbf88b6c5e0e5129b040b59080
SHA1 (patch-gcc_testsuite_gcc.target_i386_sse2-init-v2di-2.c) = 2029d6d552ce6a7e0baccc5291de0066d512d4e5
SHA1 (patch-gcc_testsuite_gcc.target_mips_reg-var-1.c) = d30a40f6843b43ebe22d0f01305d043aafdc8c35
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_altivec-34.c) = c5384e96ccddf3760fd73c4601c91ef6eb2d8c9b
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_cell__builtin-1.c) = 65235e4760381364082820b62a2cbb0b803c4957
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_cell__builtin-2.c) = 147f47c0da87b76dde17f86f68985a43246a687c
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_cell__builtin-3.c) = dd6071e4710972aaeb942056a8234290bcf5a4a0
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_cell__builtin-4.c) = e4353785a18e969841a03ea882f11f1898185f3f
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_cell__builtin-5.c) = 7204588fbd607cce80928cf0d4d934d8a48cd2b3
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_cell__builtin-6.c) = 32bf6ef2127332a631a6d4aa540405110aae9dfb
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_cell__builtin-7.c) = 68245d47c69ad9bf4225296b1e87c4bfbefc3276
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_cell__builtin-8.c) = 2635e11285ebbb4da74dba21cfa96a858b50dbc9
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_pr48857.c) = a8d11a5cb0ea952f881fe21cd75e347c11ed269d
SHA1 (patch-gcc_testsuite_gcc.target_powerpc_pr53199.c) = 55346671c04cb6d4dddbbeb2aaab4d80277e92c5
SHA1 (patch-gcc_testsuite_gcc.target_sparc_cas64.c) = f05f1a835a4b013e5cbd8d57ee633ac4eb614370
SHA1 (patch-gcc_testsuite_lib_target-supports.exp) = 310e2b506bb590668570c982e91ed069fca0c8e8
SHA1 (patch-gcc_tree-cfg.c) = c0495977757bc9fd8ff4946da42a65d67262dce5
SHA1 (patch-gcc_tree-cfgcleanup.c) = b442bdc68979adf160c6d4febb5b71bd82466271
SHA1 (patch-gcc_tree-inline.c) = 735aa9bd9b8213fa75e1dd481cdbbdb0a02910ee
SHA1 (patch-gcc_tree-mudflap.c) = 45f6d12ef989926cadc0efe9af1ee038df04d97f
SHA1 (patch-gcc_tree-outof-ssa.c) = 8349e177b7f66e1f2a92e43082241d7ba9b31f51
SHA1 (patch-gcc_tree-scalar-evolution.c) = c9a1b00153187729a27b2520135164b6b375d540
SHA1 (patch-gcc_tree-sra.c) = 5ac8966bd06731a250ce12fd20627de550a35d82
SHA1 (patch-gcc_tree-ssa-dce.c) = 4b51caf2b96c07b970eef3e743916d0e35e50881
SHA1 (patch-gcc_tree-ssa-dom.c) = e56942f2d4b96c17af69bb9c26f45e2da81f7027
SHA1 (patch-gcc_tree-ssa-sccvn.c) = 3e23f9e8656d18bb814507c5e7ea5fa5e2c608c2
SHA1 (patch-gcc_tree-ssa-structalias.c) = 58f379c89afd58696756c6c2830f0f3ff76b7502
SHA1 (patch-gcc_tree-switch-conversion.c) = dc53b3247ec497d46496f6a9d179a4f7d470ccde
SHA1 (patch-gcc_tree-tailcall.c) = 94e75287b0c1e96f99536357392ea2d9af48c257
SHA1 (patch-gcc_tree-vect-data-refs.c) = ae3c574cf531382de28564f0a300b8876806d85b
SHA1 (patch-gcc_tree-vect-loop-manip.c) = 6a22a898b7ae930d5f0b0cc85818657e4826faff
SHA1 (patch-gcc_tree-vect-loop.c) = 537c74aae498474555a7677bf1355e7649cc6a99
SHA1 (patch-gcc_tree-vect-stmts.c) = 9aed6f1d586872a2772dca90baed3ca6811c19e2
SHA1 (patch-gcc_tree-vectorizer.h) = 120e18c82cf64425b6e89ebf4d4af2ff84334471
SHA1 (patch-gcc_tree-vrp.c) = 81c877d790aed78b318ba96bff2fc500d29694d8
SHA1 (patch-gcc_unwind-dw2-fde-glibc.c) = 6b040bf7f3a95bdd8b414bcac97373f161201578
SHA1 (patch-gcc_unwind-dw2-fde.c) = 969d3101a94d208889175ba5fc2797fdc21b82e9
SHA1 (patch-gcc_unwind-dw2.c) = 5285e12ed93a5daa6acba0ee96e762e90329aaeb
SHA1 (patch-gcc_var-tracking.c) = 15422daebd5fbea36dda283be6d8d007ab990bb6
SHA1 (patch-gcc_varasm.c) = 8ccffbac9ee4a90490bdd6746e88c55f993637a7
SHA1 (patch-include_ChangeLog) = 9626bfb3b4550326b6f26594e294a51827c42753
SHA1 (patch-include_objalloc.h) = 18eb0baf490bb8dd6aed2157054b898b5b92a11d
SHA1 (patch-intl_ChangeLog) = c8f034bd07fe3d41a90f892d83b2e6c13ccf8d12
SHA1 (patch-libcpp_ChangeLog) = bc1041b4f17c3751a01dac32810e654f9c94aad8
SHA1 (patch-libcpp_Makefile.in) = 22f35bfbe701c3baaa4042cddc282b3de4776024
SHA1 (patch-libcpp_configure) = d5e1291a8bffb2c1121d4fcb383564eac3b688a6
SHA1 (patch-libcpp_files.c) = 5e7cb28e0340ccacff230752f97a99a82b145893
SHA1 (patch-libcpp_include_cpplib.h) = 056dc6811f456f8708673d47f4ffd03a49442fe7
SHA1 (patch-libcpp_init.c) = dca7d2612f1892dea70d6338e3d0918096c30dae
SHA1 (patch-libcpp_internal.h) = 30fb0537e61c7cd58697852ff390ca2f7a5f72c6
SHA1 (patch-libcpp_lex.c) = fd0db8021ef0f93a57144ed707a654a4c15bf746
SHA1 (patch-libcpp_macro.c) = 3e96026a38e5ce54c59b57f0e6a090f9bfcbb167
SHA1 (patch-libcpp_po_ChangeLog) = 416d82e972577c6a6ce9736d0fe965150cddaed3
SHA1 (patch-libdecnumber_ChangeLog) = 4761ae5b4b8a0cada4e8621a8fcffecaf09c90b0
SHA1 (patch-libgcc_ChangeLog) = e889c37c6c8640e73afc8b755345294137cc5c18
SHA1 (patch-libgcc_config.host) = 7bf0f4ef9e2e7437c5d8ee0db5714d57180d74d5
SHA1 (patch-libgcc_config_i386_64_sfp-machine.h) = e4999877b70fe31b0e88b2d379c0548dc14aac06
SHA1 (patch-libgcc_config_libbid_ChangeLog) = 0c1c76d831fe97757bd0818d7084f3101fd41d9e
SHA1 (patch-libgomp_ChangeLog) = cfeff45b0d73354f3f657066093ff4e477076e62
SHA1 (patch-libgomp_fortran.c) = 4ee9f148fe71b57115102d7cd8a88b7dd959595d
SHA1 (patch-libgomp_libgomp.info) = 3a9ab902cf2ba2c5bd179491b3b8ae5c0c4743cb
SHA1 (patch-libgomp_testsuite_libgomp.fortran_pr48894.f90) = d7c0e91aa204e0c4e1f73a1d8e3b222fce5d62ff
SHA1 (patch-libiberty_ChangeLog) = 58eae5a2b7281191c61dcc076476f96499e485df
SHA1 (patch-libiberty_floatformat.c) = 4c838dc19f024d8b792cc7f6d992ba6f94dcd1ad
SHA1 (patch-libiberty_make-relative-prefix.c) = 248bda432bd290dd8fd050284b95d28814829315
SHA1 (patch-libiberty_objalloc.c) = ab33e8ab90975cd66e871c6ccbd255fc21d55a89
SHA1 (patch-libiberty_strerror.c) = ac592e5690074277e594e266a06ece29e82aabee
SHA1 (patch-libiberty_testsuite_test-expandargv.c) = cde0600d899637c466040a23e6b80de692b37d8f
SHA1 (patch-libmudflap_ChangeLog) = 836898ae2068ee06c83a294a36aa40aa143a9d37
SHA1 (patch-libmudflap_mf-hooks1.c) = 136bf3796016573cc2c51cef9e93b4dbda4edb4f
SHA1 (patch-libmudflap_mf-hooks2.c) = 15884c7cf2267c3924774e2de675b18c5ebea473
SHA1 (patch-libmudflap_mf-impl.h) = 4b7258cf51abe9ebb1435b17bcf3090aff3a90cf
SHA1 (patch-libmudflap_mf-runtime.c) = 41d1b3b8dc6f7898f724b3469a2a28bcc5d773cc
SHA1 (patch-libmudflap_mf-runtime.h) = f66e8e5ad8c48ef36dea58357b23e05685c314e0
SHA1 (patch-libmudflap_testsuite_libmudflap.c_fail68-frag.c) = e1dd08ee93cb52fd6a9c945237f1d15ce36affdb
SHA1 (patch-libobjc_ChangeLog) = 668434e429f36a629fd170a0583141f966020c74
SHA1 (patch-libobjc_archive.c) = 7474e33fcb776cb3eb569872c8e349db338acc39
SHA1 (patch-libobjc_encoding.c) = 2de56f3c9f55c059a0ab43b49032f48df1af2a21
SHA1 (patch-libobjc_hash.c) = 1bdcae878a5b96bb7c62c7ec80798aa9ca787630
SHA1 (patch-libobjc_sendmsg.c) = b084ad4ced97491f69c1a639330a2893b0a3f47f
SHA1 (patch-libssp_ChangeLog) = 5ffef91b9010433ea0fe305d192d660539613fd4
SHA1 (patch-libstdc++-v3_ChangeLog) = ebf0f27088d5df3688142d348958e3a4f15bd260
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__base.h) = bce94ef76edac42ea96d8610c1b365ce6f1f2e55
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h) = 1b8f1ff0e81625eb182c6ed3a7b53b368e97431f
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__noninline.h) = b74cf4720a4f0d305d1215279c4ff6215681acb5
SHA1 (patch-libstdc++-v3_configure) = a91baa0699187de74cf847755b1fd77c7e067950
SHA1 (patch-libstdc++-v3_crossconfig.m4) = 343551d946b01c389dead8e0f74d609fb6ccee38
SHA1 (patch-libstdc++-v3_include_bits_locale__facets.tcc) = c5a787ff8c15e06e0e9983ef359ab6e7481b173c
SHA1 (patch-libstdc++-v3_include_bits_stl__algobase.h) = 668bddd2aacfeed9b377e8feea981fd82799aeac
SHA1 (patch-libstdc++-v3_include_bits_stl__pair.h) = 1cfb98dc27a7576c65430ed4fb9ca232ec97e40a
SHA1 (patch-libstdc++-v3_include_bits_stl__queue.h) = 80fc607a577f9129a9b5e8edb7c6052eeecf979a
SHA1 (patch-libstdc++-v3_include_ext_numeric__traits.h) = 5fb0a2f0ee41414a561957c6519ed28a824e5cd2
SHA1 (patch-libstdc++-v3_include_ext_rope) = c13a1a9589da52115322d6f7dee95236debcc390
SHA1 (patch-libstdc++-v3_include_ext_ropeimpl.h) = 8fc9fcd89a2ca9b0a36f827f18328dd29ae9deaa
SHA1 (patch-libstdc++-v3_libsupc++_eh__arm.cc) = a9dec4c7a5a79791ce85b0ff5867359c12264809
SHA1 (patch-libstdc++-v3_libsupc++_exception__ptr.h) = 0e76655b676ed97a79c1cc0a518c9775e2bc140c
SHA1 (patch-libstdc++-v3_libsupc++_nested__exception.h) = 6ed1f1e7d5419b40a5fd3c6a82d94d4d463a8d87
SHA1 (patch-libstdc++-v3_libsupc++_unwind-cxx.h) = 6b9acc0f9803770e029f9a6a7ba65909fb256704
SHA1 (patch-libstdc++-v3_src_atomic.cc) = 6072d63c6287c8477ecc22d0bb895046411c595a
SHA1 (patch-libstdc++-v3_src_locale-inst.cc) = ec76a985f2eb7340eb10b0558395d90e99839517
SHA1 (patch-libstdc++-v3_testsuite_22__locale_time__get_get__weekd) = 8b3a39baea8b5cb5a4e259aa658157c5d5f7b310
SHA1 (patch-lto-plugin_ChangeLog) = 6e972c111f7dbddf018e707ce38ccf5e6b64592e
SHA1 (patch-maintainer-scripts_ChangeLog) = 703876390c938f3a6944b92197ced9b733d7d82f
SHA1 (patch-zlib_ChangeLog) = 815c27b2a3e5bcb7afdf0e5ad8bb93e684a99552
SHA1 (patch-zlib_zconf.in.h) = 4fee3c4bf2b33c844c84dc41ec866fa56e92bb02

View File

@@ -0,0 +1,150 @@
/* Definitions for ARM running MINIX using the ELF format
Copyright (C) 2001, 2004, 2007 Free Software Foundation, Inc.
Contributed by David E. O'Brien <obrien@FreeBSD.org> and BSDi.
Adapted for MINIX by Lionel Sambuc <lionel@minix3.org>
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/>. */
#undef MINIX_TARGET_CPU_CPP_BUILTINS
#define MINIX_TARGET_CPU_CPP_BUILTINS() \
do \
{ \
TARGET_BPABI_CPP_BUILTINS(); \
if (ARM_EABI_UNWIND_TABLES) \
builtin_define ("__UNWIND_TABLES__"); \
} \
while (0)
/* Define the actual types of some ANSI-mandated types.
Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c,
c-common.c, and config/<arch>/<arch>.h. */
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WINT_TYPE
#define WINT_TYPE "int"
/* We don't have any limit on the length as out debugger is GDB. */
#undef DBX_CONTIN_LENGTH
/* NetBSD does its profiling differently to the Acorn compiler. We
don't need a word following the mcount call; and to skip it
requires either an assembly stub or use of fomit-frame-pointer when
compiling the profiling functions. Since we break Acorn CC
compatibility below a little more won't hurt. */
#undef ARM_FUNCTION_PROFILER
#define ARM_FUNCTION_PROFILER(STREAM,LABELNO) \
{ \
asm_fprintf (STREAM, "\tmov\t%Rip, %Rlr\n"); \
asm_fprintf (STREAM, "\tbl\t__mcount%s\n", \
(TARGET_ARM && NEED_PLT_RELOC) \
? "(PLT)" : ""); \
}
/* VERY BIG NOTE: Change of structure alignment for NetBSD/arm.
There are consequences you should be aware of...
Normally GCC/arm uses a structure alignment of 32 for compatibility
with armcc. This means that structures are padded to a word
boundary. However this causes problems with bugged NetBSD kernel
code (possibly userland code as well - I have not checked every
binary). The nature of this bugged code is to rely on sizeof()
returning the correct size of various structures rounded to the
nearest byte (SCSI and ether code are two examples, the vm system
is another). This code breaks when the structure alignment is 32
as sizeof() will report a word=rounded size. By changing the
structure alignment to 8. GCC will conform to what is expected by
NetBSD.
This has several side effects that should be considered.
1. Structures will only be aligned to the size of the largest member.
i.e. structures containing only bytes will be byte aligned.
structures containing shorts will be half word aligned.
structures containing ints will be word aligned.
This means structures should be padded to a word boundary if
alignment of 32 is required for byte structures etc.
2. A potential performance penalty may exist if strings are no longer
word aligned. GCC will not be able to use word load/stores to copy
short strings.
This modification is not encouraged but with the present state of the
NetBSD source tree it is currently the only solution that meets the
requirements. */
#undef DEFAULT_STRUCTURE_SIZE_BOUNDARY
#define DEFAULT_STRUCTURE_SIZE_BOUNDARY 8
/* Fixed-sized enum by default (-fno-short-enums) */
#undef MINIX_CC1_SPEC
#define MINIX_CC1_SPEC "%{!fshort-enums:%{!fno-short-enums:-fno-short-enums}} "
/* Use by default the new abi and calling standard */
#undef ARM_DEFAULT_ABI
#define ARM_DEFAULT_ABI ARM_ABI_AAPCS
/* LSC: FIXME: When activated, some programs crash on qemu with an illegal
* instruction.
* The cause is unknown (Missing support on MINIX, missing support
* on the emulator, library error...).
*/
#if 0
/* Make sure we use hard-floating point ABI by default */
#undef TARGET_DEFAULT_FLOAT_ABI
#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD
#endif
#if defined(NETBSD_NATIVE)
/* LSC: On arm, when compiling statically, we need gcc_eh. */
#undef MINIX_LINK_GCC_C_SEQUENCE_SPEC
#define MINIX_LINK_GCC_C_SEQUENCE_SPEC \
"%{static:--start-group} %G %L -lgcc_eh %{static:--end-group}%{!static:%G}"
#endif /* defined(NETBSD_NATIVE) */
/* Default to full VFP if -mhard-float is specified. */
#undef MINIX_SUBTARGET_ASM_FLOAT_SPEC
#define MINIX_SUBTARGET_ASM_FLOAT_SPEC \
"%{mhard-float:{!mfpu=*:-mfpu=vfpv3-d16}} \
%{mfloat-abi=hard:{!mfpu=*:-mfpu=vfpv3-d16}}"
#undef MINIX_SUBTARGET_EXTRA_ASM_SPEC
#define MINIX_SUBTARGET_EXTRA_ASM_SPEC \
"%{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu;:-meabi=5}" \
TARGET_FIX_V4BX_SPEC \
"%{fpic|fpie:-k} %{fPIC|fPIE:-k}"
/* Little endian by default */
#undef TARGET_ENDIAN_DEFAULT
#define TARGET_ENDIAN_DEFAULT 0
#undef SUBTARGET_CPU_DEFAULT
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_cortexa8
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (MINIX/arm ELF EABI)", stderr);
#undef ARM_EABI_UNWIND_TABLES
#define ARM_EABI_UNWIND_TABLES \
((!USING_SJLJ_EXCEPTIONS && flag_exceptions) || flag_unwind_tables)

View File

@@ -1,215 +0,0 @@
/* $DragonFly: src/gnu/usr.bin/cc41/cc_prep/config/dragonfly-spec.h,v 1.5 2008/07/24 21:45:10 corecode Exp $ */
/* Base configuration file for all DragonFly targets.
Copyright (C) 1999, 2000, 2001 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Common DragonFly configuration.
All DragonFly architectures should include this file, which will specify
their commonalities.
Adapted from gcc/config/freebsd-spec.h by
Joerg Sonnenberger <joerg@bec.de>
Adapted from gcc/config/freebsd.h by
David O'Brien <obrien@FreeBSD.org>
Loren J. Rittle <ljrittle@acm.org>. */
/* This defines which switch letters take arguments. On DragonFly, most of
the normal cases (defined in gcc.c) apply, and we also have -h* and
-z* options (for the linker) (coming from SVR4).
We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
#define DFBSD_SWITCH_TAKES_ARG(CHAR) \
(DEFAULT_SWITCH_TAKES_ARG (CHAR) \
|| (CHAR) == 'h' \
|| (CHAR) == 'z' /* ignored by ld */ \
|| (CHAR) == 'R')
/* This defines which multi-letter switches take arguments. */
#define DFBSD_WORD_SWITCH_TAKES_ARG(STR) \
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \
|| !strcmp ((STR), "rpath") || !strcmp ((STR), "rpath-link") \
|| !strcmp ((STR), "soname") || !strcmp ((STR), "defsym") \
|| !strcmp ((STR), "assert") || !strcmp ((STR), "dynamic-linker"))
#define DFBSD_TARGET_OS_CPP_BUILTINS() \
do \
{ \
if (DFBSD_MAJOR == 3) \
builtin_define ("__DragonFly__=3"); \
else if (DFBSD_MAJOR == 2) \
builtin_define ("__DragonFly__=2"); \
else if (DFBSD_MAJOR == 1) \
builtin_define ("__DragonFly__=1"); \
else \
builtin_define ("__DragonFly__"); \
builtin_define ("__DragonFly_cc_version=100001"); \
builtin_define_std ("unix"); \
builtin_define ("__KPRINTF_ATTRIBUTE__"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=bsd"); \
builtin_assert ("system=DragonFly"); \
DFBSD_TARGET_CPU_CPP_BUILTINS(); \
} \
while (0)
/* Define the default DragonFly-specific per-CPU hook code. */
#define DFBSD_TARGET_CPU_CPP_BUILTINS() do {} while (0)
/* Provide a CPP_SPEC appropriate for DragonFly. We just deal with the GCC
option `-posix', and PIC issues. */
#define DFBSD_CPP_SPEC " \
%(cpp_cpu) \
%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} \
%{posix:-D_POSIX_SOURCE}"
/* Provide a STARTFILE_SPEC appropriate for DragonFly. Here we add
the magical crtbegin.o file (see crtstuff.c) which provides part
of the support for getting C++ file-scope static object constructed
before entering `main'. */
#define DFBSD_STARTFILE_SPEC \
"%{!shared: \
%{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
%{!p:%{profile:gcrt1.o%s} \
%{!profile:crt1.o%s}}}} \
crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
/* Provide a ENDFILE_SPEC appropriate for DragonFly. Here we tack on
the magical crtend.o file (see crtstuff.c) which provides part of
the support for getting C++ file-scope static object constructed
before entering `main', followed by a normal "finalizer" file,
`crtn.o'. */
#define DFBSD_ENDFILE_SPEC \
"%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
/* Provide a LIB_SPEC appropriate for DragonFly as configured and as
required by the user-land thread model. Select the appropriate libc,
depending on whether we're doing profiling or need threads support.
Make it a hard error if -pthread is provided on the command line and gcc
was configured with --disable-threads (this will help avoid bug
reports from users complaining about threading when they
misconfigured the gcc bootstrap but are later consulting DragonFly
manual pages that refer to the mythical -pthread option). */
/* Provide a LIB_SPEC appropriate for DragonFly. Just select the appropriate
libc, depending on whether we're doing profiling or need threads support.
(simular to the default, except no -lg, and no -p). */
#ifdef DFBSD_NO_THREADS
#define DFBSD_LIB_SPEC " \
%{pthread: %eThe -pthread option is only supported on DragonFly when gcc \
is built with the --enable-threads configure-time option.} \
%{!nostdlib{!nostartfiles{!nolibc: -lc}}} \
}"
#else
#define DFBSD_LIB_SPEC " \
%{pthread:-lpthread} \
%{!nostdlib: %{!nostartfiles: %{!nolibc: -lc}}} \
"
#endif
#define DFBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.2"
#if 0
#define LINK_LIBGCC_SPEC ""
#define LIBGCC_SPEC "%{shared: -lgcc_pic} %{!shared: -lgcc}"
#define PRE_LIB_SPEC " \
%{pg: -L"PREFIX2"/lib/gcc41/profiling \
%{!static: -rpath /usr/lib/gcc41/profiling \
-rpath-link "PREFIX2"/lib/gcc41/profiling}} \
%{g: -L"PREFIX2"/lib/gcc41/debug \
%{!static: -rpath /usr/lib/gcc41/debug \
-rpath-link "PREFIX2"/lib/gcc41/debug}} \
-L"PREFIX2"/lib/gcc41 \
%{!static: -rpath /usr/lib/gcc41 -rpath-link "PREFIX2"/lib/gcc41} \
%{pg: -L"PREFIX2"/lib/profiling \
%{!static: -rpath /usr/lib/profiling \
-rpath-link "PREFIX2"/lib/profiling}} \
%{g: -L"PREFIX2"/lib/debug \
%{!static: -rpath /usr/lib/debug -rpath-link "PREFIX2"/lib/debug}} \
%{!static: -rpath /usr/lib -rpath-link "PREFIX2"/lib} \
"
#define DFBSD_LINK_COMMAND_SPEC "\
%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
%(linker) %l " LINK_PIE_SPEC "%X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}\
%{static:} %{L*} %(link_libgcc) %o \
%{fprofile-arcs|fprofile-generate: -lgcov}\
%{!nostdlib:%{!nodefaultlibs:%(pre_lib)}}\
%{!nostdlib:%{!nodefaultlibs:%(link_gcc_c_sequence)}}\
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}"
#ifndef PREFIX2
#define PREFIX2 "/usr"
#endif
#ifndef STANDARD_STARTFILE_PREFIX_1
#define STANDARD_STARTFILE_PREFIX_1 PREFIX2"/lib/gcc41/"
#endif
#ifndef STANDARD_EXEC_PREFIX
#define STANDARD_EXEC_PREFIX PREFIX2"/libexec/gcc41/"
#endif
#ifndef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX PREFIX2"/lib/"
#endif
#ifndef TOOLDIR_BASE_PREFIX
#define TOOLDIR_BASE_PREFIX PREFIX2"/libexec/gcc41"
#endif
#ifndef STANDARD_BINDIR_PREFIX
#define STANDARD_BINDIR_PREFIX PREFIX2"/libexec/gcc41"
#endif
#ifndef STANDARD_LIBEXEC_PREFIX
#define STANDARD_LIBEXEC_PREFIX PREFIX2"/libexec/gcc41"
#endif
#ifndef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR PREFIX2"/include/c++"
#endif
#ifndef GPLUSPLUS_TOOL_INCLUDE_DIR
#define GPLUSPLUS_TOOL_INCLUDE_DIR PREFIX2"/include/c++/4.1"
#endif
#ifndef GPLUSPLUS_BACKWARD_INCLUDE_DIR
#define GPLUSPLUS_BACKWARD_INCLUDE_DIR PREFIX2"/include/c++/4.1/backward"
#endif
#ifndef GCC_LOCAL_INCLUDE_DIR
#define GCC_LOCAL_INCLUDE_DIR PREFIX2"/libdata/gcc41"
#endif
#ifndef GCC_INCLUDE_DIR
#define GCC_INCLUDE_DIR PREFIX2"/include"
#endif
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \
{ GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0 }, \
{ GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0 }, \
{ GCC_INCLUDE_DIR, "GCC", 0, 0 }, \
{ GCC_LOCAL_INCLUDE_DIR, "GCC", 0, 0 }, \
{ NULL, NULL, 0, 0 } \
}
#endif

View File

@@ -1,97 +0,0 @@
/* $DragonFly: src/gnu/usr.bin/cc41/cc_prep/config/dragonfly.h,v 1.2 2008/05/19 10:46:39 corecode Exp $ */
/* Base configuration file for all DragonFly targets.
Copyright (C) 1999, 2000, 2001 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Common DragonFly configuration.
All DragonFly architectures should include this file, which will specify
their commonalities.
Adapted from gcc/config/freebsd.h by
Joerg Sonnenberger <joerg@bec.de>
Adapted from gcc/config/i386/freebsd-elf.h by
David O'Brien <obrien@FreeBSD.org>.
Further work by David O'Brien <obrien@FreeBSD.org> and
Loren J. Rittle <ljrittle@acm.org>. */
/* This defines which switch letters take arguments. On DragonFly, most of
the normal cases (defined in gcc.c) apply, and we also have -h* and
-z* options (for the linker) (coming from SVR4).
We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) (DFBSD_SWITCH_TAKES_ARG(CHAR))
#undef WORD_SWITCH_TAKES_ARG
#define WORD_SWITCH_TAKES_ARG(STR) (DFBSD_WORD_SWITCH_TAKES_ARG(STR))
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() DFBSD_TARGET_OS_CPP_BUILTINS()
#undef CPP_SPEC
#define CPP_SPEC DFBSD_CPP_SPEC
#undef STARTFILE_SPEC
#define STARTFILE_SPEC DFBSD_STARTFILE_SPEC
#undef ENDFILE_SPEC
#define ENDFILE_SPEC DFBSD_ENDFILE_SPEC
#undef LIB_SPEC
#define LIB_SPEC DFBSD_LIB_SPEC
#if 0
#undef LINK_COMMAND_SPEC
#define LINK_COMMAND_SPEC DFBSD_LINK_COMMAND_SPEC
#endif
/************************[ Target stuff ]***********************************/
/* All DragonFly Architectures support the ELF object file format. */
#undef OBJECT_FORMAT_ELF
#define OBJECT_FORMAT_ELF
/* Don't assume anything about the header files. */
#undef NO_IMPLICIT_EXTERN_C
#define NO_IMPLICIT_EXTERN_C 1
/* Make gcc agree with DragonFly's standard headers (<machine/stdint.h>, etc...) */
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#define MATH_LIBRARY_PROFILE "-lm_p"
/* Code generation parameters. */
/* Use periods rather than dollar signs in special g++ assembler names.
This ensures the configuration knows our system correctly so we can link
with libraries compiled with the native cc. */
#undef NO_DOLLAR_IN_LABEL
/* Define this so we can compile MS code for use with WINE. */
#define HANDLE_PRAGMA_PACK_PUSH_POP
/* Used by libgcc2.c. We support file locking with fcntl / F_SETLKW.
This enables the test coverage code to use file locking when exiting a
program, which avoids race conditions if the program has forked. */
#define TARGET_POSIX_IO

View File

@@ -0,0 +1,39 @@
/* This header makes it possible to redefine system calls to the
* file system. This way, minix servers can re-route the data
* that libgcov tries to send to the file system. This is
* necessary, because the servers can't access the file system
* directly. Instead, they will copy the data to a helping user
* space process, which will call the file system for them.
* For more information, see the <minix/gcov.h> header file.
*/
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
/* These function pointers initially point to the standard system library
* functions (fopen, etc). All calls to these system library functions are
* then redefined to calls to these function pointers. Because the pointers
* still point to the original functions, all functionality is unchanged.
* Therefore, libgcov won't act differently when linked to applications.
* But, when these pointers are redefined by code within the minix servers,
* the file system calls get replaced by other functionality.
*/
#define fopen(...) _gcov_fopen(__VA_ARGS__)
#define fread(...) _gcov_fread(__VA_ARGS__)
#define fwrite(...) _gcov_fwrite(__VA_ARGS__)
#define fclose(...) _gcov_fclose(__VA_ARGS__)
#define fseek(...) _gcov_fseek(__VA_ARGS__)
#define getenv(...) _gcov_getenv(__VA_ARGS__)
/* wrapper to make it possible to disable gcov_exit on a process exit (for mfs) */
int do_gcov_exit = 1;
void gcov_exit_wrapper(void){
if(do_gcov_exit)
gcov_exit();
}

View File

@@ -1,5 +0,0 @@
PROGRAM hello
print*, 'Hello, World!'
END

View File

@@ -1,6 +0,0 @@
#import <stdio.h>
int main( int argc, const char *argv[] ) {
printf( "hello world\n" );
return 0;
}

View File

@@ -1,148 +0,0 @@
/* $DragonFly: src/gnu/usr.bin/cc41/cc_prep/config/i386/dragonfly.h,v 1.1 2006/09/27 12:10:34 corecode Exp $ */
/* Definitions for Intel 386 running DragonFly with ELF format
Copyright (C) 1996, 2000, 2002 Free Software Foundation, Inc.
Contributed by Eric Youngdale.
Modified for stabs-in-ELF by H.J. Lu.
Adapted from GNU/Linux version by John Polstra.
Continued development by David O'Brien <obrien@freebsd.org>
Adapted from the FreeBSD version.
Changes:
- remove support for changing the dynamic linker
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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#define TARGET_VERSION fprintf (stderr, " (i386 DragonFly/ELF)");
/* Override the default comment-starter of "/". */
#undef ASM_COMMENT_START
#define ASM_COMMENT_START "#"
#undef ASM_APP_ON
#define ASM_APP_ON "#APP\n"
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
#undef NO_PROFILE_COUNTERS
#define NO_PROFILE_COUNTERS 1
/* Tell final.c that we don't need a label passed to mcount. */
#undef MCOUNT_NAME
#define MCOUNT_NAME ".mcount"
/* Make gcc agree with <machine/ansi.h>. */
#undef SIZE_TYPE
#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "unsigned int")
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE (TARGET_64BIT ? 32 : BITS_PER_WORD)
#undef SUBTARGET_EXTRA_SPECS /* i386.h bogusly defines it. */
#define SUBTARGET_EXTRA_SPECS \
{ "dfbsd_dynamic_linker", DFBSD_DYNAMIC_LINKER }
/* Provide a STARTFILE_SPEC appropriate for DragonFly. Here we add
the magical crtbegin.o file (see crtstuff.c) which provides part
of the support for getting C++ file-scope static object constructed
before entering `main'. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{!shared: \
%{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
%{!p:%{profile:gcrt1.o%s} \
%{!profile:crt1.o%s}}}} \
crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
/* Provide a ENDFILE_SPEC appropriate for DragonFly. Here we tack on
the magical crtend.o file (see crtstuff.c) which provides part of
the support for getting C++ file-scope static object constructed
before entering `main', followed by a normal "finalizer" file,
`crtn.o'. */
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
"%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
/* Provide a LINK_SPEC appropriate for DragonFly. Here we provide support
for the special GCC options -static and -shared, which allow us to
link things in one of these three modes by applying the appropriate
combinations of options at link-time. We like to support here for
as many of the other GNU linker options as possible. But I don't
have the time to search for those flags. I am sure how to add
support for -soname shared_object_name. H.J.
I took out %{v:%{!V:-V}}. It is too much :-(. They can use
-Wl,-V.
When the -shared link option is used a final link is not being
done. */
#undef LINK_SPEC
#define LINK_SPEC "\
%{p:%nconsider using `-pg' instead of `-p' with gprof(1)} \
%{v:-V} \
%{assert*} %{R*} %{rpath*} %{defsym*} \
%{shared:-Bshareable %{h*} %{soname*}} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
%{!dynamic-linker:-dynamic-linker %(dfbsd_dynamic_linker) }} \
%{static:-Bstatic}} \
%{symbolic:-Bsymbolic}"
/* A C statement to output to the stdio stream FILE an assembler
command to advance the location counter to a multiple of 1<<LOG
bytes if it is within MAX_SKIP bytes.
This is used to align code labels according to Intel recommendations. */
#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
#undef ASM_OUTPUT_MAX_SKIP_ALIGN
#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE, LOG, MAX_SKIP) \
if ((LOG) != 0) { \
if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
}
#endif
/* Don't default to pcc-struct-return, we want to retain compatibility with
older gcc versions AND pcc-struct-return is nonreentrant.
(even though the SVR4 ABI for the i386 says that records and unions are
returned in memory). */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0
/* DragonFly sets the rounding precision of the FPU to 53 bits. Let the
compiler get the contents of <float.h> and std::numeric_limits correct. */
#undef TARGET_96_ROUND_53_LONG_DOUBLE
#define TARGET_96_ROUND_53_LONG_DOUBLE (!TARGET_64BIT)

View File

@@ -1,54 +0,0 @@
/* $DragonFly: src/gnu/usr.bin/cc41/cc_prep/config/i386/dragonfly64.h,v 1.1 2007/01/15 17:53:16 corecode Exp $ */
/* Definitions for AMD x86-64 running DragonFly with ELF format
Copyright (C) 2002 Free Software Foundation, Inc.
Contributed by David O'Brien <obrien@FreeBSD.org>
Adapted from the FreeBSD version.
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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* $FreeBSD: src/contrib/gcc/config/i386/freebsd64.h,v 1.9 2004/07/28 04:44:23 kan Exp $ */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (x86-64 DragonFly/ELF)");
/* Tell final.c that we don't need a label passed to mcount. */
#define SUBTARGET_EXTRA_SPECS \
{ "dfbsd_dynamic_linker", DFBSD_DYNAMIC_LINKER }
#undef MCOUNT_NAME
#define MCOUNT_NAME ".mcount"
/* Provide a LINK_SPEC appropriate for the DragonFly/x86-64 ELF target.
This is a copy of LINK_SPEC from <i386/dragonfly.h> tweaked for
the x86-64 target.
XXX We don't support two arch userland yet */
#undef LINK_SPEC
#define LINK_SPEC "\
%{v:-V} \
%{assert*} %{R*} %{rpath*} %{defsym*} \
%{shared:-Bshareable %{h*} %{soname*}} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
%{!dynamic-linker:-dynamic-linker %(dfbsd_dynamic_linker) }} \
%{static:-Bstatic}} \
%{symbolic:-Bsymbolic}"

View File

@@ -0,0 +1,91 @@
/* Definitions for Intel 386 running MINIX with ELF format
Copyright (C) 1996, 2000, 2002, 2004 Free Software Foundation, Inc.
Contributed by Eric Youngdale.
Modified for stabs-in-ELF by H.J. Lu.
Adapted from GNU/Linux version by John Polstra.
Continued development by David O'Brien <obrien@freebsd.org>
Adapted for MINIX by Lionel Sambuc <lionel@minix3.org>
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 2, 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 COPYING. If not, write to the
Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
#undef MINIX_TARGET_CPU_CPP_BUILTINS
#define MINIX_TARGET_CPU_CPP_BUILTINS() \
do \
{ \
builtin_define ("__i386"); \
builtin_define_with_int_value ("_EM_WSIZE", 4); \
builtin_define_with_int_value ("_EM_PSIZE", 4); \
builtin_define_with_int_value ("_EM_SSIZE", 2); \
builtin_define_with_int_value ("_EM_LSIZE", 4); \
builtin_define_with_int_value ("_EM_FSIZE", 4); \
builtin_define_with_int_value ("_EM_DSIZE", 8); \
} \
while (0)
/* Define the actual types of some ANSI-mandated types.
Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c,
c-common.c, and config/<arch>/<arch>.h. */
#undef SIZE_TYPE
#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "unsigned int")
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE (TARGET_64BIT ? 32 : BITS_PER_WORD)
/* Override the default comment-starter of "/". */
#undef ASM_COMMENT_START
#define ASM_COMMENT_START "#"
#undef ASM_APP_ON
#define ASM_APP_ON "#APP\n"
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
#undef NO_PROFILE_COUNTERS
#define NO_PROFILE_COUNTERS 1
/* Tell final.c that we don't need a label passed to mcount. */
#undef MCOUNT_NAME
#define MCOUNT_NAME ".mcount"
/* A C statement to output to the stdio stream FILE an assembler
command to advance the location counter to a multiple of 1<<LOG
bytes if it is within MAX_SKIP bytes.
This is used to align code labels according to Intel recommendations. */
#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
#undef ASM_OUTPUT_MAX_SKIP_ALIGN
#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE, LOG, MAX_SKIP) \
if ((LOG) != 0) { \
if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
}
#endif
#undef SUBTARGET32_DEFAULT_CPU
#define SUBTARGET32_DEFAULT_CPU "i586"
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (MINIX/i586 ELF)");

View File

@@ -0,0 +1,185 @@
/* Base configuration file for all MINIX targets.
Copyright (C) 1999, 2000, 2001, 2004, 2005 Free Software Foundation, Inc.
Adapted for MINIX by Lionel Sambuc <lionel@minix3.org>
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 2, 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 COPYING. If not, write to the
Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
/* MINIX defines
* Default, architecture independent values for MINIX
*
* For this to work properly, the order in the tm_file variable has
* to be the following:
* minix-spec.h $arch/minix.h minix.h
*
* minix-spec.h : specifies default arch-independent values
* $arch/minix.h: redefines as needed default minix values
* minix.h : maps GCC defines to the minix defines.
*
* WARNING:
* When changing any default, also check in the arch headers
* if the default is redefined and update them as required.
*/
/* In case we need to know. */
#define USING_CONFIG_MINIX_SPEC 1
/* This defines which switch letters take arguments. On FreeBSD, most of
the normal cases (defined in gcc.c) apply, and we also have -h* and
-z* options (for the linker) (coming from SVR4).
We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
#define MINIX_SWITCH_TAKES_ARG(CHAR) \
(DEFAULT_SWITCH_TAKES_ARG (CHAR) \
|| (CHAR) == 'h' \
|| (CHAR) == 'z' /* ignored by ld */ \
|| (CHAR) == 'R')
/* This defines which multi-letter switches take arguments. */
#define MINIX_WORD_SWITCH_TAKES_ARG(STR) \
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \
|| !strcmp ((STR), "rpath") || !strcmp ((STR), "rpath-link") \
|| !strcmp ((STR), "soname") || !strcmp ((STR), "defsym") \
|| !strcmp ((STR), "assert") || !strcmp ((STR), "dynamic-linker"))
#define MINIX_TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__minix"); \
builtin_define ("__minix__"); \
builtin_define ("__unix__"); \
builtin_assert ("system=bsd"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=minix"); \
MINIX_TARGET_CPU_CPP_BUILTINS(); \
} \
while (0)
/* Define the default MINIX-specific per-CPU hook code. */
#define MINIX_TARGET_CPU_CPP_BUILTINS() do {} while (0)
/* Look for the include files in the system-defined places. */
#define MINIX_GPLUSPLUS_INCLUDE_DIR "/usr/include/g++"
#define MINIX_GPLUSPLUS_BACKWARD_INCLUDE_DIR "/usr/include/g++/backward"
/*
* XXX figure out a better way to do this
*/
#define MINIX_GCC_INCLUDE_DIR "/usr/include/gcc-4.5"
#define MINIX_INCLUDE_DEFAULTS \
{ \
{ MINIX_GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1 }, \
{ MINIX_GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1 }, \
{ MINIX_GCC_INCLUDE_DIR, "GCC", 0, 0, 1 }, \
{ "/usr/include", "GCC", 0, 0, 1 }, \
{ 0, 0, 0, 0 } \
}
/* Provide a CPP_SPEC appropriate for MINIX. We just deal with the GCC
option `-posix'. */
#define MINIX_CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
#define MINIX_CC1_SPEC ""
/* Pass -cxx-isystem to cc1plus. */
#define MINIX_CC1PLUS_SPEC "%{cxx-isystem}"
#define MINIX_SUBTARGET_CPP_SPEC ""
#define MINIX_SUBTARGET_EXTRA_ASM_SPEC ""
#define MINIX_SUBTARGET_ASM_FLOAT_SPEC ""
#define MINIX_DYNAMIC_LINKER "/usr/libexec/ld.elf_so"
/* Under MINIX, just like on NetBSD, the normal location of the various
* *crt*.o files is the /usr/lib directory. */
#define MINIX_STANDARD_STARTFILE_PREFIX "/usr/lib/"
#define MINIX_LINK_GCC_C_SEQUENCE_SPEC \
"%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
/* Provide a STARTFILE_SPEC appropriate for MINIX. Here we add
the magical crtbegin.o file (see crtstuff.c) which provides part
of the support for getting C++ file-scope static object constructed
before entering `main'. */
#define MINIX_STARTFILE_SPEC \
"%{!shared: \
%{pg:gcrt0%O%s} \
%{!pg: \
%{p:gcrt0%O%s} \
%{!p:%{profile:gcrt0%O%s} \
%{!profile:crt0%O%s}}}} \
%:if-exists(crti%O%s) \
%{static:%:if-exists-else(crtbeginT%O%s crtbegin%O%s)} \
%{!static: \
%{!shared: \
%{!pie:crtbegin%O%s} \
%{pie:crtbeginS%O%s}} \
%{shared:crtbeginS%O%s}}"
/* Provide an ENDFILE_SPEC appropriate for NetBSD ELF. Here we
add crtend.o, which provides part of the support for getting
C++ file-scope static objects deconstructed after exiting "main". */
#define MINIX_ENDFILE_SPEC \
"%{!shared: \
%{!pie:crtend%O%s} \
%{pie:crtendS%O%s}} \
%{shared:crtendS%O%s} \
%:if-exists(crtn%O%s)"
/* Provide a LIB_SPEC appropriate for MINIX. Just select the appropriate
libc, depending on whether we're doing profiling or need threads support.
(similar to the default, except no -lg, and no -p). */
#define MINIX_LIB_SPEC " \
%{pthread: %eThe -pthread option is only supported on MINIX when gcc \
is built with the --enable-threads configure-time option.} \
%{shared:-lc} \
%{!shared: \
%{!symbolic: \
%{!p: \
%{!pg:-lc}} \
%{p:-lc_p} \
%{pg:-lc_p}}}"
/* Provide a LINK_SPEC appropriate for MINIX. Here we provide support
for the special GCC options -static and -shared, which allow us to
link things in one of these three modes by applying the appropriate
combinations of options at link-time. We like to support here for
as many of the other GNU linker options as possible. But I don't
have the time to search for those flags. I am sure how to add
support for -soname shared_object_name. H.J.
I took out %{v:%{!V:-V}}. It is too much :-(. They can use
-Wl,-V.
When the -shared link option is used a final link is not being
done. */
#define MINIX_LINK_SPEC " \
-X \
%{p:%nconsider using `-pg' instead of `-p' with gprof(1) } \
%{assert*} %{R*} %{rpath*} \
%{shared:-Bshareable %{h*} %{soname*}} \
%{symbolic:-Bsymbolic} \
%{!shared: \
-dc -dp \
%{!static: \
%{rdynamic:-export-dynamic} \
%{!dynamic-linker:-dynamic-linker %(minix_dynamic_linker) }} \
%{static:-Bstatic}}"
#define MINIX_TARGET_UNWIND_TABLES_DEFAULT true

135
lang/gcc45/files/minix.h Normal file
View File

@@ -0,0 +1,135 @@
/* Base configuration file for all MINIX targets.
Copyright (C) 1999, 2000, 2001 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
/* Common MINIX configuration.
* This file maps GCC defines to MINIX defines
*
* For this to work properly, the order in the tm_file variable has
* to be the following:
* minix-spec.h $arch/minix.h minix.h
*
* minix-spec.h : specifies default arch-independent values
* $arch/minix.h: redefines as needed default minix values
* minix.h : maps GCC defines to the minix defines.
*/
/* In case we need to know. */
#define USING_CONFIG_MINIX 1
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) (MINIX_SWITCH_TAKES_ARG(CHAR))
#undef WORD_SWITCH_TAKES_ARG
#define WORD_SWITCH_TAKES_ARG(STR) (MINIX_WORD_SWITCH_TAKES_ARG(STR))
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() MINIX_TARGET_OS_CPP_BUILTINS()
#if defined(NETBSD_NATIVE)
#undef GPLUSPLUS_INCLUDE_DIR
#define GPLUSPLUS_INCLUDE_DIR MINIX_GPLUSPLUS_INCLUDE_DIR
#undef GPLUSPLUS_BACKWARD_INCLUDE_DIR
#define GPLUSPLUS_BACKWARD_INCLUDE_DIR MINIX_GPLUSPLUS_BACKWARD_INCLUDE_DIR
#undef GCC_INCLUDE_DIR
#define GCC_INCLUDE_DIR MINIX_GCC_INCLUDE_DIR
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS MINIX_INCLUDE_DEFAULTS
#endif /* defined(NETBSD_NATIVE) */
#undef CPP_SPEC
#define CPP_SPEC MINIX_CPP_SPEC
#undef CC1_SPEC
#define CC1_SPEC MINIX_CC1_SPEC
#undef CC1PLUS_SPEC
#define CC1PLUS_SPEC MINIX_CC1PLUS_SPEC
#undef STARTFILE_SPEC
#define STARTFILE_SPEC MINIX_STARTFILE_SPEC
#undef ENDFILE_SPEC
#define ENDFILE_SPEC MINIX_ENDFILE_SPEC
#undef LIB_SPEC
#define LIB_SPEC MINIX_LIB_SPEC
#undef LINK_SPEC
#define LINK_SPEC MINIX_LINK_SPEC
#undef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX MINIX_STANDARD_STARTFILE_PREFIX
#undef STANDARD_STARTFILE_PREFIX_1
#define STANDARD_STARTFILE_PREFIX_1 MINIX_STANDARD_STARTFILE_PREFIX
#undef LINK_GCC_C_SEQUENCE_SPEC
#define LINK_GCC_C_SEQUENCE_SPEC MINIX_LINK_GCC_C_SEQUENCE_SPEC
/* This has to be here in order to allow architecture to define the default
* content of the additional specs. */
#undef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS \
{ "subtarget_extra_asm_spec", MINIX_SUBTARGET_EXTRA_ASM_SPEC }, \
{ "subtarget_asm_float_spec", MINIX_SUBTARGET_ASM_FLOAT_SPEC }, \
{ "minix_dynamic_linker", MINIX_DYNAMIC_LINKER }
#undef SUBTARGET_CPP_SPEC
#define SUBTARGET_CPP_SPEC MINIX_SUBTARGET_CPP_SPEC
/* All MINIX Architectures support the ELF object file format. */
#undef OBJECT_FORMAT_ELF
#define OBJECT_FORMAT_ELF
/* Use periods rather than dollar signs in special g++ assembler names.
This ensures the configuration knows our system correctly so we can link
with libraries compiled with the native cc. */
#undef NO_DOLLAR_IN_LABEL
/* Don't assume anything about the header files. */
#undef NO_IMPLICIT_EXTERN_C
#define NO_IMPLICIT_EXTERN_C 1
/* Handle #pragma weak and #pragma pack. */
#undef HANDLE_SYSV_PRAGMA
#define HANDLE_SYSV_PRAGMA 1
/* Don't default to pcc-struct-return, we want to retain compatibility with
older gcc versions AND pcc-struct-return is nonreentrant.
(even though the SVR4 ABI for the i386 says that records and unions are
returned in memory). */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Use --as-needed -lgcc_s for eh support. */
#ifdef HAVE_LD_AS_NEEDED
#define USE_LD_AS_NEEDED 1
#endif
#if defined(HAVE_LD_EH_FRAME_HDR)
#define LINK_EH_SPEC "--eh-frame-hdr "
#endif
#undef TARGET_UNWIND_TABLES_DEFAULT
#define TARGET_UNWIND_TABLES_DEFAULT MINIX_TARGET_UNWIND_TABLES_DEFAULT

5
lang/gcc45/files/t-minix Normal file
View File

@@ -0,0 +1,5 @@
# Compile crtbeginS.o and crtendS.o with pic.
CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC
# Compile libgcc.a with pic.
TARGET_LIBGCC2_CFLAGS += -fPIC

View File

@@ -1,8 +1,8 @@
# $NetBSD: options.mk,v 1.3 2014/05/16 12:01:17 pho Exp $
# $NetBSD: options.mk,v 1.2 2012/04/13 11:10:09 hans Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.gcc45
PKG_SUPPORTED_OPTIONS= nls gcc-inplace-math gcc-c++ gcc-fortran gcc-java gcc-objc gcc-objc++ #gcc-ada
PKG_SUGGESTED_OPTIONS= gcc-c++ gcc-fortran gcc-objc gcc-objc++
PKG_SUPPORTED_OPTIONS= nls gcc-inplace-math gcc-c++ gcc-fortran gcc-java gcc-objc #gcc-ada
PKG_SUGGESTED_OPTIONS= gcc-c++ gcc-fortran gcc-objc
.if ${OPSYS} == "NetBSD"
PKG_SUGGESTED_OPTIONS+= nls
.elif ${OPSYS} == "SunOS"
@@ -84,23 +84,16 @@ MAKE_ENV+= ac_cv_prog_JAR=no
.include "../../lang/python/application.mk"
.endif
.if !empty(PKG_OPTIONS:Mgcc-objc++)
. if empty(PKG_OPTIONS:Mgcc-objc)
PKG_OPTIONS+= gcc-objc
. endif
. if empty(PKG_OPTIONS:Mgcc-c++)
PKG_OPTIONS+= gcc-c++
. endif
LANGS+= obj-c++
.endif
.if !empty(PKG_OPTIONS:Mgcc-c++)
LANGS+= c++
USE_TOOLS+= perl
CONFIGURE_ARGS+= --enable-__cxa_atexit
.if ${OPSYS} == "NetBSD" && ${OS_VARIANT} == "Minix"
CONFIGURE_ARGS+= --with-gxx-include-dir=${GCC_PREFIX}/include/g++/
.else
CONFIGURE_ARGS+= --with-gxx-include-dir=${GCC_PREFIX}/include/c++/
.endif
.endif
.if !empty(PKG_OPTIONS:Mgcc-fortran)
LANGS+= fortran

View File

@@ -0,0 +1,38 @@
$NetBSD$
--- ChangeLog.orig Thu Apr 28 14:08:55 2011
+++ ChangeLog
@@ -1,3 +1,33 @@
+2012-07-02 Release Manager
+
+ * GCC 4.5.4 released.
+
+2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * configure: Regenerate.
+
+2011-06-27 Hans-Peter Nilsson <hp@axis.com>
+
+ PR regression/47836
+ PR bootstrap/23656
+ PR other/47733
+ PR bootstrap/49247
+ PR c/48825
+ * configure.ac (target_libraries): Remove target-libiberty.
+ Remove all target-specific settings adding target-libiberty to
+ skipdirs and noconfigdirs. Remove checking target_configdirs
+ and removing target-libiberty but keeping target-libgcc if
+ otherwise empty.
+ * Makefile.def (target_modules): Don't add libiberty.
+ (dependencies): Remove all traces of target-libiberty.
+ * configure, Makefile.in: Regenerate.
+
+2011-06-19 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR target/49461
+ * configure.ac: Use mh-x86-darwin.
+ * configure: Regenerate.
+
2011-04-28 Release Manager
* GCC 4.5.3 released.

View File

@@ -0,0 +1,13 @@
$NetBSD$
--- INSTALL/configure.html.orig Thu Apr 28 14:31:39 2011
+++ INSTALL/configure.html
@@ -561,7 +561,7 @@ systems that support conditional traps).
<!-- If you make -with-llsc the default for additional targets, -->
<!-- update the -with-llsc description in the MIPS section below. -->
<br><dt><code>--with-llsc</code><dd>On MIPS targets, make <samp><span class="option">-mllsc</span></samp> the default when no
-<samp><span class="option">-mno-lsc</span></samp> option is passed. This is the default for
+<samp><span class="option">-mno-llsc</span></samp> option is passed. This is the default for
Linux-based targets, as the kernel will emulate them if the ISA does
not provide them.

View File

@@ -0,0 +1,7 @@
$NetBSD$
--- LAST_UPDATED.orig Thu Apr 28 14:31:39 2011
+++ LAST_UPDATED
@@ -1 +1 @@
-Obtained from SVN: tags/gcc_4_5_3_release revision 173114
+Obtained from SVN: tags/gcc_4_5_4_release revision 189153

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,41 @@
$NetBSD$
--- Makefile.def.orig Thu Jun 10 17:05:59 2010
+++ Makefile.def
@@ -164,7 +164,6 @@ target_modules = { module= libtermcap; no_check=true;
missing=maintainer-clean; };
target_modules = { module= winsup; };
target_modules = { module= libgloss; no_check=true; };
-target_modules = { module= libiberty; };
target_modules = { module= gperf; };
target_modules = { module= examples; no_check=true; no_install=true; };
target_modules = { module= libffi; };
@@ -532,7 +531,6 @@ dependencies = { module=configure-target-boehm-gc; on=
dependencies = { module=configure-target-boehm-gc; on=all-target-libstdc++-v3; };
dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
dependencies = { module=all-target-fastjar; on=all-target-zlib; };
-dependencies = { module=all-target-fastjar; on=all-target-libiberty; };
dependencies = { module=configure-target-libjava; on=configure-target-zlib; };
dependencies = { module=configure-target-libjava; on=configure-target-boehm-gc; };
dependencies = { module=configure-target-libjava; on=configure-target-qthreads; };
@@ -543,9 +541,7 @@ dependencies = { module=all-target-libjava; on=all-tar
dependencies = { module=all-target-libjava; on=all-target-qthreads; };
dependencies = { module=all-target-libjava; on=all-target-libffi; };
dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
-dependencies = { module=all-target-libobjc; on=all-target-libiberty; };
dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
-dependencies = { module=all-target-libstdc++-v3; on=all-target-libiberty; };
dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
// parallel_list.o and parallel_settings.o depend on omp.h, which is
// generated by the libgomp configure. Unfortunately, due to the use of
@@ -560,10 +556,7 @@ lang_env_dependencies = { module=winsup; };
lang_env_dependencies = { module=qthreads; };
dependencies = { module=all-target-libgloss; on=all-target-newlib; };
-dependencies = { module=all-target-winsup; on=all-target-libiberty; };
dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
-dependencies = { module=configure-target-libiberty; on=all-binutils; };
-dependencies = { module=configure-target-libiberty; on=all-ld; };
dependencies = { module=configure-target-newlib; on=all-binutils; };
dependencies = { module=configure-target-newlib; on=all-ld; };

View File

@@ -0,0 +1,659 @@
$NetBSD$
--- /usr/pkgsrc/work/lang/gcc45/work/gcc-4.5.3/Makefile.in.orig Thu Jun 10 17:05:59 2010
+++ /usr/pkgsrc/work/lang/gcc45/work/gcc-4.5.3/Makefile.in
@@ -530,7 +530,7 @@ COMPILER_AS_FOR_TARGET=@COMPILER_AS_FOR_TARGET@
COMPILER_LD_FOR_TARGET=@COMPILER_LD_FOR_TARGET@
COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@
-CFLAGS_FOR_TARGET = @CFLAGS_FOR_TARGET@
+CFLAGS_FOR_TARGET = @CFLAGS_FOR_TARGET@ -B/usr/lib
CXXFLAGS_FOR_TARGET = @CXXFLAGS_FOR_TARGET@
LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
@@ -930,7 +930,6 @@ configure-target: \
maybe-configure-target-libtermcap \
maybe-configure-target-winsup \
maybe-configure-target-libgloss \
- maybe-configure-target-libiberty \
maybe-configure-target-gperf \
maybe-configure-target-examples \
maybe-configure-target-libffi \
@@ -1112,7 +1111,6 @@ all-target: maybe-all-target-libobjc
all-target: maybe-all-target-libtermcap
all-target: maybe-all-target-winsup
all-target: maybe-all-target-libgloss
-all-target: maybe-all-target-libiberty
all-target: maybe-all-target-gperf
all-target: maybe-all-target-examples
all-target: maybe-all-target-libffi
@@ -1233,7 +1231,6 @@ info-target: maybe-info-target-libobjc
info-target: maybe-info-target-libtermcap
info-target: maybe-info-target-winsup
info-target: maybe-info-target-libgloss
-info-target: maybe-info-target-libiberty
info-target: maybe-info-target-gperf
info-target: maybe-info-target-examples
info-target: maybe-info-target-libffi
@@ -1347,7 +1344,6 @@ dvi-target: maybe-dvi-target-libobjc
dvi-target: maybe-dvi-target-libtermcap
dvi-target: maybe-dvi-target-winsup
dvi-target: maybe-dvi-target-libgloss
-dvi-target: maybe-dvi-target-libiberty
dvi-target: maybe-dvi-target-gperf
dvi-target: maybe-dvi-target-examples
dvi-target: maybe-dvi-target-libffi
@@ -1461,7 +1457,6 @@ pdf-target: maybe-pdf-target-libobjc
pdf-target: maybe-pdf-target-libtermcap
pdf-target: maybe-pdf-target-winsup
pdf-target: maybe-pdf-target-libgloss
-pdf-target: maybe-pdf-target-libiberty
pdf-target: maybe-pdf-target-gperf
pdf-target: maybe-pdf-target-examples
pdf-target: maybe-pdf-target-libffi
@@ -1575,7 +1570,6 @@ html-target: maybe-html-target-libobjc
html-target: maybe-html-target-libtermcap
html-target: maybe-html-target-winsup
html-target: maybe-html-target-libgloss
-html-target: maybe-html-target-libiberty
html-target: maybe-html-target-gperf
html-target: maybe-html-target-examples
html-target: maybe-html-target-libffi
@@ -1689,7 +1683,6 @@ TAGS-target: maybe-TAGS-target-libobjc
TAGS-target: maybe-TAGS-target-libtermcap
TAGS-target: maybe-TAGS-target-winsup
TAGS-target: maybe-TAGS-target-libgloss
-TAGS-target: maybe-TAGS-target-libiberty
TAGS-target: maybe-TAGS-target-gperf
TAGS-target: maybe-TAGS-target-examples
TAGS-target: maybe-TAGS-target-libffi
@@ -1803,7 +1796,6 @@ install-info-target: maybe-install-info-target-libobjc
install-info-target: maybe-install-info-target-libtermcap
install-info-target: maybe-install-info-target-winsup
install-info-target: maybe-install-info-target-libgloss
-install-info-target: maybe-install-info-target-libiberty
install-info-target: maybe-install-info-target-gperf
install-info-target: maybe-install-info-target-examples
install-info-target: maybe-install-info-target-libffi
@@ -1917,7 +1909,6 @@ install-pdf-target: maybe-install-pdf-target-libobjc
install-pdf-target: maybe-install-pdf-target-libtermcap
install-pdf-target: maybe-install-pdf-target-winsup
install-pdf-target: maybe-install-pdf-target-libgloss
-install-pdf-target: maybe-install-pdf-target-libiberty
install-pdf-target: maybe-install-pdf-target-gperf
install-pdf-target: maybe-install-pdf-target-examples
install-pdf-target: maybe-install-pdf-target-libffi
@@ -2031,7 +2022,6 @@ install-html-target: maybe-install-html-target-libobjc
install-html-target: maybe-install-html-target-libtermcap
install-html-target: maybe-install-html-target-winsup
install-html-target: maybe-install-html-target-libgloss
-install-html-target: maybe-install-html-target-libiberty
install-html-target: maybe-install-html-target-gperf
install-html-target: maybe-install-html-target-examples
install-html-target: maybe-install-html-target-libffi
@@ -2145,7 +2135,6 @@ installcheck-target: maybe-installcheck-target-libobjc
installcheck-target: maybe-installcheck-target-libtermcap
installcheck-target: maybe-installcheck-target-winsup
installcheck-target: maybe-installcheck-target-libgloss
-installcheck-target: maybe-installcheck-target-libiberty
installcheck-target: maybe-installcheck-target-gperf
installcheck-target: maybe-installcheck-target-examples
installcheck-target: maybe-installcheck-target-libffi
@@ -2259,7 +2248,6 @@ mostlyclean-target: maybe-mostlyclean-target-libobjc
mostlyclean-target: maybe-mostlyclean-target-libtermcap
mostlyclean-target: maybe-mostlyclean-target-winsup
mostlyclean-target: maybe-mostlyclean-target-libgloss
-mostlyclean-target: maybe-mostlyclean-target-libiberty
mostlyclean-target: maybe-mostlyclean-target-gperf
mostlyclean-target: maybe-mostlyclean-target-examples
mostlyclean-target: maybe-mostlyclean-target-libffi
@@ -2373,7 +2361,6 @@ clean-target: maybe-clean-target-libobjc
clean-target: maybe-clean-target-libtermcap
clean-target: maybe-clean-target-winsup
clean-target: maybe-clean-target-libgloss
-clean-target: maybe-clean-target-libiberty
clean-target: maybe-clean-target-gperf
clean-target: maybe-clean-target-examples
clean-target: maybe-clean-target-libffi
@@ -2487,7 +2474,6 @@ distclean-target: maybe-distclean-target-libobjc
distclean-target: maybe-distclean-target-libtermcap
distclean-target: maybe-distclean-target-winsup
distclean-target: maybe-distclean-target-libgloss
-distclean-target: maybe-distclean-target-libiberty
distclean-target: maybe-distclean-target-gperf
distclean-target: maybe-distclean-target-examples
distclean-target: maybe-distclean-target-libffi
@@ -2601,7 +2587,6 @@ maintainer-clean-target: maybe-maintainer-clean-target
maintainer-clean-target: maybe-maintainer-clean-target-libtermcap
maintainer-clean-target: maybe-maintainer-clean-target-winsup
maintainer-clean-target: maybe-maintainer-clean-target-libgloss
-maintainer-clean-target: maybe-maintainer-clean-target-libiberty
maintainer-clean-target: maybe-maintainer-clean-target-gperf
maintainer-clean-target: maybe-maintainer-clean-target-examples
maintainer-clean-target: maybe-maintainer-clean-target-libffi
@@ -2770,7 +2755,6 @@ check-target: \
maybe-check-target-libtermcap \
maybe-check-target-winsup \
maybe-check-target-libgloss \
- maybe-check-target-libiberty \
maybe-check-target-gperf \
maybe-check-target-examples \
maybe-check-target-libffi \
@@ -2991,7 +2975,6 @@ install-target: \
maybe-install-target-libtermcap \
maybe-install-target-winsup \
maybe-install-target-libgloss \
- maybe-install-target-libiberty \
maybe-install-target-gperf \
maybe-install-target-examples \
maybe-install-target-libffi \
@@ -50216,448 +50199,6 @@ maintainer-clean-target-libgloss:
-.PHONY: configure-target-libiberty maybe-configure-target-libiberty
-maybe-configure-target-libiberty:
-@if gcc-bootstrap
-configure-target-libiberty: stage_current
-@endif gcc-bootstrap
-@if target-libiberty
-maybe-configure-target-libiberty: configure-target-libiberty
-configure-target-libiberty:
- @: $(MAKE); $(unstage)
- @r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- echo "Checking multilib configuration for libiberty..."; \
- $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
- $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libiberty/multilib.tmp 2> /dev/null ; \
- if test -r $(TARGET_SUBDIR)/libiberty/multilib.out; then \
- if cmp -s $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; then \
- rm -f $(TARGET_SUBDIR)/libiberty/multilib.tmp; \
- else \
- rm -f $(TARGET_SUBDIR)/libiberty/Makefile; \
- mv $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; \
- fi; \
- else \
- mv $(TARGET_SUBDIR)/libiberty/multilib.tmp $(TARGET_SUBDIR)/libiberty/multilib.out; \
- fi; \
- test ! -f $(TARGET_SUBDIR)/libiberty/Makefile || exit 0; \
- $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libiberty ; \
- $(NORMAL_TARGET_EXPORTS) \
- echo Configuring in $(TARGET_SUBDIR)/libiberty; \
- cd "$(TARGET_SUBDIR)/libiberty" || exit 1; \
- case $(srcdir) in \
- /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
- *) topdir=`echo $(TARGET_SUBDIR)/libiberty/ | \
- sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
- esac; \
- srcdiroption="--srcdir=$${topdir}/libiberty"; \
- libsrcdir="$$s/libiberty"; \
- rm -f no-such-file || : ; \
- CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
- $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
- --target=${target_alias} $${srcdiroption} \
- || exit 1
-@endif target-libiberty
-
-
-
-
-
-.PHONY: all-target-libiberty maybe-all-target-libiberty
-maybe-all-target-libiberty:
-@if gcc-bootstrap
-all-target-libiberty: stage_current
-@endif gcc-bootstrap
-@if target-libiberty
-TARGET-target-libiberty=all
-maybe-all-target-libiberty: all-target-libiberty
-all-target-libiberty: configure-target-libiberty
- @: $(MAKE); $(unstage)
- @r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \
- $(TARGET-target-libiberty))
-@endif target-libiberty
-
-
-
-
-
-.PHONY: check-target-libiberty maybe-check-target-libiberty
-maybe-check-target-libiberty:
-@if target-libiberty
-maybe-check-target-libiberty: check-target-libiberty
-
-check-target-libiberty:
- @: $(MAKE); $(unstage)
- @r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(TARGET_FLAGS_TO_PASS) check)
-
-@endif target-libiberty
-
-.PHONY: install-target-libiberty maybe-install-target-libiberty
-maybe-install-target-libiberty:
-@if target-libiberty
-maybe-install-target-libiberty: install-target-libiberty
-
-install-target-libiberty: installdirs
- @: $(MAKE); $(unstage)
- @r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
-
-@endif target-libiberty
-
-# Other targets (info, dvi, pdf, etc.)
-
-.PHONY: maybe-info-target-libiberty info-target-libiberty
-maybe-info-target-libiberty:
-@if target-libiberty
-maybe-info-target-libiberty: info-target-libiberty
-
-info-target-libiberty: \
- configure-target-libiberty
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing info in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- info) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-dvi-target-libiberty dvi-target-libiberty
-maybe-dvi-target-libiberty:
-@if target-libiberty
-maybe-dvi-target-libiberty: dvi-target-libiberty
-
-dvi-target-libiberty: \
- configure-target-libiberty
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing dvi in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- dvi) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-pdf-target-libiberty pdf-target-libiberty
-maybe-pdf-target-libiberty:
-@if target-libiberty
-maybe-pdf-target-libiberty: pdf-target-libiberty
-
-pdf-target-libiberty: \
- configure-target-libiberty
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing pdf in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- pdf) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-html-target-libiberty html-target-libiberty
-maybe-html-target-libiberty:
-@if target-libiberty
-maybe-html-target-libiberty: html-target-libiberty
-
-html-target-libiberty: \
- configure-target-libiberty
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing html in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- html) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-TAGS-target-libiberty TAGS-target-libiberty
-maybe-TAGS-target-libiberty:
-@if target-libiberty
-maybe-TAGS-target-libiberty: TAGS-target-libiberty
-
-TAGS-target-libiberty: \
- configure-target-libiberty
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing TAGS in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- TAGS) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-install-info-target-libiberty install-info-target-libiberty
-maybe-install-info-target-libiberty:
-@if target-libiberty
-maybe-install-info-target-libiberty: install-info-target-libiberty
-
-install-info-target-libiberty: \
- configure-target-libiberty \
- info-target-libiberty
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing install-info in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- install-info) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-install-pdf-target-libiberty install-pdf-target-libiberty
-maybe-install-pdf-target-libiberty:
-@if target-libiberty
-maybe-install-pdf-target-libiberty: install-pdf-target-libiberty
-
-install-pdf-target-libiberty: \
- configure-target-libiberty \
- pdf-target-libiberty
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing install-pdf in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- install-pdf) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-install-html-target-libiberty install-html-target-libiberty
-maybe-install-html-target-libiberty:
-@if target-libiberty
-maybe-install-html-target-libiberty: install-html-target-libiberty
-
-install-html-target-libiberty: \
- configure-target-libiberty \
- html-target-libiberty
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing install-html in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- install-html) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-installcheck-target-libiberty installcheck-target-libiberty
-maybe-installcheck-target-libiberty:
-@if target-libiberty
-maybe-installcheck-target-libiberty: installcheck-target-libiberty
-
-installcheck-target-libiberty: \
- configure-target-libiberty
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing installcheck in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- installcheck) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-mostlyclean-target-libiberty mostlyclean-target-libiberty
-maybe-mostlyclean-target-libiberty:
-@if target-libiberty
-maybe-mostlyclean-target-libiberty: mostlyclean-target-libiberty
-
-mostlyclean-target-libiberty:
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing mostlyclean in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- mostlyclean) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-clean-target-libiberty clean-target-libiberty
-maybe-clean-target-libiberty:
-@if target-libiberty
-maybe-clean-target-libiberty: clean-target-libiberty
-
-clean-target-libiberty:
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing clean in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- clean) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-distclean-target-libiberty distclean-target-libiberty
-maybe-distclean-target-libiberty:
-@if target-libiberty
-maybe-distclean-target-libiberty: distclean-target-libiberty
-
-distclean-target-libiberty:
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing distclean in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- distclean) \
- || exit 1
-
-@endif target-libiberty
-
-.PHONY: maybe-maintainer-clean-target-libiberty maintainer-clean-target-libiberty
-maybe-maintainer-clean-target-libiberty:
-@if target-libiberty
-maybe-maintainer-clean-target-libiberty: maintainer-clean-target-libiberty
-
-maintainer-clean-target-libiberty:
- @: $(MAKE); $(unstage)
- @[ -f $(TARGET_SUBDIR)/libiberty/Makefile ] || exit 0 ; \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(NORMAL_TARGET_EXPORTS) \
- echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libiberty" ; \
- for flag in $(EXTRA_TARGET_FLAGS); do \
- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
- done; \
- (cd $(TARGET_SUBDIR)/libiberty && \
- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
- "RANLIB=$${RANLIB}" \
- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
- maintainer-clean) \
- || exit 1
-
-@endif target-libiberty
-
-
-
-
-
.PHONY: configure-target-gperf maybe-configure-target-gperf
maybe-configure-target-gperf:
@if gcc-bootstrap
@@ -57654,7 +57195,6 @@ configure-target-libobjc: stage_last
configure-target-libtermcap: stage_last
configure-target-winsup: stage_last
configure-target-libgloss: stage_last
-configure-target-libiberty: stage_last
configure-target-gperf: stage_last
configure-target-examples: stage_last
configure-target-libffi: stage_last
@@ -57683,7 +57223,6 @@ configure-target-libobjc: maybe-all-gcc
configure-target-libtermcap: maybe-all-gcc
configure-target-winsup: maybe-all-gcc
configure-target-libgloss: maybe-all-gcc
-configure-target-libiberty: maybe-all-gcc
configure-target-gperf: maybe-all-gcc
configure-target-examples: maybe-all-gcc
configure-target-libffi: maybe-all-gcc
@@ -58395,7 +57934,6 @@ configure-target-boehm-gc: maybe-configure-target-qthr
configure-target-boehm-gc: maybe-all-target-libstdc++-v3
configure-target-fastjar: maybe-configure-target-zlib
all-target-fastjar: maybe-all-target-zlib
-all-target-fastjar: maybe-all-target-libiberty
configure-target-libjava: maybe-configure-target-zlib
configure-target-libjava: maybe-configure-target-boehm-gc
configure-target-libjava: maybe-configure-target-qthreads
@@ -58406,9 +57944,7 @@ all-target-libjava: maybe-all-target-boehm-gc
all-target-libjava: maybe-all-target-qthreads
all-target-libjava: maybe-all-target-libffi
configure-target-libobjc: maybe-configure-target-boehm-gc
-all-target-libobjc: maybe-all-target-libiberty
all-target-libobjc: maybe-all-target-boehm-gc
-all-target-libstdc++-v3: maybe-all-target-libiberty
configure-target-libstdc++-v3: maybe-configure-target-libgomp
configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp
@@ -58426,10 +57962,7 @@ all-stage4-target-libstdc++-v3: maybe-configure-stage4
all-stageprofile-target-libstdc++-v3: maybe-configure-stageprofile-target-libgomp
all-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp
all-target-libgloss: maybe-all-target-newlib
-all-target-winsup: maybe-all-target-libiberty
all-target-winsup: maybe-all-target-libtermcap
-configure-target-libiberty: maybe-all-binutils
-configure-target-libiberty: maybe-all-ld
configure-target-newlib: maybe-all-binutils
configure-target-newlib: maybe-all-ld
@@ -58464,7 +57997,6 @@ configure-target-libobjc: maybe-all-target-libgcc
configure-target-libtermcap: maybe-all-target-libgcc
configure-target-winsup: maybe-all-target-libgcc
configure-target-libgloss: maybe-all-target-libgcc
-configure-target-libiberty: maybe-all-target-libgcc
configure-target-gperf: maybe-all-target-libgcc
configure-target-examples: maybe-all-target-libgcc
configure-target-libffi: maybe-all-target-libgcc
@@ -58493,7 +58025,6 @@ configure-target-libobjc: maybe-all-target-newlib mayb
configure-target-libtermcap: maybe-all-target-newlib maybe-all-target-libgloss
configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss
-
configure-target-gperf: maybe-all-target-newlib maybe-all-target-libgloss

View File

@@ -0,0 +1,823 @@
$NetBSD$
--- NEWS.orig Thu Apr 28 14:32:00 2011
+++ NEWS
@@ -9,27 +9,30 @@ http://gcc.gnu.org/gcc-4.5/index.html
GCC 4.5 Release Series
- Apr 28, 2011
+ Jul 2, 2012
The [1]GNU project and the GCC developers are pleased to announce the
- release of GCC 4.5.3.
+ release of GCC 4.5.4.
This release is a bug-fix release, containing fixes for regressions in
- GCC 4.5.2 relative to previous releases of GCC.
+ GCC 4.5.3 relative to previous releases of GCC.
Release History
+ GCC 4.5.4
+ Jul 2, 2012 ([2]changes)
+
GCC 4.5.3
- Apr 28, 2011 ([2]changes)
+ Apr 28, 2011 ([3]changes)
GCC 4.5.2
- Dec 16, 2010 ([3]changes)
+ Dec 16, 2010 ([4]changes)
GCC 4.5.1
- Jul 31, 2010 ([4]changes)
+ Jul 31, 2010 ([5]changes)
GCC 4.5.0
- April 14, 2010 ([5]changes)
+ April 14, 2010 ([6]changes)
References and Acknowledgements
@@ -37,33 +40,33 @@ References and Acknowledgements
supports several other languages aside from C, it now stands for the
GNU Compiler Collection.
- A list of [6]successful builds is updated as new information becomes
+ A list of [7]successful builds is updated as new information becomes
available.
The GCC developers would like to thank the numerous people that have
contributed new features, improvements, bug fixes, and other changes as
- well as test results to GCC. This [7]amazing group of volunteers is
+ well as test results to GCC. This [8]amazing group of volunteers is
what makes GCC successful.
- For additional information about GCC please refer to the [8]GCC project
- web site or contact the [9]GCC development mailing list.
+ For additional information about GCC please refer to the [9]GCC project
+ web site or contact the [10]GCC development mailing list.
- To obtain GCC please use [10]our mirror sites or [11]our SVN server.
+ To obtain GCC please use [11]our mirror sites or [12]our SVN server.
For questions related to the use of GCC, please consult these web
- pages and the [12]GCC manuals. If that fails, the
- [13]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+ pages and the [13]GCC manuals. If that fails, the
+ [14]gcc-help@gcc.gnu.org mailing list might help. Comments on these
web pages and the development of GCC are welcome on our developer
- list at [14]gcc@gcc.gnu.org. All of [15]our lists have public
+ list at [15]gcc@gcc.gnu.org. All of [16]our lists have public
archives.
- Copyright (C) [16]Free Software Foundation, Inc. Verbatim copying and
+ Copyright (C) [17]Free Software Foundation, Inc. Verbatim copying and
distribution of this entire article is permitted in any medium,
provided this notice is preserved.
- These pages are [17]maintained by the GCC team. Last modified
- 2011-04-28[18].
+ These pages are [18]maintained by the GCC team. Last modified
+ 2012-07-02[19].
References
@@ -72,19 +75,20 @@ References
3. http://gcc.gnu.org/gcc-4.5/changes.html
4. http://gcc.gnu.org/gcc-4.5/changes.html
5. http://gcc.gnu.org/gcc-4.5/changes.html
- 6. http://gcc.gnu.org/gcc-4.5/buildstat.html
- 7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
- 8. http://gcc.gnu.org/index.html
- 9. mailto:gcc@gcc.gnu.org
- 10. http://gcc.gnu.org/mirrors.html
- 11. http://gcc.gnu.org/svn.html
- 12. http://gcc.gnu.org/onlinedocs/
- 13. mailto:gcc-help@gcc.gnu.org
- 14. mailto:gcc@gcc.gnu.org
- 15. http://gcc.gnu.org/lists.html
- 16. http://www.fsf.org/
- 17. http://gcc.gnu.org/about.html
- 18. http://validator.w3.org/check/referer
+ 6. http://gcc.gnu.org/gcc-4.5/changes.html
+ 7. http://gcc.gnu.org/gcc-4.5/buildstat.html
+ 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
+ 9. http://gcc.gnu.org/index.html
+ 10. mailto:gcc@gcc.gnu.org
+ 11. http://gcc.gnu.org/mirrors.html
+ 12. http://gcc.gnu.org/svn.html
+ 13. http://gcc.gnu.org/onlinedocs/
+ 14. mailto:gcc-help@gcc.gnu.org
+ 15. mailto:gcc@gcc.gnu.org
+ 16. http://gcc.gnu.org/lists.html
+ 17. http://www.fsf.org/
+ 18. http://gcc.gnu.org/about.html
+ 19. http://validator.w3.org/check/referer
======================================================================
http://gcc.gnu.org/gcc-4.5/changes.html
@@ -171,10 +175,10 @@ General Optimizer Improvements
(e.g. csinf and csinl) are also handled.
* A new link-time optimizer has been added ([8]-flto). When this
option is used, GCC generates a bytecode representation of each
- input file and writes it to special ELF sections in each object
+ input file and writes it to specially-named sections in each object
file. When the object files are linked together, all the function
- bodies are read from these ELF sections and instantiated as if they
- had been part of the same translation unit. This enables
+ bodies are read from these named sections and instantiated as if
+ they had been part of the same translation unit. This enables
interprocedural optimizations to work across different files (and
even different languages), potentially improving the performance of
the generated code. To use the link-timer optimizer, -flto needs to
@@ -490,8 +494,6 @@ vector-size: improvement = 3: call stack = 0x804842c .
ATAN(Y,X) is now an alias for ATAN2(Y,X).
+ The BLOCK construct has been implemented.
- Java (GCJ)
-
New Targets and Target Specific Improvements
AIX
@@ -595,8 +597,6 @@ New Targets and Target Specific Improvements
use_debug_exception_return. See the documentation for more details
about these attributes.
- picochip
-
RS/6000 (POWER/PowerPC)
* GCC now supports the Power ISA 2.06, which includes the VSX
@@ -616,6 +616,11 @@ New Targets and Target Specific Improvements
* GCC can now be configured with options --with-cpu-32,
--with-cpu-64, --with-tune-32 and --with-tune-64 to control the
default optimization separately for 32-bit and 64-bit modes.
+ * Starting with GCC 4.5.4, vectors of type vector long long or vector
+ long are passed and returned in the same method as other vectors
+ with the VSX instruction set. Previously the GCC compiler did not
+ adhere to the ABI for 128-bit vectors with 64-bit integer base
+ types (PR 48857). This is also fixed in the GCC 4.6.1 release.
RX
@@ -638,7 +643,7 @@ Operating Systems
* Numerous other minor bugfixes and improvements, and substantial
enhancements to the Fortran language support library.
-Documentation improvements
+ >
Other significant improvements
@@ -699,11 +704,11 @@ GCC 4.5.2
GCC 4.5.3
This is the [27]list of problem reports (PRs) from GCC's bug tracking
- system that are known to be fixed in the 4.5.2 release. This list might
+ system that are known to be fixed in the 4.5.3 release. This list might
not be complete (that is, it is possible that some PRs that have been
fixed are not listed here).
- On the PowerPC compiler, the altivec builtin functions vec_ld and
+ On the PowerPC compiler, the Altivec builtin functions vec_ld and
vec_st have been modified to generate the Altivec memory instructions
LVX and STVX, even if the -mvsx option is used. In the initial GCC 4.5
release, these builtin functions were changed to generate VSX memory
@@ -713,20 +718,27 @@ GCC 4.5.3
vec_vsx_ld and vec_vsx_st which always generates the VSX memory
instructions.
+GCC 4.5.4
+ This is the [28]list of problem reports (PRs) from GCC's bug tracking
+ system that are known to be fixed in the 4.5.4 release. This list might
+ not be complete (that is, it is possible that some PRs that have been
+ fixed are not listed here).
+
+
For questions related to the use of GCC, please consult these web
- pages and the [28]GCC manuals. If that fails, the
- [29]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+ pages and the [29]GCC manuals. If that fails, the
+ [30]gcc-help@gcc.gnu.org mailing list might help. Comments on these
web pages and the development of GCC are welcome on our developer
- list at [30]gcc@gcc.gnu.org. All of [31]our lists have public
+ list at [31]gcc@gcc.gnu.org. All of [32]our lists have public
archives.
- Copyright (C) [32]Free Software Foundation, Inc. Verbatim copying and
+ Copyright (C) [33]Free Software Foundation, Inc. Verbatim copying and
distribution of this entire article is permitted in any medium,
provided this notice is preserved.
- These pages are [33]maintained by the GCC team. Last modified
- 2011-04-25[34].
+ These pages are [34]maintained by the GCC team. Last modified
+ 2012-07-02[35].
References
@@ -756,49 +768,53 @@ References
24. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.1
25. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2
- 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.2
- 28. http://gcc.gnu.org/onlinedocs/
- 29. mailto:gcc-help@gcc.gnu.org
- 30. mailto:gcc@gcc.gnu.org
- 31. http://gcc.gnu.org/lists.html
- 32. http://www.fsf.org/
- 33. http://gcc.gnu.org/about.html
- 34. http://validator.w3.org/check/referer
+ 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.3
+ 28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.4
+ 29. http://gcc.gnu.org/onlinedocs/
+ 30. mailto:gcc-help@gcc.gnu.org
+ 31. mailto:gcc@gcc.gnu.org
+ 32. http://gcc.gnu.org/lists.html
+ 33. http://www.fsf.org/
+ 34. http://gcc.gnu.org/about.html
+ 35. http://validator.w3.org/check/referer
======================================================================
http://gcc.gnu.org/gcc-4.4/index.html
GCC 4.4 Release Series
- April 16, 2011
+ March 13, 2012
The [1]GNU project and the GCC developers are pleased to announce the
- release of GCC 4.4.6.
+ release of GCC 4.4.7.
This release is a bug-fix release, containing fixes for regressions in
- GCC 4.4.5 relative to previous releases of GCC.
+ GCC 4.4.6 relative to previous releases of GCC.
Release History
+ GCC 4.4.7
+ March 13, 2012 ([2]changes)
+
GCC 4.4.6
- April 16, 2011 ([2]changes)
+ April 16, 2011 ([3]changes)
GCC 4.4.5
- October 1, 2010 ([3]changes)
+ October 1, 2010 ([4]changes)
GCC 4.4.4
- April 29, 2010 ([4]changes)
+ April 29, 2010 ([5]changes)
GCC 4.4.3
- January 21, 2010 ([5]changes)
+ January 21, 2010 ([6]changes)
GCC 4.4.2
- October 15, 2009 ([6]changes)
+ October 15, 2009 ([7]changes)
GCC 4.4.1
- July 22, 2009 ([7]changes)
+ July 22, 2009 ([8]changes)
GCC 4.4.0
- April 21, 2009 ([8]changes)
+ April 21, 2009 ([9]changes)
References and Acknowledgements
@@ -806,33 +822,33 @@ References and Acknowledgements
supports several other languages aside from C, it now stands for the
GNU Compiler Collection.
- A list of [9]successful builds is updated as new information becomes
+ A list of [10]successful builds is updated as new information becomes
available.
The GCC developers would like to thank the numerous people that have
contributed new features, improvements, bug fixes, and other changes as
- well as test results to GCC. This [10]amazing group of volunteers is
+ well as test results to GCC. This [11]amazing group of volunteers is
what makes GCC successful.
- For additional information about GCC please refer to the [11]GCC
- project web site or contact the [12]GCC development mailing list.
+ For additional information about GCC please refer to the [12]GCC
+ project web site or contact the [13]GCC development mailing list.
- To obtain GCC please use [13]our mirror sites or [14]our SVN server.
+ To obtain GCC please use [14]our mirror sites or [15]our SVN server.
For questions related to the use of GCC, please consult these web
- pages and the [15]GCC manuals. If that fails, the
- [16]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+ pages and the [16]GCC manuals. If that fails, the
+ [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these
web pages and the development of GCC are welcome on our developer
- list at [17]gcc@gcc.gnu.org. All of [18]our lists have public
+ list at [18]gcc@gcc.gnu.org. All of [19]our lists have public
archives.
- Copyright (C) [19]Free Software Foundation, Inc. Verbatim copying and
+ Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and
distribution of this entire article is permitted in any medium,
provided this notice is preserved.
- These pages are [20]maintained by the GCC team. Last modified
- 2011-04-25[21].
+ These pages are [21]maintained by the GCC team. Last modified
+ 2012-03-13[22].
References
@@ -844,26 +860,27 @@ References
6. http://gcc.gnu.org/gcc-4.4/changes.html
7. http://gcc.gnu.org/gcc-4.4/changes.html
8. http://gcc.gnu.org/gcc-4.4/changes.html
- 9. http://gcc.gnu.org/gcc-4.4/buildstat.html
- 10. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
- 11. http://gcc.gnu.org/index.html
- 12. mailto:gcc@gcc.gnu.org
- 13. http://gcc.gnu.org/mirrors.html
- 14. http://gcc.gnu.org/svn.html
- 15. http://gcc.gnu.org/onlinedocs/
- 16. mailto:gcc-help@gcc.gnu.org
- 17. mailto:gcc@gcc.gnu.org
- 18. http://gcc.gnu.org/lists.html
- 19. http://www.fsf.org/
- 20. http://gcc.gnu.org/about.html
- 21. http://validator.w3.org/check/referer
+ 9. http://gcc.gnu.org/gcc-4.4/changes.html
+ 10. http://gcc.gnu.org/gcc-4.4/buildstat.html
+ 11. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
+ 12. http://gcc.gnu.org/index.html
+ 13. mailto:gcc@gcc.gnu.org
+ 14. http://gcc.gnu.org/mirrors.html
+ 15. http://gcc.gnu.org/svn.html
+ 16. http://gcc.gnu.org/onlinedocs/
+ 17. mailto:gcc-help@gcc.gnu.org
+ 18. mailto:gcc@gcc.gnu.org
+ 19. http://gcc.gnu.org/lists.html
+ 20. http://www.fsf.org/
+ 21. http://gcc.gnu.org/about.html
+ 22. http://validator.w3.org/check/referer
======================================================================
http://gcc.gnu.org/gcc-4.4/changes.html
GCC 4.4 Release Series
Changes, New Features, and Fixes
- The latest release in the 4.4 release series is [1]GCC 4.4.6.
+ The latest release in the 4.4 release series is [1]GCC 4.4.7.
Caveats
@@ -1442,24 +1459,31 @@ GCC 4.4.6
not be complete (that is, it is possible that some PRs that have been
fixed are not listed here).
+GCC 4.4.7
+ This is the [19]list of problem reports (PRs) from GCC's bug tracking
+ system that are known to be fixed in the 4.4.7 release. This list might
+ not be complete (that is, it is possible that some PRs that have been
+ fixed are not listed here).
+
+
For questions related to the use of GCC, please consult these web
- pages and the [19]GCC manuals. If that fails, the
- [20]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+ pages and the [20]GCC manuals. If that fails, the
+ [21]gcc-help@gcc.gnu.org mailing list might help. Comments on these
web pages and the development of GCC are welcome on our developer
- list at [21]gcc@gcc.gnu.org. All of [22]our lists have public
+ list at [22]gcc@gcc.gnu.org. All of [23]our lists have public
archives.
- Copyright (C) [23]Free Software Foundation, Inc. Verbatim copying and
+ Copyright (C) [24]Free Software Foundation, Inc. Verbatim copying and
distribution of this entire article is permitted in any medium,
provided this notice is preserved.
- These pages are [24]maintained by the GCC team. Last modified
- 2011-04-25[25].
+ These pages are [25]maintained by the GCC team. Last modified
+ 2012-03-13[26].
References
- 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.6
+ 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.7
2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted
3. http://gcc.gnu.org/gcc-4.4/porting_to.html
4. http://gcc.gnu.org/wiki/Graphite
@@ -1477,45 +1501,49 @@ References
16. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.4
17. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.5
18. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.6
- 19. http://gcc.gnu.org/onlinedocs/
- 20. mailto:gcc-help@gcc.gnu.org
- 21. mailto:gcc@gcc.gnu.org
- 22. http://gcc.gnu.org/lists.html
- 23. http://www.fsf.org/
- 24. http://gcc.gnu.org/about.html
- 25. http://validator.w3.org/check/referer
+ 19. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.7
+ 20. http://gcc.gnu.org/onlinedocs/
+ 21. mailto:gcc-help@gcc.gnu.org
+ 22. mailto:gcc@gcc.gnu.org
+ 23. http://gcc.gnu.org/lists.html
+ 24. http://www.fsf.org/
+ 25. http://gcc.gnu.org/about.html
+ 26. http://validator.w3.org/check/referer
======================================================================
http://gcc.gnu.org/gcc-4.3/index.html
GCC 4.3 Release Series
- May 22, 2010
+ Jun 27, 2011
The [1]GNU project and the GCC developers are pleased to announce the
- release of GCC 4.3.5.
+ release of GCC 4.3.6.
This release is a bug-fix release, containing fixes for regressions in
- GCC 4.3.4 relative to previous releases of GCC.
+ GCC 4.3.5 relative to previous releases of GCC.
Release History
+ GCC 4.3.6
+ Jun 27, 2011 ([2]changes)
+
GCC 4.3.5
- May 22, 2010 ([2]changes)
+ May 22, 2010 ([3]changes)
GCC 4.3.4
- August 4, 2009 ([3]changes)
+ August 4, 2009 ([4]changes)
GCC 4.3.3
- January 24, 2009 ([4]changes)
+ January 24, 2009 ([5]changes)
GCC 4.3.2
- August 27, 2008 ([5]changes)
+ August 27, 2008 ([6]changes)
GCC 4.3.1
- June 6, 2008 ([6]changes)
+ June 6, 2008 ([7]changes)
GCC 4.3.0
- March 5, 2008 ([7]changes)
+ March 5, 2008 ([8]changes)
References and Acknowledgements
@@ -1523,33 +1551,33 @@ References and Acknowledgements
supports several other languages aside from C, it now stands for the
GNU Compiler Collection.
- A list of [8]successful builds is updated as new information becomes
+ A list of [9]successful builds is updated as new information becomes
available.
The GCC developers would like to thank the numerous people that have
contributed new features, improvements, bug fixes, and other changes as
- well as test results to GCC. This [9]amazing group of volunteers is
+ well as test results to GCC. This [10]amazing group of volunteers is
what makes GCC successful.
- For additional information about GCC please refer to the [10]GCC
- project web site or contact the [11]GCC development mailing list.
+ For additional information about GCC please refer to the [11]GCC
+ project web site or contact the [12]GCC development mailing list.
- To obtain GCC please use [12]our mirror sites or [13]our SVN server.
+ To obtain GCC please use [13]our mirror sites or [14]our SVN server.
For questions related to the use of GCC, please consult these web
- pages and the [14]GCC manuals. If that fails, the
- [15]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+ pages and the [15]GCC manuals. If that fails, the
+ [16]gcc-help@gcc.gnu.org mailing list might help. Comments on these
web pages and the development of GCC are welcome on our developer
- list at [16]gcc@gcc.gnu.org. All of [17]our lists have public
+ list at [17]gcc@gcc.gnu.org. All of [18]our lists have public
archives.
- Copyright (C) [18]Free Software Foundation, Inc. Verbatim copying and
+ Copyright (C) [19]Free Software Foundation, Inc. Verbatim copying and
distribution of this entire article is permitted in any medium,
provided this notice is preserved.
- These pages are [19]maintained by the GCC team. Last modified
- 2011-04-25[20].
+ These pages are [20]maintained by the GCC team. Last modified
+ 2011-06-27[21].
References
@@ -1560,19 +1588,20 @@ References
5. http://gcc.gnu.org/gcc-4.3/changes.html
6. http://gcc.gnu.org/gcc-4.3/changes.html
7. http://gcc.gnu.org/gcc-4.3/changes.html
- 8. http://gcc.gnu.org/gcc-4.3/buildstat.html
- 9. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
- 10. http://gcc.gnu.org/index.html
- 11. mailto:gcc@gcc.gnu.org
- 12. http://gcc.gnu.org/mirrors.html
- 13. http://gcc.gnu.org/svn.html
- 14. http://gcc.gnu.org/onlinedocs/
- 15. mailto:gcc-help@gcc.gnu.org
- 16. mailto:gcc@gcc.gnu.org
- 17. http://gcc.gnu.org/lists.html
- 18. http://www.fsf.org/
- 19. http://gcc.gnu.org/about.html
- 20. http://validator.w3.org/check/referer
+ 8. http://gcc.gnu.org/gcc-4.3/changes.html
+ 9. http://gcc.gnu.org/gcc-4.3/buildstat.html
+ 10. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
+ 11. http://gcc.gnu.org/index.html
+ 12. mailto:gcc@gcc.gnu.org
+ 13. http://gcc.gnu.org/mirrors.html
+ 14. http://gcc.gnu.org/svn.html
+ 15. http://gcc.gnu.org/onlinedocs/
+ 16. mailto:gcc-help@gcc.gnu.org
+ 17. mailto:gcc@gcc.gnu.org
+ 18. http://gcc.gnu.org/lists.html
+ 19. http://www.fsf.org/
+ 20. http://gcc.gnu.org/about.html
+ 21. http://validator.w3.org/check/referer
======================================================================
http://gcc.gnu.org/gcc-4.3/changes.html
@@ -2229,6 +2258,11 @@ New Targets and Target Specific Improvements
sign-bit and infinity checks of binary and decimal floating
point numbers.
+ SPARC
+
+ * Support for the Sun UltraSPARC T2 (Niagara 2) processor has been
+ added.
+
Xtensa
* Stack unwinding for exception handling now uses by default a
@@ -2329,20 +2363,27 @@ GCC 4.3.5
not be complete (that is, it is possible that some PRs that have been
fixed are not listed here).
+GCC 4.3.6
+ This is the [30]list of problem reports (PRs) from GCC's bug tracking
+ system that are known to be fixed in the 4.3.6 release. This list might
+ not be complete (that is, it is possible that some PRs that have been
+ fixed are not listed here).
+
+
For questions related to the use of GCC, please consult these web
- pages and the [30]GCC manuals. If that fails, the
- [31]gcc-help@gcc.gnu.org mailing list might help. Comments on these
+ pages and the [31]GCC manuals. If that fails, the
+ [32]gcc-help@gcc.gnu.org mailing list might help. Comments on these
web pages and the development of GCC are welcome on our developer
- list at [32]gcc@gcc.gnu.org. All of [33]our lists have public
+ list at [33]gcc@gcc.gnu.org. All of [34]our lists have public
archives.
- Copyright (C) [34]Free Software Foundation, Inc. Verbatim copying and
+ Copyright (C) [35]Free Software Foundation, Inc. Verbatim copying and
distribution of this entire article is permitted in any medium,
provided this notice is preserved.
- These pages are [35]maintained by the GCC team. Last modified
- 2011-04-25[36].
+ These pages are [36]maintained by the GCC team. Last modified
+ 2011-09-12[37].
References
@@ -2375,13 +2416,14 @@ References
27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3
28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4
29. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.5
- 30. http://gcc.gnu.org/onlinedocs/
- 31. mailto:gcc-help@gcc.gnu.org
- 32. mailto:gcc@gcc.gnu.org
- 33. http://gcc.gnu.org/lists.html
- 34. http://www.fsf.org/
- 35. http://gcc.gnu.org/about.html
- 36. http://validator.w3.org/check/referer
+ 30. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.6
+ 31. http://gcc.gnu.org/onlinedocs/
+ 32. mailto:gcc-help@gcc.gnu.org
+ 33. mailto:gcc@gcc.gnu.org
+ 34. http://gcc.gnu.org/lists.html
+ 35. http://www.fsf.org/
+ 36. http://gcc.gnu.org/about.html
+ 37. http://validator.w3.org/check/referer
======================================================================
http://gcc.gnu.org/gcc-4.2/index.html
@@ -4017,7 +4059,7 @@ GCC 4.0.4
provided this notice is preserved.
These pages are [21]maintained by the GCC team. Last modified
- 2011-04-25[22].
+ 2012-02-20[22].
References
@@ -4028,7 +4070,7 @@ References
5. http://gcc.gnu.org/news/sms.html
6. http://www.akkadia.org/drepper/dsohowto.pdf
7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility
- 8. http://www.codesourcery.com/public/cxx-abi/
+ 8. http://sourcery.mentor.com/public/cxx-abi/
9. http://gcc.gnu.org/fortran/
10. http://gcc.gnu.org/install/
11. http://gcc.gnu.org/wiki/Visibility
@@ -4826,8 +4868,8 @@ New Targets and Target Specific Improvements
M32R
* Support for the M32R/2 processor has been added by Renesas.
- * Support for an M32R Linux target and PIC code generation has been
- added by Renesas.
+ * Support for an M32R GNU/Linux target and PIC code generation has
+ been added by Renesas.
M68000
@@ -5905,7 +5947,7 @@ GCC 3.4.6
provided this notice is preserved.
These pages are [417]maintained by the GCC team. Last modified
- 2011-04-25[418].
+ 2012-04-24[418].
References
@@ -5916,8 +5958,8 @@ References
5. http://gcc.gnu.org/gcc-3.4/mips-abi.html
6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
7. http://www.boost.org/
- 8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953
- 9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361
+ 8. http://gcc.gnu.org/PR11953
+ 9. http://gcc.gnu.org/PR8361
10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins
11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
12. http://gcc.gnu.org/bugs/#cxx_rvalbind
@@ -6574,7 +6616,7 @@ New Targets and Target Specific Improvements
+ The 32-bit port now supports weak symbols under HP-UX 11.
+ The handling of initializers and finalizers has been improved
under HP-UX 11. The 64-bit port no longer uses collect2.
- + Dwarf2 EH support has been added to the 32-bit linux port.
+ + Dwarf2 EH support has been added to the 32-bit GNU/Linux port.
+ ABI fixes to correct the passing of small structures by value.
* The SPARC, HP-PA, SH4, and x86/pentium ports have been converted to
use the DFA processor pipeline description.
@@ -7170,7 +7212,7 @@ GCC 3.3.1
with negative argument
* [268]11098 g++ doesn't emit complete debugging information for
local variables in destructors
- * [269]11137 Linux shared library constructors not called unless
+ * [269]11137 GNU/Linux shared library constructors not called unless
there's one global object
* [270]11154 spurious ambiguity report for template class
specialization
@@ -7777,7 +7819,7 @@ GCC 3.3.6
provided this notice is preserved.
These pages are [558]maintained by the GCC team. Last modified
- 2011-04-25[559].
+ 2011-10-24[559].
References
@@ -8929,8 +8971,8 @@ GCC 3.2.1
* [208]6984: wrong code generated with -O2, -O3, -Os for do-while
loop on PowerPC
* [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5
- * [210]7130: miscompiled code for GCC-3.1 in powerpc linux with
- -funroll-all-loops
+ * [210]7130: miscompiled code for GCC-3.1 on
+ powerpc-unknown-linux-gnu with -funroll-all-loops
* [211]7133: PowerPC ICE: unrecognizable insn
* [212]7380: ICE in extract_insn, at recog.c:2148
* [213]8252: ICE on Altivec code with optimization turned on
@@ -9032,7 +9074,7 @@ GCC 3.2
provided this notice is preserved.
These pages are [251]maintained by the GCC team. Last modified
- 2011-04-25[252].
+ 2011-10-24[252].
References
@@ -10646,7 +10688,7 @@ http://gcc.gnu.org/egcs-1.1/index.html
+ Fix problems with ctors/dtors in SCO shared libraries.
+ Abort instead of generating incorrect code for PPro/PII
floating point conditional moves.
- + Avoid multiply defined symbols on Linux/GNU systems using
+ + Avoid multiply defined symbols on GNU/Linux systems using
libc-5.4.xx.
+ Fix abort in alpha compiler.
* Fortran-specific fixes
@@ -10689,7 +10731,7 @@ http://gcc.gnu.org/egcs-1.1/index.html
provided this notice is preserved.
These pages are [16]maintained by the GCC team. Last modified
- 2011-04-25[17].
+ 2011-10-24[17].
References
@@ -10926,7 +10968,7 @@ http://gcc.gnu.org/egcs-1.0/index.html
contain C++ code (upgrade to 1.0.1 and use that).
* Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends.
The x86 changes fix code generation errors exposed when building
- glibc2 and the Linux dynamic linker (ld.so).
+ glibc2 and the usual GNU/Linux dynamic linker (ld.so).
The hppa change fixes a compiler abort when configured for use with
RTEMS.
The MIPS changes fix problems with the definition of LONG_MAX on
@@ -10953,7 +10995,7 @@ http://gcc.gnu.org/egcs-1.0/index.html
* g++/libstdc++ improvements and fixes
+ libstdc++ in the EGCS release has been updated and should be
link compatible with libstdc++-2.8.
- + Various fixes in libio/libstdc++ to work better on Linux
+ + Various fixes in libio/libstdc++ to work better on GNU/Linux
systems.
+ Fix problems with duplicate symbols on systems that do not
support weak symbols.
@@ -10976,9 +11018,9 @@ http://gcc.gnu.org/egcs-1.0/index.html
+ x86 ports define i386 again to keep imake happy.
+ Fix exception handling support on NetBSD ports.
+ Several changes to collect2 to fix many problems with AIX.
- + Define __ELF__ for rs6000/linux.
- + Fix -mcall-linux problem on rs6000/linux.
- + Fix stdarg/vararg problem for rs6000/linux.
+ + Define __ELF__ for GNU/Linux on rs6000.
+ + Fix -mcall-linux problem on GNU/Linux on rs6000.
+ + Fix stdarg/vararg problem for GNU/Linux on rs6000.
+ Allow autoconf to select a proper install problem on AIX 3.1.
+ m68k port support includes -mcpu32 option as well as cpu32
multilibs.
@@ -11042,7 +11084,7 @@ http://gcc.gnu.org/egcs-1.0/index.html
provided this notice is preserved.
These pages are [11]maintained by the GCC team. Last modified
- 2011-04-25[12].
+ 2011-10-24[12].
References
@@ -11069,7 +11111,7 @@ http://gcc.gnu.org/egcs-1.0/features.html
* Vast improvements in the C++ compiler; so many they have [2]page of
their own!
* Integrated C++ runtime libraries, including support for most major
- linux systems!
+ GNU/Linux systems!
* New instruction scheduler from IBM Haifa which includes support for
function wide instruction scheduling as well as superscalar
scheduling.
@@ -11087,7 +11129,7 @@ http://gcc.gnu.org/egcs-1.0/features.html
Openserver 5 family (5.0.{0,2,4} and Internet FastStart 1.0 and
1.1), Support for RTEMS on several embedded targets, Support for
arm-linux, Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and
- MN103, NEC V850, Sparclet, Solaris & Linux on PowerPCs, etc.
+ MN103, NEC V850, Sparclet, Solaris & GNU/Linux on PowerPCs, etc.
* Integrated testsuites for gcc, g++, g77, libstdc++ and libio.
* RS6000/PowerPC ports generate code which can run on all
RS6000/PowerPC variants by default.
@@ -11095,7 +11137,7 @@ http://gcc.gnu.org/egcs-1.0/features.html
control over how the x86 port generates code.
* Includes the template repository patch (aka repo patch); note the
new template code makes repo obsolete for ELF systems using gnu-ld
- such as Linux.
+ such as GNU/Linux.
* Plus the usual assortment of bugfixes and improvements.
@@ -11110,7 +11152,7 @@ http://gcc.gnu.org/egcs-1.0/features.html
provided this notice is preserved.
These pages are [8]maintained by the GCC team. Last modified
- 2011-04-25[9].
+ 2011-10-24[9].
References

View File

@@ -1,86 +0,0 @@
$NetBSD: patch-aa,v 1.2 2014/12/06 18:47:01 dholland Exp $
- add dfly support
- stdint fixes for netbsd x86
- add svr4.h for netbsd ppc, per PR 49453 from Frank Wille
--- gcc/config.gcc.orig 2011-02-27 01:06:15.000000000 +0000
+++ gcc/config.gcc
@@ -499,6 +499,33 @@ case ${target} in
# need_64bit_hwint=yes # system compiler has this for all arch!
use_gcc_stdint=wrap
;;
+*-*-dragonfly*)
+ gas=yes
+ gnu_ld=yes
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
+ case ${target} in
+ *-*-dragonfly1 | *-*-dragonfly[1].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=1" ;;
+ *-*-dragonfly2 | *-*-dragonfly[2].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=2" ;;
+ *-*-dragonfly3 | *-*-dragonfly[3].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=3" ;;
+ *-*-dragonfly4 | *-*-dragonfly[4].*)
+ tm_defines="${tm_defines} DFBSD_MAJOR=4" ;;
+ *)
+ echo 'Please update *-*-dragonfly* in gcc/config.gcc'
+ exit 1
+ ;;
+ esac
+ tmake_file="t-slibgcc-elf-ver t-dragonfly"
+ case ${enable_threads} in
+ "" | yes | posix)
+ thread_file='posix'
+ tmake_file="${tmake_file} t-dragonfly-thread"
+ ;;
+ esac
+ dfbsd_tm_file="${dfbsd_tm_file} dragonfly-spec.h dragonfly.h"
+ ;;
*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
gas=yes
@@ -572,6 +599,7 @@ case ${target} in
default_use_cxa_atexit=yes
;;
esac
+ use_gcc_stdint=wrap
;;
*-*-openbsd*)
tmake_file="t-libc-ok t-openbsd t-libgcc-pic"
@@ -1118,17 +1146,23 @@ x86_64-*-freebsd*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
tmake_file="${tmake_file} i386/t-crtstuff"
;;
+x86_64-*-dragonfly*)
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${dfbsd_tm_file} i386/x86-64.h i386/dragonfly.h i386/dragonfly64.h"
+ ;;
+i[34567]86-*-dragonfly*)
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${dfbsd_tm_file} i386/dragonfly.h"
+ ;;
i[34567]86-*-netbsdelf*)
- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h netbsd-stdint.h"
;;
i[34567]86-*-netbsd*)
- tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h"
+ tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h netbsd-stdint.h"
tmake_file="${tmake_file} t-netbsd"
extra_parts=""
use_collect2=yes
;;
x86_64-*-netbsd*)
- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h netbsd-stdint.h"
tmake_file="${tmake_file} i386/t-crtstuff"
;;
i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
@@ -1950,7 +1984,7 @@ powerpc*-*-freebsd*)
extra_options="${extra_options} rs6000/sysv4.opt"
;;
powerpc-*-netbsd*)
- tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
+ tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
tmake_file="${tmake_file} rs6000/t-netbsd"
extra_options="${extra_options} rs6000/sysv4.opt"
;;

View File

@@ -1,24 +0,0 @@
$NetBSD: patch-ab,v 1.1.1.1 2011/05/14 20:19:47 wiz Exp $
--- libgcc/config.host.orig 2010-04-01 23:02:18.000000000 -0400
+++ libgcc/config.host
@@ -156,6 +156,8 @@ case ${host} in
# machine-specific sections may refine and add to this
# configuration.
;;
+*-*-dragonfly*)
+ ;;
*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu*)
extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
;;
@@ -282,6 +284,10 @@ i[34567]86-*-freebsd*)
;;
x86_64-*-freebsd*)
;;
+i[34567]86-*-dragonfly*)
+ ;;
+x86_64-*-dragonfly*)
+ ;;
i[34567]86-*-netbsdelf*)
;;
i[34567]86-*-netbsd*)

View File

@@ -1,17 +0,0 @@
$NetBSD: patch-ac,v 1.2 2014/05/08 02:03:58 pho Exp $
Add gcc libdir to a programs rpath so that _this gcc's_ support
libraries are found. Note that there must not be a whitespace between
$(LINKER_RPATH_FLAG) and the path. Otherwise the flag may be
misinterpreted by linker (e.g. Apple's ld).
--- gcc/Makefile.in.orig 2004-06-17 15:56:58.000000000 -0600
+++ gcc/Makefile.in
@@ -1944,6 +1944,7 @@ c-omp.o : c-omp.c $(CONFIG_H) $(SYSTEM_H
# Language-independent files.
DRIVER_DEFINES = \
+ -DLINK_LIBGCC_SPEC="\"%D $(LINKER_RPATH_FLAG)$(exec_prefix)/lib\"" \
-DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \
-DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
-DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \

View File

@@ -1,28 +0,0 @@
$NetBSD: patch-ad,v 1.3 2012/05/03 12:20:19 hans Exp $
--- configure.orig 2010-04-02 13:35:47.000000000 -0400
+++ configure
@@ -5395,7 +5395,7 @@ fi
if test "x$with_mpfr" != x; then
- gmplibs="-L$with_mpfr/lib $gmplibs"
+ gmplibs="-L$with_mpfr/lib ${COMPILER_RPATH_FLAG}$with_mpfr/lib $gmplibs"
gmpinc="-I$with_mpfr/include $gmpinc"
fi
if test "x$with_mpfr_include" != x; then
@@ -5279,9 +5279,11 @@ if test "x$with_mpfr_lib" != x; then
gmplibs="-L$with_mpfr_lib $gmplibs"
fi
if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
- gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
- gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
- extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
+ sdir=
+ test -d "${srcdir}/mpfr/src" && sdir=/src
+ gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr'"$sdir/$lt_cv_objdir $gmplibs"
+ gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr'"$sdir "'-I$$s/mpfr'"$sdir $gmpinc"
+ extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr'"$sdir "'--with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr'"$sdir/$lt_cv_objdir"
# Do not test the mpfr version. Assume that it is sufficient, since
# it is in the source tree, and the library has not been built yet
# but it would be included on the link line in the version check below

View File

@@ -1,16 +0,0 @@
$NetBSD: patch-af,v 1.1.1.1 2011/05/14 20:19:47 wiz Exp $
Avoid a reference to the wrapped make in the pkgsrc work directory from showing up
in an installed file. See ${WRKDIR}/gcc-4.4.1/libjava/contrib/aotcompile.py.in
--- libjava/configure.orig 2010-04-02 14:18:06.000000000 -0400
+++ libjava/configure
@@ -24517,7 +24517,7 @@ $as_echo "Python modules dir: ${python_m
# needed for aot-compile-rpm
-MAKE=`which make`
+MAKE=${PKGSRC_MAKE}
# Check whether --enable-aot-compile-rpm was given.

View File

@@ -1,29 +0,0 @@
$NetBSD: patch-ag,v 1.1.1.1 2011/05/14 20:19:47 wiz Exp $
No need to use bash for this small script.
Also -print0 is not portable to solaris and perhaps others.
--- libjava/contrib/rebuild-gcj-db.in.orig 2008-07-02 09:17:54.000000000 -0400
+++ libjava/contrib/rebuild-gcj-db.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
# rebuild-gcj-db
## Copyright (C) 2000, 2002, 2003, 2008 Free Software Foundation
@@ -16,12 +16,12 @@ for i in `@prefix@/bin/gcc --print-multi
base=@prefix@/lib/$dirname
dbLocation=`@prefix@/bin/gcj-dbtool -p $base`
libdir=$base/gcj
- if ! test -d $libdir; then
+ if test ! -d $libdir; then
# No shared libraries here.
continue
fi
dirname $dbLocation | xargs mkdir -p
@prefix@/bin/gcj-dbtool -n $dbLocation 64
- find $libdir -follow -name '*.db' -print0 | \
+ find $libdir -follow -name '*.db' -print | @AWK@ '{printf("%s%c", $1, 0);}' | \
@prefix@/bin/gcj-dbtool -0 -m $dbLocation $dbLocation
done

View File

@@ -1,22 +0,0 @@
$NetBSD: patch-ah,v 1.1.1.1 2011/05/14 20:19:47 wiz Exp $
--- gcc/fortran/f95-lang.c.orig 2010-06-15 14:17:16.000000000 +0200
+++ gcc/fortran/f95-lang.c
@@ -794,10 +794,17 @@
gfc_define_builtin ("__builtin_cabsl", func_clongdouble_longdouble,
BUILT_IN_CABSL, "cabsl", true);
+#if defined(__NetBSD__)
+ gfc_define_builtin ("__builtin_cabs", func_cdouble_double,
+ BUILT_IN_CABS, "__c99_cabs", true);
+ gfc_define_builtin ("__builtin_cabsf", func_cfloat_float,
+ BUILT_IN_CABSF, "__c99_cabsf", true);
+#else
gfc_define_builtin ("__builtin_cabs", func_cdouble_double,
BUILT_IN_CABS, "cabs", true);
gfc_define_builtin ("__builtin_cabsf", func_cfloat_float,
BUILT_IN_CABSF, "cabsf", true);
+#endif
gfc_define_builtin ("__builtin_copysignl", mfunc_longdouble[1],
BUILT_IN_COPYSIGNL, "copysignl", true);

View File

@@ -1,46 +0,0 @@
$NetBSD: patch-aj,v 1.3 2013/04/29 21:34:49 joerg Exp $
--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig 2009-04-09 15:00:19.000000000 +0000
+++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
@@ -41,6 +41,33 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// NB: Offsets into ctype<char>::_M_table force a particular size
// on the mask type. Because of this, we don't use an enum.
+#if defined(_CTYPE_BL)
+ typedef unsigned short mask;
+ static const mask upper = _CTYPE_U;
+ static const mask lower = _CTYPE_L;
+ static const mask alpha = _CTYPE_A;
+ static const mask digit = _CTYPE_D;
+ static const mask xdigit = _CTYPE_X;
+ static const mask space = _CTYPE_S;
+ static const mask print = _CTYPE_R;
+ static const mask graph = _CTYPE_G;
+ static const mask cntrl = _CTYPE_C;
+ static const mask punct = _CTYPE_P;
+ static const mask alnum = _CTYPE_A | _CTYPE_D;
+#elif defined(_CTYPE_U)
+ typedef unsigned char mask;
+ static const mask upper = _CTYPE_U;
+ static const mask lower = _CTYPE_L;
+ static const mask alpha = _CTYPE_U | _CTYPE_L;
+ static const mask digit = _CTYPE_N;
+ static const mask xdigit = _CTYPE_N | _CTYPE_X;
+ static const mask space = _CTYPE_S;
+ static const mask print = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B;
+ static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N;
+ static const mask cntrl = _CTYPE_C;
+ static const mask punct = _CTYPE_P;
+ static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N;
+#else
typedef unsigned char mask;
static const mask upper = _U;
static const mask lower = _L;
@@ -53,6 +80,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
static const mask cntrl = _C;
static const mask punct = _P;
static const mask alnum = _U | _L | _N;
+#endif
};
_GLIBCXX_END_NAMESPACE

View File

@@ -1,16 +0,0 @@
$NetBSD: patch-ak,v 1.1.1.1 2011/05/14 20:19:47 wiz Exp $
--- gcc/ginclude/stddef.h.orig 2011-03-03 15:35:00.000000000 +0000
+++ gcc/ginclude/stddef.h
@@ -53,6 +53,11 @@ see the files COPYING3 and COPYING.RUNTI
one less case to deal with in the following. */
#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__)
#include <machine/ansi.h>
+#if !defined(_MACHINE_ANSI_H_)
+#if defined(_I386_ANSI_H_) || defined(_X86_64_ANSI_H_)
+#define _MACHINE_ANSI_H_
+#endif
+#endif
#endif
/* On FreeBSD 5, machine/ansi.h does not exist anymore... */
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)

View File

@@ -0,0 +1,44 @@
$NetBSD$
--- config.guess.orig Tue Mar 23 14:26:40 2010
+++ config.guess
@@ -160,14 +160,28 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
+ coldfire) machine=m5407-unknown ;;
+ earm*eb*) machine=armeb-unknown ;;
+ earm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
+ # to ELF recently, or will in the future and ABI.
case "${UNAME_MACHINE_ARCH}" in
+ coldfire) os=netbsdelf ;;
+ earm*)
+ eval $set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ os=netbsdelf-eabi
+ else
+ os=netbsdelf-eabihf
+ fi
+ ;;
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -966,6 +980,9 @@ EOF
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ tile*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
vax:Linux:*:*)

View File

@@ -0,0 +1,32 @@
$NetBSD$
--- config.sub.orig Tue Mar 23 14:26:40 2010
+++ config.sub
@@ -125,7 +125,8 @@ esac
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | \
+ netbsd*-gnu* | netbsd*-eabi* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
@@ -317,7 +318,8 @@ case $basic_machine in
basic_machine=$basic_machine-unknown
os=-none
;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | m5407 \
+ | v70 | w65 | z8k)
;;
ms1)
basic_machine=mt-unknown
@@ -354,6 +356,7 @@ case $basic_machine in
| ip2k-* | iq2000-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
+ | m5200-* | m5407-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \

View File

@@ -0,0 +1,22 @@
$NetBSD$
--- config/ChangeLog.orig Thu Apr 28 14:11:26 2011
+++ config/ChangeLog
@@ -1,3 +1,17 @@
+2012-07-02 Release Manager
+
+ * GCC 4.5.4 released.
+
+2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * acx.m4 (Test for GNAT): Update comment and add quotes in final test.
+
+2011-06-19 Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR target/49461
+ * mh-x86-darwin: Add file and pass -no_pie on BOOT_LDFLAGS for
+ darwin11.
+
2011-04-28 Release Manager
* GCC 4.5.3 released.

View File

@@ -0,0 +1,26 @@
$NetBSD$
--- config/acx.m4.orig Fri Oct 23 10:03:47 2009
+++ config/acx.m4
@@ -356,9 +356,9 @@ m4_define([AC_CHECK_HEADER],m4_defn([_AC_CHECK_HEADER_
ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR
# Test for GNAT.
-# We require the gnatbind program, and a compiler driver that
-# understands Ada. We use the user's CC setting, already found,
-# and possibly add $1 to the command-line parameters.
+# We require the gnatbind & gnatmake programs, as well as a compiler driver
+# that understands Ada. We use the user's CC setting, already found, and
+# possibly add $1 to the command-line parameters.
#
# Sets the shell variable have_gnat to yes or no as appropriate, and
# substitutes GNATBIND and GNATMAKE.
@@ -387,7 +387,7 @@ if test x"$errors" = x && test -f conftest.$ac_objext;
fi
rm -f conftest.*])
-if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
+if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no

View File

@@ -0,0 +1,7 @@
$NetBSD$
--- config/mh-x86-darwin.orig Wed May 21 19:48:53 2014
+++ config/mh-x86-darwin
@@ -0,0 +1,2 @@
+# Ensure we don't try and use -pie, as it is incompatible with pch.
+BOOT_LDFLAGS += `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;`

View File

@@ -0,0 +1,13 @@
$NetBSD$
--- configure.orig Wed May 21 19:48:53 2014
+++ configure
@@ -5321,7 +5321,7 @@ _ACEOF
# Check for GMP, MPFR and MPC
-gmplibs="-lmpc -lmpfr -lgmp"
+gmplibs="-lmpc -lmpfr -lgmp -lm"
gmpinc=
have_gmp=no

View File

@@ -0,0 +1,147 @@
$NetBSD$
--- configure.ac.orig Tue Jan 25 15:49:54 2011
+++ configure.ac
@@ -185,9 +185,8 @@ libgcj="target-libffi \
# these libraries are built for the target environment, and are built after
# the host libraries and the host tools (which may be a cross compiler)
-#
+# Note that libiberty is not a target library.
target_libraries="target-libgcc \
- target-libiberty \
target-libgloss \
target-newlib \
target-libgomp \
@@ -506,14 +505,14 @@ case "${target}" in
;;
*-*-kaos*)
# Remove unsupported stuff on all kaOS configurations.
- skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
+ skipdirs="${libgcj} target-libstdc++-v3 target-librx"
skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
noconfigdirs="$noconfigdirs target-libgloss"
;;
*-*-netbsd*)
# Skip some stuff on all NetBSD configurations.
- noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
# Skip some stuff that's unsupported on some NetBSD configurations.
case "${target}" in
@@ -525,20 +524,20 @@ case "${target}" in
esac
;;
*-*-netware*)
- noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap"
;;
*-*-rtems*)
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
# The tpf target doesn't support gdb yet.
*-*-tpf*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
;;
*-*-uclinux*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
;;
*-*-vxworks*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libstdc++-v3 ${libgcj}"
;;
alpha*-dec-osf*)
# ld works, but does not support shared libraries.
@@ -566,7 +565,7 @@ case "${target}" in
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
noconfigdirs="$noconfigdirs ${libgcj}"
noconfigdirs="$noconfigdirs target-examples"
- noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
+ noconfigdirs="$noconfigdirs texinfo send-pr"
noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
noconfigdirs="$noconfigdirs expect dejagnu"
# the C++ libraries don't build on top of CE's C libraries
@@ -600,7 +599,7 @@ case "${target}" in
libgloss_dir=arm
;;
arm*-*-symbianelf*)
- noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
+ noconfigdirs="$noconfigdirs ${libgcj}"
libgloss_dir=arm
;;
arm-*-pe*)
@@ -619,7 +618,7 @@ case "${target}" in
noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
;;
avr-*-*)
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj} target-libssp"
;;
bfin-*-*)
unsupported_languages="$unsupported_languages java"
@@ -798,7 +797,7 @@ case "${target}" in
noconfigdirs="$noconfigdirs ${libgcj}"
;;
m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
libgloss_dir=m68hc11
;;
m68k-*-elf*)
@@ -869,7 +868,6 @@ case "${target}" in
noconfigdirs="$noconfigdirs gprof ${libgcj}"
;;
mips*-sde-elf*)
- skipdirs="$skipdirs target-libiberty"
noconfigdirs="$noconfigdirs ${libgcj}"
if test x$with_newlib = xyes; then
noconfigdirs="$noconfigdirs gprof"
@@ -965,7 +963,7 @@ case "${target}" in
noconfigdirs="$noconfigdirs ${libgcj}"
;;
ip2k-*-*)
- noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
+ noconfigdirs="$noconfigdirs target-libstdc++-v3 ${libgcj}"
;;
*-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
@@ -1135,6 +1133,9 @@ case "${host}" in
tentative_cc="/usr/cygnus/progressive/bin/gcc"
host_makefile_frag="config/mh-lynxrs6k"
;;
+ i[[3456789]]86-*-darwin* | x86_64-*-darwin*)
+ host_makefile_frag="config/mh-x86-darwin"
+ ;;
powerpc-*-darwin*)
host_makefile_frag="config/mh-ppc-darwin"
;;
@@ -2104,27 +2105,6 @@ for dir in . $skipdirs $noconfigdirs ; do
fi
fi
done
-
-# Sometimes the tools are distributed with libiberty but with no other
-# libraries. In that case, we don't want to build target-libiberty.
-# Don't let libgcc imply libiberty either.
-if test -n "${target_configdirs}" ; then
- libgcc=
- others=
- for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
- if test "$i" = "libgcc"; then
- libgcc=target-libgcc
- elif test "$i" != "libiberty" ; then
- if test -r $srcdir/$i/configure ; then
- others=yes;
- break;
- fi
- fi
- done
- if test -z "${others}" ; then
- target_configdirs=$libgcc
- fi
-fi
# Quietly strip out all directories which aren't configurable in this tree.
# This relies on all configurable subdirectories being autoconfiscated, which

View File

@@ -0,0 +1,12 @@
$NetBSD$
--- contrib/ChangeLog.orig Thu Apr 28 14:08:43 2011
+++ contrib/ChangeLog
@@ -1,3 +1,7 @@
+2012-07-02 Release Manager
+
+ * GCC 4.5.4 released.
+
2011-04-28 Release Manager
* GCC 4.5.3 released.

View File

@@ -0,0 +1,12 @@
$NetBSD$
--- contrib/reghunt/ChangeLog.orig Thu Apr 28 14:08:49 2011
+++ contrib/reghunt/ChangeLog
@@ -1,3 +1,7 @@
+2012-07-02 Release Manager
+
+ * GCC 4.5.4 released.
+
2011-04-28 Release Manager
* GCC 4.5.3 released.

View File

@@ -0,0 +1,12 @@
$NetBSD$
--- contrib/regression/ChangeLog.orig Thu Apr 28 14:08:38 2011
+++ contrib/regression/ChangeLog
@@ -1,3 +1,7 @@
+2012-07-02 Release Manager
+
+ * GCC 4.5.4 released.
+
2011-04-28 Release Manager
* GCC 4.5.3 released.

View File

@@ -0,0 +1,12 @@
$NetBSD$
--- fixincludes/ChangeLog.orig Thu Apr 28 14:09:41 2011
+++ fixincludes/ChangeLog
@@ -1,3 +1,7 @@
+2012-07-02 Release Manager
+
+ * GCC 4.5.4 released.
+
2011-04-28 Release Manager
* GCC 4.5.3 released.

View File

@@ -0,0 +1,7 @@
$NetBSD$
--- gcc/BASE-VER.orig Thu Dec 16 14:34:03 2010
+++ gcc/BASE-VER
@@ -1 +1 @@
-4.5.3
+4.5.4

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
$NetBSD$
--- gcc/DATESTAMP.orig Thu Apr 28 00:17:54 2011
+++ gcc/DATESTAMP
@@ -1 +1 @@
-20110428
+20120702

View File

@@ -0,0 +1,156 @@
$NetBSD$
--- gcc/Makefile.in.orig Thu Sep 2 13:05:30 2010
+++ gcc/Makefile.in
@@ -602,6 +602,9 @@ objext = .o
exeext = @host_exeext@
build_exeext = @build_exeext@
+# NetBSD mknative-gcc addition
+ENABLE_SHARED = @enable_shared@
+
# Directory in which to put man pages.
mandir = @mandir@
man1dir = $(mandir)/man1
@@ -727,6 +730,7 @@ LIBCONVERT =
# Control whether header files are installed.
INSTALL_HEADERS=install-headers install-mkheaders
+INSTALL_HEADERS=install-headers
# Control whether Info documentation is built and installed.
BUILD_INFO = @BUILD_INFO@
@@ -766,7 +770,7 @@ BUILD_LINKERFLAGS = $(BUILD_CFLAGS)
# Native linker and preprocessor flags. For x-fragment overrides.
BUILD_LDFLAGS=@BUILD_LDFLAGS@
-BUILD_CPPFLAGS=$(ALL_CPPFLAGS)
+BUILD_CPPFLAGS=$(BALL_CPPFLAGS)
# Actual name to use when installing a native compiler.
GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
@@ -981,6 +985,7 @@ ALL_CXXFLAGS = $(T_CFLAGS) $(CXXFLAGS) $(INTERNAL_CFLA
# puts -I options in CPPFLAGS, our include files in the srcdir will always
# win against random include files in /usr/include.
ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS)
+BALL_CPPFLAGS = $(BINCLUDES) $(CPPFLAGS)
# This is the variable to use when using $(COMPILER).
ifneq ($(ENABLE_BUILD_WITH_CXX),yes)
@@ -1042,6 +1047,10 @@ INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
-I$(srcdir)/../include @INCINTL@ \
$(CPPINC) $(GMPINC) $(DECNUMINC) \
$(PPLINC) $(CLOOGINC) $(LIBELFINC)
+BINCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
+ -I$(srcdir)/../include @INCINTL@ \
+ $(CPPINC) $(DECNUMINC) \
+ $(PPLINC) $(CLOOGINC) $(LIBELFINC)
.c.o:
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
@@ -1822,8 +1831,7 @@ libgcc-support: libgcc.mvars stmp-int-hdrs $(TCONFIG_H
$(MACHMODE_H) $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \
$(LIB2ADD_ST) $(LIB2ADDEH) $(srcdir)/emutls.c gcov-iov.h $(SFP_MACHINE)
-libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \
- xgcc$(exeext)
+libgcc.mvars: config.status Makefile
: > tmp-libgcc.mvars
echo LIB1ASMFUNCS = '$(LIB1ASMFUNCS)' >> tmp-libgcc.mvars
echo LIB1ASMSRC = '$(LIB1ASMSRC)' >> tmp-libgcc.mvars
@@ -1880,6 +1888,7 @@ multilib.h: s-mlib; @true
s-mlib: $(srcdir)/genmultilib Makefile
if test @enable_multilib@ = yes \
|| test -n "$(MULTILIB_OSDIRNAMES)"; then \
+ CONFIG_SHELL="$(SHELL)" \
$(SHELL) $(srcdir)/genmultilib \
"$(MULTILIB_OPTIONS)" \
"$(MULTILIB_DIRNAMES)" \
@@ -3820,6 +3829,12 @@ gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS)
# s-* so that mostlyclean does not force the include directory to
# be rebuilt.
+unwind.h: $(UNWIND_H)
+ -if [ -d include ] ; then true; else mkdir include; chmod a+rx include; fi
+ rm -f include/unwind.h
+ cp $(UNWIND_H) include/unwind.h
+ chmod a+r include/unwind.h
+
# Build the include directories.
stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fixinc_list
# Copy in the headers provided with gcc.
@@ -3829,6 +3844,7 @@ stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fi
# The touch command is here to workaround an AIX/Linux NFS bug.
-if [ -d include ] ; then true; else mkdir include; chmod a+rx include; fi
-if [ -d include-fixed ] ; then true; else mkdir include-fixed; chmod a+rx include-fixed; fi
+ if false; then \
for file in .. $(USER_H); do \
if [ X$$file != X.. ]; then \
realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
@@ -3837,11 +3853,13 @@ stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fi
cp $$file include; \
chmod a+r include/$$realfile; \
fi; \
- done
+ done; \
+ fi
rm -f include/unwind.h
cp $(UNWIND_H) include/unwind.h
chmod a+r include/unwind.h
- rm -f include/stdint.h
+ if false; then \
+ rm -f include/stdint.h; \
if [ $(USE_GCC_STDINT) = wrap ]; then \
rm -f include/stdint-gcc.h; \
cp $(srcdir)/ginclude/stdint-gcc.h include/stdint-gcc.h; \
@@ -3851,7 +3869,7 @@ stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fi
elif [ $(USE_GCC_STDINT) = provide ]; then \
cp $(srcdir)/ginclude/stdint-gcc.h include/stdint.h; \
chmod a+r include/stdint.h; \
- fi
+ fi; \
set -e; for ml in `cat fixinc_list`; do \
sysroot_headers_suffix=`echo $${ml} | sed -e 's/;.*$$//'`; \
multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
@@ -3866,7 +3884,8 @@ stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fi
rm -f $${fix_dir}/limits.h; \
mv tmp-xlimits.h $${fix_dir}/limits.h; \
chmod a+r $${fix_dir}/limits.h; \
- done
+ done; \
+ fi
# Install the README
rm -f include-fixed/README
cp $(srcdir)/../fixincludes/README-fixinc include-fixed/README
@@ -3926,10 +3945,11 @@ s-fixinc_list : $(GCC_PASSES)
# Abort if no system headers available, unless building a crosscompiler.
# FIXME: abort unless building --without-headers would be more accurate and less ugly
stmp-fixinc: gsyslimits.h macro_list fixinc_list \
- $(build_objdir)/fixincludes/fixincl \
+ $(build_objdir)/fixincludes/fixincl$(build_exeext) \
$(build_objdir)/fixincludes/fixinc.sh
- rm -rf include-fixed; mkdir include-fixed
- -chmod a+rx include-fixed
+ if false; then \
+ rm -rf include-fixed; mkdir include-fixed; \
+ -chmod a+rx include-fixed; \
if [ -d ../prev-gcc ]; then \
cd ../prev-gcc && \
$(MAKE) real-$(INSTALL_HEADERS_DIR) DESTDIR=`pwd`/../gcc/ \
@@ -3963,6 +3983,7 @@ stmp-fixinc: gsyslimits.h macro_list fixinc_list \
fi; \
chmod a+r $${fix_dir}/syslimits.h; \
done; \
+ fi; \
fi
$(STAMP) stmp-fixinc
#
@@ -4389,6 +4410,8 @@ install-info:: doc installdirs \
lang.install-info
$(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
+ @echo "NOT REBUILDING $@"
+NetBSD_DISABLED_info:
rm -f $@
if [ -f $< ]; then \
for f in $(<)*; do \

View File

@@ -0,0 +1,83 @@
$NetBSD$
--- gcc/builtins.c.orig Tue Dec 7 15:11:46 2010
+++ gcc/builtins.c
@@ -347,7 +347,7 @@ bool
can_trust_pointer_alignment (void)
{
/* We rely on TER to compute accurate alignment information. */
- return (optimize && flag_tree_ter);
+ return (!STRICT_ALIGNMENT && optimize && flag_tree_ter);
}
/* Return the alignment in bits of EXP, a pointer valued expression.
@@ -3896,9 +3896,9 @@ expand_builtin_bzero (tree exp)
}
/* Expand expression EXP, which is a call to the memcmp built-in function.
- Return NULL_RTX if we failed and the
- caller should emit a normal call, otherwise try to get the result in
- TARGET, if convenient (and in mode MODE, if that's convenient). */
+ Return NULL_RTX if we failed and the caller should emit a normal call,
+ otherwise try to get the result in TARGET, if convenient (and in mode
+ MODE, if that's convenient). */
static rtx
expand_builtin_memcmp (tree exp, ATTRIBUTE_UNUSED rtx target,
@@ -3910,7 +3910,10 @@ expand_builtin_memcmp (tree exp, ATTRIBUTE_UNUSED rtx
POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE))
return NULL_RTX;
-#if defined HAVE_cmpmemsi || defined HAVE_cmpstrnsi
+ /* Note: The cmpstrnsi pattern, if it exists, is not suitable for
+ implementing memcmp because it will stop if it encounters two
+ zero bytes. */
+#if defined HAVE_cmpmemsi
{
rtx arg1_rtx, arg2_rtx, arg3_rtx;
rtx result;
@@ -3925,16 +3928,9 @@ expand_builtin_memcmp (tree exp, ATTRIBUTE_UNUSED rtx
= get_pointer_alignment (arg2, BIGGEST_ALIGNMENT) / BITS_PER_UNIT;
enum machine_mode insn_mode;
-#ifdef HAVE_cmpmemsi
if (HAVE_cmpmemsi)
insn_mode = insn_data[(int) CODE_FOR_cmpmemsi].operand[0].mode;
else
-#endif
-#ifdef HAVE_cmpstrnsi
- if (HAVE_cmpstrnsi)
- insn_mode = insn_data[(int) CODE_FOR_cmpstrnsi].operand[0].mode;
- else
-#endif
return NULL_RTX;
/* If we don't have POINTER_TYPE, call the function. */
@@ -3959,18 +3955,10 @@ expand_builtin_memcmp (tree exp, ATTRIBUTE_UNUSED rtx
set_mem_size (arg2_rtx, arg3_rtx);
}
-#ifdef HAVE_cmpmemsi
if (HAVE_cmpmemsi)
insn = gen_cmpmemsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
GEN_INT (MIN (arg1_align, arg2_align)));
else
-#endif
-#ifdef HAVE_cmpstrnsi
- if (HAVE_cmpstrnsi)
- insn = gen_cmpstrnsi (result, arg1_rtx, arg2_rtx, arg3_rtx,
- GEN_INT (MIN (arg1_align, arg2_align)));
- else
-#endif
gcc_unreachable ();
if (insn)
@@ -3996,7 +3984,7 @@ expand_builtin_memcmp (tree exp, ATTRIBUTE_UNUSED rtx
else
return convert_to_mode (mode, result, 0);
}
-#endif
+#endif /* HAVE_cmpmemsi. */
return NULL_RTX;
}

View File

@@ -0,0 +1,27 @@
$NetBSD$
--- gcc/c-common.c.orig Thu Apr 7 18:25:50 2011
+++ gcc/c-common.c
@@ -4031,14 +4031,15 @@ c_common_truthvalue_conversion (location_t location, t
/* Distribute the conversion into the arms of a COND_EXPR. */
if (c_dialect_cxx ())
{
+ tree op1 = TREE_OPERAND (expr, 1);
+ tree op2 = TREE_OPERAND (expr, 2);
+ /* In C++ one of the arms might have void type if it is throw. */
+ if (!VOID_TYPE_P (TREE_TYPE (op1)))
+ op1 = c_common_truthvalue_conversion (location, op1);
+ if (!VOID_TYPE_P (TREE_TYPE (op2)))
+ op2 = c_common_truthvalue_conversion (location, op2);
expr = fold_build3_loc (location, COND_EXPR, truthvalue_type_node,
- TREE_OPERAND (expr, 0),
- c_common_truthvalue_conversion (location,
- TREE_OPERAND (expr,
- 1)),
- c_common_truthvalue_conversion (location,
- TREE_OPERAND (expr,
- 2)));
+ TREE_OPERAND (expr, 0), op1, op2);
goto ret;
}
else

View File

@@ -0,0 +1,23 @@
$NetBSD$
--- gcc/c-decl.c.orig Thu Nov 11 20:40:32 2010
+++ gcc/c-decl.c
@@ -3909,7 +3909,7 @@ start_decl (struct c_declarator *declarator, struct c_
return 0;
if (expr)
- add_stmt (expr);
+ add_stmt (fold_convert (void_type_node, expr));
if (TREE_CODE (decl) != FUNCTION_DECL && MAIN_NAME_P (DECL_NAME (decl)))
warning (OPT_Wmain, "%q+D is usually a function", decl);
@@ -7385,7 +7385,8 @@ start_function (struct c_declspecs *declspecs, struct
/* If the declarator is not suitable for a function definition,
cause a syntax error. */
- if (decl1 == 0)
+ if (decl1 == 0
+ || TREE_CODE (decl1) != FUNCTION_DECL)
return 0;
loc = DECL_SOURCE_LOCATION (decl1);

View File

@@ -0,0 +1,45 @@
$NetBSD$
--- gcc/c-lex.c.orig Thu Apr 7 18:24:43 2011
+++ gcc/c-lex.c
@@ -718,22 +718,25 @@ interpret_float (const cpp_token *token, unsigned int
outside the range of representable values of its type. Since we
have __builtin_inf* to produce an infinity, this is now a
mandatory pedwarn if the target does not support infinities. */
- if (REAL_VALUE_ISINF (real)
- || (const_type != type && REAL_VALUE_ISINF (real_trunc)))
+ if (warn_overflow)
{
- if (!MODE_HAS_INFINITIES (TYPE_MODE (type)))
- pedwarn (input_location, 0, "floating constant exceeds range of %qT", type);
- else
- warning (OPT_Woverflow, "floating constant exceeds range of %qT", type);
- }
- /* We also give a warning if the value underflows. */
- else if (REAL_VALUES_EQUAL (real, dconst0)
- || (const_type != type && REAL_VALUES_EQUAL (real_trunc, dconst0)))
- {
- REAL_VALUE_TYPE realvoidmode;
- int overflow = real_from_string (&realvoidmode, copy);
- if (overflow < 0 || !REAL_VALUES_EQUAL (realvoidmode, dconst0))
- warning (OPT_Woverflow, "floating constant truncated to zero");
+ if (REAL_VALUE_ISINF (real)
+ || (const_type != type && REAL_VALUE_ISINF (real_trunc)))
+ {
+ if (!MODE_HAS_INFINITIES (TYPE_MODE (type)))
+ pedwarn (input_location, 0, "floating constant exceeds range of %qT", type);
+ else
+ warning (OPT_Woverflow, "floating constant exceeds range of %qT", type);
+ }
+ /* We also give a warning if the value underflows. */
+ else if (REAL_VALUES_EQUAL (real, dconst0)
+ || (const_type != type && REAL_VALUES_EQUAL (real_trunc, dconst0)))
+ {
+ REAL_VALUE_TYPE realvoidmode;
+ int overflow = real_from_string (&realvoidmode, copy);
+ if (overflow < 0 || !REAL_VALUES_EQUAL (realvoidmode, dconst0))
+ warning (OPT_Woverflow, "floating constant truncated to zero");
+ }
}
/* Create a node with determined type and value. */

View File

@@ -0,0 +1,41 @@
$NetBSD$
--- gcc/c-opts.c.orig Fri Apr 2 19:54:46 2010
+++ gcc/c-opts.c
@@ -160,12 +160,14 @@ c_common_missing_argument (const char *opt, size_t cod
error ("macro name missing after %qs", opt);
break;
+ case OPT_cxx_isystem:
case OPT_F:
case OPT_I:
case OPT_idirafter:
case OPT_isysroot:
case OPT_isystem:
case OPT_iquote:
+ case OPT_iremap:
error ("missing path after %qs", opt);
break;
@@ -564,6 +566,10 @@ c_common_handle_option (size_t scode, const char *arg,
set_std_cxx98 (true);
break;
+ case OPT_cxx_isystem:
+ add_path (xstrdup (arg), SYSTEM, 1, true);
+ break;
+
case OPT_d:
handle_OPT_d (arg);
break;
@@ -877,6 +883,10 @@ c_common_handle_option (size_t scode, const char *arg,
case OPT_isystem:
add_path (xstrdup (arg), SYSTEM, 0, true);
+ break;
+
+ case OPT_iremap:
+ add_cpp_remap_path (arg);
break;
case OPT_iwithprefix:

View File

@@ -0,0 +1,41 @@
$NetBSD$
--- gcc/c-typeck.c.orig Sun Jan 16 20:26:27 2011
+++ gcc/c-typeck.c
@@ -4219,6 +4219,11 @@ build_conditional_expr (location_t colon_loc, tree ife
ret = fold_build3_loc (colon_loc, COND_EXPR, result_type, ifexp, op1, op2);
else
{
+ if (int_operands)
+ {
+ op1 = remove_c_maybe_const_expr (op1);
+ op2 = remove_c_maybe_const_expr (op2);
+ }
ret = build3 (COND_EXPR, result_type, ifexp, op1, op2);
if (int_operands)
ret = note_integer_operands (ret);
@@ -9655,6 +9660,7 @@ build_binary_op (location_t location, enum tree_code c
{
case MULT_EXPR:
case TRUNC_DIV_EXPR:
+ op1 = c_save_expr (op1);
imag = build2 (resultcode, real_type, imag, op1);
/* Fall through. */
case PLUS_EXPR:
@@ -9675,6 +9681,7 @@ build_binary_op (location_t location, enum tree_code c
switch (code)
{
case MULT_EXPR:
+ op0 = c_save_expr (op0);
imag = build2 (resultcode, real_type, op0, imag);
/* Fall through. */
case PLUS_EXPR:
@@ -9800,7 +9807,7 @@ build_binary_op (location_t location, enum tree_code c
warn_for_sign_compare (location, orig_op0_folded,
orig_op1_folded, op0, op1,
result_type, resultcode);
- if (!in_late_binary_op)
+ if (!in_late_binary_op && !int_operands)
{
if (!op0_maybe_const || TREE_CODE (op0) != INTEGER_CST)
op0 = c_wrap_maybe_const (op0, !op0_maybe_const);

View File

@@ -0,0 +1,28 @@
$NetBSD$
--- gcc/c.opt.orig Fri Apr 2 19:54:46 2010
+++ gcc/c.opt
@@ -520,6 +520,12 @@ ansi
C ObjC C++ ObjC++
A synonym for -std=c89 (for C) or -std=c++98 (for C++)
+; This should really just be C++/ObjC++ but we (NetBSD) use it when
+; calling C and ObjC compilers as well.
+cxx-isystem
+C ObjC C++ ObjC++ Joined Separate
+-cxx-isystem <dir> Add <dir> to the start of the C++ system include path
+
d
C ObjC C++ ObjC++ Joined
; Documented in common.opt. FIXME - what about -dI, -dD, -dN and -dD?
@@ -903,6 +909,10 @@ C ObjC C++ ObjC++ Joined Separate
iquote
C ObjC C++ ObjC++ Joined Separate
-iquote <dir> Add <dir> to the end of the quote include path
+
+iremap
+C ObjC C++ ObjC++ Joined Separate
+-iremap <src:dst> Convert <src> to <dst> if it occurs as prefix in __FILE__.
iwithprefix
C ObjC C++ ObjC++ Joined Separate

View File

@@ -0,0 +1,192 @@
$NetBSD$
--- gcc/caller-save.c.orig Wed Mar 16 20:19:14 2011
+++ gcc/caller-save.c
@@ -439,101 +439,93 @@ saved_hard_reg_compare_func (const void *v1p, const vo
void
setup_save_areas (void)
{
- int i, j, k;
- unsigned int r;
+ int i, j, k, freq;
HARD_REG_SET hard_regs_used;
+ struct saved_hard_reg *saved_reg;
+ rtx insn;
+ struct insn_chain *chain, *next;
+ unsigned int regno;
+ HARD_REG_SET hard_regs_to_save, used_regs, this_insn_sets;
+ reg_set_iterator rsi;
- /* Allocate space in the save area for the largest multi-register
- pseudos first, then work backwards to single register
- pseudos. */
-
- /* Find and record all call-used hard-registers in this function. */
CLEAR_HARD_REG_SET (hard_regs_used);
- for (i = FIRST_PSEUDO_REGISTER; i < max_regno; i++)
- if (reg_renumber[i] >= 0 && REG_N_CALLS_CROSSED (i) > 0)
- {
- unsigned int regno = reg_renumber[i];
- unsigned int endregno
- = end_hard_regno (GET_MODE (regno_reg_rtx[i]), regno);
- for (r = regno; r < endregno; r++)
- if (call_used_regs[r])
- SET_HARD_REG_BIT (hard_regs_used, r);
- }
- if (optimize && flag_ira_share_save_slots)
+ /* Find every CALL_INSN and record which hard regs are live across the
+ call into HARD_REG_MAP and HARD_REGS_USED. */
+ initiate_saved_hard_regs ();
+ /* Create hard reg saved regs. */
+ for (chain = reload_insn_chain; chain != 0; chain = next)
{
- rtx insn, slot;
- struct insn_chain *chain, *next;
- char *saved_reg_conflicts;
- unsigned int regno;
- int next_k, freq;
- struct saved_hard_reg *saved_reg, *saved_reg2, *saved_reg3;
- int call_saved_regs_num;
- struct saved_hard_reg *call_saved_regs[FIRST_PSEUDO_REGISTER];
- HARD_REG_SET hard_regs_to_save, used_regs, this_insn_sets;
- reg_set_iterator rsi;
- int best_slot_num;
- int prev_save_slots_num;
- rtx prev_save_slots[FIRST_PSEUDO_REGISTER];
+ insn = chain->insn;
+ next = chain->next;
+ if (!CALL_P (insn)
+ || find_reg_note (insn, REG_NORETURN, NULL))
+ continue;
+ freq = REG_FREQ_FROM_BB (BLOCK_FOR_INSN (insn));
+ REG_SET_TO_HARD_REG_SET (hard_regs_to_save,
+ &chain->live_throughout);
+ COPY_HARD_REG_SET (used_regs, call_used_reg_set);
- initiate_saved_hard_regs ();
- /* Create hard reg saved regs. */
- for (chain = reload_insn_chain; chain != 0; chain = next)
+ /* Record all registers set in this call insn. These don't
+ need to be saved. N.B. the call insn might set a subreg
+ of a multi-hard-reg pseudo; then the pseudo is considered
+ live during the call, but the subreg that is set
+ isn't. */
+ CLEAR_HARD_REG_SET (this_insn_sets);
+ note_stores (PATTERN (insn), mark_set_regs, &this_insn_sets);
+ /* Sibcalls are considered to set the return value. */
+ if (SIBLING_CALL_P (insn) && crtl->return_rtx)
+ mark_set_regs (crtl->return_rtx, NULL_RTX, &this_insn_sets);
+
+ AND_COMPL_HARD_REG_SET (used_regs, call_fixed_reg_set);
+ AND_COMPL_HARD_REG_SET (used_regs, this_insn_sets);
+ AND_HARD_REG_SET (hard_regs_to_save, used_regs);
+ for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
+ if (TEST_HARD_REG_BIT (hard_regs_to_save, regno))
+ {
+ if (hard_reg_map[regno] != NULL)
+ hard_reg_map[regno]->call_freq += freq;
+ else
+ saved_reg = new_saved_hard_reg (regno, freq);
+ SET_HARD_REG_BIT (hard_regs_used, regno);
+ }
+ /* Look through all live pseudos, mark their hard registers. */
+ EXECUTE_IF_SET_IN_REG_SET
+ (&chain->live_throughout, FIRST_PSEUDO_REGISTER, regno, rsi)
{
- insn = chain->insn;
- next = chain->next;
- if (!CALL_P (insn)
- || find_reg_note (insn, REG_NORETURN, NULL))
+ int r = reg_renumber[regno];
+ int bound;
+
+ if (r < 0)
continue;
- freq = REG_FREQ_FROM_BB (BLOCK_FOR_INSN (insn));
- REG_SET_TO_HARD_REG_SET (hard_regs_to_save,
- &chain->live_throughout);
- COPY_HARD_REG_SET (used_regs, call_used_reg_set);
- /* Record all registers set in this call insn. These don't
- need to be saved. N.B. the call insn might set a subreg
- of a multi-hard-reg pseudo; then the pseudo is considered
- live during the call, but the subreg that is set
- isn't. */
- CLEAR_HARD_REG_SET (this_insn_sets);
- note_stores (PATTERN (insn), mark_set_regs, &this_insn_sets);
- /* Sibcalls are considered to set the return value. */
- if (SIBLING_CALL_P (insn) && crtl->return_rtx)
- mark_set_regs (crtl->return_rtx, NULL_RTX, &this_insn_sets);
-
- AND_COMPL_HARD_REG_SET (used_regs, call_fixed_reg_set);
- AND_COMPL_HARD_REG_SET (used_regs, this_insn_sets);
- AND_HARD_REG_SET (hard_regs_to_save, used_regs);
- for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
- if (TEST_HARD_REG_BIT (hard_regs_to_save, regno))
+ bound = r + hard_regno_nregs[r][PSEUDO_REGNO_MODE (regno)];
+ for (; r < bound; r++)
+ if (TEST_HARD_REG_BIT (used_regs, r))
{
- if (hard_reg_map[regno] != NULL)
- hard_reg_map[regno]->call_freq += freq;
+ if (hard_reg_map[r] != NULL)
+ hard_reg_map[r]->call_freq += freq;
else
- saved_reg = new_saved_hard_reg (regno, freq);
+ saved_reg = new_saved_hard_reg (r, freq);
+ SET_HARD_REG_BIT (hard_regs_to_save, r);
+ SET_HARD_REG_BIT (hard_regs_used, r);
}
- /* Look through all live pseudos, mark their hard registers. */
- EXECUTE_IF_SET_IN_REG_SET
- (&chain->live_throughout, FIRST_PSEUDO_REGISTER, regno, rsi)
- {
- int r = reg_renumber[regno];
- int bound;
+ }
+ }
- if (r < 0)
- continue;
+ /* If requested, figure out which hard regs can share save slots. */
+ if (optimize && flag_ira_share_save_slots)
+ {
+ rtx slot;
+ char *saved_reg_conflicts;
+ int next_k;
+ struct saved_hard_reg *saved_reg2, *saved_reg3;
+ int call_saved_regs_num;
+ struct saved_hard_reg *call_saved_regs[FIRST_PSEUDO_REGISTER];
+ int best_slot_num;
+ int prev_save_slots_num;
+ rtx prev_save_slots[FIRST_PSEUDO_REGISTER];
- bound = r + hard_regno_nregs[r][PSEUDO_REGNO_MODE (regno)];
- for (; r < bound; r++)
- if (TEST_HARD_REG_BIT (used_regs, r))
- {
- if (hard_reg_map[r] != NULL)
- hard_reg_map[r]->call_freq += freq;
- else
- saved_reg = new_saved_hard_reg (r, freq);
- SET_HARD_REG_BIT (hard_regs_to_save, r);
- }
- }
- }
/* Find saved hard register conflicts. */
saved_reg_conflicts = (char *) xmalloc (saved_regs_num * saved_regs_num);
memset (saved_reg_conflicts, 0, saved_regs_num * saved_regs_num);
@@ -691,8 +683,10 @@ setup_save_areas (void)
}
else
{
- /* Now run through all the call-used hard-registers and allocate
- space for them in the caller-save area. Try to allocate space
+ /* We are not sharing slots.
+
+ Run through all the call-used hard-registers and allocate
+ space for each in the caller-save area. Try to allocate space
in a manner which allows multi-register saves/restores to be done. */
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)

View File

@@ -0,0 +1,24 @@
$NetBSD$
--- gcc/cfgexpand.c.orig Sun Jan 16 20:20:21 2011
+++ gcc/cfgexpand.c
@@ -1080,7 +1080,9 @@ stack_protect_classify_type (tree type)
else
len = tree_low_cst (TYPE_SIZE_UNIT (type), 1);
- if (len < max)
+ if (len == 0)
+ ret = SPCT_HAS_ARRAY;
+ else if (len < max)
ret = SPCT_HAS_SMALL_CHAR_ARRAY | SPCT_HAS_ARRAY;
else
ret = SPCT_HAS_LARGE_CHAR_ARRAY | SPCT_HAS_ARRAY;
@@ -2974,7 +2976,7 @@ expand_debug_expr (tree exp)
gcc_assert (part >= 0 && (unsigned)part < SA.map->num_partitions);
- op0 = SA.partition_to_pseudo[part];
+ op0 = copy_rtx (SA.partition_to_pseudo[part]);
}
goto adjust_mode;
}

View File

@@ -0,0 +1,107 @@
$NetBSD$
--- gcc/cfgrtl.c.orig Mon Sep 20 21:30:35 2010
+++ gcc/cfgrtl.c
@@ -1116,6 +1116,7 @@ force_nonfallthru_and_redirect (edge e, basic_block ta
rtx note;
edge new_edge;
int abnormal_edge_flags = 0;
+ bool asm_goto_edge = false;
int loc;
/* In the case the last instruction is conditional jump to the next
@@ -1195,8 +1196,28 @@ force_nonfallthru_and_redirect (edge e, basic_block ta
}
}
- if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags)
+ /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
+ don't point to target label. */
+ if (JUMP_P (BB_END (e->src))
+ && target != EXIT_BLOCK_PTR
+ && e->dest == target
+ && (e->flags & EDGE_FALLTHRU)
+ && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
{
+ int i, n = ASM_OPERANDS_LABEL_LENGTH (note);
+
+ for (i = 0; i < n; ++i)
+ if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
+ {
+ asm_goto_edge = true;
+ break;
+ }
+ }
+
+ if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
+ {
+ gcov_type count = e->count;
+ int probability = e->probability;
/* Create the new structures. */
/* If the old block ended with a tablejump, skip its table
@@ -1207,7 +1228,7 @@ force_nonfallthru_and_redirect (edge e, basic_block ta
note = NEXT_INSN (note);
jump_block = create_basic_block (note, NULL, e->src);
- jump_block->count = e->count;
+ jump_block->count = count;
jump_block->frequency = EDGE_FREQUENCY (e);
jump_block->loop_depth = target->loop_depth;
@@ -1223,13 +1244,27 @@ force_nonfallthru_and_redirect (edge e, basic_block ta
/* Wire edge in. */
new_edge = make_edge (e->src, jump_block, EDGE_FALLTHRU);
- new_edge->probability = e->probability;
- new_edge->count = e->count;
+ new_edge->probability = probability;
+ new_edge->count = count;
/* Redirect old edge. */
redirect_edge_pred (e, jump_block);
e->probability = REG_BR_PROB_BASE;
+ /* If asm goto has any label refs to target's label,
+ add also edge from asm goto bb to target. */
+ if (asm_goto_edge)
+ {
+ new_edge->probability /= 2;
+ new_edge->count /= 2;
+ jump_block->count /= 2;
+ jump_block->frequency /= 2;
+ new_edge = make_edge (new_edge->src, target,
+ e->flags & ~EDGE_FALLTHRU);
+ new_edge->probability = probability - probability / 2;
+ new_edge->count = count - count / 2;
+ }
+
new_bb = jump_block;
}
else
@@ -1640,9 +1675,10 @@ rtl_dump_bb (basic_block bb, FILE *outf, int indent, i
putc ('\n', outf);
}
- for (insn = BB_HEAD (bb), last = NEXT_INSN (BB_END (bb)); insn != last;
- insn = NEXT_INSN (insn))
- print_rtl_single (outf, insn);
+ if (bb->index != ENTRY_BLOCK && bb->index != EXIT_BLOCK)
+ for (insn = BB_HEAD (bb), last = NEXT_INSN (BB_END (bb)); insn != last;
+ insn = NEXT_INSN (insn))
+ print_rtl_single (outf, insn);
if (df)
{
@@ -2754,6 +2790,11 @@ cfg_layout_merge_blocks (basic_block a, basic_block b)
rtx first = BB_END (a), last;
last = emit_insn_after_noloc (b->il.rtl->header, BB_END (a), a);
+ /* The above might add a BARRIER as BB_END, but as barriers
+ aren't valid parts of a bb, remove_insn doesn't update
+ BB_END if it is a barrier. So adjust BB_END here. */
+ while (BB_END (a) != first && BARRIER_P (BB_END (a)))
+ BB_END (a) = PREV_INSN (BB_END (a));
delete_insn_chain (NEXT_INSN (first), last, false);
b->il.rtl->header = NULL;
}

View File

@@ -0,0 +1,13 @@
$NetBSD$
--- gcc/combine.c.orig Tue Dec 7 15:08:54 2010
+++ gcc/combine.c
@@ -5298,7 +5298,7 @@ combine_simplify_rtx (rtx x, enum machine_mode op0_mod
{
/* Try to simplify the expression further. */
rtx tor = simplify_gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
- temp = combine_simplify_rtx (tor, mode, in_dest);
+ temp = combine_simplify_rtx (tor, VOIDmode, in_dest);
/* If we could, great. If not, do not go ahead with the IOR
replacement, since PLUS appears in many special purpose

View File

@@ -0,0 +1,41 @@
$NetBSD$
--- gcc/config.gcc.orig Wed May 21 19:48:55 2014
+++ gcc/config.gcc
@@ -839,6 +839,22 @@ arm*-*-eabi* | arm*-*-symbianelf* )
tm_file="${tm_file} arm/aout.h arm/arm.h"
tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
;;
+arm*-*-minix*)
+ # The BPABI long long divmod functions return a 128-bit value in
+ # registers r0-r3. Correctly modeling that requires the use of
+ # TImode.
+ need_64bit_hwint=yes
+ default_use_cxa_atexit=yes
+ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/bpabi.h"
+ tmake_file="arm/t-arm arm/t-arm-elf"
+
+ tm_file="$tm_file arm/eabi.h newlib-stdint.h minix-spec.h arm/minix.h minix.h"
+ tmake_file="${tmake_file} arm/t-bpabi t-minix"
+ #extra_options="${extra_options} arm/eabi.opt"
+ #use_gcc_stdint=wrap
+
+ tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
+ ;;
arm*-*-rtems*)
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h"
tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems"
@@ -1162,6 +1178,13 @@ i[34567]86-*-freebsd*)
x86_64-*-freebsd*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
tmake_file="${tmake_file} i386/t-crtstuff"
+ ;;
+i[34567]86-*-minix)
+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h minix-spec.h i386/minix.h minix.h"
+ tmake_file="${tmake_file} t-minix"
+ gas=yes
+ gnu_ld=yes
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
;;
i[34567]86-*-netbsdelf*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"

View File

@@ -0,0 +1,100 @@
$NetBSD$
--- gcc/config/alpha/alpha.c.orig Tue Aug 3 18:44:56 2010
+++ gcc/config/alpha/alpha.c
@@ -2464,7 +2464,7 @@ alpha_emit_conditional_branch (rtx operands[], enum ma
{
case EQ: case LE: case LT: case LEU: case LTU:
case UNORDERED:
- /* We have these compares: */
+ /* We have these compares. */
cmp_code = code, branch_code = NE;
break;
@@ -2701,13 +2701,15 @@ alpha_emit_conditional_move (rtx cmp, enum machine_mod
switch (code)
{
case EQ: case LE: case LT: case LEU: case LTU:
+ case UNORDERED:
/* We have these compares. */
cmp_code = code, code = NE;
break;
case NE:
- /* This must be reversed. */
- cmp_code = EQ, code = EQ;
+ case ORDERED:
+ /* These must be reversed. */
+ cmp_code = reverse_condition (code), code = EQ;
break;
case GE: case GT: case GEU: case GTU:
@@ -2727,6 +2729,14 @@ alpha_emit_conditional_move (rtx cmp, enum machine_mod
gcc_unreachable ();
}
+ if (cmp_mode == DImode)
+ {
+ if (!reg_or_0_operand (op0, DImode))
+ op0 = force_reg (DImode, op0);
+ if (!reg_or_8bit_operand (op1, DImode))
+ op1 = force_reg (DImode, op1);
+ }
+
tem = gen_reg_rtx (cmp_mode);
emit_insn (gen_rtx_SET (VOIDmode, tem,
gen_rtx_fmt_ee (cmp_code, cmp_mode,
@@ -2738,6 +2748,14 @@ alpha_emit_conditional_move (rtx cmp, enum machine_mod
local_fast_math = 1;
}
+ if (cmp_mode == DImode)
+ {
+ if (!reg_or_0_operand (op0, DImode))
+ op0 = force_reg (DImode, op0);
+ if (!reg_or_8bit_operand (op1, DImode))
+ op1 = force_reg (DImode, op1);
+ }
+
/* We may be able to use a conditional move directly.
This avoids emitting spurious compares. */
if (signed_comparison_operator (cmp, VOIDmode)
@@ -2756,11 +2774,13 @@ alpha_emit_conditional_move (rtx cmp, enum machine_mod
switch (code)
{
case EQ: case LE: case LT: case LEU: case LTU:
+ case UNORDERED:
/* We have these compares: */
break;
case NE:
- /* This must be reversed. */
+ case ORDERED:
+ /* These must be reversed. */
code = reverse_condition (code);
cmov_code = EQ;
break;
@@ -4915,6 +4935,13 @@ alpha_gp_save_rtx (void)
return m;
}
+static void
+alpha_instantiate_decls (void)
+{
+ if (cfun->machine->gp_save_rtx != NULL_RTX)
+ instantiate_decl_rtl (cfun->machine->gp_save_rtx);
+}
+
static int
alpha_ra_ever_killed (void)
{
@@ -11124,6 +11151,9 @@ alpha_init_libfuncs (void)
#define TARGET_ARG_PARTIAL_BYTES alpha_arg_partial_bytes
#undef TARGET_TRAMPOLINE_INIT
#define TARGET_TRAMPOLINE_INIT alpha_trampoline_init
+
+#undef TARGET_INSTANTIATE_DECLS
+#define TARGET_INSTANTIATE_DECLS alpha_instantiate_decls
#undef TARGET_SECONDARY_RELOAD
#define TARGET_SECONDARY_RELOAD alpha_secondary_reload

View File

@@ -0,0 +1,24 @@
$NetBSD$
--- gcc/config/alpha/elf.h.orig Wed Jun 30 15:16:54 2010
+++ gcc/config/alpha/elf.h
@@ -25,8 +25,9 @@ along with GCC; see the file COPYING3. If not see
/* ??? Move all SDB stuff from alpha.h to osf.h. */
#undef SDB_DEBUGGING_INFO
+#undef MIPS_DEBUGGING_INFO
+#undef DBX_DEBUGGING_INFO
-#define DBX_DEBUGGING_INFO 1
#define DWARF2_DEBUGGING_INFO 1
#undef PREFERRED_DEBUGGING_TYPE
@@ -440,7 +441,7 @@ extern int alpha_this_gpdisp_sequence_number;
As of Jan 2002, only glibc 2.2.4 can actually make use of this, but
I imagine that other systems will catch up. In the meantime, it
doesn't harm to make sure that the data exists to be used later. */
-#if defined(HAVE_LD_EH_FRAME_HDR)
+#if defined(HAVE_LD_EH_FRAME_HDR) && !defined(LINK_EH_SPEC)
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
#endif

View File

@@ -0,0 +1,81 @@
$NetBSD$
--- gcc/config/alpha/linux-unwind.h.orig Thu Apr 9 15:00:19 2009
+++ gcc/config/alpha/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Alpha Linux.
- Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2009, 2011, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -36,25 +36,27 @@ alpha_fallback_frame_state (struct _Unwind_Context *co
{
unsigned int *pc = context->ra;
struct sigcontext *sc;
- long new_cfa, i;
+ long new_cfa;
+ int i;
if (pc[0] != 0x47fe0410 /* mov $30,$16 */
- || pc[2] != 0x00000083 /* callsys */)
+ || pc[2] != 0x00000083) /* callsys */
return _URC_END_OF_STACK;
if (context->cfa == 0)
return _URC_END_OF_STACK;
if (pc[1] == 0x201f0067) /* lda $0,NR_sigreturn */
sc = context->cfa;
- else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
+ else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
{
struct rt_sigframe {
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_ = context->cfa;
sc = &rt_->uc.uc_mcontext;
}
else
return _URC_END_OF_STACK;
+
new_cfa = sc->sc_regs[30];
fs->regs.cfa_how = CFA_REG_OFFSET;
fs->regs.cfa_reg = 30;
@@ -63,16 +65,35 @@ alpha_fallback_frame_state (struct _Unwind_Context *co
{
fs->regs.reg[i].how = REG_SAVED_OFFSET;
fs->regs.reg[i].loc.offset
- = (long)&sc->sc_regs[i] - new_cfa;
+ = (long) &sc->sc_regs[i] - new_cfa;
}
for (i = 0; i < 31; ++i)
{
fs->regs.reg[i+32].how = REG_SAVED_OFFSET;
fs->regs.reg[i+32].loc.offset
- = (long)&sc->sc_fpregs[i] - new_cfa;
+ = (long) &sc->sc_fpregs[i] - new_cfa;
}
fs->regs.reg[64].how = REG_SAVED_OFFSET;
fs->regs.reg[64].loc.offset = (long)&sc->sc_pc - new_cfa;
fs->retaddr_column = 64;
+ fs->signal_frame = 1;
+
return _URC_NO_REASON;
+}
+
+#define MD_FROB_UPDATE_CONTEXT alpha_frob_update_context
+
+/* Fix up for signal handlers that don't have S flag set. */
+
+static void
+alpha_frob_update_context (struct _Unwind_Context *context,
+ _Unwind_FrameState *fs ATTRIBUTE_UNUSED)
+{
+ unsigned int *pc = context->ra;
+
+ if (pc[0] == 0x47fe0410 /* mov $30,$16 */
+ && pc[2] == 0x00000083 /* callsys */
+ && (pc[1] == 0x201f0067 /* lda $0,NR_sigreturn */
+ || pc[1] == 0x201f015f)) /* lda $0,NR_rt_sigreturn */
+ _Unwind_SetSignalFrame (context, 1);
}

View File

@@ -0,0 +1,15 @@
$NetBSD$
--- gcc/config/arm/arm-cores.def.orig Fri Nov 20 17:37:30 2009
+++ gcc/config/arm/arm-cores.def
@@ -119,8 +119,10 @@ ARM_CORE("mpcore", mpcore, 6K, FL_LDSCHED | FL_V
ARM_CORE("arm1156t2-s", arm1156t2s, 6T2, FL_LDSCHED, 9e)
ARM_CORE("arm1156t2f-s", arm1156t2fs, 6T2, FL_LDSCHED | FL_VFPV2, 9e)
ARM_CORE("cortex-a5", cortexa5, 7A, FL_LDSCHED, 9e)
+ARM_CORE("cortex-a7", cortexa7, 7A, FL_LDSCHED | FL_DIV, 9e)
ARM_CORE("cortex-a8", cortexa8, 7A, FL_LDSCHED, 9e)
ARM_CORE("cortex-a9", cortexa9, 7A, FL_LDSCHED, 9e)
+ARM_CORE("cortex-a15", cortexa15, 7A, FL_LDSCHED | FL_DIV, 9e)
ARM_CORE("cortex-r4", cortexr4, 7R, FL_LDSCHED, 9e)
ARM_CORE("cortex-r4f", cortexr4f, 7R, FL_LDSCHED, 9e)
ARM_CORE("cortex-m3", cortexm3, 7M, FL_LDSCHED, 9e)

View File

@@ -0,0 +1,53 @@
$NetBSD$
--- gcc/config/arm/arm.c.orig Mon Dec 27 12:45:02 2010
+++ gcc/config/arm/arm.c
@@ -3339,6 +3339,10 @@ arm_libcall_uses_aapcs_base (const_rtx libcall)
add_libcall (libcall_htab,
convert_optab_libfunc (trunc_optab, HFmode, SFmode));
add_libcall (libcall_htab,
+ convert_optab_libfunc (sfix_optab, SImode, DFmode));
+ add_libcall (libcall_htab,
+ convert_optab_libfunc (ufix_optab, SImode, DFmode));
+ add_libcall (libcall_htab,
convert_optab_libfunc (sfix_optab, DImode, DFmode));
add_libcall (libcall_htab,
convert_optab_libfunc (ufix_optab, DImode, DFmode));
@@ -3346,6 +3350,28 @@ arm_libcall_uses_aapcs_base (const_rtx libcall)
convert_optab_libfunc (sfix_optab, DImode, SFmode));
add_libcall (libcall_htab,
convert_optab_libfunc (ufix_optab, DImode, SFmode));
+
+ /* Values from double-precision helper functions are returned in core
+ registers if the selected core only supports single-precision
+ arithmetic, even if we are using the hard-float ABI. The same is
+ true for single-precision helpers, but we will never be using the
+ hard-float ABI on a CPU which doesn't support single-precision
+ operations in hardware. */
+ add_libcall (libcall_htab, optab_libfunc (add_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (sdiv_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (smul_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (neg_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (sub_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (eq_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (lt_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (le_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (ge_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (gt_optab, DFmode));
+ add_libcall (libcall_htab, optab_libfunc (unord_optab, DFmode));
+ add_libcall (libcall_htab, convert_optab_libfunc (sext_optab, DFmode,
+ SFmode));
+ add_libcall (libcall_htab, convert_optab_libfunc (trunc_optab, SFmode,
+ DFmode));
}
return libcall && htab_find (libcall_htab, libcall) != NULL;
@@ -18237,7 +18263,7 @@ neon_emit_pair_result_insn (enum machine_mode mode,
rtx tmp1 = gen_reg_rtx (mode);
rtx tmp2 = gen_reg_rtx (mode);
- emit_insn (intfn (tmp1, op1, tmp2, op2));
+ emit_insn (intfn (tmp1, op1, op2, tmp2));
emit_move_insn (mem, tmp1);
mem = adjust_address (mem, mode, GET_MODE_SIZE (mode));

View File

@@ -0,0 +1,38 @@
$NetBSD$
--- gcc/config/arm/arm.h.orig Wed Dec 23 16:36:40 2009
+++ gcc/config/arm/arm.h
@@ -94,7 +94,14 @@ extern char arm_arch_name[];
if (arm_arch_iwmmxt) \
builtin_define ("__IWMMXT__"); \
if (TARGET_AAPCS_BASED) \
- builtin_define ("__ARM_EABI__"); \
+ { \
+ builtin_define ("__ARM_EABI__"); \
+ builtin_define ("__ARM_PCS"); \
+ if (TARGET_HARD_FLOAT && TARGET_VFP) \
+ builtin_define ("__ARM_PCS_VFP"); \
+ } \
+ if (TARGET_IDIV) \
+ builtin_define ("__ARM_ARCH_EXT_IDIV__"); \
} while (0)
/* The various ARM cores. */
@@ -264,6 +271,8 @@ extern void (*arm_lang_output_object_attributes_hook)(
for Thumb-2. */
#define TARGET_UNIFIED_ASM TARGET_THUMB2
+/* Nonzero if integer division instructions supported. */
+#define TARGET_IDIV (arm_arch_hwdiv)
/* True iff the full BPABI is being used. If TARGET_BPABI is true,
then TARGET_AAPCS_BASED must be true -- but the converse does not
@@ -2111,7 +2120,7 @@ typedef struct
(GET_CODE (X) == REG && ARM_REG_OK_FOR_INDEX_P (X))
/* Define this for compatibility reasons. */
-#define HANDLE_PRAGMA_PACK_PUSH_POP
+#define HANDLE_PRAGMA_PACK_PUSH_POP 1
/* Specify the machine mode that this machine uses
for the index in the tablejump instruction. */

View File

@@ -0,0 +1,49 @@
$NetBSD$
--- gcc/config/arm/arm.md.orig Tue Apr 12 13:52:46 2011
+++ gcc/config/arm/arm.md
@@ -3134,7 +3134,7 @@
bool need_else;
if (which_alternative != 0 || operands[3] != const0_rtx
- || (code != PLUS && code != MINUS && code != IOR && code != XOR))
+ || (code != PLUS && code != IOR && code != XOR))
need_else = true;
else
need_else = false;
@@ -3189,7 +3189,7 @@
)
(define_insn "arm_ashldi3_1bit"
- [(set (match_operand:DI 0 "s_register_operand" "=&r,r")
+ [(set (match_operand:DI 0 "s_register_operand" "=r,&r")
(ashift:DI (match_operand:DI 1 "s_register_operand" "0,r")
(const_int 1)))
(clobber (reg:CC CC_REGNUM))]
@@ -3248,7 +3248,7 @@
)
(define_insn "arm_ashrdi3_1bit"
- [(set (match_operand:DI 0 "s_register_operand" "=&r,r")
+ [(set (match_operand:DI 0 "s_register_operand" "=r,&r")
(ashiftrt:DI (match_operand:DI 1 "s_register_operand" "0,r")
(const_int 1)))
(clobber (reg:CC CC_REGNUM))]
@@ -3304,7 +3304,7 @@
)
(define_insn "arm_lshrdi3_1bit"
- [(set (match_operand:DI 0 "s_register_operand" "=&r,r")
+ [(set (match_operand:DI 0 "s_register_operand" "=r,&r")
(lshiftrt:DI (match_operand:DI 1 "s_register_operand" "0,r")
(const_int 1)))
(clobber (reg:CC CC_REGNUM))]
@@ -7994,7 +7994,7 @@
(not:SI (match_operator:SI 1 "arm_comparison_operator"
[(match_operand 2 "cc_register" "") (const_int 0)])))]
"TARGET_ARM"
- "mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
+ "mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
[(set_attr "conds" "use")
(set_attr "length" "8")]
)

View File

@@ -0,0 +1,6 @@
$NetBSD$
--- gcc/config/arm/bpabi-netbsd.c.orig Wed May 21 19:48:53 2014
+++ gcc/config/arm/bpabi-netbsd.c
@@ -0,0 +1 @@
+#include "bpabi.c"

View File

@@ -0,0 +1,43 @@
$NetBSD$
--- gcc/config/arm/bpabi.h.orig Fri Nov 20 17:37:30 2009
+++ gcc/config/arm/bpabi.h
@@ -20,13 +20,18 @@
<http://www.gnu.org/licenses/>. */
/* Use the AAPCS ABI by default. */
+#undef ARM_DEFAULT_ABI
#define ARM_DEFAULT_ABI ARM_ABI_AAPCS
/* Assume that AAPCS ABIs should adhere to the full BPABI. */
+#undef TARGET_BPABI
#define TARGET_BPABI (TARGET_AAPCS_BASED)
/* BPABI targets use EABI frame unwinding tables. */
+#undef MUST_USE_SJLJ_EXCEPTIONS
#define TARGET_UNWIND_INFO 1
+#undef ARM_EABI_UNWIND_TABLES
+#define ARM_EABI_UNWIND_TABLES 1
/* Section 4.1 of the AAPCS requires the use of VFP format. */
#undef FPUTYPE_DEFAULT
@@ -72,17 +77,10 @@
#undef LINK_SPEC
#define LINK_SPEC BPABI_LINK_SPEC
-#if defined (__thumb__)
-#define RENAME_LIBRARY_SET ".thumb_set"
-#else
-#define RENAME_LIBRARY_SET ".set"
-#endif
-
/* Make __aeabi_AEABI_NAME an alias for __GCC_NAME. */
#define RENAME_LIBRARY(GCC_NAME, AEABI_NAME) \
- __asm__ (".globl\t__aeabi_" #AEABI_NAME "\n" \
- RENAME_LIBRARY_SET "\t__aeabi_" #AEABI_NAME \
- ", __" #GCC_NAME "\n");
+ typeof (__##GCC_NAME) __aeabi_##AEABI_NAME \
+ __attribute__((alias ("__" #GCC_NAME)));
/* Give some libgcc functions an additional __aeabi name. */
#ifdef L_muldi3

View File

@@ -0,0 +1,14 @@
$NetBSD$
--- gcc/config/arm/elf.h.orig Sun Jun 21 20:48:15 2009
+++ gcc/config/arm/elf.h
@@ -161,6 +161,8 @@
#undef L_floatdidf
#undef L_floatdisf
#undef L_floatundidf
+/* XXXMRG: don't take this out, we need it! */
+# ifndef __NetBSD__
#undef L_floatundisf
+# endif
#endif
-

View File

@@ -0,0 +1,75 @@
$NetBSD$
--- gcc/config/arm/neon.md.orig Mon Jul 5 12:45:19 2010
+++ gcc/config/arm/neon.md
@@ -680,7 +680,7 @@
(match_operand:SI 2 "immediate_operand" "i")))]
"TARGET_NEON"
{
- int elt = ffs ((int) INTVAL (operands[2]) - 1);
+ int elt = ffs ((int) INTVAL (operands[2])) - 1;
if (BYTES_BIG_ENDIAN)
elt = GET_MODE_NUNITS (<MODE>mode) - 1 - elt;
operands[2] = GEN_INT (elt);
@@ -3895,13 +3895,14 @@
(define_insn "neon_vtrn<mode>_internal"
[(set (match_operand:VDQW 0 "s_register_operand" "=w")
- (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
- UNSPEC_VTRN1))
- (set (match_operand:VDQW 2 "s_register_operand" "=w")
- (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
- UNSPEC_VTRN2))]
+ (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
+ (match_operand:VDQW 2 "s_register_operand" "w")]
+ UNSPEC_VTRN1))
+ (set (match_operand:VDQW 3 "s_register_operand" "=2")
+ (unspec:VDQW [(match_dup 1) (match_dup 2)]
+ UNSPEC_VTRN2))]
"TARGET_NEON"
- "vtrn.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
+ "vtrn.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
[(set (attr "neon_type")
(if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
(const_string "neon_bp_simple")
@@ -3921,13 +3922,14 @@
(define_insn "neon_vzip<mode>_internal"
[(set (match_operand:VDQW 0 "s_register_operand" "=w")
- (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
- UNSPEC_VZIP1))
- (set (match_operand:VDQW 2 "s_register_operand" "=w")
- (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
- UNSPEC_VZIP2))]
+ (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
+ (match_operand:VDQW 2 "s_register_operand" "w")]
+ UNSPEC_VZIP1))
+ (set (match_operand:VDQW 3 "s_register_operand" "=2")
+ (unspec:VDQW [(match_dup 1) (match_dup 2)]
+ UNSPEC_VZIP2))]
"TARGET_NEON"
- "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
+ "vzip.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
[(set (attr "neon_type")
(if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
(const_string "neon_bp_simple")
@@ -3947,13 +3949,14 @@
(define_insn "neon_vuzp<mode>_internal"
[(set (match_operand:VDQW 0 "s_register_operand" "=w")
- (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")]
+ (unspec:VDQW [(match_operand:VDQW 1 "s_register_operand" "0")
+ (match_operand:VDQW 2 "s_register_operand" "w")]
UNSPEC_VUZP1))
- (set (match_operand:VDQW 2 "s_register_operand" "=w")
- (unspec:VDQW [(match_operand:VDQW 3 "s_register_operand" "2")]
- UNSPEC_VUZP2))]
+ (set (match_operand:VDQW 3 "s_register_operand" "=2")
+ (unspec:VDQW [(match_dup 1) (match_dup 2)]
+ UNSPEC_VUZP2))]
"TARGET_NEON"
- "vuzp.<V_sz_elem>\t%<V_reg>0, %<V_reg>2"
+ "vuzp.<V_sz_elem>\t%<V_reg>0, %<V_reg>3"
[(set (attr "neon_type")
(if_then_else (ne (symbol_ref "<Is_d_reg>") (const_int 0))
(const_string "neon_bp_simple")

View File

@@ -0,0 +1,118 @@
$NetBSD$
--- gcc/config/arm/netbsd-eabi.h.orig Wed May 21 19:48:54 2014
+++ gcc/config/arm/netbsd-eabi.h
@@ -0,0 +1,113 @@
+/* Definitions of target machine for GNU compiler, NetBSD/arm ELF version.
+ Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+ Contributed by Wasabi Systems, 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/>. */
+
+/* Run-time Target Specification. */
+#undef TARGET_VERSION
+#define TARGET_VERSION fputs (" (NetBSD/earm ELF)", stderr);
+
+#undef MULTILIB_DEFAULTS
+#define MULTILIB_DEFAULTS { "mabi=aapcs-linux" }
+
+#undef MUST_USE_SJLJ_EXCEPTIONS
+#define MUST_USE_SJLJ_EXCEPTIONS (!TARGET_AAPCS_BASED)
+
+#undef ARM_EABI_UNWIND_TABLES
+#define ARM_EABI_UNWIND_TABLES \
+ ((!USING_SJLJ_EXCEPTIONS && flag_exceptions) || flag_unwind_tables)
+
+#define TARGET_LINKER_EABI_SUFFIX "%{!mabi=apcs-gnu:%{!mabi=atpcs:_nbsd_eabi}}"
+#define TARGET_LINKER_BIG_EMULATION "armelfb%(linker_eabi_suffix)"
+#define TARGET_LINKER_LITTLE_EMULATION "armelf%(linker_eabi_suffix)"
+
+/* TARGET_BIG_ENDIAN_DEFAULT is set in
+ config.gcc for big endian configurations. */
+#undef TARGET_LINKER_EMULATION
+#if TARGET_BIG_ENDIAN_DEFAULT
+#define TARGET_LINKER_EMULATION TARGET_LINKER_BIG_EMULATION
+#undef BE8_LINK_SPEC
+#define BE8_LINK_SPEC " %{!mlittle-endian:%{march=armv7-a|mcpu=cortex-a5|mcpu=cortex-a8|mcpu=cortex-a9:%{!r:--be8}}}"
+#else
+#define TARGET_LINKER_EMULATION TARGET_LINKER_LITTLE_EMULATION
+#endif
+
+#undef MULTILIB_DEFAULTS
+
+#undef ARM_DEFAULT_ABI
+#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ if (TARGET_AAPCS_BASED) \
+ TARGET_BPABI_CPP_BUILTINS(); \
+ NETBSD_OS_CPP_BUILTINS_ELF(); \
+ if (ARM_EABI_UNWIND_TABLES) \
+ builtin_define ("__UNWIND_TABLES__"); \
+ } \
+ while (0)
+
+#undef SUBTARGET_CPP_SPEC
+#define SUBTARGET_CPP_SPEC NETBSD_CPP_SPEC
+
+/*
+ * Override AAPCS types to remain compatible the existing NetBSD types.
+ */
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "int"
+
+#undef SIZE_TYPE
+#define SIZE_TYPE "long unsigned int"
+
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE "long int"
+
+#undef SUBTARGET_EXTRA_ASM_SPEC
+#define SUBTARGET_EXTRA_ASM_SPEC \
+ "-matpcs %{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu} %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
+
+/* Default to full VFP if -mhard-float is specified. */
+#undef SUBTARGET_ASM_FLOAT_SPEC
+#define SUBTARGET_ASM_FLOAT_SPEC \
+ "%{mhard-float:%{!mfpu=*:-mfpu=vfp}} \
+ %{mfloat-abi=hard:%{!mfpu=*:-mfpu=vfp}}"
+
+#undef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS \
+ { "subtarget_extra_asm_spec", SUBTARGET_EXTRA_ASM_SPEC }, \
+ { "subtarget_asm_float_spec", SUBTARGET_ASM_FLOAT_SPEC }, \
+ { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \
+ { "linker_eabi_suffix", TARGET_LINKER_EABI_SUFFIX }, \
+ { "linker_emulation", TARGET_LINKER_EMULATION }, \
+ { "linker_big_emulation", TARGET_LINKER_BIG_EMULATION }, \
+ { "linker_little_emulation", TARGET_LINKER_LITTLE_EMULATION }, \
+ { "be8_link_spec", BE8_LINK_SPEC }, \
+ { "target_fix_v4bx_spec", TARGET_FIX_V4BX_SPEC }, \
+ { "netbsd_entry_point", NETBSD_ENTRY_POINT },
+
+#define NETBSD_ENTRY_POINT "__start"
+
+#undef LINK_SPEC
+#define LINK_SPEC \
+ "-X %{mbig-endian:-EB -m %(linker_big_emulation)} \
+ %{mlittle-endian:-EL -m %(linker_liitle_emulation)} \
+ %{!mbig-endian:%{!mlittle-endian:-m %(linker_emulation)}} \
+ %(be8_link_spec) %(target_fix_v4bx_spec) \
+ %(netbsd_link_spec)"

View File

@@ -0,0 +1,55 @@
$NetBSD$
--- gcc/config/arm/netbsd-elf.h.orig Thu Nov 5 14:47:45 2009
+++ gcc/config/arm/netbsd-elf.h
@@ -24,6 +24,14 @@
/* arm.h defaults to ARM6 CPU. */
+/* Default EABI to armv5t so that thumb shared libraries work.
+ The ARM926EH-S core is the default for armv5te, so set
+ SUBTARGET_CPU_DEFAULT to achieve this. */
+
+#define SUBTARGET_CPU_DEFAULT \
+ (ARM_DEFAULT_ABI != ARM_ABI_APCS && ARM_DEFAULT_ABI != ARM_ABI_ATPCS \
+ ? TARGET_CPU_arm926ejs : TARGET_CPU_arm6)
+
/* This defaults us to little-endian. */
#ifndef TARGET_ENDIAN_DEFAULT
#define TARGET_ENDIAN_DEFAULT 0
@@ -40,6 +48,7 @@
#undef ARM_DEFAULT_ABI
#define ARM_DEFAULT_ABI ARM_ABI_ATPCS
+#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
@@ -52,13 +61,13 @@
#undef SUBTARGET_EXTRA_ASM_SPEC
#define SUBTARGET_EXTRA_ASM_SPEC \
- "-matpcs %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
+ "-matpcs %{mabi=aapcs*:-meabi=5} %{fpic|fpie:-k} %{fPIC|fPIE:-k}"
/* Default to full VFP if -mhard-float is specified. */
#undef SUBTARGET_ASM_FLOAT_SPEC
#define SUBTARGET_ASM_FLOAT_SPEC \
- "%{mhard-float:{!mfpu=*:-mfpu=vfp}} \
- %{mfloat-abi=hard:{!mfpu=*:-mfpu=vfp}}"
+ "%{mhard-float:%{!mfpu=*:-mfpu=vfp}} \
+ %{mfloat-abi=hard:%{!mfpu=*:-mfpu=vfp}}"
#undef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS \
@@ -71,7 +80,9 @@
#undef LINK_SPEC
#define LINK_SPEC \
- "-X %{mbig-endian:-EB} %{mlittle-endian:-EL} \
+ "-X \
+ %{mbig-endian:-EB %{-mabi=aapcs*:-m armelfb_nbsd_eabi}} \
+ %{mlittle-endian:-EL %{-mabi=aapcs*:-m armelf_nbsd_eabi}} \
%(netbsd_link_spec)"
/* Make GCC agree with <machine/ansi.h>. */

View File

@@ -0,0 +1,13 @@
$NetBSD$
--- gcc/config/arm/t-arm.orig Sun Jun 21 20:48:15 2009
+++ gcc/config/arm/t-arm
@@ -41,6 +41,8 @@ s-config s-conditions s-flags s-codes s-constants s-em
$(srcdir)/config/arm/arm-tune.md: $(srcdir)/config/arm/gentune.sh \
$(srcdir)/config/arm/arm-cores.def
+ @echo "NOT REBUILDING $@"
+NetBSD_DISABLED_config_arm_arm-tune.md:
$(SHELL) $(srcdir)/config/arm/gentune.sh \
$(srcdir)/config/arm/arm-cores.def > \
$(srcdir)/config/arm/arm-tune.md

View File

@@ -0,0 +1,19 @@
$NetBSD$
--- gcc/config/arm/t-netbsd.orig Tue Apr 21 19:03:23 2009
+++ gcc/config/arm/t-netbsd
@@ -23,6 +23,14 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fpic
LIBGCC2_DEBUG_CFLAGS = -g0
LIB2FUNCS_EXTRA = $(srcdir)/config/floatunsidf.c $(srcdir)/config/floatunsisf.c
+# This list is from t-arm-elf, but with some things removed.
+LIB1ASMFUNCS += _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
+ _call_via_rX _interwork_call_via_rX \
+ _arm_fixunsdfsi _arm_fixunssfsi \
+ _arm_floatdidf _arm_floatdisf _arm_floatundidf _arm_floatundisf \
+ _lshrdi3 _ashrdi3 _ashldi3 \
+ _clzsi2 _clzdi2
+
# Build a shared libgcc library.
SHLIB_EXT = .so
SHLIB_NAME = @shlib_base_name@.so

View File

@@ -0,0 +1,45 @@
$NetBSD$
--- gcc/config/arm/t-netbsd-eabi.orig Wed May 21 19:48:54 2014
+++ gcc/config/arm/t-netbsd-eabi
@@ -0,0 +1,40 @@
+# Copyright (C) 2005, 2009 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/>.
+
+# Use a version of div0 which raises SIGFPE, and a special __clear_cache.
+
+LIB1ASMFUNCS += \
+ _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX \
+ _clzsi2 _clzdi2
+
+# Add the BPABI C functions that aren't already in libc
+LIB2FUNCS_EXTRA = $(srcdir)/config/arm/unaligned-funcs.c
+
+LIB2FUNCS_STATIC_EXTRA =
+
+UNWIND_H = $(srcdir)/config/arm/unwind-arm.h
+LIB2ADDEH = $(srcdir)/config/arm/unwind-arm.c \
+ $(srcdir)/config/arm/libunwind.S \
+ $(srcdir)/config/arm/pr-support.c $(srcdir)/unwind-c.c
+LIB2ADDEHDEP = $(UNWIND_H) $(srcdir)/config/$(LIB1ASMSRC)
+
+SHLIB_MAPFILES += $(srcdir)/config/arm/libgcc-bpabi.ver
+
+MULTILIB_OPTIONS = mabi=aapcs-linux/mabi=aapcs/mabi=atpcs/mabi=apcs-gnu/mabi=iwmmxt
+MULTILIB_DIRNAMES = aapcs-linux aapcs atpcs oabi iwmmxt
+MULTILIB_OSDIRNAMES = . ../lib/aapcs ../lib/atpcs ../lib/oabi ../lib/iwmmxt

View File

@@ -0,0 +1,53 @@
$NetBSD$
--- gcc/config/arm/thumb2.md.orig Fri Apr 2 08:32:00 2010
+++ gcc/config/arm/thumb2.md
@@ -380,7 +380,7 @@
(not:SI (match_operator:SI 1 "arm_comparison_operator"
[(match_operand 2 "cc_register" "") (const_int 0)])))]
"TARGET_THUMB2"
- "ite\\t%D1\;mov%D1\\t%0, #0\;mvn%d1\\t%0, #1"
+ "ite\\t%D1\;mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
[(set_attr "conds" "use")
(set_attr "length" "10")]
)
@@ -1108,6 +1108,7 @@
(match_operand:SI 2 "low_reg_or_int_operand" "")]))]
"TARGET_THUMB2
&& peep2_regno_dead_p(0, CC_REGNUM)
+ && (CONST_INT_P (operands[2]) || operands[1] == operands[0])
&& ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
|| REG_P(operands[2]))"
[(parallel
@@ -1120,10 +1121,10 @@
)
(define_insn "*thumb2_shiftsi3_short"
- [(set (match_operand:SI 0 "low_register_operand" "=l")
+ [(set (match_operand:SI 0 "low_register_operand" "=l,l")
(match_operator:SI 3 "shift_operator"
- [(match_operand:SI 1 "low_register_operand" "l")
- (match_operand:SI 2 "low_reg_or_int_operand" "lM")]))
+ [(match_operand:SI 1 "low_register_operand" "0,l")
+ (match_operand:SI 2 "low_reg_or_int_operand" "l,M")]))
(clobber (reg:CC CC_REGNUM))]
"TARGET_THUMB2 && reload_completed
&& ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
@@ -1207,7 +1208,7 @@
[(set (match_operand:SI 0 "s_register_operand" "=r")
(div:SI (match_operand:SI 1 "s_register_operand" "r")
(match_operand:SI 2 "s_register_operand" "r")))]
- "TARGET_THUMB2 && arm_arch_hwdiv"
+ "(TARGET_THUMB2 || TARGET_ARM) && arm_arch_hwdiv"
"sdiv%?\t%0, %1, %2"
[(set_attr "predicable" "yes")
(set_attr "insn" "sdiv")]
@@ -1217,7 +1218,7 @@
[(set (match_operand:SI 0 "s_register_operand" "=r")
(udiv:SI (match_operand:SI 1 "s_register_operand" "r")
(match_operand:SI 2 "s_register_operand" "r")))]
- "TARGET_THUMB2 && arm_arch_hwdiv"
+ "(TARGET_THUMB2 || TARGET_ARM) && arm_arch_hwdiv"
"udiv%?\t%0, %1, %2"
[(set_attr "predicable" "yes")
(set_attr "insn" "udiv")]

View File

@@ -0,0 +1,71 @@
$NetBSD$
--- gcc/config/avr/avr-stdint.h.orig Wed May 21 19:48:54 2014
+++ gcc/config/avr/avr-stdint.h
@@ -0,0 +1,66 @@
+/* Definitions for <stdint.h> types on systems using newlib.
+ Copyright (C) 2012 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/>. */
+
+/*
+ The intention of this file is to supply definitions that work with
+ avr-gcc's -mint8 that sets int to an 8-bit type.
+
+ This file is intended to yield the same results as newlib-stdint.h,
+ but there are some differences to newlib-stdint.h:
+
+ - AVR is an 8-bit architecture that cannot access 16-bit values
+ atomically, this SIG_ATOMIC_TYPE is "char".
+
+ - For the same reason, [u]int_fast8_t is defined as 8-bit type.
+
+*/
+
+#define SIG_ATOMIC_TYPE "char"
+
+#define INT8_TYPE "signed char"
+#define INT16_TYPE (INT_TYPE_SIZE == 16 ? "short int" : "long int")
+#define INT32_TYPE (INT_TYPE_SIZE == 16 ? "long int" : "long long int")
+#define INT64_TYPE (INT_TYPE_SIZE == 16 ? "long long int" : 0)
+#define UINT8_TYPE "unsigned char"
+#define UINT16_TYPE (INT_TYPE_SIZE == 16 ? "short unsigned int" : "long unsigned int")
+#define UINT32_TYPE (INT_TYPE_SIZE == 16 ? "long unsigned int" : "long long unsigned int")
+#define UINT64_TYPE (INT_TYPE_SIZE == 16 ? "long long unsigned int" : 0)
+
+#define INT_LEAST8_TYPE INT8_TYPE
+#define INT_LEAST16_TYPE INT16_TYPE
+#define INT_LEAST32_TYPE INT32_TYPE
+#define INT_LEAST64_TYPE INT64_TYPE
+#define UINT_LEAST8_TYPE UINT8_TYPE
+#define UINT_LEAST16_TYPE UINT16_TYPE
+#define UINT_LEAST32_TYPE UINT32_TYPE
+#define UINT_LEAST64_TYPE UINT64_TYPE
+
+#define INT_FAST8_TYPE INT8_TYPE
+#define INT_FAST16_TYPE (INT_TYPE_SIZE == 16 ? "int" : INT16_TYPE)
+#define INT_FAST32_TYPE INT32_TYPE
+#define INT_FAST64_TYPE INT64_TYPE
+#define UINT_FAST8_TYPE UINT8_TYPE
+#define UINT_FAST16_TYPE (INT_TYPE_SIZE == 16 ? "unsigned int" : UINT16_TYPE)
+#define UINT_FAST32_TYPE UINT32_TYPE
+#define UINT_FAST64_TYPE UINT64_TYPE
+
+#define INTPTR_TYPE PTRDIFF_TYPE
+#ifndef UINTPTR_TYPE
+#define UINTPTR_TYPE SIZE_TYPE
+#endif

View File

@@ -0,0 +1,116 @@
$NetBSD$
--- gcc/config/avr/avr.c.orig Thu Mar 3 16:58:26 2011
+++ gcc/config/avr/avr.c
@@ -1043,8 +1043,7 @@ avr_legitimate_address_p (enum machine_mode mode, rtx
true_regnum (XEXP (x, 0)));
debug_rtx (x);
}
- if (!strict && GET_CODE (x) == SUBREG)
- x = SUBREG_REG (x);
+
if (REG_P (x) && (strict ? REG_OK_FOR_BASE_STRICT_P (x)
: REG_OK_FOR_BASE_NOSTRICT_P (x)))
r = POINTER_REGS;
@@ -1386,9 +1385,8 @@ notice_update_cc (rtx body ATTRIBUTE_UNUSED, rtx insn)
{
rtx x = XEXP (src, 1);
- if (GET_CODE (x) == CONST_INT
- && INTVAL (x) > 0
- && INTVAL (x) != 6)
+ if (CONST_INT_P (x)
+ && IN_RANGE (INTVAL (x), 1, 5))
{
cc_status.value1 = SET_DEST (set);
cc_status.flags |= CC_OVERFLOW_UNUSABLE;
@@ -5934,26 +5932,30 @@ jump_over_one_insn_p (rtx insn, rtx dest)
int
avr_hard_regno_mode_ok (int regno, enum machine_mode mode)
{
- /* Disallow QImode in stack pointer regs. */
- if ((regno == REG_SP || regno == (REG_SP + 1)) && mode == QImode)
- return 0;
-
- /* The only thing that can go into registers r28:r29 is a Pmode. */
- if (regno == REG_Y && mode == Pmode)
+ /* NOTE: 8-bit values must not be disallowed for R28 or R29.
+ Disallowing QI et al. in these regs might lead to code like
+ (set (subreg:QI (reg:HI 28) n) ...)
+ which will result in wrong code because reload does not
+ handle SUBREGs of hard regsisters like this, see PR46779.
+ This could be fixed in reload. However, it appears
+ that fixing reload is not wanted by reload people. */
+
+ /* Any GENERAL_REGS register can hold 8-bit values. */
+
+ if (GET_MODE_SIZE (mode) == 1)
return 1;
- /* Otherwise disallow all regno/mode combinations that span r28:r29. */
- if (regno <= (REG_Y + 1) && (regno + GET_MODE_SIZE (mode)) >= (REG_Y + 1))
+ /* FIXME: Ideally, the following test is not needed.
+ However, it turned out that it can reduce the number
+ of spill fails. AVR and it's poor endowment with
+ address registers is extreme stress test for reload. */
+
+ if (GET_MODE_SIZE (mode) >= 4
+ && regno >= REG_X)
return 0;
- if (mode == QImode)
- return 1;
-
- /* Modes larger than QImode occupy consecutive registers. */
- if (regno + GET_MODE_SIZE (mode) > FIRST_PSEUDO_REGISTER)
- return 0;
-
- /* All modes larger than QImode should start in an even register. */
+ /* All modes larger than 8 bits should start in an even register. */
+
return !(regno & 1);
}
@@ -6080,13 +6082,23 @@ avr_hard_regno_scratch_ok (unsigned int regno)
&& !df_regs_ever_live_p (regno))
return false;
+ /* Don't allow hard registers that might be part of the frame pointer.
+ Some places in the compiler just test for [HARD_]FRAME_POINTER_REGNUM
+ and don't care for a frame pointer that spans more than one register. */
+
+ if ((!reload_completed || frame_pointer_needed)
+ && (regno == REG_Y || regno == REG_Y + 1))
+ {
+ return false;
+ }
+
return true;
}
/* Return nonzero if register OLD_REG can be renamed to register NEW_REG. */
int
-avr_hard_regno_rename_ok (unsigned int old_reg ATTRIBUTE_UNUSED,
+avr_hard_regno_rename_ok (unsigned int old_reg,
unsigned int new_reg)
{
/* Interrupt functions can only use registers that have already been
@@ -6097,6 +6109,17 @@ avr_hard_regno_rename_ok (unsigned int old_reg ATTRIBU
&& !df_regs_ever_live_p (new_reg))
return 0;
+ /* Don't allow hard registers that might be part of the frame pointer.
+ Some places in the compiler just test for [HARD_]FRAME_POINTER_REGNUM
+ and don't care for a frame pointer that spans more than one register. */
+
+ if ((!reload_completed || frame_pointer_needed)
+ && (old_reg == REG_Y || old_reg == REG_Y + 1
+ || new_reg == REG_Y || new_reg == REG_Y + 1))
+ {
+ return 0;
+ }
+
return 1;
}

View File

@@ -0,0 +1,88 @@
$NetBSD$
--- gcc/config/avr/libgcc.S.orig Sat May 23 07:16:07 2009
+++ gcc/config/avr/libgcc.S
@@ -28,6 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectivel
#define __SP_H__ 0x3e
#define __SP_L__ 0x3d
#define __RAMPZ__ 0x3B
+#define __EIND__ 0x3C
/* Most of the functions here are called directly from avr.md
patterns, instead of using the standard libcall mechanisms.
@@ -689,7 +690,8 @@ __tablejump__:
lpm
push r0
#if defined (__AVR_HAVE_EIJMP_EICALL__)
- push __zero_reg__
+ in __tmp_reg__, __EIND__
+ push __tmp_reg__
#endif
ret
#endif
@@ -791,22 +793,22 @@ __do_clear_bss:
#if defined(__AVR_HAVE_RAMPZ__)
__do_global_ctors:
ldi r17, hi8(__ctors_start)
- ldi r16, hh8(__ctors_start)
ldi r28, lo8(__ctors_end)
ldi r29, hi8(__ctors_end)
- ldi r20, hh8(__ctors_end)
+ ldi r16, hh8(__ctors_end)
rjmp .L__do_global_ctors_start
.L__do_global_ctors_loop:
sbiw r28, 2
- sbc r20, __zero_reg__
+ sbc r16, __zero_reg__
mov_h r31, r29
mov_l r30, r28
- out __RAMPZ__, r20
+ out __RAMPZ__, r16
XCALL __tablejump_elpm__
.L__do_global_ctors_start:
cpi r28, lo8(__ctors_start)
cpc r29, r17
- cpc r20, r16
+ ldi r24, hh8(__ctors_start)
+ cpc r16, r24
brne .L__do_global_ctors_loop
#else
__do_global_ctors:
@@ -832,22 +834,22 @@ __do_global_ctors:
#if defined(__AVR_HAVE_RAMPZ__)
__do_global_dtors:
ldi r17, hi8(__dtors_end)
- ldi r16, hh8(__dtors_end)
ldi r28, lo8(__dtors_start)
ldi r29, hi8(__dtors_start)
- ldi r20, hh8(__dtors_start)
+ ldi r16, hh8(__dtors_start)
rjmp .L__do_global_dtors_start
.L__do_global_dtors_loop:
sbiw r28, 2
- sbc r20, __zero_reg__
+ sbc r16, __zero_reg__
mov_h r31, r29
mov_l r30, r28
- out __RAMPZ__, r20
+ out __RAMPZ__, r16
XCALL __tablejump_elpm__
.L__do_global_dtors_start:
cpi r28, lo8(__dtors_end)
cpc r29, r17
- cpc r20, r16
+ ldi r24, hh8(__dtors_end)
+ cpc r16, r24
brne .L__do_global_dtors_loop
#else
__do_global_dtors:
@@ -889,7 +891,8 @@ __tablejump_elpm__:
elpm
push r0
#if defined (__AVR_HAVE_EIJMP_EICALL__)
- push __zero_reg__
+ in __tmp_reg__, __EIND__
+ push __tmp_reg__
#endif
ret
#endif

View File

@@ -0,0 +1,24 @@
$NetBSD$
--- gcc/config/bfin/linux-unwind.h.orig Thu Apr 9 15:00:19 2009
+++ gcc/config/bfin/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for Blackfin.
- Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *con
{
struct rt_sigframe {
int sig;
- struct siginfo *pinfo;
+ siginfo_t *pinfo;
void *puc;
char retcode[8];
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_ = context->cfa;

View File

@@ -0,0 +1,9 @@
$NetBSD$
--- gcc/config/darwin-protos.h.orig Thu Jun 24 21:06:37 2010
+++ gcc/config/darwin-protos.h
@@ -93,3 +93,4 @@ extern void darwin_asm_output_anchor (rtx symbol);
extern bool darwin_kextabi_p (void);
extern void darwin_override_options (void);
extern void darwin_patch_builtins (void);
+extern void darwin_rename_builtins (void);

View File

@@ -0,0 +1,39 @@
$NetBSD$
--- gcc/config/darwin.c.orig Thu Jun 24 21:06:37 2010
+++ gcc/config/darwin.c
@@ -337,6 +337,34 @@ static GTY ((param_is (struct machopic_indirection)))
/* Return a hash value for a SLOT in the indirections hash table. */
+void
+darwin_rename_builtins (void)
+{
+ /* The system ___divdc3 routine in libSystem on darwin10 is not
+ accurate to 1ulp, ours is, so we avoid ever using the system name
+ for this routine and instead install a non-conflicting name that
+ is accurate.
+
+ When -ffast-math or -funsafe-math-optimizations is given, we can
+ use the faster version. */
+ if (!flag_unsafe_math_optimizations)
+ {
+ int dcode = (BUILT_IN_COMPLEX_DIV_MIN
+ + DCmode - MIN_MODE_COMPLEX_FLOAT);
+ tree fn = built_in_decls[dcode];
+ /* Fortran and c call TARGET_INIT_BUILTINS and
+ TARGET_INIT_LIBFUNCS at different times, so we have to put a
+ call into each to ensure that at least one of them is called
+ after build_common_builtin_nodes. A better fix is to add a
+ new hook to run after build_common_builtin_nodes runs. */
+ if (fn)
+ set_user_assembler_name (fn, "___ieee_divdc3");
+ fn = implicit_built_in_decls[dcode];
+ if (fn)
+ set_user_assembler_name (fn, "___ieee_divdc3");
+ }
+}
+
static hashval_t
machopic_indirection_hash (const void *slot)
{

View File

@@ -0,0 +1,13 @@
$NetBSD$
--- gcc/config/freebsd-spec.h.orig Fri Feb 25 23:15:48 2011
+++ gcc/config/freebsd-spec.h
@@ -153,7 +153,7 @@ is built with the --enable-threads configure-time opti
#define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1"
#endif
-#if defined(HAVE_LD_EH_FRAME_HDR)
+#if defined(HAVE_LD_EH_FRAME_HDR) && !defined(LINK_EH_SPEC)
#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
#endif

View File

@@ -0,0 +1,13 @@
$NetBSD$
--- gcc/config/i386/athlon.md.orig Tue Apr 21 19:03:23 2009
+++ gcc/config/i386/athlon.md
@@ -798,7 +798,7 @@
"athlon-direct,athlon-fploadk8,athlon-fadd")
(define_insn_reservation "athlon_ssecomi" 4
(and (eq_attr "cpu" "athlon,k8,generic64")
- (eq_attr "type" "ssecmp"))
+ (eq_attr "type" "ssecomi"))
"athlon-vector,athlon-fpsched,athlon-fadd")
(define_insn_reservation "athlon_ssecomi_amdfam10" 3
(and (eq_attr "cpu" "amdfam10")

View File

@@ -0,0 +1,13 @@
$NetBSD$
--- gcc/config/i386/avxintrin.h.orig Mon Feb 21 20:02:02 2011
+++ gcc/config/i386/avxintrin.h
@@ -759,7 +759,7 @@ _mm256_insert_epi8 (__m256i __X, int __D, int const __
#ifdef __x86_64__
extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
-_mm256_insert_epi64 (__m256i __X, int __D, int const __N)
+_mm256_insert_epi64 (__m256i __X, long long __D, int const __N)
{
__m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1);
__Y = _mm_insert_epi64 (__Y, __D, __N % 2);

View File

@@ -0,0 +1,13 @@
$NetBSD$
--- gcc/config/i386/constraints.md.orig Wed Jul 8 16:41:23 2009
+++ gcc/config/i386/constraints.md
@@ -149,7 +149,7 @@
(define_constraint "G"
"Standard 80387 floating point constant."
(and (match_code "const_double")
- (match_test "standard_80387_constant_p (op)")))
+ (match_test "standard_80387_constant_p (op) > 0")))
;; This can theoretically be any mode's CONST0_RTX.
(define_constraint "C"

View File

@@ -0,0 +1,22 @@
$NetBSD$
--- gcc/config/i386/darwin.h.orig Fri Sep 10 16:12:46 2010
+++ gcc/config/i386/darwin.h
@@ -302,3 +302,17 @@ along with GCC; see the file COPYING3. If not see
#define MACHO_SYMBOL_FLAG_VARIABLE ((SYMBOL_FLAG_MACH_DEP) << 3)
#define SUBTARGET32_DEFAULT_CPU "i686"
+
+#define SUBTARGET_INIT_BUILTINS \
+do { \
+ darwin_rename_builtins (); \
+} while(0)
+
+/* The system ___divdc3 routine in libSystem on darwin10 is not
+ accurate to 1ulp, ours is, so we avoid ever using the system name
+ for this routine and instead install a non-conflicting name that is
+ accurate. See darwin_rename_builtins. */
+#ifdef L_divdc3
+#define DECLARE_LIBRARY_RENAMES \
+ asm(".text; ___divdc3: jmp ___ieee_divdc3 ; .globl ___divdc3");
+#endif

View File

@@ -0,0 +1,23 @@
$NetBSD$
--- gcc/config/i386/driver-i386.c.orig Sun May 9 14:53:00 2010
+++ gcc/config/i386/driver-i386.c
@@ -436,7 +436,8 @@ const char *host_detect_local_cpu (int argc, const cha
has_ssse3 = ecx & bit_SSSE3;
has_sse4_1 = ecx & bit_SSE4_1;
has_sse4_2 = ecx & bit_SSE4_2;
- has_avx = ecx & bit_AVX;
+ /* Don't check XCR0[2] - I think that can be 'lazy enabled' by the OS */
+ has_avx = (ecx & bit_AVX) && (ecx & bit_OSXSAVE);
has_cmpxchg16b = ecx & bit_CMPXCHG16B;
has_movbe = ecx & bit_MOVBE;
has_popcnt = ecx & bit_POPCNT;
@@ -494,7 +495,7 @@ const char *host_detect_local_cpu (int argc, const cha
processor = PROCESSOR_AMDFAM10;
else if (has_sse2 || has_longmode)
processor = PROCESSOR_K8;
- else if (has_3dnowp)
+ else if (has_3dnowp && family == 6)
processor = PROCESSOR_ATHLON;
else if (has_mmx)
processor = PROCESSOR_K6;

View File

@@ -0,0 +1,14 @@
$NetBSD$
--- gcc/config/i386/i386-protos.h.orig Thu Jul 22 06:42:02 2010
+++ gcc/config/i386/i386-protos.h
@@ -57,7 +57,8 @@ extern bool legitimate_constant_p (rtx);
extern bool constant_address_p (rtx);
extern bool legitimate_pic_operand_p (rtx);
extern int legitimate_pic_address_disp_p (rtx);
-
+extern bool ix86_legitimize_reload_address (rtx, enum machine_mode,
+ int, int, int);
extern void print_reg (rtx, int, FILE*);
extern void print_operand (FILE*, rtx, int);
extern void print_operand_address (FILE*, rtx);

View File

@@ -0,0 +1,243 @@
$NetBSD$
--- gcc/config/i386/i386.c.orig Thu Feb 17 21:22:02 2011
+++ gcc/config/i386/i386.c
@@ -46,6 +46,7 @@ along with GCC; see the file COPYING3. If not see
#include "target.h"
#include "target-def.h"
#include "langhooks.h"
+#include "reload.h"
#include "cgraph.h"
#include "gimple.h"
#include "dwarf2.h"
@@ -1540,7 +1541,7 @@ unsigned char ix86_arch_features[X86_ARCH_LAST];
/* Feature tests against the various architecture variations, used to create
ix86_arch_features based on the processor mask. */
static unsigned int initial_ix86_arch_features[X86_ARCH_LAST] = {
- /* X86_ARCH_CMOVE: Conditional move was added for pentiumpro. */
+ /* X86_ARCH_CMOV: Conditional move was added for pentiumpro. */
~(m_386 | m_486 | m_PENT | m_K6),
/* X86_ARCH_CMPXCHG: Compare and exchange was added for 80486. */
@@ -3071,7 +3072,7 @@ override_options (bool main_args_p)
-mtune (rather than -march) points us to a processor that has them.
However, the VIA C3 gives a SIGILL, so we only do that for i686 and
higher processors. */
- if (TARGET_CMOVE
+ if (TARGET_CMOV
&& (processor_alias_table[i].flags & (PTA_PREFETCH_SSE | PTA_SSE)))
x86_prefetch_sse = true;
break;
@@ -3400,11 +3401,6 @@ override_options (bool main_args_p)
target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
}
- /* For sane SSE instruction set generation we need fcomi instruction.
- It is safe to enable all CMOVE instructions. */
- if (TARGET_SSE)
- TARGET_CMOVE = 1;
-
/* Figure out what ASM_GENERATE_INTERNAL_LABEL builds as a prefix. */
{
char *p;
@@ -9875,6 +9871,64 @@ legitimate_pic_address_disp_p (rtx disp)
return 0;
}
+/* Our implementation of LEGITIMIZE_RELOAD_ADDRESS. Returns a value to
+ replace the input X, or the original X if no replacement is called for.
+ The output parameter *WIN is 1 if the calling macro should goto WIN,
+ 0 if it should not. */
+
+bool
+ix86_legitimize_reload_address (rtx x,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ int opnum, int type,
+ int ind_levels ATTRIBUTE_UNUSED)
+{
+ /* Reload can generate:
+
+ (plus:DI (plus:DI (unspec:DI [(const_int 0 [0])] UNSPEC_TP)
+ (reg:DI 97))
+ (reg:DI 2 cx))
+
+ This RTX is rejected from ix86_legitimate_address_p due to
+ non-strictness of base register 97. Following this rejection,
+ reload pushes all three components into separate registers,
+ creating invalid memory address RTX.
+
+ Following code reloads only the invalid part of the
+ memory address RTX. */
+
+ if (GET_CODE (x) == PLUS
+ && REG_P (XEXP (x, 1))
+ && GET_CODE (XEXP (x, 0)) == PLUS
+ && REG_P (XEXP (XEXP (x, 0), 1)))
+ {
+ rtx base, index;
+ bool something_reloaded = false;
+
+ base = XEXP (XEXP (x, 0), 1);
+ if (!REG_OK_FOR_BASE_STRICT_P (base))
+ {
+ push_reload (base, NULL_RTX, &XEXP (XEXP (x, 0), 1), NULL,
+ BASE_REG_CLASS, GET_MODE (x), VOIDmode, 0, 0,
+ opnum, (enum reload_type)type);
+ something_reloaded = true;
+ }
+
+ index = XEXP (x, 1);
+ if (!REG_OK_FOR_INDEX_STRICT_P (index))
+ {
+ push_reload (index, NULL_RTX, &XEXP (x, 1), NULL,
+ INDEX_REG_CLASS, GET_MODE (x), VOIDmode, 0, 0,
+ opnum, (enum reload_type)type);
+ something_reloaded = true;
+ }
+
+ gcc_assert (something_reloaded);
+ return true;
+ }
+
+ return false;
+}
+
/* Recognizes RTL expressions that are valid memory addresses for an
instruction. The MODE argument is the machine mode for the MEM
expression that wants to use this address.
@@ -11872,6 +11926,13 @@ print_operand (FILE *file, rtx x, int code)
return;
case 'H':
+ if (!offsettable_memref_p (x))
+ {
+ output_operand_lossage ("operand is not an offsettable memory "
+ "reference, invalid operand "
+ "code 'H'");
+ return;
+ }
/* It doesn't actually matter what mode we use here, as we're
only going to use this for printing. */
x = adjust_address_nv (x, DImode, 8);
@@ -14610,11 +14671,15 @@ ix86_match_ccmode (rtx insn, enum machine_mode req_mod
if (req_mode == CCZmode)
return 0;
/* FALLTHRU */
+ case CCZmode:
+ break;
+
case CCAmode:
case CCCmode:
case CCOmode:
case CCSmode:
- case CCZmode:
+ if (set_mode != req_mode)
+ return 0;
break;
default:
@@ -16196,11 +16261,15 @@ ix86_expand_sse_movcc (rtx dest, rtx cmp, rtx op_true,
}
else if (TARGET_XOP)
{
- rtx pcmov = gen_rtx_SET (mode, dest,
- gen_rtx_IF_THEN_ELSE (mode, cmp,
- op_true,
- op_false));
- emit_insn (pcmov);
+ op_true = force_reg (mode, op_true);
+
+ if (!nonimmediate_operand (op_false, mode))
+ op_false = force_reg (mode, op_false);
+
+ emit_insn (gen_rtx_SET (mode, dest,
+ gen_rtx_IF_THEN_ELSE (mode, cmp,
+ op_true,
+ op_false)));
}
else
{
@@ -20104,7 +20173,9 @@ ix86_local_alignment (tree exp, enum machine_mode mode
if (!TARGET_64BIT
&& align == 64
&& ix86_preferred_stack_boundary < 64
- && (mode == DImode || (type && TYPE_MODE (type) == DImode))
+ && (mode == DImode || (type && TYPE_MODE (type) == DImode)
+ || mode == DFmode || (type && TYPE_MODE (type) == DFmode)
+ || mode == DCmode || (type && TYPE_MODE (type) == DCmode))
&& (!type || !TYPE_USER_ALIGN (type))
&& (!decl || !DECL_USER_ALIGN (decl)))
align = 32;
@@ -20150,7 +20221,8 @@ ix86_local_alignment (tree exp, enum machine_mode mode
|| TREE_CODE (type) == QUAL_UNION_TYPE)
&& TYPE_FIELDS (type))
{
- if (DECL_MODE (TYPE_FIELDS (type)) == DFmode && align < 64)
+ if (DECL_MODE (TYPE_FIELDS (type)) == DFmode && align < 64
+ && ix86_preferred_stack_boundary >= 64)
return 64;
if (ALIGN_MODE_128 (DECL_MODE (TYPE_FIELDS (type))) && align < 128)
return 128;
@@ -20159,7 +20231,8 @@ ix86_local_alignment (tree exp, enum machine_mode mode
|| TREE_CODE (type) == INTEGER_TYPE)
{
- if (TYPE_MODE (type) == DFmode && align < 64)
+ if (TYPE_MODE (type) == DFmode && align < 64
+ && ix86_preferred_stack_boundary >= 64)
return 64;
if (ALIGN_MODE_128 (TYPE_MODE (type)) && align < 128)
return 128;
@@ -23991,8 +24064,8 @@ ix86_expand_special_args_builtin (const struct builtin
arg_adjust = 0;
if (optimize
|| target == 0
- || GET_MODE (target) != tmode
- || ! (*insn_p->operand[0].predicate) (target, tmode))
+ || !register_operand (target, tmode)
+ || GET_MODE (target) != tmode)
target = gen_reg_rtx (tmode);
}
@@ -25067,7 +25140,7 @@ ix86_preferred_reload_class (rtx x, enum reg_class reg
zero above. We only want to wind up preferring 80387 registers if
we plan on doing computation with them. */
if (TARGET_80387
- && standard_80387_constant_p (x))
+ && standard_80387_constant_p (x) > 0)
{
/* Limit class to non-sse. */
if (regclass == FLOAT_SSE_REGS)
@@ -27711,10 +27784,19 @@ ix86_expand_vector_set (bool mmx_ok, rtx target, rtx v
break;
case V2DImode:
- use_vec_merge = TARGET_SSE4_1;
+ use_vec_merge = TARGET_SSE4_1 && TARGET_64BIT;
if (use_vec_merge)
break;
+ tmp = gen_reg_rtx (GET_MODE_INNER (mode));
+ ix86_expand_vector_extract (false, tmp, target, 1 - elt);
+ if (elt == 0)
+ tmp = gen_rtx_VEC_CONCAT (mode, tmp, val);
+ else
+ tmp = gen_rtx_VEC_CONCAT (mode, val, tmp);
+ emit_insn (gen_rtx_SET (VOIDmode, target, tmp));
+ return;
+
case V2DFmode:
{
rtx op0, op1;
@@ -30651,6 +30733,11 @@ ix86_enum_va_list (int idx, const char **pname, tree *
#undef TARGET_ASM_CODE_END
#define TARGET_ASM_CODE_END ix86_code_end
+
+#if TARGET_MACHO
+#undef TARGET_INIT_LIBFUNCS
+#define TARGET_INIT_LIBFUNCS darwin_rename_builtins
+#endif
struct gcc_target targetm = TARGET_INITIALIZER;

View File

@@ -0,0 +1,57 @@
$NetBSD$
--- gcc/config/i386/i386.h.orig Wed Mar 30 10:48:07 2011
+++ gcc/config/i386/i386.h
@@ -397,7 +397,7 @@ extern unsigned char ix86_tune_features[X86_TUNE_LAST]
/* Feature tests against the various architecture variations. */
enum ix86_arch_indices {
- X86_ARCH_CMOVE, /* || TARGET_SSE */
+ X86_ARCH_CMOV,
X86_ARCH_CMPXCHG,
X86_ARCH_CMPXCHG8B,
X86_ARCH_XADD,
@@ -408,12 +408,16 @@ enum ix86_arch_indices {
extern unsigned char ix86_arch_features[X86_ARCH_LAST];
-#define TARGET_CMOVE ix86_arch_features[X86_ARCH_CMOVE]
+#define TARGET_CMOV ix86_arch_features[X86_ARCH_CMOV]
#define TARGET_CMPXCHG ix86_arch_features[X86_ARCH_CMPXCHG]
#define TARGET_CMPXCHG8B ix86_arch_features[X86_ARCH_CMPXCHG8B]
#define TARGET_XADD ix86_arch_features[X86_ARCH_XADD]
#define TARGET_BSWAP ix86_arch_features[X86_ARCH_BSWAP]
+/* For sane SSE instruction set generation we need fcomi instruction.
+ It is safe to enable all CMOVE instructions. */
+#define TARGET_CMOVE (TARGET_CMOV || TARGET_SSE)
+
#define TARGET_FISTTP (TARGET_SSE3 && TARGET_80387)
extern int x86_prefetch_sse;
@@ -1081,6 +1085,7 @@ enum target_cpu_default
#define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
(CC_REGNO_P (REGNO) ? VOIDmode \
+ : MMX_REGNO_P (REGNO) ? V8QImode \
: (MODE) == VOIDmode && (NREGS) != 1 ? VOIDmode \
: (MODE) == VOIDmode ? choose_hard_reg_mode ((REGNO), (NREGS), false) \
: (MODE) == HImode && !TARGET_PARTIAL_REG_STALL ? SImode \
@@ -1765,6 +1770,17 @@ typedef struct ix86_args {
It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE. */
#define LEGITIMATE_CONSTANT_P(X) legitimate_constant_p (X)
+
+/* Try a machine-dependent way of reloading an illegitimate address
+ operand. If we find one, push the reload and jump to WIN. This
+ macro is used in only one place: `find_reloads_address' in reload.c. */
+
+#define LEGITIMIZE_RELOAD_ADDRESS(X, MODE, OPNUM, TYPE, INDL, WIN) \
+do { \
+ if (ix86_legitimize_reload_address ((X), (MODE), (OPNUM), \
+ (int)(TYPE), (INDL))) \
+ goto WIN; \
+} while (0)
/* If defined, a C expression to determine the base term of address X.
This macro is used in only one place: `find_base_term' in alias.c.

View File

@@ -0,0 +1,582 @@
$NetBSD$
--- gcc/config/i386/i386.md.orig Fri Jan 7 13:02:29 2011
+++ gcc/config/i386/i386.md
@@ -2430,7 +2430,7 @@
[(set_attr "type" "*,*,mmx,mmxmov,mmxmov,sselog1,ssemov,ssemov,ssemov,sselog1,ssemov,ssemov,ssemov")
(set (attr "prefix")
(if_then_else (eq_attr "alternative" "5,6,7,8")
- (const_string "vex")
+ (const_string "maybe_vex")
(const_string "orig")))
(set_attr "mode" "DI,DI,DI,DI,DI,TI,DI,TI,DI,V4SF,V2SF,V4SF,V2SF")])
@@ -2468,21 +2468,15 @@
return "movdq2q\t{%1, %0|%0, %1}";
case TYPE_SSEMOV:
- if (TARGET_AVX)
- {
- if (get_attr_mode (insn) == MODE_TI)
- return "vmovdqa\t{%1, %0|%0, %1}";
- else
- return "vmovq\t{%1, %0|%0, %1}";
- }
-
if (get_attr_mode (insn) == MODE_TI)
- return "movdqa\t{%1, %0|%0, %1}";
- /* FALLTHRU */
+ return "%vmovdqa\t{%1, %0|%0, %1}";
+ /* Handle broken assemblers that require movd instead of movq. */
+ if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
+ return "%vmovd\t{%1, %0|%0, %1}";
+ return "%vmovq\t{%1, %0|%0, %1}";
case TYPE_MMXMOV:
- /* Moves from and into integer register is done using movd
- opcode with REX prefix. */
+ /* Handle broken assemblers that require movd instead of movq. */
if (GENERAL_REG_P (operands[0]) || GENERAL_REG_P (operands[1]))
return "movd\t{%1, %0|%0, %1}";
return "movq\t{%1, %0|%0, %1}";
@@ -2878,7 +2872,7 @@
&& (reload_in_progress || reload_completed
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| (!TARGET_SSE_MATH && optimize_function_for_size_p (cfun)
- && standard_80387_constant_p (operands[1]))
+ && standard_80387_constant_p (operands[1]) > 0)
|| GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], SFmode))"
{
@@ -2915,12 +2909,13 @@
case 9: case 10: case 14: case 15:
return "movd\t{%1, %0|%0, %1}";
- case 12: case 13:
- return "%vmovd\t{%1, %0|%0, %1}";
case 11:
return "movq\t{%1, %0|%0, %1}";
+ case 12: case 13:
+ return "%vmovd\t{%1, %0|%0, %1}";
+
default:
gcc_unreachable ();
}
@@ -3048,11 +3043,10 @@
|| (!(TARGET_SSE2 && TARGET_SSE_MATH)
&& optimize_function_for_size_p (cfun)
&& !memory_operand (operands[0], DFmode)
- && standard_80387_constant_p (operands[1]))
+ && standard_80387_constant_p (operands[1]) > 0)
|| GET_CODE (operands[1]) != CONST_DOUBLE
|| ((optimize_function_for_size_p (cfun)
- || !TARGET_MEMORY_MISMATCH_STALL
- || reload_in_progress || reload_completed)
+ || !TARGET_MEMORY_MISMATCH_STALL)
&& memory_operand (operands[0], DFmode)))"
{
switch (which_alternative)
@@ -3067,6 +3061,7 @@
case 3:
case 4:
return "#";
+
case 5:
switch (get_attr_mode (insn))
{
@@ -3200,7 +3195,7 @@
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| (!(TARGET_SSE2 && TARGET_SSE_MATH)
&& optimize_function_for_size_p (cfun)
- && standard_80387_constant_p (operands[1]))
+ && standard_80387_constant_p (operands[1]) > 0)
|| GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], DFmode))"
{
@@ -3262,7 +3257,8 @@
case 9:
case 10:
- return "%vmovd\t{%1, %0|%0, %1}";
+ /* Handle broken assemblers that require movd instead of movq. */
+ return "%vmovd\t{%1, %0|%0, %1}";
default:
gcc_unreachable();
@@ -3340,7 +3336,7 @@
|| (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| (!(TARGET_SSE2 && TARGET_SSE_MATH)
&& optimize_function_for_size_p (cfun)
- && standard_80387_constant_p (operands[1]))
+ && standard_80387_constant_p (operands[1]) > 0)
|| GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], DFmode))"
{
@@ -3361,11 +3357,11 @@
switch (get_attr_mode (insn))
{
case MODE_V4SF:
- return "xorps\t%0, %0";
+ return "%vxorps\t%0, %d0";
case MODE_V2DF:
- return "xorpd\t%0, %0";
+ return "%vxorpd\t%0, %d0";
case MODE_TI:
- return "pxor\t%0, %0";
+ return "%vpxor\t%0, %d0";
default:
gcc_unreachable ();
}
@@ -3375,28 +3371,56 @@
switch (get_attr_mode (insn))
{
case MODE_V4SF:
- return "movaps\t{%1, %0|%0, %1}";
+ return "%vmovaps\t{%1, %0|%0, %1}";
case MODE_V2DF:
- return "movapd\t{%1, %0|%0, %1}";
+ return "%vmovapd\t{%1, %0|%0, %1}";
case MODE_TI:
- return "movdqa\t{%1, %0|%0, %1}";
+ return "%vmovdqa\t{%1, %0|%0, %1}";
case MODE_DI:
- return "movq\t{%1, %0|%0, %1}";
+ return "%vmovq\t{%1, %0|%0, %1}";
case MODE_DF:
- return "movsd\t{%1, %0|%0, %1}";
+ if (TARGET_AVX)
+ {
+ if (REG_P (operands[0]) && REG_P (operands[1]))
+ return "vmovsd\t{%1, %0, %0|%0, %0, %1}";
+ else
+ return "vmovsd\t{%1, %0|%0, %1}";
+ }
+ else
+ return "movsd\t{%1, %0|%0, %1}";
case MODE_V1DF:
- return "movlpd\t{%1, %0|%0, %1}";
+ if (TARGET_AVX)
+ {
+ if (REG_P (operands[0]))
+ return "vmovlpd\t{%1, %0, %0|%0, %0, %1}";
+ else
+ return "vmovlpd\t{%1, %0|%0, %1}";
+ }
+ else
+ return "movlpd\t{%1, %0|%0, %1}";
case MODE_V2SF:
- return "movlps\t{%1, %0|%0, %1}";
+ if (TARGET_AVX)
+ {
+ if (REG_P (operands[0]))
+ return "vmovlps\t{%1, %0, %0|%0, %0, %1}";
+ else
+ return "vmovlps\t{%1, %0|%0, %1}";
+ }
+ else
+ return "movlps\t{%1, %0|%0, %1}";
default:
gcc_unreachable ();
}
default:
- gcc_unreachable();
+ gcc_unreachable ();
}
}
[(set_attr "type" "fmov,fmov,fmov,multi,multi,sselog1,ssemov,ssemov,ssemov")
+ (set (attr "prefix")
+ (if_then_else (eq_attr "alternative" "0,1,2,3,4")
+ (const_string "orig")
+ (const_string "maybe_vex")))
(set (attr "prefix_data16")
(if_then_else (eq_attr "mode" "V1DF")
(const_string "1")
@@ -3543,7 +3567,8 @@
"optimize_function_for_size_p (cfun)
&& !(MEM_P (operands[0]) && MEM_P (operands[1]))
&& (reload_in_progress || reload_completed
- || standard_80387_constant_p (operands[1])
+ || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
+ || standard_80387_constant_p (operands[1]) > 0
|| GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], XFmode))"
{
@@ -3571,6 +3596,7 @@
"optimize_function_for_speed_p (cfun)
&& !(MEM_P (operands[0]) && MEM_P (operands[1]))
&& (reload_in_progress || reload_completed
+ || (ix86_cmodel == CM_MEDIUM || ix86_cmodel == CM_LARGE)
|| GET_CODE (operands[1]) != CONST_DOUBLE
|| memory_operand (operands[0], XFmode))"
{
@@ -3715,7 +3741,7 @@
}
else if (FP_REG_P (r))
{
- if (!standard_80387_constant_p (c))
+ if (standard_80387_constant_p (c) < 1)
FAIL;
}
else if (MMX_REG_P (r))
@@ -3747,7 +3773,7 @@
}
else if (FP_REG_P (r))
{
- if (!standard_80387_constant_p (c))
+ if (standard_80387_constant_p (c) < 1)
FAIL;
}
else if (MMX_REG_P (r))
@@ -17658,7 +17684,8 @@
(set (match_operand:DI 1 "register_operand" "=S")
(plus:DI (match_dup 3)
(const_int 8)))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"movsq"
[(set_attr "type" "str")
(set_attr "mode" "DI")
@@ -17673,7 +17700,8 @@
(set (match_operand:SI 1 "register_operand" "=S")
(plus:SI (match_dup 3)
(const_int 4)))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"movs{l|d}"
[(set_attr "type" "str")
(set_attr "mode" "SI")
@@ -17688,7 +17716,8 @@
(set (match_operand:DI 1 "register_operand" "=S")
(plus:DI (match_dup 3)
(const_int 4)))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"movs{l|d}"
[(set_attr "type" "str")
(set_attr "mode" "SI")
@@ -17703,7 +17732,8 @@
(set (match_operand:SI 1 "register_operand" "=S")
(plus:SI (match_dup 3)
(const_int 2)))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"movsw"
[(set_attr "type" "str")
(set_attr "memory" "both")
@@ -17718,7 +17748,8 @@
(set (match_operand:DI 1 "register_operand" "=S")
(plus:DI (match_dup 3)
(const_int 2)))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"movsw"
[(set_attr "type" "str")
(set_attr "memory" "both")
@@ -17733,7 +17764,8 @@
(set (match_operand:SI 1 "register_operand" "=S")
(plus:SI (match_dup 3)
(const_int 1)))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"movsb"
[(set_attr "type" "str")
(set_attr "memory" "both")
@@ -17748,7 +17780,8 @@
(set (match_operand:DI 1 "register_operand" "=S")
(plus:DI (match_dup 3)
(const_int 1)))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"movsb"
[(set_attr "type" "str")
(set_attr "memory" "both")
@@ -17779,7 +17812,8 @@
(set (mem:BLK (match_dup 3))
(mem:BLK (match_dup 4)))
(use (match_dup 5))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"rep{%;} movsq"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -17798,7 +17832,8 @@
(set (mem:BLK (match_dup 3))
(mem:BLK (match_dup 4)))
(use (match_dup 5))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"rep{%;} movs{l|d}"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -17817,7 +17852,8 @@
(set (mem:BLK (match_dup 3))
(mem:BLK (match_dup 4)))
(use (match_dup 5))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"rep{%;} movs{l|d}"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -17834,7 +17870,8 @@
(set (mem:BLK (match_dup 3))
(mem:BLK (match_dup 4)))
(use (match_dup 5))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"rep{%;} movsb"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -17851,7 +17888,8 @@
(set (mem:BLK (match_dup 3))
(mem:BLK (match_dup 4)))
(use (match_dup 5))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"rep{%;} movsb"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -17911,7 +17949,9 @@
operands[3] = gen_rtx_PLUS (Pmode, operands[0],
GEN_INT (GET_MODE_SIZE (GET_MODE
(operands[2]))));
- if (TARGET_SINGLE_STRINGOP || optimize_insn_for_size_p ())
+ /* Can't use this if the user has appropriated eax or edi. */
+ if ((TARGET_SINGLE_STRINGOP || optimize_insn_for_size_p ())
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG]))
{
emit_insn (gen_strset_singleop (operands[0], operands[1], operands[2],
operands[3]));
@@ -17933,7 +17973,8 @@
(set (match_operand:DI 0 "register_operand" "=D")
(plus:DI (match_dup 1)
(const_int 8)))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
"stosq"
[(set_attr "type" "str")
(set_attr "memory" "store")
@@ -17945,7 +17986,8 @@
(set (match_operand:SI 0 "register_operand" "=D")
(plus:SI (match_dup 1)
(const_int 4)))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
"stos{l|d}"
[(set_attr "type" "str")
(set_attr "memory" "store")
@@ -17957,7 +17999,8 @@
(set (match_operand:DI 0 "register_operand" "=D")
(plus:DI (match_dup 1)
(const_int 4)))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
"stos{l|d}"
[(set_attr "type" "str")
(set_attr "memory" "store")
@@ -17969,7 +18012,8 @@
(set (match_operand:SI 0 "register_operand" "=D")
(plus:SI (match_dup 1)
(const_int 2)))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
"stosw"
[(set_attr "type" "str")
(set_attr "memory" "store")
@@ -17981,7 +18025,8 @@
(set (match_operand:DI 0 "register_operand" "=D")
(plus:DI (match_dup 1)
(const_int 2)))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
"stosw"
[(set_attr "type" "str")
(set_attr "memory" "store")
@@ -17993,7 +18038,8 @@
(set (match_operand:SI 0 "register_operand" "=D")
(plus:SI (match_dup 1)
(const_int 1)))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
"stosb"
[(set_attr "type" "str")
(set_attr "memory" "store")
@@ -18005,7 +18051,8 @@
(set (match_operand:DI 0 "register_operand" "=D")
(plus:DI (match_dup 1)
(const_int 1)))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[DI_REG])"
"stosb"
[(set_attr "type" "str")
(set_attr "memory" "store")
@@ -18032,7 +18079,8 @@
(const_int 0))
(use (match_operand:DI 2 "register_operand" "a"))
(use (match_dup 4))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
"rep{%;} stosq"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -18049,7 +18097,8 @@
(const_int 0))
(use (match_operand:SI 2 "register_operand" "a"))
(use (match_dup 4))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
"rep{%;} stos{l|d}"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -18066,7 +18115,8 @@
(const_int 0))
(use (match_operand:SI 2 "register_operand" "a"))
(use (match_dup 4))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
"rep{%;} stos{l|d}"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -18082,7 +18132,8 @@
(const_int 0))
(use (match_operand:QI 2 "register_operand" "a"))
(use (match_dup 4))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
"rep{%;} stosb"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -18098,7 +18149,8 @@
(const_int 0))
(use (match_operand:QI 2 "register_operand" "a"))
(use (match_dup 4))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
"rep{%;} stosb"
[(set_attr "type" "str")
(set_attr "prefix_rep" "1")
@@ -18119,8 +18171,8 @@
if (optimize_insn_for_size_p () && !TARGET_INLINE_ALL_STRINGOPS)
FAIL;
- /* Can't use this if the user has appropriated esi or edi. */
- if (fixed_regs[SI_REG] || fixed_regs[DI_REG])
+ /* Can't use this if the user has appropriated ecx, esi or edi. */
+ if (fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])
FAIL;
out = operands[0];
@@ -18214,7 +18266,8 @@
(clobber (match_operand:SI 0 "register_operand" "=S"))
(clobber (match_operand:SI 1 "register_operand" "=D"))
(clobber (match_operand:SI 2 "register_operand" "=c"))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"repz{%;} cmpsb"
[(set_attr "type" "str")
(set_attr "mode" "QI")
@@ -18229,7 +18282,8 @@
(clobber (match_operand:DI 0 "register_operand" "=S"))
(clobber (match_operand:DI 1 "register_operand" "=D"))
(clobber (match_operand:DI 2 "register_operand" "=c"))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"repz{%;} cmpsb"
[(set_attr "type" "str")
(set_attr "mode" "QI")
@@ -18265,7 +18319,8 @@
(clobber (match_operand:SI 0 "register_operand" "=S"))
(clobber (match_operand:SI 1 "register_operand" "=D"))
(clobber (match_operand:SI 2 "register_operand" "=c"))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"repz{%;} cmpsb"
[(set_attr "type" "str")
(set_attr "mode" "QI")
@@ -18283,7 +18338,8 @@
(clobber (match_operand:DI 0 "register_operand" "=S"))
(clobber (match_operand:DI 1 "register_operand" "=D"))
(clobber (match_operand:DI 2 "register_operand" "=c"))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[CX_REG] || fixed_regs[SI_REG] || fixed_regs[DI_REG])"
"repz{%;} cmpsb"
[(set_attr "type" "str")
(set_attr "mode" "QI")
@@ -18295,7 +18351,7 @@
(unspec:SI [(match_operand:BLK 1 "general_operand" "")
(match_operand:QI 2 "immediate_operand" "")
(match_operand 3 "immediate_operand" "")] UNSPEC_SCAS))]
- ""
+ "!TARGET_64BIT"
{
if (ix86_expand_strlen (operands[0], operands[1], operands[2], operands[3]))
DONE;
@@ -18308,7 +18364,7 @@
(unspec:DI [(match_operand:BLK 1 "general_operand" "")
(match_operand:QI 2 "immediate_operand" "")
(match_operand 3 "immediate_operand" "")] UNSPEC_SCAS))]
- ""
+ "TARGET_64BIT"
{
if (ix86_expand_strlen (operands[0], operands[1], operands[2], operands[3]))
DONE;
@@ -18331,7 +18387,8 @@
(match_operand:SI 4 "register_operand" "0")] UNSPEC_SCAS))
(clobber (match_operand:SI 1 "register_operand" "=D"))
(clobber (reg:CC FLAGS_REG))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
"repnz{%;} scasb"
[(set_attr "type" "str")
(set_attr "mode" "QI")
@@ -18345,7 +18402,8 @@
(match_operand:DI 4 "register_operand" "0")] UNSPEC_SCAS))
(clobber (match_operand:DI 1 "register_operand" "=D"))
(clobber (reg:CC FLAGS_REG))]
- "TARGET_64BIT"
+ "TARGET_64BIT
+ && !(fixed_regs[AX_REG] || fixed_regs[CX_REG] || fixed_regs[DI_REG])"
"repnz{%;} scasb"
[(set_attr "type" "str")
(set_attr "mode" "QI")
@@ -18499,7 +18557,8 @@
(define_insn "*x86_mov<mode>cc_0_m1_neg"
[(set (match_operand:SWI48 0 "register_operand" "=r")
(neg:SWI48 (match_operator 1 "ix86_carry_flag_operator"
- [(reg FLAGS_REG) (const_int 0)])))]
+ [(reg FLAGS_REG) (const_int 0)])))
+ (clobber (reg:CC FLAGS_REG))]
""
"sbb{<imodesuffix>}\t%0, %0"
[(set_attr "type" "alu")

View File

@@ -0,0 +1,23 @@
$NetBSD$
--- gcc/config/i386/linux-unwind.h.orig Fri Nov 13 06:58:12 2009
+++ gcc/config/i386/linux-unwind.h
@@ -1,5 +1,5 @@
/* DWARF2 EH unwinding support for AMD x86-64 and x86.
- Copyright (C) 2004, 2005, 2006, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2006, 2009, 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -133,9 +133,9 @@ x86_fallback_frame_state (struct _Unwind_Context *cont
{
struct rt_sigframe {
int sig;
- struct siginfo *pinfo;
+ siginfo_t *pinfo;
void *puc;
- struct siginfo info;
+ siginfo_t info;
struct ucontext uc;
} *rt_ = context->cfa;
/* The void * cast is necessary to avoid an aliasing warning.

View File

@@ -0,0 +1,31 @@
$NetBSD$
--- gcc/config/i386/mmx.md.orig Wed Dec 30 11:07:12 2009
+++ gcc/config/i386/mmx.md
@@ -63,6 +63,7 @@
DONE;
})
+;; movd instead of movq is required to handle broken assemblers.
(define_insn "*mov<mode>_internal_rex64"
[(set (match_operand:MMXMODEI8 0 "nonimmediate_operand"
"=rm,r,!?y,!?y ,m ,!y,*Y2,x,x ,m,r,Yi")
@@ -81,8 +82,8 @@
%vpxor\t%0, %d0
%vmovq\t{%1, %0|%0, %1}
%vmovq\t{%1, %0|%0, %1}
- %vmovq\t{%1, %0|%0, %1}
- %vmovq\t{%1, %0|%0, %1}"
+ %vmovd\t{%1, %0|%0, %1}
+ %vmovd\t{%1, %0|%0, %1}"
[(set_attr "type" "imov,imov,mmx,mmxmov,mmxmov,ssecvt,ssecvt,sselog1,ssemov,ssemov,ssemov,ssemov")
(set_attr "unit" "*,*,*,*,*,mmx,mmx,*,*,*,*,*")
(set_attr "prefix_rep" "*,*,*,*,*,1,1,*,1,*,*,*")
@@ -192,6 +193,7 @@
(const_string "orig")))
(set_attr "mode" "DI,DI,DI,DI,DI,DI,DI,V4SF,V4SF,V2SF,V2SF,DI,DI")])
+;; movd instead of movq is required to handle broken assemblers.
(define_insn "*movv2sf_internal_rex64"
[(set (match_operand:V2SF 0 "nonimmediate_operand"
"=rm,r ,!?y,!?y ,m ,!y,*Y2,x,x,x,m,r,Yi")

View File

@@ -0,0 +1,12 @@
$NetBSD$
--- gcc/config/i386/netbsd-elf.h.orig Thu Aug 2 10:49:31 2007
+++ gcc/config/i386/netbsd-elf.h
@@ -122,3 +122,7 @@ along with GCC; see the file COPYING3. If not see
#define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK
#define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 ELF)");
+
+/* Preserve i386 psABI */
+#undef PREFERRED_STACK_BOUNDARY_DEFAULT
+#define PREFERRED_STACK_BOUNDARY_DEFAULT MIN_STACK_BOUNDARY

View File

@@ -0,0 +1,12 @@
$NetBSD$
--- gcc/config/i386/netbsd64.h.orig Thu Aug 2 10:49:31 2007
+++ gcc/config/i386/netbsd64.h
@@ -70,3 +70,7 @@ along with GCC; see the file COPYING3. If not see
#define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK
#define TARGET_VERSION fprintf (stderr, " (NetBSD/x86_64 ELF)");
+
+/* Preserve i386 psABI */
+#undef PREFERRED_STACK_BOUNDARY_DEFAULT
+#define PREFERRED_STACK_BOUNDARY_DEFAULT MIN_STACK_BOUNDARY

View File

@@ -0,0 +1,282 @@
$NetBSD$
--- gcc/config/i386/sse.md.orig Sat Apr 16 07:53:39 2011
+++ gcc/config/i386/sse.md
@@ -354,18 +354,7 @@
DONE;
})
-(define_expand "avx_movup<avxmodesuffixf2c><avxmodesuffix>"
- [(set (match_operand:AVXMODEF2P 0 "nonimmediate_operand" "")
- (unspec:AVXMODEF2P
- [(match_operand:AVXMODEF2P 1 "nonimmediate_operand" "")]
- UNSPEC_MOVU))]
- "AVX_VEC_FLOAT_MODE_P (<MODE>mode)"
-{
- if (MEM_P (operands[0]) && MEM_P (operands[1]))
- operands[1] = force_reg (<MODE>mode, operands[1]);
-})
-
-(define_insn "*avx_movup<avxmodesuffixf2c><avxmodesuffix>"
+(define_insn "avx_movup<avxmodesuffixf2c><avxmodesuffix>"
[(set (match_operand:AVXMODEF2P 0 "nonimmediate_operand" "=x,m")
(unspec:AVXMODEF2P
[(match_operand:AVXMODEF2P 1 "nonimmediate_operand" "xm,x")]
@@ -391,18 +380,7 @@
(set_attr "prefix" "maybe_vex")
(set_attr "mode" "TI")])
-(define_expand "<sse>_movup<ssemodesuffixf2c>"
- [(set (match_operand:SSEMODEF2P 0 "nonimmediate_operand" "")
- (unspec:SSEMODEF2P
- [(match_operand:SSEMODEF2P 1 "nonimmediate_operand" "")]
- UNSPEC_MOVU))]
- "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
-{
- if (MEM_P (operands[0]) && MEM_P (operands[1]))
- operands[1] = force_reg (<MODE>mode, operands[1]);
-})
-
-(define_insn "*<sse>_movup<ssemodesuffixf2c>"
+(define_insn "<sse>_movup<ssemodesuffixf2c>"
[(set (match_operand:SSEMODEF2P 0 "nonimmediate_operand" "=x,m")
(unspec:SSEMODEF2P
[(match_operand:SSEMODEF2P 1 "nonimmediate_operand" "xm,x")]
@@ -414,18 +392,7 @@
(set_attr "movu" "1")
(set_attr "mode" "<MODE>")])
-(define_expand "avx_movdqu<avxmodesuffix>"
- [(set (match_operand:AVXMODEQI 0 "nonimmediate_operand" "")
- (unspec:AVXMODEQI
- [(match_operand:AVXMODEQI 1 "nonimmediate_operand" "")]
- UNSPEC_MOVU))]
- "TARGET_AVX"
-{
- if (MEM_P (operands[0]) && MEM_P (operands[1]))
- operands[1] = force_reg (<MODE>mode, operands[1]);
-})
-
-(define_insn "*avx_movdqu<avxmodesuffix>"
+(define_insn "avx_movdqu<avxmodesuffix>"
[(set (match_operand:AVXMODEQI 0 "nonimmediate_operand" "=x,m")
(unspec:AVXMODEQI
[(match_operand:AVXMODEQI 1 "nonimmediate_operand" "xm,x")]
@@ -437,17 +404,7 @@
(set_attr "prefix" "vex")
(set_attr "mode" "<avxvecmode>")])
-(define_expand "sse2_movdqu"
- [(set (match_operand:V16QI 0 "nonimmediate_operand" "")
- (unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "")]
- UNSPEC_MOVU))]
- "TARGET_SSE2"
-{
- if (MEM_P (operands[0]) && MEM_P (operands[1]))
- operands[1] = force_reg (V16QImode, operands[1]);
-})
-
-(define_insn "*sse2_movdqu"
+(define_insn "sse2_movdqu"
[(set (match_operand:V16QI 0 "nonimmediate_operand" "=x,m")
(unspec:V16QI [(match_operand:V16QI 1 "nonimmediate_operand" "xm,x")]
UNSPEC_MOVU))]
@@ -1268,15 +1225,15 @@
(parallel [(const_int 0)]))
(vec_select:DF (match_dup 1) (parallel [(const_int 1)])))
(plusminus:DF
- (vec_select:DF (match_dup 1) (parallel [(const_int 2)]))
- (vec_select:DF (match_dup 1) (parallel [(const_int 3)]))))
- (vec_concat:V2DF
- (plusminus:DF
(vec_select:DF
(match_operand:V4DF 2 "nonimmediate_operand" "xm")
(parallel [(const_int 0)]))
- (vec_select:DF (match_dup 2) (parallel [(const_int 1)])))
+ (vec_select:DF (match_dup 2) (parallel [(const_int 1)]))))
+ (vec_concat:V2DF
(plusminus:DF
+ (vec_select:DF (match_dup 1) (parallel [(const_int 2)]))
+ (vec_select:DF (match_dup 1) (parallel [(const_int 3)])))
+ (plusminus:DF
(vec_select:DF (match_dup 2) (parallel [(const_int 2)]))
(vec_select:DF (match_dup 2) (parallel [(const_int 3)]))))))]
"TARGET_AVX"
@@ -3904,7 +3861,7 @@
"TARGET_SSE"
{
if (!TARGET_AVX)
- operands[1] = force_reg (V4SFmode, operands[1]);
+ operands[1] = force_reg (SFmode, operands[1]);
})
(define_insn "*vec_dupv4sf_avx"
@@ -4551,15 +4508,14 @@
[(set (match_operand:V4DF 0 "register_operand" "=x,x")
(vec_select:V4DF
(vec_concat:V8DF
- (match_operand:V4DF 1 "nonimmediate_operand" "xm,x")
- (match_operand:V4DF 2 "nonimmediate_operand" " 1,xm"))
+ (match_operand:V4DF 1 "nonimmediate_operand" " x,m")
+ (match_operand:V4DF 2 "nonimmediate_operand" "xm,1"))
(parallel [(const_int 0) (const_int 4)
(const_int 2) (const_int 6)])))]
- "TARGET_AVX
- && (!MEM_P (operands[1]) || rtx_equal_p (operands[1], operands[2]))"
+ "TARGET_AVX"
"@
- vmovddup\t{%1, %0|%0, %1}
- vunpcklpd\t{%2, %1, %0|%0, %1, %2}"
+ vunpcklpd\t{%2, %1, %0|%0, %1, %2}
+ vmovddup\t{%1, %0|%0, %1}"
[(set_attr "type" "sselog")
(set_attr "prefix" "vex")
(set_attr "mode" "V4DF")])
@@ -4964,24 +4920,22 @@
;; Avoid combining registers from different units in a single alternative,
;; see comment above inline_secondary_memory_needed function in i386.c
(define_insn "sse2_loadhpd"
- [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,x,o,o,o")
+ [(set (match_operand:V2DF 0 "nonimmediate_operand" "=x,x,o,o,o")
(vec_concat:V2DF
(vec_select:DF
- (match_operand:V2DF 1 "nonimmediate_operand" " 0,0,x,0,0,0")
+ (match_operand:V2DF 1 "nonimmediate_operand" " 0,0,0,0,0")
(parallel [(const_int 0)]))
- (match_operand:DF 2 "nonimmediate_operand" " m,x,0,x,*f,r")))]
+ (match_operand:DF 2 "nonimmediate_operand" " m,x,x,*f,r")))]
"TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
"@
movhpd\t{%2, %0|%0, %2}
unpcklpd\t{%2, %0|%0, %2}
- shufpd\t{$1, %1, %0|%0, %1, 1}
#
#
#"
- [(set_attr "type" "ssemov,sselog,sselog,ssemov,fmov,imov")
- (set_attr "prefix_data16" "1,*,*,*,*,*")
- (set_attr "length_immediate" "*,*,1,*,*,*")
- (set_attr "mode" "V1DF,V2DF,V2DF,DF,DF,DF")])
+ [(set_attr "type" "ssemov,sselog,ssemov,fmov,imov")
+ (set_attr "prefix_data16" "1,*,*,*,*")
+ (set_attr "mode" "V1DF,V2DF,DF,DF,DF")])
(define_split
[(set (match_operand:V2DF 0 "memory_operand" "")
@@ -5137,6 +5091,16 @@
(set_attr "length_immediate" "*,*,*,1,*,*")
(set_attr "mode" "DF,V1DF,V1DF,V2DF,V1DF,V1DF")])
+(define_expand "vec_dupv2df"
+ [(set (match_operand:V2DF 0 "register_operand" "")
+ (vec_duplicate:V2DF
+ (match_operand:DF 1 "nonimmediate_operand" "")))]
+ "TARGET_SSE2"
+{
+ if (!TARGET_SSE3)
+ operands[1] = force_reg (DFmode, operands[1]);
+})
+
(define_insn "*vec_dupv2df_sse3"
[(set (match_operand:V2DF 0 "register_operand" "=x")
(vec_duplicate:V2DF
@@ -5147,7 +5111,7 @@
(set_attr "prefix" "maybe_vex")
(set_attr "mode" "DF")])
-(define_insn "vec_dupv2df"
+(define_insn "*vec_dupv2df"
[(set (match_operand:V2DF 0 "register_operand" "=x")
(vec_duplicate:V2DF
(match_operand:DF 1 "register_operand" "0")))]
@@ -7473,9 +7437,8 @@
"@
#
#
- %vmov{q}\t{%1, %0|%0, %1}"
+ mov{q}\t{%1, %0|%0, %1}"
[(set_attr "type" "*,*,imov")
- (set_attr "prefix" "*,*,maybe_vex")
(set_attr "mode" "*,*,DI")])
(define_insn "*sse2_storeq"
@@ -7513,11 +7476,11 @@
vmovhps\t{%1, %0|%0, %1}
vpsrldq\t{$8, %1, %0|%0, %1, 8}
vmovq\t{%H1, %0|%0, %H1}
- vmov{q}\t{%H1, %0|%0, %H1}"
+ mov{q}\t{%H1, %0|%0, %H1}"
[(set_attr "type" "ssemov,sseishft1,ssemov,imov")
(set_attr "length_immediate" "*,1,*,*")
(set_attr "memory" "*,none,*,*")
- (set_attr "prefix" "vex")
+ (set_attr "prefix" "vex,vex,vex,orig")
(set_attr "mode" "V2SF,TI,TI,DI")])
(define_insn "*vec_extractv2di_1_rex64"
@@ -7795,6 +7758,7 @@
(const_string "vex")))
(set_attr "mode" "TI,TI,TI,TI,TI,V2SF")])
+;; movd instead of movq is required to handle broken assemblers.
(define_insn "*vec_concatv2di_rex64_sse4_1"
[(set (match_operand:V2DI 0 "register_operand" "=x ,x ,Yi,!x,x,x,x")
(vec_concat:V2DI
@@ -7804,7 +7768,7 @@
"@
pinsrq\t{$0x1, %2, %0|%0, %2, 0x1}
movq\t{%1, %0|%0, %1}
- movq\t{%1, %0|%0, %1}
+ movd\t{%1, %0|%0, %1}
movq2dq\t{%1, %0|%0, %1}
punpcklqdq\t{%2, %0|%0, %2}
movlhps\t{%2, %0|%0, %2}
@@ -7815,6 +7779,7 @@
(set_attr "length_immediate" "1,*,*,*,*,*,*")
(set_attr "mode" "TI,TI,TI,TI,TI,V4SF,V2SF")])
+;; movd instead of movq is required to handle broken assemblers.
(define_insn "*vec_concatv2di_rex64_sse"
[(set (match_operand:V2DI 0 "register_operand" "=Y2 ,Yi,!Y2,Y2,x,x")
(vec_concat:V2DI
@@ -7823,7 +7788,7 @@
"TARGET_64BIT && TARGET_SSE"
"@
movq\t{%1, %0|%0, %1}
- movq\t{%1, %0|%0, %1}
+ movd\t{%1, %0|%0, %1}
movq2dq\t{%1, %0|%0, %1}
punpcklqdq\t{%2, %0|%0, %2}
movlhps\t{%2, %0|%0, %2}
@@ -10576,8 +10541,8 @@
[(set (match_operand:SSEMODE 0 "register_operand" "=x,x")
(if_then_else:SSEMODE
(match_operand:SSEMODE 3 "nonimmediate_operand" "x,m")
- (match_operand:SSEMODE 1 "vector_move_operand" "x,x")
- (match_operand:SSEMODE 2 "vector_move_operand" "xm,x")))]
+ (match_operand:SSEMODE 1 "register_operand" "x,x")
+ (match_operand:SSEMODE 2 "nonimmediate_operand" "xm,x")))]
"TARGET_XOP"
"vpcmov\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "sse4arg")])
@@ -10586,8 +10551,8 @@
[(set (match_operand:AVX256MODE 0 "register_operand" "=x,x")
(if_then_else:AVX256MODE
(match_operand:AVX256MODE 3 "nonimmediate_operand" "x,m")
- (match_operand:AVX256MODE 1 "vector_move_operand" "x,x")
- (match_operand:AVX256MODE 2 "vector_move_operand" "xm,x")))]
+ (match_operand:AVX256MODE 1 "register_operand" "x,x")
+ (match_operand:AVX256MODE 2 "nonimmediate_operand" "xm,x")))]
"TARGET_XOP"
"vpcmov\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "sse4arg")])
@@ -12136,8 +12101,7 @@
[(set (match_operand:AVXMODEF2P 0 "register_operand" "=x")
(unspec:AVXMODEF2P
[(match_operand:AVXMODEF2P 1 "memory_operand" "m")
- (match_operand:<avxpermvecmode> 2 "register_operand" "x")
- (match_dup 0)]
+ (match_operand:<avxpermvecmode> 2 "register_operand" "x")]
UNSPEC_MASKLOAD))]
"TARGET_AVX"
"vmaskmovp<avxmodesuffixf2c>\t{%1, %2, %0|%0, %2, %1}"

View File

@@ -0,0 +1,20 @@
$NetBSD$
--- gcc/config/i386/t-netbsd64.orig Wed May 21 19:48:54 2014
+++ gcc/config/i386/t-netbsd64
@@ -0,0 +1,15 @@
+# NetBSD has (will have) "non-native" libraries in /usr/lib/<arch>.
+# For NetBSD/amd64 we thus have /usr/lib and /usr/lib/i386.
+
+MULTILIB_OPTIONS = m64/m32
+MULTILIB_DIRNAMES = 64 32
+MULTILIB_OSDIRNAMES = . ../lib/i386
+
+LIBGCC = stmp-multilib
+INSTALL_LIBGCC = install-multilib
+
+# The pushl in CTOR initialization interferes with frame pointer elimination.
+# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables,
+# because then __FRAME_END__ might not be the last thing in .eh_frame
+# section.
+CRTSTUFF_T_CFLAGS += -fno-omit-frame-pointer -fno-asynchronous-unwind-tables

View File

@@ -0,0 +1,25 @@
$NetBSD$
--- gcc/config/i386/winnt-cxx.c.orig Wed Oct 7 02:57:21 2009
+++ gcc/config/i386/winnt-cxx.c
@@ -101,6 +101,20 @@ i386_pe_adjust_class_at_definition (tree t)
if (lookup_attribute ("dllexport", TYPE_ATTRIBUTES (t)) != NULL_TREE)
{
+ tree tmv = TYPE_MAIN_VARIANT (t);
+
+ /* Make sure that we set dllexport attribute to typeinfo's
+ base declaration, as otherwise it would fail to be exported as
+ it isn't a class-member. */
+ if (tmv != NULL_TREE
+ && CLASSTYPE_TYPEINFO_VAR (tmv) != NULL_TREE)
+ {
+ tree na, ti_decl = CLASSTYPE_TYPEINFO_VAR (tmv);
+ na = tree_cons (get_identifier ("dllexport"), NULL_TREE,
+ NULL_TREE);
+ decl_attributes (&ti_decl, na, 0);
+ }
+
/* Check static VAR_DECL's. */
for (member = TYPE_FIELDS (t); member; member = TREE_CHAIN (member))
if (TREE_CODE (member) == VAR_DECL)

View File

@@ -0,0 +1,16 @@
$NetBSD$
--- gcc/config/ia64/fde-glibc.c.orig Fri Aug 14 20:56:31 2009
+++ gcc/config/ia64/fde-glibc.c
@@ -34,9 +34,11 @@
#include <link.h>
#include "unwind-ia64.h"
+#if !defined(__NetBSD__)
#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2) \
|| (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && !defined(DT_CONFIG))
# error You need GLIBC 2.2.4 or later on IA-64 Linux
+#endif
#endif
struct unw_ia64_callback_data

Some files were not shown because too many files have changed in this diff Show More