Go to the first, previous, next, last section, table of contents.



MRI 호환 스크립트 파일

To aid users making the transition to GNU ld from the MRI linker, ld can use MRI compatible linker scripts as an alternative to the more general-purpose linker scripting language described in section Linker Scripts. MRI compatible linker scripts have a much simpler command set than the scripting language otherwise used with ld. GNU ld supports the most commonly used MRI linker commands; these commands are described here.

In general, MRI scripts aren't of much use with the a.out object file format, since it only has three sections and MRI scripts lack some features to make use of them.

MRI 링커를 사용하다가 GNU ld로 변경하는 사용자를 위해서 ldLinker Scripts에 설명된 더 범용의 링커 스크립트 언어에 외에 MRI 호환 링커 스크립트도 사용한다. MRI 호환 링커 스크립트는 ld 스크립트 언어에 비해 매우 간단한 명령어를 가진다. GNU ld는 대부분의 MRI 링커 명령어를 지원한다.

MRI 스크립트는 3 섹션만을 지원하지 않기 때문에 일반적으로 MRI는 스크립트를 a.out 오브젝트 파일 형식과 사용하지 않는다.

You can specify a file containing an MRI-compatible script using the `-c' command-line option.

Each command in an MRI-compatible script occupies its own line; each command line starts with the keyword that identifies the command (though blank lines are also allowed for punctuation). If a line of an MRI-compatible script begins with an unrecognized keyword, ld issues a warning message, but continues processing the script.

MRI 호환 스크립트 파일을 `-c' 옵션으로 지정할 수 있다.

각 명령어는 한 줄을 차지한다. 각 명령줄은 명령어를 지칭하는 키워드로 시작한다. (빈줄도 허용된다.) 줄이 MRI 호환 스크립트가 인식할 수 없는 키워드로 시작하면 ld는 경고를 출력하지만 계속 처리한다.

Lines beginning with `*' are comments.

You can write these commands using all upper-case letters, or all lower case; for example, `chip' is the same as `CHIP'. The following list shows only the upper-case form of each command.

`*'로 시작하는 줄은 주석이다.

명령어를 모두 대문자 혹은 모두 소문자로 적을 수 있다. 예를 들어 `chip'`CHIP'은 같다. 다음 목록에서는 대문자로만 표기했다.

ABSOLUTE secname
ABSOLUTE secname, secname, ... secname
Normally, ld includes in the output file all sections from all the input files. However, in an MRI-compatible script, you can use the ABSOLUTE command to restrict the sections that will be present in your output program. If the ABSOLUTE command is used at all in a script, then only the sections named explicitly in ABSOLUTE commands will appear in the linker output. You can still use other input sections (whatever you select on the command line, or using LOAD) to resolve addresses in the output file.
보통 ld는 모든 입력파일의 섹션을 출력파일에 포함한다. 그러나 MRI 호환 스크립트에서 ABSOLUTE 명령어은 출력 프로그램에 나올 섹션을 제한한다. ABSOLUTE 명령어가 스크립트에 한번이라도 나오면 ABSOLUTE 명령어에 명시적으로 지시한 섹션만이 출력에 나타난다. 그래도 출력파일의 주소를 리졸브하기 위해서 다른 (명령행이나 LOAD 명령어로 선택한) 입력 섹션을 사용할 수 있다.
ALIAS out-secname, in-secname
Use this command to place the data from input section in-secname in a section called out-secname in the linker output file. in-secname may be an integer.
입력 섹션 in-secname의 자료를 출력파일의 섹션 out-secname에 위치하려면 이 명령어를 사용한다. in-secname은 정수일 수 있다.
ALIGN secname = expression
Align the section called secname to expression. The expression should be a power of two.
섹션 secnameexpression으로 정렬한다. expression은 2의 제곱이어야 한다.
BASE expression
Use the value of expression as the lowest address (other than absolute addresses) in the output file.
(절대 주소를 제외하고) 출력파일의 가장 하위 주소로 expression 값을 사용한다.
CHIP expression
CHIP expression, expression
This command does nothing; it is accepted only for compatibility.
이 명령어는 호환을 위한 것으로 아무 일도 하지 않는다.
END
This command does nothing whatever; it's only accepted for compatibility.
이 명령어는 호환을 위한 것으로 아무 일도 하지 않는다.
FORMAT output-format
Similar to the OUTPUT_FORMAT command in the more general linker language, but restricted to one of these output formats:
  1. S-records, if output-format is `S'
  2. IEEE, if output-format is `IEEE'
  3. COFF (the `coff-m68k' variant in BFD), if output-format is `COFF'

일반 링커 언어의 OUTPUT_FORMAT 명령어와 비슷하지만 다음 중 하나만을 사용할 수 있다.
  1. output-format`S'이면 S-record
  2. output-format`IEEE'이면 IEEE
  3. output-format`COFF'이면 COFF (BFD에서 `coff-m68k')
LIST anything...
Print (to the standard output file) a link map, as produced by the ld command-line option `-M'. The keyword LIST may be followed by anything on the same line, with no change in its effect.
ld 옵션 `-M'과 같이 (표준출력으로) 링크맵을 출력한다. LIST 키워드 다음에 어떤 것도 올 수 있지만 아무 의미도 없다.
LOAD filename
LOAD filename, filename, ... filename
Include one or more object file filename in the link; this has the same effect as specifying filename directly on the ld command line.
링크에 하나 이상의 오브젝트 파일 filename을 포함한다. 이는 ld 명령행에 filename을 직접 써준 것과 동일하다.
NAME output-name
output-name is the name for the program produced by ld; the MRI-compatible command NAME is equivalent to the command-line option `-o' or the general script language command OUTPUT.
ld가 생성하는 프로그램 이름으로 output-name를 사용한다. 이는 명령행 옵션 `-o'이나 일반 스크립트 명령어 OUTPUT와 동일하다.
ORDER secname, secname, ... secname
ORDER secname secname secname
Normally, ld orders the sections in its output file in the order in which they first appear in the input files. In an MRI-compatible script, you can override this ordering with the ORDER command. The sections you list with ORDER will appear first in your output file, in the order specified.
보통 ld는 입력파일에 나오는 순서로 출력파일에 섹션을 배치한다. ORDER 명령어로 이 순서를 변경할 수 있다. ORDER로 열거한 섹션은 출력파일의 시작에서부터 순서대로 위치한다.
PUBLIC name=expression
PUBLIC name,expression
PUBLIC name expression
Supply a value (expression) for external symbol name used in the linker input files.
입력파일에서 사용하는 외부 심볼 name의 값으로 expression을 사용한다.
SECT secname, expression
SECT secname=expression
SECT secname expression
You can use any of these three forms of the SECT command to specify the start address (expression) for section secname. If you have more than one SECT statement for the same secname, only the first sets the start address.
섹션 secname의 시작 주소로 expression를 사용한다. 같은 secname에 대해 여러 SECT 명령어를 사용하면 처음 것으로 시작 주소를 정한다.


Go to the first, previous, next, last section, table of contents.