OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [ld/] [emultempl/] [crxelf.em] - Diff between revs 156 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 156 Rev 816
# This shell script emits a C file. -*- C -*-
# This shell script emits a C file. -*- C -*-
#   Copyright 2004, 2007
#   Copyright 2004, 2007
#   Free Software Foundation, Inc.
#   Free Software Foundation, Inc.
#
#
# This file is part of the GNU Binutils.
# This file is part of the GNU Binutils.
#
#
# This program is free software; you can redistribute it and/or modify
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
# (at your option) any later version.
#
#
# This program is distributed in the hope that it will be useful,
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
# MA 02110-1301, USA.
#
#
# This file is sourced from elf32.em, and defines extra crx-elf
# This file is sourced from elf32.em, and defines extra crx-elf
# specific routines.
# specific routines.
#
#
fragment <
fragment <
#include "ldctor.h"
#include "ldctor.h"
/* Flag for the emulation-specific "--no-relax" option.  */
/* Flag for the emulation-specific "--no-relax" option.  */
static bfd_boolean disable_relaxation = FALSE;
static bfd_boolean disable_relaxation = FALSE;
static void crxelf_after_parse (void);
static void crxelf_after_parse (void);
static void
static void
crxelf_after_parse (void)
crxelf_after_parse (void)
{
{
  /* Always behave as if called with --sort-common command line
  /* Always behave as if called with --sort-common command line
     option.
     option.
     This is to emulate the CRTools' method of keeping variables
     This is to emulate the CRTools' method of keeping variables
     of different alignment in separate sections.  */
     of different alignment in separate sections.  */
  config.sort_common = TRUE;
  config.sort_common = TRUE;
  /* Don't create a demand-paged executable, since this feature isn't
  /* Don't create a demand-paged executable, since this feature isn't
     meaninful in CRX embedded systems. Moreover, when magic_demand_paged
     meaninful in CRX embedded systems. Moreover, when magic_demand_paged
     is true the link sometimes fails.  */
     is true the link sometimes fails.  */
  config.magic_demand_paged = FALSE;
  config.magic_demand_paged = FALSE;
}
}
/* This is called after the sections have been attached to output
/* This is called after the sections have been attached to output
   sections, but before any sizes or addresses have been set.  */
   sections, but before any sizes or addresses have been set.  */
static void
static void
crxelf_before_allocation (void)
crxelf_before_allocation (void)
{
{
  /* Call the default first.  */
  /* Call the default first.  */
  gld${EMULATION_NAME}_before_allocation ();
  gld${EMULATION_NAME}_before_allocation ();
  /* Enable relaxation by default if the "--no-relax" option was not
  /* Enable relaxation by default if the "--no-relax" option was not
     specified.  This is done here instead of in the before_parse hook
     specified.  This is done here instead of in the before_parse hook
     because there is a check in main() to prohibit use of --relax and
     because there is a check in main() to prohibit use of --relax and
     -r together.  */
     -r together.  */
  if (!disable_relaxation)
  if (!disable_relaxation)
    command_line.relax = TRUE;
    command_line.relax = TRUE;
}
}
EOF
EOF
# Define some shell vars to insert bits of code into the standard elf
# Define some shell vars to insert bits of code into the standard elf
# parse_args and list_options functions.
# parse_args and list_options functions.
#
#
PARSE_AND_LIST_PROLOGUE='
PARSE_AND_LIST_PROLOGUE='
#define OPTION_NO_RELAX                 301
#define OPTION_NO_RELAX                 301
'
'
PARSE_AND_LIST_LONGOPTS='
PARSE_AND_LIST_LONGOPTS='
  { "no-relax", no_argument, NULL, OPTION_NO_RELAX},
  { "no-relax", no_argument, NULL, OPTION_NO_RELAX},
'
'
PARSE_AND_LIST_OPTIONS='
PARSE_AND_LIST_OPTIONS='
  fprintf (file, _("  --no-relax                  Do not relax branches\n"));
  fprintf (file, _("  --no-relax                  Do not relax branches\n"));
'
'
PARSE_AND_LIST_ARGS_CASES='
PARSE_AND_LIST_ARGS_CASES='
    case OPTION_NO_RELAX:
    case OPTION_NO_RELAX:
      disable_relaxation = TRUE;
      disable_relaxation = TRUE;
      break;
      break;
'
'
# Put these extra crx-elf routines in ld_${EMULATION_NAME}_emulation
# Put these extra crx-elf routines in ld_${EMULATION_NAME}_emulation
#
#
LDEMUL_AFTER_PARSE=crxelf_after_parse
LDEMUL_AFTER_PARSE=crxelf_after_parse
LDEMUL_BEFORE_ALLOCATION=crxelf_before_allocation
LDEMUL_BEFORE_ALLOCATION=crxelf_before_allocation
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.