Support For Interworking Between Arm And Thumb Code; And Hppa 32-Bit Elf Support; And Mmix; And Msp430 - Red Hat ENTERPRISE LINUX 3 - USING ID Using Instructions

Using ld, the gnu linker
Hide thumbs Also See for ENTERPRISE LINUX 3 - USING ID:
Table of Contents

Advertisement

60
5.3.
's Support for Interworking Between ARM and Thumb Code
ld
For the ARM,
will generate code stubs to allow functions calls betweem ARM and Thumb
ld
code. These stubs only work with code that has been compiled and assembled with the
-mthumb-interwork
files or libraries, which have not been compiled with the -mthumb-interwork option then the
-support-old-code
larger stub functions which will work with non-interworking aware ARM code. Note, however, the
linker does not support generating stubs for function calls to non-interworking aware Thumb code.
The
-thumb-entry
starting address. But it also sets the bottom bit of the address, so that it can be branched to using a BX
instruction, and the program will start executing in Thumb mode straight away.
5.4.

and HPPA 32-bit ELF Support

ld
When generating a shared library,
single sub-space application. The
different (larger) import stubs suitable for use with multiple sub-spaces.
Long branch stubs and import/export stubs are placed by
input sections.
-stub-group-size
by one stub section. Since branch offsets are signed, a stub section may serve two groups of input
sections, one group before the stub section, and one group after it. However, when using conditional
branches that require stubs, it may be better (for branch prediction) that stub sections only serve one
group of input sections. A negative value for
always use a negative offset. Two special values of
to automatically size input section groups for the branch types detected, with the same behaviour
ld
regarding stub placement as other positive or negative values of
Note that
-stub-group-size
group size specified will of course create a larger group (of one section). If input sections are too
large, it may not be possible for a branch to reach its stub.
5.5.

and MMIX

ld
For MMIX, there is a choice of generating
simulator
understands the
mmix
two formats.
There is one special section, the
to correspond to that of global registers, and symbols referring to it are translated to special symbols,
equal to registers. In a final link, the start address of the
to the first allocated global register multiplied by 8. Register
always set to the program entry, which is at the symbol
Symbols with the prefix
__.MMIX.start..data
linker script uses these to set the default start address of a section.
Initial and trailing multiples of zero-valued 32-bit words in a section, are left out from an mmo file.
5.6.

and MSP430

ld
For the MSP430 it is possible to select the MPU architecture. The flag
an appropriate linker script for selected MPU type. (To get a list of known MPUs just pass
option to the linker).
command line option. If it is necessary to link with old ARM object
command line switch should be given to the linker. This will make it generate
switch is a duplicate of the generic
will by default generate import stubs suitable for use with a
ld
-multi-subspace
specifies the maximum size of a group of input sections handled
does not split input sections. A single input section larger than the
format. The binutils
mmo
.MMIX.reg_contents
__.MMIX.start.
are special; there must be only one each, even if they are local. The default
Chapter 5. Machine Dependent Features
switch, in that it sets the program's
-entry
switch causes
in stub sections located between groups of
ld
chooses this scheme, ensuring that branches to stubs
N
are recognized,
N
N
object files or
ELF
mmo
objcopy
section. Contents in this section is assumed
.MMIX.reg_contents
$255
for
Main
mmo
, for example
to generate export stubs, and
ld
and
. These both instruct
1
-1
respectively.
object files when linking. The
utility can translate between the
section corresponds
is not included in this section; it is
files.
__.MMIX.start..text
-m [mpu type]
and
will select
-m help

Advertisement

Table of Contents
loading

This manual is also suitable for:

Enterprise linux 3

Table of Contents