First Pass at building dragon egg-3.3 for clang 3.3 - using gcc-4.7

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

First Pass at building dragon egg-3.3 for clang 3.3 - using gcc-4.7

Lou Picciano
LLVM Friends,

First time attempting a build of dragonegg, using our shiny new install of clang-3.3. I'm clearly off to a terrifying start!

 
dragonegg-3.3.src$ CXX=/usr/bin/gcc GCC=/usr/bin/gcc ENABLE_LLVM_PLUGINS=1 LLVM_CONFIG=/usr/bin/llvm-config CFLAGS=-I/usr/clang/3.3/lib/clang/3.3/include CXXFLAGS="-I/usr/clang/3.3/lib/clang/3.3/include" make 
      
Compiling utils/TargetInfo.cpp
In file included from /usr/clang/3.3/include/llvm/Support/DataTypes.h:67:0,
                 from /usr/clang/3.3/include/llvm/Support/type_traits.h:20,
                 from /usr/clang/3.3/include/llvm/ADT/StringRef.h:13,
                 from /usr/clang/3.3/include/llvm/ADT/Twine.h:13,
                 from /usr/clang/3.3/include/llvm/ADT/Triple.h:13,
                 from /home/drlou/Downloads/dragonegg-3.3.src/utils/TargetInfo.cpp:23:
/usr/clang/3.3/lib/clang/3.3/include/stdint.h:32:54: error: missing binary operator before token "("
/usr/clang/3.3/lib/clang/3.3/include/stdint.h:187:0: warning: "__int_least32_t" redefined [enabled by default]
/usr/clang/3.3/lib/clang/3.3/include/stdint.h:113:0: note: this is the location of the previous definition
/usr/clang/3.3/lib/clang/3.3/include/stdint.h:188:0: warning: "__uint_least32_t" redefined [enabled by default]
/usr/clang/3.3/lib/clang/3.3/include/stdint.h:114:0: note: this is the location of the previous definition
/usr/clang/3.3/lib/clang/3.3/include/stdint.h:189:0: warning: "__int_least16_t" redefined [enabled by default]
/usr/clang/3.3/lib/clang/3.3/include/stdint.h:115:0: note: this is the location of the previous definition

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: First Pass at building dragon egg-3.3 for clang 3.3 - using gcc-4.7

Duncan Sands
Hi,

On 25/07/13 04:38, Lou Picciano wrote:
> LLVM Friends,
>
> First time attempting a build of dragonegg, using our shiny new install of
> clang-3.3. I'm clearly off to a terrifying start!
>
>
> dragonegg-3.3.src$ CXX=/usr/bin/gcc

This says to compile using gcc

  GCC=/usr/bin/gcc

This says that the plugin will be used with /usr/bin/gcc when built.

  ENABLE_LLVM_PLUGINS=1
> LLVM_CONFIG=/usr/bin/llvm-config


CFLAGS=-I/usr/clang/3.3/lib/clang/3.3/include
> CXXFLAGS="-I/usr/clang/3.3/lib/clang/3.3/include"

These say to use clang headers.  Not sure why you want to use clang headers when
compiling using gcc.

  make

>
> Compiling utils/TargetInfo.cpp
> In file included from /usr/clang/3.3/include/llvm/Support/DataTypes.h:67:0,
>                   from /usr/clang/3.3/include/llvm/Support/type_traits.h:20,
>                   from /usr/clang/3.3/include/llvm/ADT/StringRef.h:13,
>                   from /usr/clang/3.3/include/llvm/ADT/Twine.h:13,
>                   from /usr/clang/3.3/include/llvm/ADT/Triple.h:13,
>                   from
> /home/drlou/Downloads/dragonegg-3.3.src/utils/TargetInfo.cpp:23:
> /usr/clang/3.3/lib/clang/3.3/include/stdint.h:32:54: error: missing binary
> operator before token "("

This seems to be saying that gcc doesn't like the clang headers.  I suggest you
don't use them.

Anyway, not sure why you are trying to do this so complicated, doesn't this
work:
   make
?

Other comments:
   CXX is for providing a C++ compiler, so should be g++ not gcc
    Since /usr/bin/gcc is in your path, probably you don't need CXX to force this
    compiler (or did you put clang in front of it in your path?; if so it still
    shouldn't be needed since clang can also compile dragonegg)

   GCC=/usr/bin/gcc is probably not needed, since it is the default

Ciao, Duncan.

> /usr/clang/3.3/lib/clang/3.3/include/stdint.h:187:0: warning: "__int_least32_t"
> redefined [enabled by default]
> /usr/clang/3.3/lib/clang/3.3/include/stdint.h:113:0: note: this is the location
> of the previous definition
> /usr/clang/3.3/lib/clang/3.3/include/stdint.h:188:0: warning: "__uint_least32_t"
> redefined [enabled by default]
> /usr/clang/3.3/lib/clang/3.3/include/stdint.h:114:0: note: this is the location
> of the previous definition
> /usr/clang/3.3/lib/clang/3.3/include/stdint.h:189:0: warning: "__int_least16_t"
> redefined [enabled by default]
> /usr/clang/3.3/lib/clang/3.3/include/stdint.h:115:0: note: this is the location
> of the previous definition
>
>
> _______________________________________________
> LLVM Developers mailing list
> [hidden email]         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: First Pass at building dragon egg-3.3 for clang 3.3 - using gcc-4.7

Lou Picciano
In reply to this post by Lou Picciano
Duncan,
Many thanks for your comments.

The core issue we're running into is this:
$ GCC=/usr/bin/gcc LLVM_CONFIG=/usr/bin/llvm-config make
Compiling utils/TargetInfo.cpp
Linking TargetInfo
ld: fatal: library -lLLVMSupport: not found
ld: fatal: file processing errors. No output written to TargetInfo
collect2: error: ld returned 1 exit status
All other gyrations are attempts to shoehorn LLVMSupport into the compile. I've been sourcing the Makefile and README for hints.

To your point on declaring the location of gcc: Oddly, though gcc (4.7) is available to the environment, the Makefile does not find it without explicit direction:
dragonegg-3.3.src$ make                                                          
make: cc: Command not found
Thanks in advance, Lou Picciano
 
(and apologies for the top posting; crappy email client)
 
On 25/07/13 04:38, Lou Picciano wrote:
> LLVM Friends,
>
> First time attempting a build of dragonegg, using our shiny new install of
> clang-3.3. I'm clearly off to a terrifying start!
>
>
> dragonegg-3.3.src$ CXX=/usr/bin/gcc
This says to compile using gcc
  GCC=/usr/bin/gcc
This says that the plugin will be used with /usr/bin/gcc when built.
  ENABLE_LLVM_PLUGINS=1
> LLVM_CONFIG=/usr/bin/llvm-config

CFLAGS=-I/usr/clang/3.3/lib/clang/3.3/include
> CXXFLAGS="-I/usr/clang/3.3/lib/clang/3.3/include"
These say to use clang headers.  Not sure why you want to use clang headers when
compiling using gcc.
  make
>
> Compiling utils/TargetInfo.cpp
> In file included from /usr/clang/3.3/include/llvm/Support/DataTypes.h:67:0,
>                   from /usr/clang/3.3/include/llvm/Support/type_traits.h:20,
>                   from /usr/clang/3.3/include/llvm/ADT/StringRef.h:13,
>                   from /usr/clang/3.3/include/llvm/ADT/Twine.h:13,
>                   from /usr/clang/3.3/include/llvm/ADT/Triple.h:13,
>                   from
> /home/drlou/Downloads/dragonegg-3.3.src/utils/TargetInfo.cpp:23:
> /usr/clang/3.3/lib/clang/3.3/include/stdint.h:32:54: error: missing binary
> operator before token "("
This seems to be saying that gcc doesn't like the clang headers.  I suggest you
don't use them.
Anyway, not sure why you are trying to do this so complicated, doesn't this
work:
   make
?
Other comments:
   CXX is for providing a C++ compiler, so should be g++ not gcc
    Since /usr/bin/gcc is in your path, probably you don't need CXX to force this
    compiler (or did you put clang in front of it in your path?; if so it still
    shouldn't be needed since clang can also compile dragonegg)
   GCC=/usr/bin/gcc is probably not needed, since it is the default
Ciao, Duncan.
_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: First Pass at building dragon egg-3.3 for clang 3.3 - using gcc-4.7

Duncan Sands
Hi,

On 25/07/13 15:47, Lou Picciano wrote:
> Duncan,
> Many thanks for your comments.
>
> The core issue we're running into is this:
>
>     $ GCC=/usr/bin/gcc LLVM_CONFIG=/usr/bin/llvm-config make
>     Compiling utils/TargetInfo.cpp
>     Linking TargetInfo
>     ld: fatal: library -lLLVMSupport: not found

llvm-config is supposed to say where the libraries are.  Take a look at the
output of
   usr/bin/llvm-config --ldflags

On my system it outputs
  -L/usr/local/lib   -lrt -ldl -lpthread -lz
and indeed libLLVMSupport is there
   $ ls /usr/local/lib/libLLVMSupport*
   /usr/local/lib/libLLVMSupport.a

>     ld: fatal: file processing errors. No output written to TargetInfo
>     collect2: error: ld returned 1 exit status
>
> All other gyrations are attempts to shoehorn LLVMSupport into the compile. I've
> been sourcing the Makefile and README for hints.
>
> To your point on declaring the location of gcc: Oddly, though gcc (4.7) is
> available to the environment, the Makefile does not find it without explicit
> direction:
>
>     dragonegg-3.3.src$ make
>     make: cc: Command not found

What O/S is this on?  Most linux O/S's auto-define the CC variable to point to
the system C compiler.  For example on my system
   $ echo $CC
   gcc
It looks like on your system CC is defined to be equal to cc but there is no
such compiler.  Sounds like a misconfigured system.

Best wishes, Duncan.

>
> Thanks in advance, Lou Picciano
>
> (and apologies for the top posting; crappy email client)
>
> On 25/07/13 04:38, Lou Picciano wrote:
>> LLVM Friends,
>>
>> First time attempting a build of dragonegg, using our shiny new install of
>> clang-3.3. I'm clearly off to a terrifying start!
>>
>>
>> dragonegg-3.3.src$ CXX=/usr/bin/gcc
> This says to compile using gcc
>    GCC=/usr/bin/gcc
> This says that the plugin will be used with /usr/bin/gcc when built.
>    ENABLE_LLVM_PLUGINS=1
>> LLVM_CONFIG=/usr/bin/llvm-config
>
> CFLAGS=-I/usr/clang/3.3/lib/clang/3.3/include
>> CXXFLAGS="-I/usr/clang/3.3/lib/clang/3.3/include"
> These say to use clang headers.  Not sure why you want to use clang headers when
> compiling using gcc.
>    make
>>
>> Compiling utils/TargetInfo.cpp
>> In file included from /usr/clang/3.3/include/llvm/Support/DataTypes.h:67:0,
>>                   from /usr/clang/3.3/include/llvm/Support/type_traits.h:20,
>>                   from /usr/clang/3.3/include/llvm/ADT/StringRef.h:13,
>>                   from /usr/clang/3.3/include/llvm/ADT/Twine.h:13,
>>                   from /usr/clang/3.3/include/llvm/ADT/Triple.h:13,
>>                   from
>> /home/drlou/Downloads/dragonegg-3.3.src/utils/TargetInfo.cpp:23:
>> /usr/clang/3.3/lib/clang/3.3/include/stdint.h:32:54: error: missing binary
>> operator before token "("
> This seems to be saying that gcc doesn't like the clang headers.  I suggest you
> don't use them.
> Anyway, not sure why you are trying to do this so complicated, doesn't this
> work:
>     make
> ?
> Other comments:
>     CXX is for providing a C++ compiler, so should be g++ not gcc
>      Since /usr/bin/gcc is in your path, probably you don't need CXX to force this
>      compiler (or did you put clang in front of it in your path?; if so it still
>      shouldn't be needed since clang can also compile dragonegg)
>     GCC=/usr/bin/gcc is probably not needed, since it is the default
> Ciao, Duncan.

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev