[LLVMdev] Building LLVM under Mingw. Part I: tools-only

Aaron Gray angray at beeb.net
Sat Apr 29 13:01:10 PDT 2006


Hi,

The Cygwin LLVM release (OPTIMIZED_ENABLED) version triggers a bug in LD 
(BFD binutils) this may well be common to MinGW as well.

Aaron

----- Original Message ----- 
From: "Anton Korobeynikov" <asl at math.spbu.ru>
To: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
Sent: Saturday, April 29, 2006 8:38 AM
Subject: [LLVMdev] Building LLVM under Mingw. Part I: tools-only


> Hello, Everyone.
>
> Now I have some spare time and I've decided to build LLVM on Mingw.
> I've grab the latest 1.7 release (not CVS snapshot). Here are some
> issues fixed during the build. Now I'm preparing gcc build. So, I
> think, there will some other "parts"
>
> 1. Prerequisites
>
> 1.1 GCC 3.4.5 from mingw.org site.
> $ gcc --version
> gcc.exe (GCC) 3.4.5 (mingw special)
> Copyright (C) 2004 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
> PURPOSE.
>
> 1.2. Binutils 2.16.91 20060119 from mingw.org site.
> $ ld --version
> GNU ld version 2.16.91 20060119
> Copyright 2005 Free Software Foundation, Inc.
> This program is free software; you may redistribute it under the terms of
> the GNU General Public License.  This program has absolutely no warranty.
>
> 1.3. GNU Make 3.79.1 taken from msys distribution.
>
> $ make --version
> GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
> Built for i686-pc-msys
> Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
>        Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.
> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> PARTICULAR PURPOSE.
>
> Report bugs to <bug-make at gnu.org>.
>
> 1.4. Bison 1.875 from GNUWin32 project
>
> $ bison --version
> bison (GNU Bison) 1.875
>
> 1.5 Flex 2.5.4 from GNUWin32 project.
>
>
> 2. Patching.
>
> 2.1. Libraries
> Add "LIBS+= -lpsapi -limagehlp" to each makefile (AFTER
> Makefile.common inclusion) building some tool (burg, tablegen, ll*),
> since gcc doesn't support vcpp style #pragma's of form:
> #pragma comment(lib, "dbghelp.lib")
>
> 2.2 CopyFile
> Patch lib/System/Win32/Path.inc in such way, that declaration of
> CopyFile will look like:
>
> void
> CopyFile(const sys::Path &Dest, const sys::Path &Src) {
>
> 2.3 X86 stuff
> Patch lib/Target/X86/X86SubTarget.cpp & X86JITInfo.cpp in such way:
>
> X86SubTarget.cpp:
> #if defined(__CYGWIN__) || defined(__MINGW32__)
>    TargetType = isCygwin;
> #elif defined(__APPLE__)
>    TargetType = isDarwin;
> #elif defined(_WIN32)
>    TargetType = isWindows;
> #endif
>
> X86JITInfo.cpp:
> #if defined(__CYGWIN__) || defined(__APPLE__) || defined(__MINGW32__)
>    ".globl _X86CompilationCallback\n"
>  "_X86CompilationCallback:\n"
> #else
> ...
> #if defined(__CYGWIN__) || defined(__APPLE__) || defined(__MINGW32__)
>    "call _X86CompilationCallback2\n"
> #else
>
> 2.4 alarm()'s in Sparc backend
>
> Remove from lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp
> all calls to alarm().
>
> 3. That's all
>
> This should be enough to configure and build LLVM in tools-only mode.
> Unfortunately, ld crashed while building llc, I'm currently
> investigating this problem. Also, I'm working on building gcc backend.
> The results will follow.
>
> -- 
> With best regards,
> Anton                          mailto:asl at math.spbu.ru
>
> Saturday, April 29, 2006 11:20:45 AM
>
> Faculty of Mathematics & Mechanics, Saint-Petersburg State University
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.375 / Virus Database: 268.5.1/327 - Release Date: 28/04/2006
> 




More information about the llvm-dev mailing list