{.global.} variable definition order does not match the manual
### Description

According to the manual: "The order of initialization of the created global variables within a module is not defined, **but all of them will be initialized after any top-level variables in their originating module** and before any variable in a module that imports it."

```nim
proc a(): int = echo "a"; 1
proc b(): int = echo "b"; 2
proc c(): int = echo "c"; 3

var g = a()

proc run() =
  var x {.global.} = b()
  var y {.global.} = c()
  
run()
```

The `{.global.}`s are being initialized before the top-level variable which prevents initializing a value they depend on.

### Nim Version

Nim Compiler Version 2.2.0 [Linux: amd64]
Compiled at 2024-10-02
Copyright (c) 2006-2024 by Andreas Rumpf

git hash: 78983f1876726a49c69d65629ab433ea1310ece1
active boot switches: -d:release

### Current Output

```text
b
c
a
```

### Expected Output

```text
a
b
c

or

a
c
b
```

### Known Workarounds

_No response_

### Additional Information

_No response_