1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-19 19:59:43 +00:00

lang/gcc-aux: Bring in latest diffs-*

I should have done this when I bumped the port port earlier.  A few
of the changes to the diff-* files directly affect FreeBSD although
most are results of other platforms (NetBSD, OpenBSD mainly)

The most invasive change was exchanging strcpy and printf for their
"n" versions.  It was to make OpenBSD happy but the code is better
for it.
This commit is contained in:
John Marino 2014-05-13 21:19:35 +00:00
parent 54c0e53208
commit 2ba2db697e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=353999
6 changed files with 298 additions and 117 deletions

View File

@ -4,7 +4,7 @@ GCC_BRANCH= 4.9
GCC_POINT= 0
GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
SNAPSHOT= 20140422
MAIN_PR= 1
MAIN_PR= 2
ARMV5_PR= 0
ARMV7_PR= 0

View File

@ -445,15 +445,40 @@
+end Ada.Interrupts.Names;
--- gcc/ada/adaint.c.orig
+++ gcc/ada/adaint.c
@@ -1144,6 +1144,7 @@
strcpy (path, "GNAT-XXXXXX");
@@ -577,8 +577,8 @@
GNAT_STRUCT_STAT stat_result;
int fd;
- sprintf (full_path, "%s%c%s", dir, DIR_SEPARATOR, file);
- sprintf (temp_file, "%s%cTMP-%ld-%ld",
+ snprintf (full_path, 256, "%s%c%s", dir, DIR_SEPARATOR, file);
+ snprintf (temp_file, 256, "%s%cTMP-%ld-%ld",
dir, DIR_SEPARATOR, (long)getpid(), (long)getppid ());
/* Create the temporary file and write the process number. */
@@ -745,7 +745,8 @@
strcpy (encoding, "encoding=utf8");
*e_length = strlen (encoding);
#else
- strcpy (os_name, filename);
+ /* o_length is initialized with max os_name size (2x filename size) */
+ strncpy (os_name, filename, *o_length);
*o_length = strlen (filename);
*e_length = 0;
#endif
@@ -1141,9 +1142,10 @@
int fd;
int o_fmode = O_BINARY;
- strcpy (path, "GNAT-XXXXXX");
+ strncpy (path, "GNAT-XXXXXX", 12);
#if (defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) \
+ || defined (__DragonFly__) \
|| defined (linux) || defined(__GLIBC__)) && !defined (__vxworks)
return mkstemp (path);
#elif defined (__Lynx__)
@@ -1310,7 +1311,49 @@
@@ -1310,7 +1312,49 @@
free (pname);
}
@ -471,9 +496,9 @@
+ char *datadir = getenv ("ANDROID_DATA");
+
+ if (datadir == NULL)
+ strcpy (tmp_filename, "/data/local/tmp/gnat-XXXXXX");
+ strncpy (tmp_filename, "/data/local/tmp/gnat-XXXXXX", L_tmpnam);
+ else
+ sprintf (tmp_filename, "%s/local/tmp/gnat-XXXXXX", datadir);
+ snprintf (tmp_filename, L_tmpnam, "%s/local/tmp/gnat-XXXXXX", datadir);
+
+ testfd = mkstemp (tmp_filename);
+ if (testfd != -1)
@ -485,9 +510,9 @@
+ char *sdcard = getenv ("EXTERNAL_STORAGE");
+
+ if (sdcard == NULL)
+ strcpy (tmp_filename, "/sdcard/gnat-XXXXXX");
+ strncpy (tmp_filename, "/sdcard/gnat-XXXXXX", L_tmpnam);
+ else
+ sprintf (tmp_filename, "%s/gnat-XXXXXX", sdcard);
+ snprintf (tmp_filename, L_tmpnam, "%s/gnat-XXXXXX", sdcard);
+
+ testfd = mkstemp (tmp_filename);
+ if (testfd != -1)
@ -503,7 +528,19 @@
|| defined (__OpenBSD__) || defined(__GLIBC__)
#define MAX_SAFE_PATH 1000
char *tmpdir = getenv ("TMPDIR");
@@ -2562,7 +2605,9 @@
@@ -1318,9 +1362,9 @@
/* If tmpdir is longer than MAX_SAFE_PATH, revert to default value to avoid
a buffer overflow. */
if (tmpdir == NULL || strlen (tmpdir) > MAX_SAFE_PATH)
- strcpy (tmp_filename, "/tmp/gnat-XXXXXX");
+ strncpy (tmp_filename, "/tmp/gnat-XXXXXX", L_tmpnam);
else
- sprintf (tmp_filename, "%s/gnat-XXXXXX", tmpdir);
+ snprintf (tmp_filename, L_tmpnam, "%s/gnat-XXXXXX", tmpdir);
close (mkstemp(tmp_filename));
#elif defined (__vxworks) && !(defined (__RTP__) || defined (VTHREADS))
@@ -2562,7 +2606,9 @@
{
int cores = 1;
@ -514,7 +551,7 @@
cores = (int) sysconf (_SC_NPROCESSORS_ONLN);
#elif defined (__hpux__)
@@ -3608,35 +3653,6 @@
@@ -3608,35 +3654,6 @@
}
#endif
@ -5725,7 +5762,7 @@
+end System.OS_Interface;
--- /dev/null
+++ gcc/ada/s-osinte-openbsd.ads
@@ -0,0 +1,648 @@
@@ -0,0 +1,640 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
@ -5774,7 +5811,7 @@
+package System.OS_Interface is
+ pragma Preelaborate;
+
+ pragma Linker_Options ("-pthread");
+ pragma Linker_Options ("-lpthread");
+
+ subtype int is Interfaces.C.int;
+ subtype short is Interfaces.C.short;
@ -5883,21 +5920,13 @@
+ -- sigcontext is architecture dependent, so define it private
+ type struct_sigcontext is private;
+
+ type old_struct_sigaction is record
+ type struct_sigaction is record
+ sa_handler : System.Address;
+ sa_mask : sigset_t;
+ sa_flags : int;
+ end record;
+ pragma Convention (C, old_struct_sigaction);
+ pragma Convention (C, struct_sigaction);
+
+ type new_struct_sigaction is record
+ sa_handler : System.Address;
+ sa_flags : int;
+ sa_mask : sigset_t;
+ end record;
+ pragma Convention (C, new_struct_sigaction);
+
+ subtype struct_sigaction is new_struct_sigaction;
+ type struct_sigaction_ptr is access all struct_sigaction;
+
+ SIG_BLOCK : constant := 1;
@ -5948,9 +5977,6 @@
+ end record;
+ pragma Convention (C, struct_timezone);
+
+ procedure usleep (useconds : unsigned_long);
+ pragma Import (C, usleep, "usleep");
+
+ -------------------------
+ -- Priority Scheduling --
+ -------------------------
@ -5969,6 +5995,8 @@
+
+ type pid_t is private;
+
+ Self_PID : constant pid_t;
+
+ function kill (pid : pid_t; sig : Signal) return int;
+ pragma Import (C, kill, "kill");
+
@ -6356,6 +6384,7 @@
+ pragma Convention (C, struct_sigcontext);
+
+ type pid_t is new int;
+ Self_PID : constant pid_t := 0;
+
+ type time_t is new int;
+
@ -6994,7 +7023,7 @@
|| defined (__GLIBC__) || defined (__APPLE__)
eof_ch = termios_rec.c_cc[VEOF];
@@ -853,8 +856,11 @@
@@ -853,8 +856,12 @@
/* Darwin, Free BSD, Linux, where component tm_gmtoff is present in
struct tm */
@ -7003,6 +7032,7 @@
+#elif defined (__APPLE__) \
+ || defined (__DragonFly__) \
+ || defined (__FreeBSD__) \
+ || defined (__OpenBSD__) \
+ || defined (linux) \
+ || defined (__GLIBC__)
{
@ -7010,7 +7040,7 @@
*off = tp.tm_gmtoff;
--- /dev/null
+++ gcc/ada/system-dragonfly-x86.ads
@@ -0,0 +1,143 @@
@@ -0,0 +1,144 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
@ -7145,6 +7175,7 @@
+ Stack_Check_Probes : constant Boolean := True;
+ Stack_Check_Limits : constant Boolean := False;
+ Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
+ Support_Composite_Assign : constant Boolean := True;
+ Support_Composite_Compare : constant Boolean := True;
+ Support_Long_Shifts : constant Boolean := True;
@ -7156,7 +7187,7 @@
+end System;
--- /dev/null
+++ gcc/ada/system-dragonfly-x86_64.ads
@@ -0,0 +1,143 @@
@@ -0,0 +1,144 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
@ -7291,6 +7322,7 @@
+ Stack_Check_Probes : constant Boolean := True;
+ Stack_Check_Limits : constant Boolean := False;
+ Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
+ Support_Composite_Assign : constant Boolean := True;
+ Support_Composite_Compare : constant Boolean := True;
+ Support_Long_Shifts : constant Boolean := True;
@ -7302,7 +7334,7 @@
+end System;
--- /dev/null
+++ gcc/ada/system-netbsd-x86.ads
@@ -0,0 +1,143 @@
@@ -0,0 +1,144 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
@ -7437,6 +7469,7 @@
+ Stack_Check_Probes : constant Boolean := True;
+ Stack_Check_Limits : constant Boolean := False;
+ Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
+ Support_Composite_Assign : constant Boolean := True;
+ Support_Composite_Compare : constant Boolean := True;
+ Support_Long_Shifts : constant Boolean := True;
@ -7448,7 +7481,7 @@
+end System;
--- /dev/null
+++ gcc/ada/system-netbsd-x86_64.ads
@@ -0,0 +1,143 @@
@@ -0,0 +1,144 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
@ -7583,6 +7616,7 @@
+ Stack_Check_Probes : constant Boolean := True;
+ Stack_Check_Limits : constant Boolean := False;
+ Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
+ Support_Composite_Assign : constant Boolean := True;
+ Support_Composite_Compare : constant Boolean := True;
+ Support_Long_Shifts : constant Boolean := True;
@ -7594,7 +7628,7 @@
+end System;
--- /dev/null
+++ gcc/ada/system-openbsd-x86.ads
@@ -0,0 +1,143 @@
@@ -0,0 +1,144 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
@ -7604,7 +7638,7 @@
+-- S p e c --
+-- (OpenBSD/x86 Version) --
+-- --
+-- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
@ -7729,10 +7763,11 @@
+ Stack_Check_Probes : constant Boolean := True;
+ Stack_Check_Limits : constant Boolean := False;
+ Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
+ Support_Composite_Assign : constant Boolean := True;
+ Support_Composite_Compare : constant Boolean := True;
+ Support_Long_Shifts : constant Boolean := True;
+ Always_Compatible_Rep : constant Boolean := True;
+ Always_Compatible_Rep : constant Boolean := False;
+ Suppress_Standard_Library : constant Boolean := False;
+ Use_Ada_Main_Program_Name : constant Boolean := False;
+ ZCX_By_Default : constant Boolean := False;
@ -7740,7 +7775,7 @@
+end System;
--- /dev/null
+++ gcc/ada/system-openbsd-x86_64.ads
@@ -0,0 +1,143 @@
@@ -0,0 +1,144 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
@ -7748,9 +7783,9 @@
+-- S Y S T E M --
+-- --
+-- S p e c --
+-- (OpenBSD/x86_64 Version) --
+-- (OpenBSD/x86_64 Version) --
+-- --
+-- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
@ -7875,10 +7910,11 @@
+ Stack_Check_Probes : constant Boolean := True;
+ Stack_Check_Limits : constant Boolean := False;
+ Support_Aggregates : constant Boolean := True;
+ Support_Atomic_Primitives : constant Boolean := True;
+ Support_Composite_Assign : constant Boolean := True;
+ Support_Composite_Compare : constant Boolean := True;
+ Support_Long_Shifts : constant Boolean := True;
+ Always_Compatible_Rep : constant Boolean := True;
+ Always_Compatible_Rep : constant Boolean := False;
+ Suppress_Standard_Library : constant Boolean := False;
+ Use_Ada_Main_Program_Name : constant Boolean := False;
+ ZCX_By_Default : constant Boolean := False;
@ -8367,7 +8403,7 @@
+
+ EH_MECHANISM=
+ THREADSLIB= -lpthread
+ GMEM_LIB =
+ GMEM_LIB = gmemlib
+ LIBRARY_VERSION := $(LIB_VERSION)
+ MISCLIB = -lutil
+endif
@ -8400,7 +8436,7 @@
+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
+ EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
+
+ EH_MECHANISM=-gcc
+ EH_MECHANISM=
+ THREADSLIB= -lpthread
+ GMEM_LIB = gmemlib
+ LIBRARY_VERSION := $(LIB_VERSION)

View File

@ -1,3 +1,7 @@
--- gcc/DEV-PHASE.orig
+++ gcc/DEV-PHASE
@@ -0,0 +1 @@
+release
--- /dev/null
+++ gcc/config/dragonfly-stdint.h
@@ -0,0 +1,56 @@
@ -323,6 +327,62 @@
+
+#define INTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "int")
+#define UINTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "unsigned int")
--- gcc/config/openbsd-libpthread.h.orig
+++ gcc/config/openbsd-libpthread.h
@@ -18,5 +18,5 @@
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
-#define OBSD_LIB_SPEC "%{!shared:%{pthread:-lpthread} -lc}"
+#define OBSD_LIB_SPEC "%{pthread:-lpthread%{!shared:%{p|pg:_p}}} %{!shared:-lc%{p:_p}%{!p:%{pg:_p}}}"
--- gcc/config/openbsd.h.orig
+++ gcc/config/openbsd.h
@@ -108,9 +108,9 @@
This two-stage defines makes it easy to pick that for targets that
have subspecs. */
#ifdef CPP_CPU_SPEC
-#define OBSD_CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
+#define OBSD_CPP_SPEC "%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
#else
-#define OBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
+#define OBSD_CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
#endif
#undef LIB_SPEC
@@ -143,6 +143,9 @@
#define LIB_SPEC OBSD_LIB_SPEC
#endif
+#undef LINK_PIE_SPEC
+#define LINK_PIE_SPEC "%{pie:-pie} %{p|pg|nopie:-nopie} "
+
#define TARGET_POSIX_IO
/* All new versions of OpenBSD have C99 functions. We redefine this hook
@@ -285,5 +288,12 @@
/* Storage layout. */
+/* Silence "unsafe GNU crap" messages */
+#define NO_UNSAFE_BUILTINS
+
+/* The system headers on OpenBSD are C++-aware. */
+#undef NO_IMPLICIT_EXTERN_C
+#define NO_IMPLICIT_EXTERN_C
+
#define HAVE_ENABLE_EXECUTE_STACK
--- gcc/config/openbsd.opt.orig
+++ gcc/config/openbsd.opt
@@ -32,4 +32,7 @@
pthread
Driver
+rdynamic
+Driver
+
; This comment is to ensure we retain the blank line above.
--- /dev/null
+++ gcc/config/i386/dragonfly.h
@@ -0,0 +1,105 @@
@ -505,9 +565,49 @@
+#if defined(HAVE_LD_EH_FRAME_HDR)
+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
+#endif
--- gcc/config/i386/openbsd.h.orig
+++ gcc/config/i386/openbsd.h
@@ -38,10 +38,10 @@
/* This must agree with <machine/ansi.h> */
#undef SIZE_TYPE
-#define SIZE_TYPE "unsigned int"
+#define SIZE_TYPE "long unsigned int"
#undef PTRDIFF_TYPE
-#define PTRDIFF_TYPE "int"
+#define PTRDIFF_TYPE "long int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
@@ -49,6 +49,9 @@
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
+#undef WINT_TYPE
+#define WINT_TYPE "int"
+
/* Assembler format: overall framework. */
#undef ASM_APP_ON
--- gcc/config/i386/openbsdelf.h.orig
+++ gcc/config/i386/openbsdelf.h
@@ -97,9 +97,12 @@
%{shared:-shared} %{R*} \
%{static:-Bstatic} \
%{!static:-Bdynamic} \
+ %{rdynamic:-export-dynamic} \
%{assert*} \
-dynamic-linker /usr/libexec/ld.so"
+#define SUBTARGET32_DEFAULT_CPU "i486"
+
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "\
%{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
--- gcc/ginclude/stddef.h.orig
+++ gcc/ginclude/stddef.h
@@ -50,12 +50,21 @@
@@ -50,6 +50,11 @@
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>
@ -519,17 +619,7 @@
#endif
/* On FreeBSD 5, machine/ansi.h does not exist anymore... */
#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
#include <sys/_types.h>
#endif
+#if defined(__DragonFly__)
+#include <sys/types.h>
+#endif
+
/* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
defined if the corresponding type is *not* defined.
FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
@@ -133,6 +142,7 @@
@@ -133,6 +138,7 @@
#ifndef _BSD_PTRDIFF_T_
#ifndef ___int_ptrdiff_t_h
#ifndef _GCC_PTRDIFF_T
@ -537,7 +627,7 @@
#define _PTRDIFF_T
#define _T_PTRDIFF_
#define _T_PTRDIFF
@@ -141,10 +151,12 @@
@@ -141,10 +147,12 @@
#define _BSD_PTRDIFF_T_
#define ___int_ptrdiff_t_h
#define _GCC_PTRDIFF_T
@ -550,7 +640,7 @@
#endif /* _GCC_PTRDIFF_T */
#endif /* ___int_ptrdiff_t_h */
#endif /* _BSD_PTRDIFF_T_ */
@@ -198,6 +210,7 @@
@@ -198,6 +206,7 @@
#define _GCC_SIZE_T
#define _SIZET_
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
@ -558,15 +648,6 @@
|| defined(__FreeBSD_kernel__)
/* __size_t is a typedef on FreeBSD 5, must not trash it. */
#elif defined (__VMS__)
@@ -306,7 +319,7 @@
/* FreeBSD 5 can't be handled well using "traditional" logic above
since it no longer defines _BSD_RUNE_T_ yet still desires to export
rune_t in some cases... */
-#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
+#if defined (__DragonFly__) || (defined (__FreeBSD__) && (__FreeBSD__ >= 5))
#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
#if __BSD_VISIBLE
#ifndef _RUNE_T_DECLARED
--- include/libiberty.h.orig
+++ include/libiberty.h
@@ -106,7 +106,16 @@
@ -1257,6 +1338,60 @@
#endif
+#endif
}
--- gcc/builtins.c.orig
+++ gcc/builtins.c
@@ -125,9 +125,11 @@
static rtx expand_builtin_mempcpy (tree, rtx, enum machine_mode);
static rtx expand_builtin_mempcpy_args (tree, tree, tree, rtx,
enum machine_mode, int);
+#ifndef NO_UNSAFE_BUILTINS
static rtx expand_builtin_strcpy (tree, rtx);
static rtx expand_builtin_strcpy_args (tree, tree, rtx);
static rtx expand_builtin_stpcpy (tree, rtx, enum machine_mode);
+#endif
static rtx expand_builtin_strncpy (tree, rtx);
static rtx builtin_memset_gen_str (void *, HOST_WIDE_INT, enum machine_mode);
static rtx expand_builtin_memset (tree, rtx, enum machine_mode);
@@ -3370,6 +3372,7 @@
# define CODE_FOR_movstr CODE_FOR_nothing
#endif
+#ifndef NO_UNSAFE_BUILTINS
/* Expand into a movstr instruction, if one is available. Return NULL_RTX if
we failed, the caller should emit a normal call, otherwise try to
get the result in TARGET, if convenient. If ENDP is 0 return the
@@ -3521,6 +3524,7 @@
return expand_movstr (dst, src, target, /*endp=*/2);
}
}
+#endif
/* Callback routine for store_by_pieces. Read GET_MODE_BITSIZE (MODE)
bytes from constant string DATA + OFFSET and return it as target
@@ -6140,9 +6144,11 @@
break;
case BUILT_IN_STRCPY:
+#ifndef NO_UNSAFE_BUILTINS
target = expand_builtin_strcpy (exp, target);
if (target)
return target;
+#endif
break;
case BUILT_IN_STRNCPY:
@@ -6152,9 +6158,11 @@
break;
case BUILT_IN_STPCPY:
+#ifndef NO_UNSAFE_BUILTINS
target = expand_builtin_stpcpy (exp, target, mode);
if (target)
return target;
+#endif
break;
case BUILT_IN_MEMCPY:
--- gcc/config.gcc.orig
+++ gcc/config.gcc
@@ -687,6 +687,26 @@
@ -1326,7 +1461,36 @@
;;
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"
@@ -4109,6 +4140,8 @@
@@ -1375,6 +1406,7 @@
use_collect2=yes
;;
i[34567]86-*-openbsd*)
+ tm_defines="${tm_defines} PIE_DEFAULT=1"
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
extra_options="${extra_options} openbsd.opt"
@@ -1382,6 +1414,7 @@
gnu_ld=yes
;;
x86_64-*-openbsd*)
+ tm_defines="${tm_defines} PIE_DEFAULT=1"
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
extra_options="${extra_options} openbsd.opt"
@@ -2927,6 +2960,12 @@
arch_without_sse2=yes
arch_without_64bit=yes
;;
+ i386-*-openbsd*)
+ arch=i486
+ cpu=generic
+ arch_without_sse2=yes
+ arch_without_64bit=yes
+ ;;
i386-*-*)
arch=i386
cpu=i386
@@ -4109,6 +4148,8 @@
;;
i[34567]86-*-mingw* | x86_64-*-mingw*)
;;
@ -1348,13 +1512,13 @@
+ gcc_cv_target_dl_iterate_phdr=no
+ fi
+ ;;
+# *-*-netbsd* | *-*-openbsd*)
+# 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
+# ;;
+ *-*-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
@ -1495,29 +1659,38 @@
tmake_file="${tmake_file} t-softfp-tf"
--- libcilkrts/runtime/os-unix.c.orig
+++ libcilkrts/runtime/os-unix.c
@@ -56,6 +56,8 @@
@@ -56,6 +56,12 @@
// Uses sysconf(_SC_NPROCESSORS_ONLN) in verbose output
#elif defined __FreeBSD__
// No additional include files
+#elif defined __DragonFly__
+// No additional include files
+#elif defined __NetBSD__
+// No additional include files
+#elif defined __OpenBSD__
+// No additional include files
#elif defined __CYGWIN__
// Cygwin on Windows - no additional include files
#elif defined __VXWORKS__
@@ -374,7 +376,7 @@
@@ -374,7 +380,8 @@
assert((unsigned)count == count);
return count;
-#elif defined __FreeBSD__ || defined __CYGWIN__
+#elif defined __FreeBSD__ || defined __CYGWIN__ || defined __DragonFly__
+#elif defined __FreeBSD__ || defined __CYGWIN__ || defined __DragonFly__ \
+ || defined __NetBSD__ || defined __OpenBSD__
int ncores = sysconf(_SC_NPROCESSORS_ONLN);
return ncores;
@@ -402,6 +404,8 @@
@@ -402,6 +409,12 @@
// On MacOS, call sched_yield to yield quantum. I'm not sure why we
// don't do this on Linux also.
sched_yield();
+#elif defined(__DragonFly__)
+ sched_yield();
+#elif defined(__NetBSD__)
+ sched_yield();
+#elif defined(__OpenBSD__)
+ sched_yield();
#elif defined(__MIC__)
// On MIC, pthread_yield() really trashes things. Arch's measurements

View File

@ -1049,6 +1049,21 @@
return __high;
}
--- libstdc++-v3/config/os/bsd/openbsd/os_defines.h.orig
+++ libstdc++-v3/config/os/bsd/openbsd/os_defines.h
@@ -38,4 +38,12 @@
#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC _GLIBCXX_USE_C99_DYNAMIC
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC _GLIBCXX_USE_C99_DYNAMIC
+/* max_align_t is defined in ginclude/stddef.h which OpenBSD intentionally
+ excludes. Bringing the definition here fixes the libstdc++ build. */
+
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+} max_align_t;
+
#endif
--- libstdc++-v3/acinclude.m4.orig
+++ libstdc++-v3/acinclude.m4
@@ -1989,6 +1989,9 @@

View File

@ -40,26 +40,3 @@
$as_echo "#define GTHREAD_USE_WEAK 0" >>confdefs.h
--- libquadmath/Makefile.in.orig
+++ libquadmath/Makefile.in
@@ -402,10 +402,9 @@
# AM_CONDITIONAL on configure option --generated-files-in-srcdir
@BUILD_LIBQUADMATH_TRUE@@GENINSRC_TRUE@STAMP_GENINSRC = stamp-geninsrc
-@BUILD_INFO_FALSE@@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO =
+@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO =
# AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
-@BUILD_INFO_TRUE@@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO = stamp-build-info
@BUILD_LIBQUADMATH_TRUE@CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libquadmath.info
@BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info
@@ -1300,7 +1299,7 @@
info-am: $(INFO_DEPS)
-install-data-am: install-info-am install-nodist_libsubincludeHEADERS
+install-data-am: install-nodist_libsubincludeHEADERS
install-dvi: install-dvi-am

View File

@ -1,23 +1,3 @@
--- gcc/testsuite/gfortran.dg/large_real_kind_2.F90.orig
+++ gcc/testsuite/gfortran.dg/large_real_kind_2.F90
@@ -1,6 +1,6 @@
! { dg-do run }
! { dg-require-effective-target fortran_large_real }
-! { dg-xfail-if "" { "*-*-freebsd*" } { "*" } { "" } }
+! { dg-skip-if "Requires cpowl,coshl,sinhl,tanhl,acoshl,asinhl,atanhl,expl,logl,ccosl,csinl,cexpl,clogl" { "x86_64-*-freebsd* x86_64-*-dragonfly* x86_64-*-netbsd*" } { "*" } { "" } }
! Testing library calls on large real kinds (larger than kind=8)
implicit none
--- gcc/testsuite/gfortran.dg/large_real_kind_3.F90.orig
+++ gcc/testsuite/gfortran.dg/large_real_kind_3.F90
@@ -1,6 +1,6 @@
! { dg-do run }
! { dg-require-effective-target fortran_large_real }
-! { dg-xfail-if "" { "*-*-freebsd*" } { "*" } { "" } }
+! { dg-skip-if "Requires erfl,erfcl with -O0" { "x86_64-*-freebsd* x86_64-*-dragonfly* x86_64-*-netbsd*" } { "-O0" } { "" } }
! Testing erf and erfc library calls on large real kinds (larger than kind=8)
implicit none
--- gcc/testsuite/gfortran.dg/open_errors.f90.orig
+++ gcc/testsuite/gfortran.dg/open_errors.f90
@@ -22,7 +22,7 @@