head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.76 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.74 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.72 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.70 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.68 pkgsrc-2025Q1-base:1.1 pkgsrc-2024Q4:1.1.0.66 pkgsrc-2024Q4-base:1.1 pkgsrc-2024Q3:1.1.0.64 pkgsrc-2024Q3-base:1.1 pkgsrc-2024Q2:1.1.0.62 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.60 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.58 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.56 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.54 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.52 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.50 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.48 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.46 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.44 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.42 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.40 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.38 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.36 pkgsrc-2021Q1-base:1.1 pkgsrc-2020Q4:1.1.0.34 pkgsrc-2020Q4-base:1.1 pkgsrc-2020Q3:1.1.0.32 pkgsrc-2020Q3-base:1.1 pkgsrc-2020Q2:1.1.0.28 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.8 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.30 pkgsrc-2019Q4-base:1.1 pkgsrc-2019Q3:1.1.0.26 pkgsrc-2019Q3-base:1.1 pkgsrc-2019Q2:1.1.0.24 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.22 pkgsrc-2019Q1-base:1.1 pkgsrc-2018Q4:1.1.0.20 pkgsrc-2018Q4-base:1.1 pkgsrc-2018Q3:1.1.0.18 pkgsrc-2018Q3-base:1.1 pkgsrc-2018Q2:1.1.0.16 pkgsrc-2018Q2-base:1.1 pkgsrc-2018Q1:1.1.0.14 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.12 pkgsrc-2017Q4-base:1.1 pkgsrc-2017Q3:1.1.0.10 pkgsrc-2017Q3-base:1.1 pkgsrc-2017Q2:1.1.0.6 pkgsrc-2017Q2-base:1.1 pkgsrc-2017Q1:1.1.0.4 pkgsrc-2017Q1-base:1.1 pkgsrc-2016Q4:1.1.0.2 pkgsrc-2016Q4-base:1.1; locks; strict; comment @# @; 1.1 date 2016.12.13.01.19.20; author marino; state Exp; branches; next ; commitid 7fxwqLh0iwjXeLxz; desc @@ 1.1 log @Add lang/gcc6-aux to pkgsrc I had intended to migrate the ada framework to use gcc6-aux instead of lang/gcc5-aux, but unfortunately there's been a regression on NetBSD. It builds and tests perfectly on DragonFly and FreeBSD, but it only builds on NetBSD. All the ACAT tests that involve tasking fail, but the cause is unclear. All the modifications used on gcc5-aux for NetBSD are present in gcc6-aux but pthread destruction results in a segfault. Since then gcc5-aux support has been improved, so I'm putting this away for a while. NetBSD has been removed from the platform support list for now, but I'll review any patches I get to fix NetBSD tasking. This compiler is based on gcc 6.2 and is primarily used for the Ada frontend. @ text @--- gcc/config/dragonfly.h.orig +++ gcc/config/dragonfly.h @@@@ -84,7 +84,7 @@@@ } \ %{static:-Bstatic} \ } \ - %{!static:--hash-style=gnu} \ + %{!static:--hash-style=gnu -rpath @@PREFIX@@/@@GCCAUX@@/lib} \ %{symbolic:-Bsymbolic}" #undef LINK_SPEC --- gcc/config/i386/freebsd.h.orig +++ gcc/config/i386/freebsd.h @@@@ -77,6 +77,12 @@@@ When the -shared link option is used a final link is not being done. */ +#if FBSD_MAJOR < 10 +#define ELF_HASH_STYLE "--hash-style=both " +#else +#define ELF_HASH_STYLE "--hash-style=gnu " +#endif + #undef LINK_SPEC #define LINK_SPEC "\ %{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \ @@@@ -88,6 +94,7 @@@@ %{rdynamic:-export-dynamic} \ -dynamic-linker %(fbsd_dynamic_linker) } \ %{static:-Bstatic}} \ + %{!static:" ELF_HASH_STYLE "-rpath @@PREFIX@@/@@GCCAUX@@/lib} \ %{symbolic:-Bsymbolic}" /* A C statement to output to the stdio stream FILE an assembler --- gcc/config/i386/freebsd64.h.orig +++ gcc/config/i386/freebsd64.h @@@@ -41,4 +41,5 @@@@ %{rdynamic:-export-dynamic} \ -dynamic-linker %(fbsd_dynamic_linker) } \ %{static:-Bstatic}} \ + %{!static:" ELF_HASH_STYLE "-rpath @@PREFIX@@/@@GCCAUX@@/lib} \ %{symbolic:-Bsymbolic}" --- gcc/config/netbsd-elf.h.orig +++ gcc/config/netbsd-elf.h @@@@ -71,6 +71,7 @@@@ "%{assert*} %{R*} %{rpath*} \ %{shared:-shared} \ %{symbolic:-Bsymbolic} \ + %{!static:-rpath @@PREFIX@@/@@GCCAUX@@/lib} \ %{!shared: \ -dc -dp \ %{!nostdlib: \ @@@@ -85,3 +86,10 @@@@ #ifdef HAVE_LD_AS_NEEDED #define USE_LD_AS_NEEDED 1 #endif + +/* Define this to be nonzero if static stack checking is supported. */ +#define STACK_CHECK_STATIC_BUILTIN 1 + +#if defined(HAVE_LD_EH_FRAME_HDR) +#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " +#endif --- gcc/config.gcc.orig +++ gcc/config.gcc @@@@ -1445,12 +1445,16 @@@@ 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" ;; 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 freebsd-stdint.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" + tmake_file="${tmake_file} i386/t-crtstuff" + use_gcc_stdint=wrap ;; 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 freebsd-stdint.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" + tmake_file="${tmake_file} i386/t-crtstuff" + use_gcc_stdint=wrap ;; i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123]) tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h" --- gcc/configure.orig +++ gcc/configure @@@@ -28658,6 +28658,13 @@@@ *-linux-musl*) gcc_cv_target_dl_iterate_phdr=yes ;; + *-*-netbsd*) + if grep dl_iterate_phdr $target_header_dir/link_elf.h > /dev/null 2>&1; then + gcc_cv_target_dl_iterate_phdr=yes + else + gcc_cv_target_dl_iterate_phdr=no + fi + ;; esac if test x$gcc_cv_target_dl_iterate_phdr = xyes; then --- libgcc/crtstuff.c.orig +++ libgcc/crtstuff.c @@@@ -81,7 +81,7 @@@@ #endif #if defined(TARGET_DL_ITERATE_PHDR) && \ - (defined(__DragonFly__) || defined(__FreeBSD__)) + (defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__)) #define BSD_DL_ITERATE_PHDR_AVAILABLE #endif --- libgcc/unwind-dw2-fde-dip.c.orig +++ libgcc/unwind-dw2-fde-dip.c @@@@ -71,6 +71,12 @@@@ #endif #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ + && defined(TARGET_DL_ITERATE_PHDR) && defined(__NetBSD__) +# define ElfW(type) Elf_##type +# define USE_PT_GNU_EH_FRAME +#endif + +#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ && defined(__OpenBSD__) # define ElfW(type) Elf_##type # define USE_PT_GNU_EH_FRAME --- libgcc/config.host.orig +++ libgcc/config.host @@@@ -242,7 +242,8 @@@@ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" ;; *-*-netbsd*) - tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver" + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip" + tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver" # NetBSD 1.7 and later are set up to use GCC's crtstuff for # ELF configurations. We will clear extra_parts in the # a.out configurations. @@@@ -597,9 +598,12 @@@@ md_unwind_header=i386/freebsd-unwind.h ;; i[34567]86-*-netbsdelf*) + tmake_file="${tmake_file} i386/t-crtstuff" + #md_unwind_header=i386/netbsd-unwind.h ;; x86_64-*-netbsd*) tmake_file="${tmake_file} i386/t-crtstuff" + #md_unwind_header=i386/netbsd-unwind.h ;; i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123]) ;; --- gcc/Makefile.in.orig +++ gcc/Makefile.in @@@@ -1185,7 +1185,6 @@@@ insn-emit.o \ insn-extract.o \ insn-latencytab.o \ - insn-modes.o \ insn-opinit.o \ insn-output.o \ insn-peep.o \ @@@@ -1557,6 +1556,7 @@@@ $(OBJS-libcommon-target) main.o c-family/cppspec.o \ $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \ $(GCOV_TOOL_OBJS) $(GENGTYPE_OBJS) gcc-ar.o gcc-nm.o gcc-ranlib.o \ + insn-modes.o insn-modes-ada.o \ lto-wrapper.o collect-utils.o # This lists all host object files, whether they are included in this @@@@ -1564,6 +1564,11 @@@@ ALL_HOST_OBJS = $(ALL_HOST_FRONTEND_OBJS) $(ALL_HOST_BACKEND_OBJS) BACKEND = libbackend.a main.o libcommon-target.a libcommon.a \ + insn-modes.o \ + $(CPPLIB) $(LIBDECNUMBER) + +BACKEND2 = libbackend.a main.o libcommon-target.a libcommon.a \ + insn-modes-ada.o \ $(CPPLIB) $(LIBDECNUMBER) # This is defined to "yes" if Tree checking is enabled, which roughly means @@@@ -2218,6 +2223,7 @@@@ insn-modes.c: s-modes; @@true insn-modes.h: s-modes-h; @@true +insn-modes-ada.c: s-modes-ada; @@true min-insn-modes.c: s-modes-m; @@true s-modes: build/genmodes$(build_exeext) @@@@ -2235,6 +2241,12 @@@@ $(SHELL) $(srcdir)/../move-if-change tmp-min-modes.c min-insn-modes.c $(STAMP) s-modes-m +s-modes-ada: s-modes + $(shell sed -e 's/: TARGET_96_ROUND_53_LONG_DOUBLE \? &ieee_extended_intel_96_round_53_format //' \ + < insn-modes.c > tmp-modes-ada.c) + $(SHELL) $(srcdir)/../move-if-change tmp-modes-ada.c insn-modes-ada.c + $(STAMP) s-modes-ada + insn-preds.c: s-preds; @@true tm-preds.h: s-preds-h; @@true tm-constrs.h: s-constrs-h; @@true @@@@ -3420,6 +3432,9 @@@@ ( cd $(DESTDIR)$(bindir) && \ $(LN) $(GCC_INSTALL_NAME)$(exeext) $(FULL_DRIVER_NAME) ); \ fi; \ + if [ -f gnat1$(exeext) ] ; then \ + ( cd $(DESTDIR)$(bindir) && $(LN) $(GCC_INSTALL_NAME)$(exeext) ada$(exeext) ) \ + fi; \ if [ ! -f gcc-cross$(exeext) ] \ && [ "$(GCC_INSTALL_NAME)" != "$(GCC_TARGET_INSTALL_NAME)" ]; then \ rm -f $(DESTDIR)$(bindir)/$(target_noncanonical)-gcc-tmp$(exeext); \ @