xref: /netbsd-src/external/gpl3/binutils.old/dist/ld/emultempl/pruelf.em (revision c42dbd0ed2e61fe6eda8590caa852ccf34719964)
1# This shell script emits a C file. -*- C -*-
2#   Copyright (C) 2016-2022 Free Software Foundation, Inc.
3#
4# This file is part of the GNU Binutils.
5#
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 3 of the License, or
9# (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
19# MA 02110-1301, USA.
20#
21
22# This file is sourced from elf.em, and defines extra pru-elf
23# specific routines.
24#
25fragment <<EOF
26
27#include "ldctor.h"
28
29/* This is called after the sections have been attached to output
30   sections, but before any sizes or addresses have been set.  */
31
32static void
33pruelf_before_allocation (void)
34{
35  /* Call the default first.  */
36  gld${EMULATION_NAME}_before_allocation ();
37
38  /* Enable relaxation by default if the "--no-relax" option was not
39     specified.  This is done here instead of in the before_parse hook
40     because there is a check in main() to prohibit use of --relax and
41     -r together.  */
42  if (RELAXATION_DISABLED_BY_DEFAULT)
43    ENABLE_RELAXATION;
44}
45
46EOF
47
48# Put these extra pru-elf routines in ld_${EMULATION_NAME}_emulation
49#
50LDEMUL_BEFORE_ALLOCATION=pruelf_before_allocation
51