Phil Tomson via llvm-dev
2015-Nov-06 19:00 UTC
[llvm-dev] How does -fPIE get passed from clang to llc when run on a .ll file?
On Fri, Nov 6, 2015 at 10:46 AM, Tim Northover <t.p.northover at gmail.com> wrote:> On 6 November 2015 at 10:32, Phil Tomson via llvm-dev > <llvm-dev at lists.llvm.org> wrote: > > So if I were to pass this .ll file (global_dat_x86_pie.ll) to llc how > would > > llc know that the PIE Level is 2? Is this an oversight, bug, or expetcted > > behaviour with a different workaround? > > It looks like it's the "-enable-pie" command line option, which gets > hooked up to TargetOptions::PositionIndependentExecutable if you're > doing it programmatically. I'm not sure of the history behind why > they're different though, I'm afraid. > >With 3.6 I get an unused argument warning with -enable-pie: $ clang -v -emit-llvm -enable-pie -O0 -S global_dat.c -o global_dat_x86_pie.ll clang: warning: argument unused during compilation: '-e nable-pie' -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151106/20e3fceb/attachment-0001.html>
Tim Northover via llvm-dev
2015-Nov-06 19:10 UTC
[llvm-dev] How does -fPIE get passed from clang to llc when run on a .ll file?
On 6 November 2015 at 11:00, Phil Tomson <phil.a.tomson at gmail.com> wrote:> With 3.6 I get an unused argument warning with -enable-pie: > > $ clang -v -emit-llvm -enable-pie -O0 -S global_dat.c -o > global_dat_x86_pie.llYes, it's an llc option not a Clang option. It actually looks like Clang doesn't forward it to LLVM at all (almost certainly a bug, if so). But that's probably OK because the only place LLVM actually uses it at all is to determine what kind of TLS model to use (TargetMachine.cpp), which linkers can mostly relax anyway. It does seem to get passed onto the linker by Clang though. Cheers. Tim.
Phil Tomson via llvm-dev
2015-Nov-06 19:20 UTC
[llvm-dev] How does -fPIE get passed from clang to llc when run on a .ll file?
On Fri, Nov 6, 2015 at 11:10 AM, Tim Northover <t.p.northover at gmail.com> wrote:> On 6 November 2015 at 11:00, Phil Tomson <phil.a.tomson at gmail.com> wrote: > > With 3.6 I get an unused argument warning with -enable-pie: > > > > $ clang -v -emit-llvm -enable-pie -O0 -S global_dat.c -o > > global_dat_x86_pie.ll > > Yes, it's an llc option not a Clang option. It actually looks like > Clang doesn't forward it to LLVM at all (almost certainly a bug, if > so). But that's probably OK because the only place LLVM actually uses > it at all is to determine what kind of TLS model to use > (TargetMachine.cpp), which linkers can mostly relax anyway. >In my case I'm actually working on a backend for a new architecture and need this to show up in LLVM because certain pseudo ops need to be expanded in a certain way if we're using PIE (vs. just a default static link). So are these options accessible in the Target-specific code?> > It does seem to get passed onto the linker by Clang though. >Not sure how that can work.> Cheers. > > Tim. >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151106/6de6d45b/attachment.html>
Seemingly Similar Threads
- How does -fPIE get passed from clang to llc when run on a .ll file?
- How does -fPIE get passed from clang to llc when run on a .ll file?
- Expanding a PseudoOp and accessing the DAG
- [LLVMdev] Clang predefined macros with -fPIC and -fPIE
- [PATCH] Fix gpxe compilation when gcc is patched to compile by default with -fPIE -Wl, -pie