1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<!-- This file documents the GNU Assembler "as". 4 5Copyright (C) 1991-2021 Free Software Foundation, Inc. 6 7Permission is granted to copy, distribute and/or modify this document 8under the terms of the GNU Free Documentation License, Version 1.3 9or any later version published by the Free Software Foundation; 10with no Invariant Sections, with no Front-Cover Texts, and with no 11Back-Cover Texts. A copy of the license is included in the 12section entitled "GNU Free Documentation License". 13 --> 14<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> 15<head> 16<title>Using as: File</title> 17 18<meta name="description" content="Using as: File"> 19<meta name="keywords" content="Using as: File"> 20<meta name="resource-type" content="document"> 21<meta name="distribution" content="global"> 22<meta name="Generator" content="makeinfo"> 23<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 24<link href="index.html#Top" rel="start" title="Top"> 25<link href="AS-Index.html#AS-Index" rel="index" title="AS Index"> 26<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> 27<link href="Pseudo-Ops.html#Pseudo-Ops" rel="up" title="Pseudo Ops"> 28<link href="Fill.html#Fill" rel="next" title="Fill"> 29<link href="Fail.html#Fail" rel="previous" title="Fail"> 30<style type="text/css"> 31<!-- 32a.summary-letter {text-decoration: none} 33blockquote.smallquotation {font-size: smaller} 34div.display {margin-left: 3.2em} 35div.example {margin-left: 3.2em} 36div.indentedblock {margin-left: 3.2em} 37div.lisp {margin-left: 3.2em} 38div.smalldisplay {margin-left: 3.2em} 39div.smallexample {margin-left: 3.2em} 40div.smallindentedblock {margin-left: 3.2em; font-size: smaller} 41div.smalllisp {margin-left: 3.2em} 42kbd {font-style:oblique} 43pre.display {font-family: inherit} 44pre.format {font-family: inherit} 45pre.menu-comment {font-family: serif} 46pre.menu-preformatted {font-family: serif} 47pre.smalldisplay {font-family: inherit; font-size: smaller} 48pre.smallexample {font-size: smaller} 49pre.smallformat {font-family: inherit; font-size: smaller} 50pre.smalllisp {font-size: smaller} 51span.nocodebreak {white-space:nowrap} 52span.nolinebreak {white-space:nowrap} 53span.roman {font-family:serif; font-weight:normal} 54span.sansserif {font-family:sans-serif; font-weight:normal} 55ul.no-bullet {list-style: none} 56--> 57</style> 58 59 60</head> 61 62<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> 63<a name="File"></a> 64<div class="header"> 65<p> 66Next: <a href="Fill.html#Fill" accesskey="n" rel="next">Fill</a>, Previous: <a href="Fail.html#Fail" accesskey="p" rel="previous">Fail</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p> 67</div> 68<hr> 69<a name="g_t_002efile"></a> 70<h3 class="section">7.36 <code>.file</code></h3> 71<a name="index-file-directive"></a> 72 73<p>There are two different versions of the <code>.file</code> directive. Targets 74that support DWARF2 line number information use the DWARF2 version of 75<code>.file</code>. Other targets use the default version. 76</p> 77<a name="Default-Version"></a> 78<h4 class="subheading">Default Version</h4> 79 80<a name="index-logical-file-name"></a> 81<a name="index-file-name_002c-logical"></a> 82<p>This version of the <code>.file</code> directive tells <code>as</code> that we 83are about to start a new logical file. The syntax is: 84</p> 85<div class="smallexample"> 86<pre class="smallexample">.file <var>string</var> 87</pre></div> 88 89<p><var>string</var> is the new file name. In general, the filename is 90recognized whether or not it is surrounded by quotes ‘<samp>"</samp>’; but if you wish 91to specify an empty file name, you must give the quotes–<code>""</code>. This 92statement may go away in future: it is only recognized to be compatible with 93old <code>as</code> programs. 94</p> 95<a name="DWARF2-Version"></a> 96<h4 class="subheading">DWARF2 Version</h4> 97 98<p>When emitting DWARF2 line number information, <code>.file</code> assigns filenames 99to the <code>.debug_line</code> file name table. The syntax is: 100</p> 101<div class="smallexample"> 102<pre class="smallexample">.file <var>fileno</var> <var>filename</var> 103</pre></div> 104 105<p>The <var>fileno</var> operand should be a unique positive integer to use as the 106index of the entry in the table. The <var>filename</var> operand is a C string 107literal enclosed in double quotes. The <var>filename</var> can include directory 108elements. If it does, then the directory will be added to the directory table 109and the basename will be added to the file table. 110</p> 111<p>The detail of filename indices is exposed to the user because the filename 112table is shared with the <code>.debug_info</code> section of the DWARF2 debugging 113information, and thus the user must know the exact indices that table 114entries will have. 115</p> 116<p>If DWARF-5 support has been enabled via the <samp>-gdwarf-5</samp> option then 117an extended version of the <code>file</code> is also allowed: 118</p> 119<div class="smallexample"> 120<pre class="smallexample">.file <var>fileno</var> [<var>dirname</var>] <var>filename</var> [md5 <var>value</var>] 121</pre></div> 122 123<p>With this version a separate directory name is allowed, although if this is 124used then <var>filename</var> should not contain any directory components. In 125addtion an md5 hash value of the contents of <var>filename</var> can be provided. 126This will be stored in the the file table as well, and can be used by tools 127reading the debug information to verify that the contents of the source file 128match the contents of the compiled file. 129</p> 130<hr> 131<div class="header"> 132<p> 133Next: <a href="Fill.html#Fill" accesskey="n" rel="next">Fill</a>, Previous: <a href="Fail.html#Fail" accesskey="p" rel="previous">Fail</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p> 134</div> 135 136 137 138</body> 139</html> 140