Mercurial > hg > CbC > CbC_gcc
diff gcc/config/pa/pa-linux.h @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/gcc/config/pa/pa-linux.h Sun Aug 21 07:07:55 2011 +0900 +++ b/gcc/config/pa/pa-linux.h Fri Oct 27 22:46:09 2017 +0900 @@ -1,7 +1,5 @@ /* Definitions for PA_RISC with ELF format - Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, - 2011 - Free Software Foundation, Inc. + Copyright (C) 1999-2017 Free Software Foundation, Inc. This file is part of GCC. @@ -24,13 +22,13 @@ #define TARGET_OS_CPP_BUILTINS() \ do \ { \ - LINUX_TARGET_OS_CPP_BUILTINS(); \ + GNU_USER_TARGET_OS_CPP_BUILTINS(); \ builtin_assert ("machine=bigendian"); \ } \ while (0) #undef CPP_SPEC -#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}" +#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" #undef ASM_SPEC #define ASM_SPEC \ @@ -47,7 +45,7 @@ %{!shared: \ %{!static: \ %{rdynamic:-export-dynamic} \ - -dynamic-linker " LINUX_DYNAMIC_LINKER "} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \ %{static:-static}}" /* glibc's profiling functions don't need gcc to allocate counters. */ @@ -80,17 +78,11 @@ #undef ASM_OUTPUT_ADDR_VEC_ELT #define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \ - if (TARGET_BIG_SWITCH) \ - fprintf (FILE, "\t.word .L%d\n", VALUE); \ - else \ - fprintf (FILE, "\tb .L%d\n\tnop\n", VALUE) + fprintf (FILE, "\t.word .L%d\n", VALUE) #undef ASM_OUTPUT_ADDR_DIFF_ELT #define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \ - if (TARGET_BIG_SWITCH) \ - fprintf (FILE, "\t.word .L%d-.L%d\n", VALUE, REL); \ - else \ - fprintf (FILE, "\tb .L%d\n\tnop\n", VALUE) + fprintf (FILE, "\t.word .L%d-.L%d\n", VALUE, REL) /* Use the default. */ #undef ASM_OUTPUT_LABEL @@ -128,11 +120,27 @@ do \ { \ if (!FUNCTION_NAME_P (XSTR (FUN, 0))) \ - hppa_encode_label (FUN); \ + pa_encode_label (FUN); \ (*targetm.asm_out.globalize_label) (FILE, XSTR (FUN, 0)); \ } \ while (0) -/* Linux always uses gas. */ #undef TARGET_GAS #define TARGET_GAS 1 + +#undef TARGET_SYNC_LIBCALL +#define TARGET_SYNC_LIBCALL 1 + +/* The SYNC operations are implemented as library functions, not + INSN patterns. As a result, the HAVE defines for the patterns are + not defined. We need to define them to generate the corresponding + __GCC_HAVE_SYNC_COMPARE_AND_SWAP_* and __GCC_ATOMIC_*_LOCK_FREE + defines. */ + +#define HAVE_sync_compare_and_swapqi 1 +#define HAVE_sync_compare_and_swaphi 1 +#define HAVE_sync_compare_and_swapsi 1 +#define HAVE_sync_compare_and_swapdi 1 + +#undef NEED_INDICATE_EXEC_STACK +#define NEED_INDICATE_EXEC_STACK 1