Changeset f36bebcd for general/prog
- Timestamp:
- 05/12/2012 07:33:22 PM (12 years ago)
- Branches:
- 10.0, 10.1, 11.0, 11.1, 11.2, 11.3, 12.0, 12.1, 7.10, 7.4, 7.5, 7.6, 7.6-blfs, 7.6-systemd, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, basic, bdubbs/svn, elogind, gnome, kde5-13430, kde5-14269, kde5-14686, kea, ken/TL2024, ken/inkscape-core-mods, ken/tuningfonts, krejzi/svn, lazarus, lxqt, nosym, perl-modules, plabs/newcss, plabs/python-mods, python3.11, qt5new, rahul/power-profiles-daemon, renodr/vulkan-addition, systemd-11177, systemd-13485, trunk, upgradedb, xry111/intltool, xry111/llvm18, xry111/soup3, xry111/test-20220226, xry111/xf86-video-removal
- Children:
- 5bcb329
- Parents:
- 86f7fa0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
general/prog/llvm.xml
r86f7fa0 rf36bebcd 10 10 <!ENTITY llvm-size "9.9 MB"> 11 11 <!ENTITY llvm-buildsize "265 MB"> 12 <!ENTITY llvm-time "13.2 SBU ">12 <!ENTITY llvm-time "13.2 SBU (add about 7 SBU for clang)"> 13 13 ]> 14 14 … … 31 31 32 32 <para>The <application>llvm</application> package contains a collection of 33 modular and reusable compiler and toolchain technologies. The LLVM Core 34 libraries provide a modern source- and target-independent optimizer, along 35 with code generation support for many popular CPUs (as well as some less 36 common ones!) These libraries are built around a well specified code 37 representation known as the LLVM intermediate representation ("LLVM 38 IR").</para> 33 modular and reusable compiler and toolchain technologies. The Low Level 34 Virtual MAchine (LLVM) Core libraries provide a modern source- and 35 target-independent optimizer, along with code generation support for many 36 popular CPUs (as well as some less common ones!) These libraries are built 37 around a well specified code representation known as the LLVM intermediate 38 representation ("LLVM IR").</para> 39 40 <para>The optional <application>clang</application> package provides a 41 new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.</para> 39 42 40 43 &lfs71_checked; … … 62 65 </itemizedlist> 63 66 67 <bridgehead renderas="sect3">Additional Downloads</bridgehead> 68 <itemizedlist spacing='compact'> 69 <listitem> 70 <para>Optional package: 71 <ulink url="http://llvm.org/releases/&llvm-version;/clang-&llvm-version;.tar.gz"/> 72 </para> 73 </listitem> 74 </itemizedlist> 75 64 76 <bridgehead renderas="sect3">LLVM Dependencies</bridgehead> 77 78 <bridgehead renderas="sect4">Recommended</bridgehead> 79 <para role="recommended"> 80 <xref linkend="libffi"/> 81 </para> 65 82 66 83 <bridgehead renderas="sect4">Optional</bridgehead> 67 84 <para role="optional"> 68 <xref linkend="doxygen"/>, 69 <xref linkend="graphviz"/>, and 70 <xref linkend="libffi"/> 85 <xref linkend="doxygen"/> and 86 <xref linkend="graphviz"/> 71 87 </para> 72 88 … … 79 95 <title>Installation of LLVM</title> 80 96 97 <para>If you downloaded the optional <application>clang</application> package, 98 install it into the source tree:</para> 99 100 <screen><userinput>tar -xf ../clang-3.0.tar.gz -C tools && 101 mv tools/clang-3.0.src tools/clang</userinput></screen> 102 81 103 <para>Install <application>llvm</application> by running the following 82 104 commands:</para> 83 105 84 <screen><userinput>touch tools/edis/EnhancedDisassembly.exports && 85 ./configure --prefix=/opt/llvm && 86 find -name Makefile -exec \ 87 sed -i -r -e '/^LIBRARYNAME/a SHARED_LIBRARY = 1' \ 88 -e 's#BUILD_ARCHIVE :*= 1#NO_&#' \ 89 -e '/^USEDLIBS/s# ([A-Za-z]*).a# -l\1#g' \ 90 -e 's#^USEDLIBS#LDFLAGS#' {} \; && 91 sed -i 's#BUILD_ARCHIVE = 1#NO_&#' Makefile.rules && 92 sed -i 's#x)/docs#x)/share/doc#' Makefile.config && 106 <screen><userinput>touch tools/edis/EnhancedDisassembly.exports && 107 108 CFLAGS="$CFLAGS -fno-tree-pre" && 109 CXXFLAGS="$CXXFLAGS -fno-tree-pre" && 110 111 sed -i -e 's:\$(PROJ_prefix)/etc/llvm:/etc/llvm:' \ 112 -e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib/llvm:' \ 113 -e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \ 114 Makefile.config.in && 115 116 sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' Makefile.rules && 117 118 export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)" && 119 120 CC=gcc \ 121 CXX=g++ \ 122 ./configure --prefix=/usr \ 123 --libdir=/usr/lib/llvm \ 124 --sysconfdir=/etc \ 125 --enable-shared \ 126 --enable-libffi \ 127 --enable-targets=all \ 128 --disable-expensive-checks \ 129 --disable-debug-runtime \ 130 --disable-assertions \ 131 --enable-optimized && 132 93 133 make</userinput></screen> 94 134 … … 97 137 <para>Now, as the <systemitem class="username">root</systemitem> user:</para> 98 138 99 <screen role="root"><userinput>make install && 100 echo "/opt/llvm/lib" >> /etc/ld.so.conf && 101 ldconfig && 102 echo "pathappend /usr/share/man MANPATH" >> /etc/profile.d/extrapaths.sh && 103 echo "pathappend /opt/llvm/share/man MANPATH" >> /etc/profile.d/extrapaths.sh && 104 echo "pathappend /opt/llvm/bin" >> /etc/profile.d/extrapaths.sh && 105 ln -svf /opt/llvm/share/doc /usr/share/doc/llvm-&llvm-version;</userinput></screen> 139 <screen role="root"><userinput>make install</userinput></screen> 106 140 107 141 </sect2> … … 110 144 <title>Command Explanations</title> 111 145 112 <para><parameter>--prefix=/opt/llvm</parameter>: This package has a large 113 number of libraries and executables. This option keeps them 114 separate.</para> 115 116 <para><userinput>find -name Makefile -exec sed ...</userinput>: This 117 command ensures that dynamic libraries are built.</para> 118 119 <para><userinput>sed ... Makefile.rules</userinput>: This 120 command disables building static libraries.</para> 121 122 <para><userinput>echo "pathappend ..." >> 123 /etc/profile.d/extrapaths.sh</userinput>: Set up the user paths properly to 124 find the program executables and man pages.</para> 146 <para><userinput>CFLAGS=... CXXFLAGS=...</userinput>: Build without 147 -ftree-pre as a workaround for clang segfaulting on x86_64 systems.</para> 148 149 <para><userinput>sed ... Makefile.config.in</userinput>: This fixes 150 installation directories.</para> 151 152 <para><userinput>sed ... Makefile.rules</userinput>: This fixes an insecure 153 rpath that points ot the build directory.</para> 125 154 126 155 </sect2> … … 135 164 136 165 <seglistitem> 137 <seg> numerous programs installed in /opt/llvm/bin</seg>138 <seg>numerous libraries installed in /opt/llvm/lib</seg>139 <seg>/ opt/llvm</seg>166 <seg>clang, clang++, and numerous llvm-* build tools</seg> 167 <seg>numerous custom libraries to support llvm and clang programs</seg> 168 <seg>/usr/lib/{clang,llvm}, /usr/share/doc/llvm</seg> 140 169 </seglistitem> 141 170 </segmentedlist>
Note:
See TracChangeset
for help on using the changeset viewer.