Move Solaris/x86 CRT_GET_RFIB_DATA definition to libgcc
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Tue, 27 Jan 2015 10:02:26 +0000 (10:02 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Tue, 27 Jan 2015 10:02:26 +0000 (10:02 +0000)
gcc:
* config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.

libgcc:
* config.host (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*):
Add i386/elf-lib.h to tm_file.
* config/i386/elf-lib.h: Fix comment.
* unwind-dw2-fde-dip.c (_Unwind_IteratePhdrCallback) [__x86_64__
&& __sun__ && __svr4__]: Remove workaround.

From-SVN: r220160

gcc/ChangeLog
gcc/config/i386/sysv4.h
libgcc/ChangeLog
libgcc/config.host
libgcc/config/i386/elf-lib.h
libgcc/unwind-dw2-fde-dip.c

index 9a7d5535adb551299d021d12c5815867123b644d..8ef1ae4589dff1737d79a665b97468b49b6db643 100644 (file)
@@ -1,3 +1,7 @@
+2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
+
 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
            Yury Gribov  <y.gribov@samsung.com>
 
index 099af9b12b478fd829990f39fe1f090820601118..9f945074056204363ea77bccde558f89c90f6f43 100644 (file)
@@ -49,16 +49,3 @@ along with GCC; see the file COPYING3.  If not see
        goto DONE;                                                      \
       }                                                                        \
   } while (0)
-
-/* Used by crtstuff.c to initialize the base of data-relative relocations.
-   These are GOT relative on x86, so return the pic register.  */
-#define CRT_GET_RFIB_DATA(BASE)                                                \
-  __asm__ ("call\t.LPR%=\n"                                            \
-          ".LPR%=:\n\t"                                                \
-          "pop{l}\t%0\n\t"                                             \
-          /* Due to a GAS bug, this cannot use EAX.  That encodes      \
-             smaller than the traditional EBX, which results in the    \
-             offset being off by one.  */                              \
-          "add{l}\t{$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0"              \
-                  "|%0,_GLOBAL_OFFSET_TABLE_+(.-.LPR%=)}"              \
-          : "=d"(BASE))
index be24ed4c9bec4fb816732bb4ec80f6e4cac9475c..08054548bc55885a958618cb910d233bbad543a1 100644 (file)
@@ -1,3 +1,11 @@
+2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * config.host (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*):
+       Add i386/elf-lib.h to tm_file.
+       * config/i386/elf-lib.h: Fix comment.
+       * unwind-dw2-fde-dip.c (_Unwind_IteratePhdrCallback) [__x86_64__
+       && __sun__ && __svr4__]: Remove workaround.
+
 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
 
        * config/i386/cpuinfo.c (enum processor_features): Add FEATURE_BMI and
index 92ac88eea7be33e70ee7a94138db0f1c20032929..3c19b1fcfc29e09c71fad618112f6b1189f8252f 100644 (file)
@@ -619,6 +619,7 @@ i[34567]86-*-rtems*)
 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
        tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm"
        extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
+       tm_file="${tm_file} i386/elf-lib.h"
        md_unwind_header=i386/sol2-unwind.h
        ;;
 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
index 94fc48682bff12804f1c8bec67262c93031dc173..4411185155957eee9d3685c2c2657e4d4d9817ca 100644 (file)
@@ -1,4 +1,4 @@
-/* Definitions for Intel 386 systems using GNU userspace.
+/* Definitions for Intel 386 ELF systems.
    Copyright (C) 2015 Free Software Foundation, Inc.
 
 GCC is free software; you can redistribute it and/or modify it under
index 47af7a34a6ffc37958b5b310bbc29e1e8dcb3667..e1e566b5d574a46119e5be42ba96534c7550e32c 100644 (file)
@@ -343,9 +343,6 @@ _Unwind_IteratePhdrCallback (struct dl_phdr_info *info, size_t size, void *ptr)
     }
 # elif defined __FRV_FDPIC__ && defined __linux__
   data->dbase = load_base.got_value;
-# elif defined __x86_64__ && defined __sun__ && defined __svr4__
-  /* While CRT_GET_RFIB_DATA is also defined for 64-bit Solaris 10+/x86, it
-     doesn't apply since it uses DW_EH_PE_pcrel encoding.  */
 # else
 #  error What is DW_EH_PE_datarel base on this platform?
 # endif