[LLVMdev] Fw: -fPIC warning on every compile on Cygwin

Aaron Gray aaronngray.lists at googlemail.com
Mon Mar 2 15:05:07 PST 2009


On Sun, Mar 1, 2009 at 4:24 AM, Nick Lewycky <nicholas at mxc.ca> wrote:

  Please try this patch. I tried to copy exactly what libtool would do on Cygwin by reading the libtool source.


Hi Nick,

Working fine on Cygwin :)

Aaron



  Nick

  Aaron Gray wrote:

    On Fri, Feb 27, 2009 at 4:50 PM, Aaron Gray <aaronngray.lists at googlemail.com <mailto:aaronngray.lists at googlemail.com>> wrote:

       On Fri, Feb 27, 2009 at 4:32 PM, Jay Foad <jay.foad at gmail.com

       <mailto:jay.foad at gmail.com>> wrote:

            >> Could you please rig Makefile.rules or something to print
           out the value
            >> of $(LLVM_ON_WIN32) ? The only way I can think of this
           happening is if
            >> that's erroneously false.

           This works for me:

           Index: Makefile.rules
           ===================================================================
           --- Makefile.rules      (revision 65633)
           +++ Makefile.rules      (working copy)
           @@ -298,6 +298,8 @@
                 # Common symbols not allowed in dylib files
                 CXX.Flags += -fno-common
                 C.Flags   += -fno-common
           +    else ifeq ($(OS),Cygwin)
           +      # Nothing. Cygwin defaults to PIC and warns when given -fPIC
               else
                 # Linux and others; pass -fPIC
                 CXX.Flags += -fPIC

           Jay, thanks I will try this.

     I had to hand modify the code as it did not seem to want to work as a patch.
     However, it does not deal with the LLVMHello.dll problem. Here's what I am getting :-
     ~~~
    llvm[3]: Linking Debug Loadable Module LLVMHello.dll
    /usr/build/llvm-65633/lib/Transforms/Hello/Debug/Hello.o: In function `_ZN79_GLO
    BAL__N__usr_src_llvm_65633_lib_Transforms_Hello_Hello.cpp_00000000_965F4EBD6Hell
    o213runOnFunctionERN4llvm8FunctionE':
    /usr/src/llvm-65633/lib/Transforms/Hello/Hello.cpp:53: undefined reference to `l
    lvm::EscapeString(std::basic_string<char, std::char_traits<char>, std::allocator
    <char> >&)'
    /usr/src/llvm-65633/lib/Transforms/Hello/Hello.cpp:54: undefined reference to `l
    lvm::cerr'
    /usr/build/llvm-65633/lib/Transforms/Hello/Debug/Hello.o: In function `_ZN79_GLO
    BAL__N__usr_src_llvm_65633_lib_Transforms_Hello_Hello.cpp_00000000_965F4EBD5Hell
    o13runOnFunctionERN4llvm8FunctionE':
    /usr/src/llvm-65633/lib/Transforms/Hello/Hello.cpp:34: undefined reference to `l
    lvm::EscapeString(std::basic_string<char, std::char_traits<char>, std::allocator
    <char> >&)'
    /usr/src/llvm-65633/lib/Transforms/Hello/Hello.cpp:35: undefined reference to `l
    lvm::cerr'
    /usr/build/llvm-65633/lib/Transforms/Hello/Debug/Hello.o: In function `_ZSt17__v
    erify_groupingPKcjRKSs':
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2569: undefined reference to `llvm::PassInfo::registerPass()'
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2571: undefined reference to `llvm::Pass::getPassName() const'
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2571: undefined reference to `llvm::Pass::print(std::basic_ostr
    eam<char, std::char_traits<char> >&, llvm::Module const*) const'
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2571: undefined reference to `llvm::FunctionPass::assignPassMan
    ager(llvm::PMStack&, llvm::PassManagerType)'
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2570: undefined reference to `llvm::Pass::dumpPassStructure(uns
    igned int)'
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2576: undefined reference to `llvm::FunctionPass::runOnModule(l
    lvm::Module&)'
    /usr/build/llvm-65633/lib/Transforms/Hello/Debug/Hello.o: In function `_ZN4llvm1
    2RegisterPassIN79_GLOBAL__N__usr_src_llvm_65633_lib_Transforms_Hello_Hello.cpp_0
    0000000_965F4EBD5HelloEEC1EPKcS5_bb':
    /usr/src/llvm-65633/include/llvm/PassSupport.h:172: undefined reference to `llvm
    ::Pass::getPassName() const'
    /usr/src/llvm-65633/include/llvm/PassSupport.h:172: undefined reference to `llvm
    ::Pass::print(std::basic_ostream<char, std::char_traits<char> >&, llvm::Module c
    onst*) const'
    /usr/src/llvm-65633/include/llvm/PassSupport.h:172: undefined reference to `llvm
    ::FunctionPass::assignPassManager(llvm::PMStack&, llvm::PassManagerType)'
    /usr/src/llvm-65633/include/llvm/PassSupport.h:175: undefined reference to `llvm
    ::Pass::dumpPassStructure(unsigned int)'
    /usr/src/llvm-65633/include/llvm/PassSupport.h:175: undefined reference to `llvm
    ::FunctionPass::runOnModule(llvm::Module&)'
    /usr/build/llvm-65633/lib/Transforms/Hello/Debug/Hello.o: In function `_ZSt17__v
    erify_groupingPKcjRKSs':
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2560: undefined reference to `llvm::Statistic::RegisterStatisti
    c()'
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2558: undefined reference to `llvm::Value::getNameStr() const'
    /usr/build/llvm-65633/lib/Transforms/Hello/Debug/Hello.o: In function `_ZNSt12_V
    ector_baseISt4pairIPKN4llvm8PassInfoEPNS1_4PassEESaIS7_EEC2ERKS8_':
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/s
    tl_vector.h:(.text$_ZN4llvm12FunctionPassD2Ev[llvm::FunctionPass::~FunctionPass(
    )]+0x7): undefined reference to `vtable for llvm::FunctionPass'
    /usr/build/llvm-65633/lib/Transforms/Hello/Debug/Hello.o: In function `_ZSt17__v
    erify_groupingPKcjRKSs':
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2558: undefined reference to `llvm::Pass::~Pass()'
    /usr/build/llvm-65633/lib/Transforms/Hello/Debug/Hello.o: In function `_ZNSt12_V
    ector_baseISt4pairIPKN4llvm8PassInfoEPNS1_4PassEESaIS7_EEC2ERKS8_':
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/s
    tl_vector.h:(.text$_ZN4llvm4PassC2EPKv[llvm::Pass::Pass(void const*)]+0x7): unde
    fined reference to `vtable for llvm::Pass'
    /usr/build/llvm-65633/lib/Transforms/Hello/Debug/Hello.o: In function `_ZSt17__v
    erify_groupingPKcjRKSs':
    /usr/gcc-4.2.2/lib/gcc/i686-pc-cygwin/4.2.2/../../../../include/c++/4.2.2/bits/l
    ocale_facets.tcc:2558: undefined reference to `vtable for llvm::FunctionPass'
    collect2: ld returned 1 exit status
    make[3]: *** [/usr/build/llvm-65633/Debug/lib/LLVMHello.dll] Error 1
    make[3]: Leaving directory `/usr/build/llvm-65633/lib/Transforms/Hello'
    make[2]: *** [Hello/.makeall] Error 2
    make[2]: Leaving directory `/usr/build/llvm-65633/lib/Transforms'
    make[1]: *** [Transforms/.makeall] Error 2
    make[1]: Leaving directory `/usr/build/llvm-65633/lib'
    make: *** [all] Error 1

     Aaron Gray at AMD2500-PC <mailto:Gray at AMD2500-PC> /usr/build/llvm-65633 $
     Aaron
     



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090302/18e7e1f2/attachment.html>


More information about the llvm-dev mailing list