Hello all,
I’m developing a hobby kernel for x86-64 machines,
and I put the kernel into the higher half.
I’m trying to switch from GCC to Clang, but it seems
that the latter doesn’t support the -mcmodel=large
option, which is required in order to put the kernel
at the 0xFFFF800000000000 in virtual memory,
as specified in my linker script:
http://pastebin.com/f2f9e0112
Any workarounds or plans for implementing that feature
in the Clang compiler?
Andrea Orrù wrote:
Hello all,
I'm developing a hobby kernel for x86-64 machines,
and I put the kernel into the higher half.
I'm trying to switch from GCC to Clang, but it seems
that the latter doesn't support the -mcmodel=large
option, which is required in order to put the kernel
at the 0xFFFF800000000000 in virtual memory,
as specified in my linker script:
ENTRY(kmain) SECTIONS - Pastebin.com
Any workarounds or plans for implementing that feature
in the Clang compiler?
Does Clang proper even care about the memory model? I think this is more
an issue for LLVM core than Clang.
Sebastian
Do you confirm that? Do I have to put the same question in the llvm mailing list?
2009/6/7 Sebastian Redl <sebastian.redl@getdesigned.at>
Well, no. If you’re getting:
clang: warning: argument unused during compilation: ‘-mcmodel=large’
Then it’s an issue with clang not honoring the option and passing it through to the backend codegen layers.
Shantonu
No, nothing from clang.
2009/6/7 Shantonu Sen <ssen@apple.com>
Try passing "-mllvm -code-model=large" to clang.
-Eli
The support for large code model in LLVM x86_64 backend is incomplete.
Evan