Hello! Attached patch moves CRT_GET_RFIB_DATA from gcc to libgcc in the same way as was recently done for x86 targets [1].
The second patch is needed to successfully compile frv-elf libgcc, otherwise libgcc build fails in defaults.h, line 499 with "Unknown BITS_PER_UNIT" error. libgcc/ChangeLog: 2015-04-22 Uros Bizjak <ubiz...@gmail.com> * config/frv/elf-lib.h: New file. (CRT_GET_RFIB_DATA): Move definition from gcc/config/frv/frv.h. * libgcc/config.host (frv-*elf, frv-*-*linux*): Add frv/elf-lib.h to tm_file. 2015-04-22 Uros Bizjak <ubiz...@gmail.com> * config/frv/frvbengin.c: Do not include defaults.h * config/frv/frvend.c: Ditto. gcc/ChangeLog: 2015-04-22 Uros Bizjak <ubiz...@gmail.com> * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to libgcc/config/frv/elf-lib.h. Patch was tested by building frv-elf crosscompiler and multilib. OK for mainline? [1] https://gcc.gnu.org/ml/gcc-patches/2015-01/msg02126.html Uros.
Index: libgcc/config.host =================================================================== --- libgcc/config.host (revision 222305) +++ libgcc/config.host (working copy) @@ -469,13 +469,13 @@ fr30-*-elf) ;; frv-*-elf) tmake_file="$tmake_file frv/t-frv t-fdpbit" - tm_file="$tm_file frv/frv-abi.h" + tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h" # Don't use crtbegin.o, crtend.o. extra_parts="frvbegin.o frvend.o" ;; frv-*-*linux*) tmake_file="$tmake_file frv/t-frv frv/t-linux t-fdpbit" - tm_file="$tm_file frv/frv-abi.h" + tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h" ;; h8300-*-rtems*) tmake_file="$tmake_file h8300/t-h8300 t-fpbit" Index: libgcc/config/frv/frvbegin.c =================================================================== --- libgcc/config/frv/frvbegin.c (revision 222305) +++ libgcc/config/frv/frvbegin.c (working copy) @@ -26,7 +26,6 @@ This file was originally taken from the file crtstuff.c in the main compiler directory, and simplified. */ -#include "defaults.h" #include <stddef.h> #include "../libgcc/unwind-dw2-fde.h" #include "gbl-ctors.h" Index: libgcc/config/frv/elf-lib.h =================================================================== --- libgcc/config/frv/elf-lib.h (revision 0) +++ libgcc/config/frv/elf-lib.h (revision 0) @@ -0,0 +1,26 @@ +/* Target macros for the FRV port of GCC. + Copyright (C) 2015 Free Software Foundation, Inc. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#ifdef __FRV_FDPIC__ +#define CRT_GET_RFIB_DATA(dbase) \ + ({ extern void *_GLOBAL_OFFSET_TABLE_; (dbase) = &_GLOBAL_OFFSET_TABLE_; }) +#endif Index: libgcc/config/frv/frvend.c =================================================================== --- libgcc/config/frv/frvend.c (revision 222305) +++ libgcc/config/frv/frvend.c (working copy) @@ -23,7 +23,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ -#include "defaults.h" #include <stddef.h> #include "../libgcc/unwind-dw2-fde.h" Index: gcc/config/frv/frv.h =================================================================== --- gcc/config/frv/frv.h (revision 222305) +++ gcc/config/frv/frv.h (working copy) @@ -2125,9 +2125,4 @@ enum frv_builtins #define CPU_UNITS_QUERY 1 -#ifdef __FRV_FDPIC__ -#define CRT_GET_RFIB_DATA(dbase) \ - ({ extern void *_GLOBAL_OFFSET_TABLE_; (dbase) = &_GLOBAL_OFFSET_TABLE_; }) -#endif - #endif /* __FRV_H__ */