[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