[compiler-rt] r208947 - InstrProf: Create a PIC version of the profile runtime

Alexey Samsonov vonosmas at gmail.com
Thu Nov 13 16:16:46 PST 2014


On Mon, Nov 10, 2014 at 3:36 PM, Duncan P. N. Exon Smith <
dexonsmith at apple.com> wrote:

>
> > On 2014-Nov-10, at 14:48, Alexey Samsonov <samsonov at google.com> wrote:
> >
> > Duncan,
> >
> > Why can't we always build the profile library with -fPIC, so that it
> would work for both PIC and non-PIC code?
> >
>
> Frankly I've paged this out.  I vaguely recall flailing about trying
> to get tests passing on ELF, which I'm not set up to test without
> pinging the buildbots (and I know all-too-little about).
>
> If you think *always* setting -fPIC will work, go ahead and try it.
> Having two libraries is clearly inferior.
>

Trying this in r221952.


>
> > On Thu, May 15, 2014 at 9:07 PM, Duncan P. N. Exon Smith <
> dexonsmith at apple.com> wrote:
> > Author: dexonsmith
> > Date: Thu May 15 23:07:09 2014
> > New Revision: 208947
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=208947&view=rev
> > Log:
> > InstrProf: Create a PIC version of the profile runtime
> >
> > These tests were XPASS-ing on Linux bots creating Mach-O, which makes
> > sense, since the real difference is the object format.
> >
> > I'm hoping a short-term fix to get these tests passing on ELF is to
> > create two copies of the runtime -- one built with -fPIC, and one
> > without.  A follow-up patch will change clang's driver to pick between
> > them depending on whether `-shared` is specified.
> >
> > Modified:
> >     compiler-rt/trunk/lib/profile/CMakeLists.txt
> >     compiler-rt/trunk/test/profile/instrprof-dynamic-one-shared.test
> >     compiler-rt/trunk/test/profile/instrprof-dynamic-two-shared.test
> >
> > Modified: compiler-rt/trunk/lib/profile/CMakeLists.txt
> > URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/CMakeLists.txt?rev=208947&r1=208946&r2=208947&view=diff
> >
> ==============================================================================
> > --- compiler-rt/trunk/lib/profile/CMakeLists.txt (original)
> > +++ compiler-rt/trunk/lib/profile/CMakeLists.txt Thu May 15 23:07:09 2014
> > @@ -19,6 +19,11 @@ else()
> >      add_compiler_rt_runtime(clang_rt.profile-${arch} ${arch} STATIC
> >        SOURCES ${PROFILE_SOURCES})
> >      add_dependencies(profile clang_rt.profile-${arch})
> > +
> > +    add_compiler_rt_runtime(clang_rt.profile-pic-${arch} ${arch} STATIC
> > +      CFLAGS -fPIC
> > +      SOURCES ${PROFILE_SOURCES})
> > +    add_dependencies(profile clang_rt.profile-pic-${arch})
> >    endforeach()
> >  endif()
> >
> >
> > Modified:
> compiler-rt/trunk/test/profile/instrprof-dynamic-one-shared.test
> > URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/instrprof-dynamic-one-shared.test?rev=208947&r1=208946&r2=208947&view=diff
> >
> ==============================================================================
> > --- compiler-rt/trunk/test/profile/instrprof-dynamic-one-shared.test
> (original)
> > +++ compiler-rt/trunk/test/profile/instrprof-dynamic-one-shared.test Thu
> May 15 23:07:09 2014
> > @@ -1,5 +1,3 @@
> > -XFAIL: linux, android
> > -
> >  RUN: mkdir -p %t.d
> >  RUN: %clang_profgen -o %t.d/a.shared -fPIC -shared
> %S/Inputs/instrprof-dynamic-a.cpp
> >  RUN: %clang_profgen -o %t-shared -fPIC -rpath %t.d %t.d/a.shared
> %S/Inputs/instrprof-dynamic-b.cpp %S/Inputs/instrprof-dynamic-main.cpp
> >
> > Modified:
> compiler-rt/trunk/test/profile/instrprof-dynamic-two-shared.test
> > URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/instrprof-dynamic-two-shared.test?rev=208947&r1=208946&r2=208947&view=diff
> >
> ==============================================================================
> > --- compiler-rt/trunk/test/profile/instrprof-dynamic-two-shared.test
> (original)
> > +++ compiler-rt/trunk/test/profile/instrprof-dynamic-two-shared.test Thu
> May 15 23:07:09 2014
> > @@ -1,5 +1,3 @@
> > -XFAIL: linux, android
> > -
> >  RUN: mkdir -p %t.d
> >  RUN: %clang_profgen -o %t.d/a.shared -fPIC -shared
> %S/Inputs/instrprof-dynamic-a.cpp
> >  RUN: %clang_profgen -o %t.d/b.shared -fPIC -shared
> %S/Inputs/instrprof-dynamic-b.cpp
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> >
> >
> >
> > --
> > Alexey Samsonov, Mountain View, CA
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>



-- 
Alexey Samsonov
vonosmas at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141113/7471b012/attachment.html>


More information about the llvm-commits mailing list