Sushil pangeni via llvm-dev
2016-Jun-23 00:59 UTC
[llvm-dev] Help building llvm on freebsd 8.4
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 -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160622/381122a1/attachment.html>
Dimitry Andric via llvm-dev
2016-Jun-23 09:05 UTC
[llvm-dev] Help building llvm on freebsd 8.4
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>
Carsten Mattner via llvm-dev
2016-Jun-23 12:29 UTC
[llvm-dev] Help building llvm on freebsd 8.4
On Thu, Jun 23, 2016 at 11:05 AM, Dimitry Andric via llvm-dev <llvm-dev at lists.llvm.org> wrote:> You can run FreeBSD 8 executables on FreeBSD 10, but not the other way around.But what about a statically linked clang-3.x where x >= 5, and running that on FreeBSD 8?