-<p><b>Solaris/SPARC:</b></p>
-
-<p>
-The GCC front-end can be configured for either SPARC V8 (32 bit) or SPARC V9 (64
-bit). This changes, among other things, the sizes of integer types and the
-macros defined for conditional compilation.
-</p>
-
-<p>
-The SPARC V8 ABI support is more robust than the V9 ABI support and can generate
-SPARC V9 code. It is highly recommended that you use the V8 ABI with LLVM, as
-shown below. Also,
-note that Solaris has trouble with various wide (multibyte) character
-functions from C as referenced from C++, so we typically configure with
---disable-c-mbchar (cf. <a href="http://llvm.org/PR206">Bug 206</a>).
-</p>
-
-<pre>
- % cd build
- % ../src/configure --prefix=$CFEINSTALL --disable-threads --disable-nls \
- --disable-shared --enable-languages=c,c++ --host=sparc-sun-solaris2.8 \
- --disable-c-mbchar --program-prefix=llvm-
- % gmake all; gmake install
-</pre>
-
- <p><b>Common Problem:</b> You may get error messages regarding the fact
- that LLVM does not support inline assembly. Here are two common
- fixes:</p>
-
- <ul>
- <li><p><b>Fix 1:</b> If you have system header files that include
- inline assembly, you may have to modify them to remove the inline
- assembly and install the modified versions in
- <code>$CFEINSTALL/lib/gcc/<i>target-triplet</i>/3.4-llvm/include</code>.</li>
-
- <li><b>Fix 2:</b> If you are building the C++ front-end on a CPU we
- haven't tried yet, you will probably have to edit the appropriate
- version of atomicity.h under
- <code>src/libstdc++-v3/config/cpu/<i>name-of-cpu</i>/atomicity.h</code>
- and apply a patch so that it does not use inline assembly.</li>
- </ul>
-
- <p><b>Porting to a new architecture:</b> If you are porting the front-end
- to a new architecture or compiling in a configuration that we have
- not tried previously, there are probably several changes you will have to make
- to the GCC target to get it to work correctly. These include:<p>
-
- <ul>
- <li>Often targets include special assembler or linker flags which
- <tt>gccas</tt>/<tt>gccld</tt> does not understand. In general, these can
- just be removed.</li>
- <li>LLVM currently does not support any floating point values other than
- 32-bit and 64-bit IEEE floating point. The primary effect of this is
- that you may have to map "long double" onto "double".</li>
- <li>The profiling hooks in GCC do not apply at all to the LLVM front-end.
- These may need to be disabled.</li>
- <li>No inline assembly for position independent code. At the LLVM level,
- everything is position independent.</li>
- <li>We handle <tt>.init</tt> and <tt>.fini</tt> differently.</li>
- <li>You may have to disable multilib support in your target. Using multilib
- support causes the GCC compiler driver to add a lot of "<tt>-L</tt>"
- options to the link line, which do not relate to LLVM and confuse
- <tt>gccld</tt>. To disable multilibs, delete any
- <tt>MULTILIB_OPTIONS</tt> lines from your target files.</li>
- <li>Did we mention that we don't support inline assembly? You'll probably
- have to add some fixinclude hacks to disable it in the system
- headers.</li>
- </ul>
-</li>
-
-<li><p>Put <tt>$CFEINSTALL/bin</tt> into your <tt>PATH</tt> environment
-variable.</p>
- <ul>
- <li>sh: <tt>export PATH=$CFEINSTALL/bin:$PATH</tt></li>
- <li>csh: <tt>setenv PATH $CFEINSTALL/bin:$PATH</tt></li>
- </ul>
-</li>