[LLVMdev] dragonegg polly support broken?

Jack Howarth howarth at bromo.med.uc.edu
Sun Oct 21 11:46:45 PDT 2012


On Sun, Oct 21, 2012 at 02:35:49PM -0400, Jack Howarth wrote:
> On Sun, Oct 21, 2012 at 11:01:37AM -0700, Tobias Grosser wrote:
> > On 10/21/2012 10:57 AM, Jack Howarth wrote:
> >> On Sun, Oct 21, 2012 at 10:38:48AM -0700, Tobias Grosser wrote:
> >>> On 10/21/2012 09:13 AM, Jack Howarth wrote:
> >>>> On Sun, Oct 21, 2012 at 08:38:21AM -0700, Tobias Grosser wrote:
> >>>>> On 10/20/2012 05:38 PM, Jack Howarth wrote:
> >>>>>> Duncan,
> >>>>>>        Is the documentation for using Polly support in dragonegg correct? I built llvm/polly/dragonegg
> >>>>>> using the documentation at http://polly.llvm.org/example_load_Polly_into_dragonegg.html
> >>>>>> with...
> >>>>>>
> >>>>>> GCC=/sw/lib/gcc4.7/bin/gcc-4 LLVM_CONFIG=/sw/opt/llvm-3.2/bin/llvm-config ENABLE_LLVM_PLUGINS=1 make CPPFLAGS="-DENABLE_LTO -I/sw/include"
> >>>>>>
> >>>>>> The resulting dragonegg plugin works fine as...
> >>>>>>
> >>>>>> /sw/lib/gcc4.7/bin/gcc-4 -fplugin=/sw/lib/gcc4.7/lib/dragonegg.so -O3  himenoBMTxpa.c
> >>>>>>
> >>>>>> but if I try to invoke polly with...
> >>>>>>
> >>>>>> /sw/lib/gcc4.7/bin/gcc-4 -fplugin=/sw/lib/gcc4.7/lib/dragonegg.so -O3 -fplugin-arg-dragonegg-llvm-option=load:/sw/opt/llvm-3.2/lib/LLVMPolly.dylib himenoBMTxpa.c
> >>>>>>
> >>>>>>
> >>>>>> I get the error...
> >>>>>>
> >>>>>> cc1: Unknown command line argument 'load=/sw/opt/llvm-3.2/lib/LLVMPolly.dylib'.  Try: 'cc1 -help'
> >>>>>
> >>>>> I think the website is wrong. You probably need to add a '-' before the
> >>>>> 'load'. See the following:
> >>>>>
> >>>>> "-fplugin-arg-dragonegg-llvm-option=-load:/sw/opt/llvm-3.2/lib/LLVMPolly.dylib"
> >>>>>
> >>>>> Please let me know if this works, such that I can update the website.
> >>>>
> >>>> Tobias,
> >>>>      This solves the previous problem but exposes another...
> >>>
> >>> Great, I checked in the website fix in:
> >>>
> >>> https://llvm.org/svn/llvm-project/polly/trunk@166396
> >>>
> >>>>
> >>>> [MacBookPro:~] howarth% /sw/lib/gcc4.7/bin/gcc-4 -fplugin=/sw/lib/gcc4.7/lib/dragonegg.so -O3 -fplugin-arg-dragonegg-llvm-option=-load:/sw/opt/llvm-3.2/lib/LLVMPolly.dylib himenoBMTxpa.c -v
> >>>> himenoBMTxpa.c:248:5: warning: incompatible implicit declaration of built-in function ‘free’ [enabled by default]
> >>>> dyld: lazy symbol binding failed: fast lazy bind offset out of range (39257, max=7640) in image /sw/lib/gcc4.7/libexec/gcc/x86_64-apple-darwin11.4.2/4.7.2/cc1
> >>>> dyld: fast lazy bind offset out of range (39257, max=7640) in image /sw/lib/gcc4.7/libexec/gcc/x86_64-apple-darwin11.4.2/4.7.2/cc1
> >>>> gcc-4: internal compiler error: Trace/BPT trap: 5 (program cc1)
> >>>> Please submit a full bug report,
> >>>> with preprocessed source if appropriate.
> >>>> See <http://gcc.gnu.org/bugs.html> for instructions.
> >>>>
> >>>> I'll open a bugzilla for this one.
> >>>
> >>> Yes, please do. This is an interesting problem. I have no solution of
> >>> the top of my head.
> >>
> >> Done... http://llvm.org/bugs/show_bug.cgi?id=14140. I'll ping the MacPorts maintainers of their llvm-3.2 package to update
> >> it to contain polly as well. This, with a rebuild of their dragonegg-3.2 package, should provide the Apple programmers with
> >> pre-built binaries to debug this issue without tainting themselves with GPLv3 code.
> >
> > Thanks.
> >
> >> Can you take a look at lvm.org/bugs/show_bug.cgi?id=14135 as well? We need to avoid using LLVM_SHLIBEXT in the test
> >> subdirectory because this is defined to '.dylib' on darwin while Polly correctly builds the loadable module with the
> >> '.so' suffix causing almost all of the testsuite to fail with 'make test-polly'. Thanks in advance.
> >
> > I would prefer to build Polly with the native extension on darwin. The  
> > native extension seems to be '.dylib', no? Do you know if a autoconf  
> > build gets it right?
> 
> Tobias,
>    I would note that '.so' is a valid suffix for shared modules on darwin as witnessed by
> their use in /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
> for the python shared modules on both Lion and Mountain Lion. So we aren't deviating from
> convention here.
>         Jack

Also see http://docstore.mik.ua/orelly/unix3/mac/ch05_03.htm which describes the convention
for shared modules on darwin as being named with the .bundle or .so suffix. So the flaw is
limited to the test subdirectory in polly. Polly correctly produces a LLVMPolly.so but
incorrectly tries to test polly with a non-existent LLVMPolly.dylib.
          Jack

> 
> >
> > Tobi
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



More information about the llvm-dev mailing list