+2014-12-17 Oleg Endo <olegendo@gcc.gnu.org>
+
+ * config/sh/crt.h: New.
+ * config/sh/crti.S: Use GLOBAL macro from crt.h for _init and _fini
+ symbols.
+ * config/sh/crt1.S: Likewise.
+
2014-12-15 Uros Bizjak <ubizjak@gmail.com>
PR libgcc/63832
--- /dev/null
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+
+This file 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.
+
+This file 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/>. */
+
+#ifndef __USER_LABEL_PREFIX__
+#error __USER_LABEL_PREFIX__ not defined
+#endif
+
+#define CONCAT(a, b) CONCAT2(a, b)
+#define CONCAT2(a, b) a ## b
+
+#define GLOBAL(X) CONCAT(__USER_LABEL_PREFIX__,X)
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "crt.h"
#ifdef MMU_SUPPORT
/* Section used for exception/timer interrupt stack area */
#endif /* MMU_SUPPORT */
pt/l .Lzero_bss_loop, tr0
- pt/l _init, tr5
+ pt/l GLOBAL(_init), tr5
pt/l ___setup_argv_and_call_main, tr6
pt/l _exit, tr7
! arrange for exit to call fini
pt/l _atexit, tr1
- LOAD_ADDR (_fini, r2)
+ LOAD_ADDR (GLOBAL(_fini), r2)
blink tr1, r18
! call init
atexit_k:
.long _atexit
init_k:
- .long _init
+ .long GLOBAL(_init)
fini_k:
- .long _fini
+ .long GLOBAL(_fini)
#ifdef VBR_SETUP
old_vbr_k:
.long old_vbr
#if defined(__SH_FPU_ANY__)
.balign 4
pervading_precision_k:
-#define CONCAT1(A,B) A##B
-#define CONCAT(A,B) CONCAT1(A,B)
- .long CONCAT(__USER_LABEL_PREFIX__,__fpscr_values)+4
+ .long GLOBAL(__fpscr_values)+4
#endif
#else
mov.l 2f, r0 ! Load the old vbr setting (if any).
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
+#include "crt.h"
/* The code in sections .init and .fini is supposed to be a single
regular function. The function in .init is called directly from
#else
.p2align 1
#endif
- .global _init
-_init:
+ .global GLOBAL(_init)
+GLOBAL(_init):
#if __SHMEDIA__
addi r15, -16, r15
st.q r15, 8, r14
#else
.p2align 1
#endif
- .global _fini
-_fini:
+ .global GLOBAL(_fini)
+GLOBAL(_fini):
#if __SHMEDIA__
addi r15, -16, r15
st.q r15, 8, r14