Displaying 20 results from an estimated 200 matches similar to: "[LLVMdev] How to implement new ELF 64 bit relocation (N64)"
2015 Feb 05
5
[LLVMdev] [lld] Representation of lld::Reference with a fake target
Hi,
I need an advice on implementation of a very specific kind of relocations
used by MIPS N64 ABI. As usual the main problem is how to pass target specific
data over Native/YAML conversion barrier.
In this ABI relocation record r_info field in fact consists of five subfields:
* r_sym - symbol index
* r_ssym - special symbol
* r_type3 - third relocation type
* r_type2 - second relocation type
2015 Feb 06
4
[LLVMdev] [lld] Representation of lld::Reference with a fake target
Can we remove Native format support? I'd like to get input from anyone who
wants to keep the current Native format in LLD.
On Thu, Feb 5, 2015 at 2:03 PM, Shankar Easwaran <shankare at codeaurora.org>
wrote:
> The only way currently is to create a new reference, unless we can think
> of adding some target specific metadata information in the Atom model.
>
> This has come up
2015 Feb 07
2
[LLVMdev] [lld] Representation of lld::Reference with a fake target
I'm not planning to remove YAML. YAML is important for testing.
On Fri, Feb 6, 2015 at 3:57 PM, Shankar Easwaran <shankare at codeaurora.org>
wrote:
> I am fine with it. I hope you are not planning to remove YAML.
>
>
> On 2/6/2015 4:54 PM, Rui Ueyama wrote:
>
> Can we remove Native format support? I'd like to get input from anyone who
> wants to keep the
2015 Feb 07
2
[LLVMdev] [lld] Representation of lld::Reference with a fake target
There are two questions.
Firstly, do you think the on-disk format needs to compatible with a C++
struct so that we can cast that memory buffer to the struct? That may be
super-fast but that also comes with many limitations. It's hard to extend,
for example. Every time we want to store variable-length objects we need to
define string-table-like data structure. And I'm not very sure that
2015 Feb 09
2
[LLVMdev] [lld] Representation of lld::Reference with a fake target
A bit off topic: ARM Group relocations define a logical set of consequent instructions to be relocated to form one single address. For such relocations a 1 to 1 relation is also met, so no need of special processing in applyRelocation.
Concerning native format: it also introduced unneeded code complexity to me when I wanted to set calculated relocation addend back into the Reference object in the
2015 Feb 07
4
[LLVMdev] [lld] Representation of lld::Reference with a fake target
On Fri, Feb 6, 2015 at 5:42 PM, Michael Spencer <bigcheesegs at gmail.com>
wrote:
> On Fri, Feb 6, 2015 at 5:31 PM, Rui Ueyama <ruiu at google.com> wrote:
> > There are two questions.
> >
> > Firstly, do you think the on-disk format needs to compatible with a C++
> > struct so that we can cast that memory buffer to the struct? That may be
> >
2015 Feb 07
2
[LLVMdev] [lld] Representation of lld::Reference with a fake target
I think no one is opposing the idea of reading and writing YAML.
The problem here is that why we need to force all developers to write code
to serialize intermediate data in the middle of link, which no one except
the round-trip passes needs.
On Fri, Feb 6, 2015 at 6:41 PM, Shankar Easwaram <shankarke at gmail.com>
wrote:
> Doing it for every input file is not useful as some of the
2015 Feb 09
2
[LLVMdev] [lld] Representation of lld::Reference with a fake target
Hi,
The round trip passes just tries to load a *complete* object file in
YAML/Native format back.
The internal state should be the complete object file in native/yaml format.
If some state is not recorded and that is really needed in the writer,
we should add that to the Atom model.
Shankar Easwaran
On 2/9/2015 1:29 PM, Rui Ueyama wrote:
> I want to bring this again because I think
2018 May 23
0
[PATCH v3 18/27] xen: Adapt assembly for PIE support
Change the assembly code to use the new _ASM_MOVABS macro which get a
symbol reference while being PIE compatible. Adapt the relocation tool
to ignore 32-bit Xen code.
Position Independent Executable (PIE) support will allow to extended the
KASLR randomization range below the -2G memory limit.
Signed-off-by: Thomas Garnier <thgarnie at google.com>
---
arch/x86/tools/relocs.c | 16
2015 Feb 07
2
[LLVMdev] [lld] Representation of lld::Reference with a fake target
Not all input files have to be able to represented in YAML/Native format.
There are many unrealistic use cases there. No one wants to write an
executable file in Native because there's no operating system that can run
that file. So is YAML. So is the combination of .so file and Native/YAML
unless we have an operating system whose loader is able to loads a YAML .so
file.
We might want to write
2018 Mar 13
32
[PATCH v2 00/27] x86: PIE support and option to extend KASLR randomization
Changes:
- patch v2:
- Adapt patch to work post KPTI and compiler changes
- Redo all performance testing with latest configs and compilers
- Simplify mov macro on PIE (MOVABS now)
- Reduce GOT footprint
- patch v1:
- Simplify ftrace implementation.
- Use gcc mstack-protector-guard-reg=%gs with PIE when possible.
- rfc v3:
- Use --emit-relocs instead of -pie to reduce
2018 Mar 13
32
[PATCH v2 00/27] x86: PIE support and option to extend KASLR randomization
Changes:
- patch v2:
- Adapt patch to work post KPTI and compiler changes
- Redo all performance testing with latest configs and compilers
- Simplify mov macro on PIE (MOVABS now)
- Reduce GOT footprint
- patch v1:
- Simplify ftrace implementation.
- Use gcc mstack-protector-guard-reg=%gs with PIE when possible.
- rfc v3:
- Use --emit-relocs instead of -pie to reduce
2017 Oct 04
28
x86: PIE support and option to extend KASLR randomization
These patches make the changes necessary to build the kernel as Position
Independent Executable (PIE) on x86_64. A PIE kernel can be relocated below
the top 2G of the virtual address space. It allows to optionally extend the
KASLR randomization range from 1G to 3G.
Thanks a lot to Ard Biesheuvel & Kees Cook on their feedback on compiler
changes, PIE support and KASLR in general. Thanks to
2017 Oct 04
28
x86: PIE support and option to extend KASLR randomization
These patches make the changes necessary to build the kernel as Position
Independent Executable (PIE) on x86_64. A PIE kernel can be relocated below
the top 2G of the virtual address space. It allows to optionally extend the
KASLR randomization range from 1G to 3G.
Thanks a lot to Ard Biesheuvel & Kees Cook on their feedback on compiler
changes, PIE support and KASLR in general. Thanks to
2018 May 23
33
[PATCH v3 00/27] x86: PIE support and option to extend KASLR randomization
Changes:
- patch v3:
- Update on message to describe longer term PIE goal.
- Minor change on ftrace if condition.
- Changed code using xchgq.
- patch v2:
- Adapt patch to work post KPTI and compiler changes
- Redo all performance testing with latest configs and compilers
- Simplify mov macro on PIE (MOVABS now)
- Reduce GOT footprint
- patch v1:
- Simplify ftrace
2017 Oct 11
32
[PATCH v1 00/27] x86: PIE support and option to extend KASLR randomization
Changes:
- patch v1:
- Simplify ftrace implementation.
- Use gcc mstack-protector-guard-reg=%gs with PIE when possible.
- rfc v3:
- Use --emit-relocs instead of -pie to reduce dynamic relocation space on
mapped memory. It also simplifies the relocation process.
- Move the start the module section next to the kernel. Remove the need for
-mcmodel=large on modules. Extends
2017 Oct 11
32
[PATCH v1 00/27] x86: PIE support and option to extend KASLR randomization
Changes:
- patch v1:
- Simplify ftrace implementation.
- Use gcc mstack-protector-guard-reg=%gs with PIE when possible.
- rfc v3:
- Use --emit-relocs instead of -pie to reduce dynamic relocation space on
mapped memory. It also simplifies the relocation process.
- Move the start the module section next to the kernel. Remove the need for
-mcmodel=large on modules. Extends
2001 Dec 04
1
ULTRAHle N64 Emulator
Has anyone managed to rn this? If yes, with what configuration on what
distro and with which rom? Please help/
Help!
2014 Apr 29
2
[LLVMdev] MIPS n64 ABI and non-PIC
Has anyone experimented with generating non-PIC for MIPS64 and the n64 ABI?
Currently MipsISelLowering.cpp uses conditions like:
if ((getTargetMachine().getRelocationModel() == Reloc::PIC_) || IsN64) {
}
around any PIC code generation. Is generating non-PIC just untested, or is
it known not to work? I can't find any discussion of it anywhere. I ran
into this when trying to see why
2014 May 02
2
[LLVMdev] MIPS n64 ABI and non-PIC
Actually, GCC will generate non-PIC for n64. Maybe that is a recent
addition, but we are using its results. Even if PIC may be faster and
smaller code, it seems that non-PIC is still useful for bare-metal. That's
the driver of my interest. I guess we can just test what happens when that
part of the conditional is removed. As a side note, if it isn't supported
then we should probably