$OpenBSD: patch-gcc_config_gcc,v 1.6 2013/01/16 19:28:48 pascal Exp $ --- gcc/config.gcc.orig Fri Jul 22 18:44:50 2011 +++ gcc/config.gcc Mon Jan 14 13:04:31 2013 @@ -668,6 +668,14 @@ case ${target} in *-*-openbsd2.*|*-*-openbsd3.[012]) tm_defines="${tm_defines} HAS_LIBC_R=1" ;; esac + case ${target} in + *-*-openbsd[0-3].*|*-*-openbsd4.[012]) + # keep default of no cxa_atexit support for these older releases + ;; + *) + default_use_cxa_atexit=yes + ;; + esac ;; *-*-rtems*) case ${enable_threads} in @@ -1053,10 +1061,14 @@ hppa*-*-linux*) tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" fi ;; -# port not yet contributed. -#hppa*-*-openbsd*) -# target_cpu_default="MASK_PA_11" -# ;; +hppa*-*-openbsd*) + target_cpu_default="MASK_PA_11" + tm_defines="${tm_defines} PIE_DEFAULT=1" + tm_file="${tm_file} dbxelf.h elfos.h openbsd-libpthread.h \ + pa/pa32-regs.h pa/openbsd.h openbsd.h" + tmake_file="${tmake_file} pa/t-openbsd" + extra_options="${extra_options} openbsd.opt" + ;; hppa[12]*-*-hpux10*) case ${target} in hppa1.1-*-* | hppa2*-*-*) @@ -1250,6 +1262,12 @@ i[34567]86-*-openbsd*) gas=yes gnu_ld=yes ;; +x86_64-*-openbsd*) + tm_defines="${tm_defines} PIE_DEFAULT=1" + tm_file="i386/biarch64.h i386/i386.h i386/unix.h i386/att.h dbxelf.h elfos.h openbsd.h openbsd-libpthread.h i386/x86-64.h i386/openbsd64.h" + tm_file="${tm_file} exec-stack.h" + tmake_file="t-libc-ok t-openbsd i386/t-openbsd" + ;; i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) # Intel 80386's running GNU/* # with ELF format using glibc 2 @@ -1910,14 +1928,15 @@ mips*-*-linux*) # Linux MIPS, either endian. test x$with_llsc != x || with_llsc=yes ;; mips*-*-openbsd*) - tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS" - target_cpu_default="MASK_ABICALLS" - tm_file="mips/mips.h openbsd.h openbsd-stdint.h openbsd-libpthread.h mips/openbsd.h mips/sdb.h" + tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_64 PIE_DEFAULT=1" + tm_file="dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h mips/mips.h mips/openbsd64.h" extra_options="${extra_options} openbsd.opt" case ${target} in mips*el-*-openbsd*) - tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=0";; - *) tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=MASK_BIG_ENDIAN";; + tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=0" + target_cpu_default="MASK_ABICALLS";; + *) tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=MASK_BIG_ENDIAN" + target_cpu_default="MASK_ABICALLS|MASK_FIX_R4000|MASK_FIX_R4400";; esac ;; mips*-sde-elf*) @@ -2057,10 +2076,11 @@ picochip-*) tmake_file="picochip/t-picochip t-pnt16-warn" ;; # port not yet contributed -#powerpc-*-openbsd*) -# tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit " -# extra_headers= -# ;; +powerpc-*-openbsd*) + tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-libpthread.h freebsd-spec.h rs6000/sysv4.h rs6000/openbsd.h" + tmake_file="${tmake_file} rs6000/t-openbsd" + extra_options="${extra_options} rs6000/sysv4.opt" + ;; powerpc-*-darwin*) extra_options="${extra_options} rs6000/darwin.opt" extra_parts="crt2.o" @@ -2660,6 +2680,7 @@ sparc64-*-netbsd*) tmake_file="${tmake_file} sparc/t-netbsd64" ;; sparc64-*-openbsd*) + tm_defines="${tm_defines} PIE_DEFAULT=2" tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h" tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h" extra_options="${extra_options} openbsd.opt" @@ -2821,6 +2842,12 @@ case ${target} in else arch=i386 fi + cpu=generic + arch_without_sse2=yes + arch_without_64bit=yes + ;; + i386-*-openbsd*) + arch=i486 cpu=generic arch_without_sse2=yes arch_without_64bit=yes