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?