[llvm-dev] Help building llvm on freebsd 8.4

Dimitry Andric via llvm-dev llvm-dev at lists.llvm.org
Thu Jun 23 02:05:48 PDT 2016


You can run FreeBSD 8 executables on FreeBSD 10, but not the other way around.

If you absolutely must use FreeBSD 8, I think your best shot is to install a gcc port (at least version 4.8, since that is the first with reasonable C++11 support), and use that to compile llvm.  E.g. if you install the gcc48 port, use:

cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc48 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++48 $LLVM_SOURCE_DIR

Before attempting to do so, patch up your /usr/include/stdlib.h like this:

--- include/stdlib.h	2016/03/23 18:21:26	297211
+++ include/stdlib.h	2016/03/23 19:17:12	297212
@@ -125,7 +125,7 @@
  *
  * (The only other extension made by C99 in thie header is _Exit().)
  */
-#if __ISO_C_VISIBLE >= 1999
+#if __ISO_C_VISIBLE >= 1999 || defined(__cplusplus)
 #ifdef __LONG_LONG_SUPPORTED
 /* LONGLONG */
 typedef struct {

-Dimitry

> On 23 Jun 2016, at 02:59, Sushil pangeni <shushil.np at gmail.com> wrote:
> 
> Hi,
> 
> Thanks for the information.
> 
> Is it possible to compile LLVM 3.8 in FreeBSD 10.x and eventually use/run it on 8.4.
> Our production environment is running 8.4 and we cannot update it.
> 
> Thanks,
> Sushil Pangeni
> 
> On Wed, Jun 22, 2016 at 2:01 PM, Dimitry Andric <dimitry at andric.com> wrote:
> You cannot build any llvm or clang releases after 3.4 on FreeBSD 8.x natively, as it is not C++11 capable.  You need to use at least FreeBSD 10.x, which comes with clang 3.4.1 and libc++, providing C++11 support.
> 
> Also, please note that FreeBSD 8.x is officially EOLed as of August 1, 2015.
> 
> That said, you might have some success if you install a recent gcc port.  You will most likely have to manually apply https://svnweb.freebsd.org/base?view=revision&revision=297212 though, as I have not merged that back to FreeBSD 8.
> 
> -Dimitry
> 
> On 22 Jun 2016, at 22:05, Sushil pangeni via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> >
> > I am trying to build LLVM from source in FreeBSD 8.4. Here are the steps i carried out
> >
> > 1. Downloaded the source from http://llvm.org/releases/3.8.0/llvm-3.8.0.src.tar.xz
> > 2. Extracted the source into a folder.
> > 3. Created a build directory and inside it ran $ cmake ../llvm-3.8.0.src
> > 4. Started the build using $cmake --build .
> >
> > It throws the following error
> >
> > /home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp: In member function 'llvm::tgtok::TokKind llvm::TGLexer::LexNumber()':
> > /home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:393:48: error: 'strtoll' was not declared in this scope
> >        CurIntVal = strtoll(NumStart, nullptr, 16);
> >                                                 ^
> > /home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:398:60: error: 'strtoull' was not declared in this scope
> >          CurIntVal = (int64_t)strtoull(NumStart, nullptr, 16);
> >                                                             ^
> > /home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:414:47: error: 'strtoll' was not declared in this scope
> >        CurIntVal = strtoll(NumStart, nullptr, 2);
> >                                                ^
> > /home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:429:44: error: 'strtoll' was not declared in this scope
> >    CurIntVal = strtoll(TokStart, nullptr, 10);
> > GCC Version = 4.9.2 CMAKE version = 3.2.3
> >
> > I also tried to include stdlib.h in the file llvm-3.8.0.src/lib/TableGen/TGLexer.cpp. This din't help.
> >
> > Is there any configuration I am missing ?
> 
> 
> 
> 
> 
> --
> SHUSHIL

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160623/d0ca08d6/attachment.sig>


More information about the llvm-dev mailing list