For a Win32 DLL, a .def file can have a custom executable base: ``` LIBRARY "stub.dll" BASE=0x10000000 ``` Currently the parser enforces Base 10, but [Microsoft's documentation](https://learn.microsoft.com/en-us/cpp/build/reference/rules-for-module-definition-statements?view=msvc-170) states "Numeric arguments are specified in base 10 or hexadecimal". This fixes that, and also HEAPSIZE and STACKSIZE (which use the same function). There are a few more instances of `getAsInteger` that expect base10 - for ordinals and the VERSION directive. Since I don't have an in-the-wild example of a .def file using hexadecimal for these, I am wary about changing those too.
32 lines
1.4 KiB
Plaintext
32 lines
1.4 KiB
Plaintext
# RUN: yaml2obj %p/Inputs/ret42.yaml -o %t.obj
|
|
|
|
# RUN: lld-link /out:%t.exe /entry:main %t.obj
|
|
# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=DEFAULT %s
|
|
|
|
DEFAULT: SizeOfStackReserve: 1048576
|
|
DEFAULT: SizeOfStackCommit: 4096
|
|
|
|
# RUN: lld-link /out:%t.exe /entry:main %t.obj /stack:0x3000
|
|
# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=CHECK1 %s
|
|
# RUN: echo "STACKSIZE 12288" > %t.def
|
|
# RUN: lld-link /out:%t.exe /entry:main /def:%t.def %t.obj
|
|
# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=CHECK1 %s
|
|
# RUN: echo "STACKSIZE 0x3000" > %t.def
|
|
# RUN: lld-link /out:%t.exe /entry:main /def:%t.def %t.obj
|
|
# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=CHECK1 %s
|
|
|
|
CHECK1: SizeOfStackReserve: 12288
|
|
CHECK1: SizeOfStackCommit: 4096
|
|
|
|
# RUN: lld-link /out:%t.exe /entry:main %t.obj /stack:0x5000,0x3000
|
|
# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=CHECK2 %s
|
|
# RUN: echo "STACKSIZE 20480,12288" > %t.def
|
|
# RUN: lld-link /out:%t.exe /entry:main /def:%t.def %t.obj
|
|
# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=CHECK2 %s
|
|
# RUN: echo "STACKSIZE 0x5000,0x3000" > %t.def
|
|
# RUN: lld-link /out:%t.exe /entry:main /def:%t.def %t.obj
|
|
# RUN: llvm-readobj --file-headers %t.exe | FileCheck -check-prefix=CHECK2 %s
|
|
|
|
CHECK2: SizeOfStackReserve: 20480
|
|
CHECK2: SizeOfStackCommit: 12288
|