[LLVMdev] dragonegg polly support broken?

Jack Howarth
Sun, 21 Oct 2012 18:35:49 -0000

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 at 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

>
> Tobi