<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/132069>132069</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[ms] [llvm-ml] Support for `NEAR` in `EXTERN` directives
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
MisterDA
</td>
</tr>
</table>
<pre>
```console
$ cat > test.asm <<EOF
EXTERN my_symbol_near:NEAR
EXTERN my_symbol_far:FAR
EOF
$ build/bin/llvm-ml -m64 -c -F test.obj test.asm
test.asm:1:32: error: unrecognized type in directive 'extern'
EXTRN my_symbol_near: NEAR
^
test.asm:2:31: error: unrecognized type in directive 'extern'
EXTRN my_symbol_far: FAR
^
```
[`EXTERN`](https://learn.microsoft.com/en-us/cpp/assembler/masm/extern-masm?view=msvc-170) is defined as:
```
extern name:type {,name:type...}
```
The _type_ for symbols is documented by Microsoft to be [`ABS`](https://learn.microsoft.com/en-us/cpp/assembler/masm/operator-abs?view=msvc-170) or [`PROC`](https://learn.microsoft.com/en-us/cpp/assembler/masm/proc?view=msvc-170), but I've found other documents noting:
> Type may be any of `near`, `far`, `proc`, `byte`, `word`, `dword`, `qword`, `tbyte`, `abs` (absolute, which is a constant), or some other user defined type.
I'm interested in support for `near`.
Cf #131707 cc @ericastor
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0VcGOozgQ_ZrKpZTI2AHCgQOdBGkPM7Pq6cPeWsYUiUdgZ22T3uzXrwyZpKPpvfWgHCgoV733qvKQ3uuDISohfYJ0t5BjOFpXftE-kNtVi8a2lxIyNv-UNd72BKwCvkYlA4LYYyAfVtIPCGILYrv_VgOrcP_Xy_75K-JwefWXobH9qyHpQFRf99VzTJiuX7O6KamecuZSsVcz6r4FXjfaAK_7_jwshx6XQ7bGpcJlPYOwzY8bGmDV7VZUCYhKcBAVknM2dsDROFL2YPS_1GK4nAi1wVY7UkGfCYHn9E8gZ4DnN7gT4A9Z4QOt_70g3T8Ci5hE8juAzULirOS18W2S8Z5VcegZm2cQH6Y74JtjCCcPogJeR6lJOrMatHLW2y6slB2A12SWowdeq9MJeC29p6HpyQGvh0iL1zPC5RSJ-qzpDcRu8Ge1THIGvEDtsaVOG2pRTt1mQO_wzSXQyIFAVJMOkD8B3757slqtIN_9SuzlSPgaE16xsw5nRfzU1KpxIBOoxeaCX37ywmCxIZwFqZ6-f64a9kROBuuWsvEfy2Hdtfefz9-2n9v85Kz6sCnwLTZjwD-A52fCzo6mRRuO5G4qeTQ2aHO4D0js8SWOYpCXKJg0F7QdQsam_0HGYlHIWPc-mBDcouYS6B69Wdfeo_Yx_PsxDI9Ho5gZQ-Ab2Xjbj4Hii7ejVsc4aYnRroI04co1LoId6Epx9JHndQWnXZoZRjUG1CaQIx_XRBv04-lkXZh26U41Hth2CFwkIslZjkohrBk5raQPMZVVi7YUbSEKuaAyydd8zbJ8ky-OZcElqVQV60Q2m2STJhuZbIq0yKTomlwUC11yxlMmkiLJU8HyVSqpaESSJLlUBe94bDVI3a-iG66sOyy09yOVieAsKxa9bKj3k69zbugNp7fAebR5V04W2owHD2vWax_8vUzQoZ8-CIOHdBf38uq3Mfr-KMXkehmLIr13krtd-cXo-vJxkQ86HMfmur-x9k9LPzn7g1QAXk9g41pf2ZxL_l8AAAD__1XtAxw">