<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">