www.digitalmars.com         C & C++   DMDScript  

D.gnu - Building on Ubuntu -- what GCC sources to use?

reply Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
Hi all,

So far when building from source on Ubuntu I've always used the gcc-snapshot
sources.  This is a Bad Habit (it's specifically disallowed by Debian for
building actual packages), but was an effective workaround in the period before
GCC 4.8 was released.

Anyway, now that 4.8 _has_ been released, the question is -- where to get the
appropriate sources?  Ubuntu only has GCC 4.7.3 and earlier in its repositories,
gcc-snapshot is now frozen (and probably is best to avoid if possible anyway).

It seems best to download sources from the Debian repos as they should be
patched to work with Debian/Ubuntu, but I thought I'd ask in case anyone has any
advice.

Thanks and best wishes,

     -- Joe
May 31 2013
next sibling parent Johannes Pfau <nospam example.com> writes:
Am Fri, 31 May 2013 13:05:18 +0200
schrieb Joseph Rushton Wakeling <joseph.wakeling webdrake.net>:

 Hi all,
 
 So far when building from source on Ubuntu I've always used the
 gcc-snapshot sources.  This is a Bad Habit (it's specifically
 disallowed by Debian for building actual packages), but was an
 effective workaround in the period before GCC 4.8 was released.
 
 Anyway, now that 4.8 _has_ been released, the question is -- where to
 get the appropriate sources?  Ubuntu only has GCC 4.7.3 and earlier
 in its repositories, gcc-snapshot is now frozen (and probably is best
 to avoid if possible anyway).
 
 It seems best to download sources from the Debian repos as they
 should be patched to work with Debian/Ubuntu, but I thought I'd ask
 in case anyone has any advice.
 
 Thanks and best wishes,
 
      -- Joe

As multiarch support is in gcc-4.8 you can compile with the standard gcc sources and it'll work. If you still want the debian patches for other reasons there's a gcc-4.8-source package in debian testing and apt-get source gcc-4.8 might work as well. But it seems those packages are not yet in ubuntu?
May 31 2013
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 05/31/2013 01:17 PM, Johannes Pfau wrote:
 If you still want the debian patches for other reasons there's a
 gcc-4.8-source package in debian testing and apt-get source gcc-4.8
 might work as well. But it seems those packages are not yet in ubuntu?

No, though I think there's a PPA. I'll test with the regular GCC sources and report back.
May 31 2013
prev sibling next sibling parent "Roderick Gibson" <kniteli gmail.com> writes:
On Friday, 31 May 2013 at 11:46:11 UTC, Joseph Rushton Wakeling 
wrote:
 On 05/31/2013 01:17 PM, Johannes Pfau wrote:
 If you still want the debian patches for other reasons there's 
 a
 gcc-4.8-source package in debian testing and apt-get source 
 gcc-4.8
 might work as well. But it seems those packages are not yet in 
 ubuntu?

No, though I think there's a PPA. I'll test with the regular GCC sources and report back.

I've built GDC with 4.8 on Mint 14 with no issues whatsoever.
May 31 2013
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 05/31/2013 01:17 PM, Johannes Pfau wrote:
 As multiarch support is in gcc-4.8 you can compile with the standard gcc
 sources and it'll work.

It's building now, seems to be going OK ... will report back on results. :-) What about for gdc master branch? I guess the best thing to do is to svn checkout [*] from gcc trunk and build against that? [* actually I'll probably use git-svn ...]
May 31 2013
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 05/31/2013 02:23 PM, Joseph Rushton Wakeling wrote:
 It's building now, seems to be going OK ... will report back on results. :-)

So, I downloaded and unzipped the gdc-4.8.1 sources from ftp.gnu.org, and then: ./setup-gcc.sh ../gcc-4.8.1/ cd .. mkdir objdir cd objdir ../gcc-4.8.1/configure --enable-languages=d --disable-multilib --enable-checking=release --prefix=/opt/gdc make -j2 2>&1 | tee build.log ... worked fine. Perhaps time to update the Debian/Ubuntu instructions on the GDC wiki? I'll happily do this myself if I can have access.
May 31 2013
prev sibling next sibling parent Johannes Pfau <nospam example.com> writes:
Am Fri, 31 May 2013 14:23:21 +0200
schrieb Joseph Rushton Wakeling <joseph.wakeling webdrake.net>:

 On 05/31/2013 01:17 PM, Johannes Pfau wrote:
 As multiarch support is in gcc-4.8 you can compile with the
 standard gcc sources and it'll work.

It's building now, seems to be going OK ... will report back on results. :-) What about for gdc master branch? I guess the best thing to do is to svn checkout [*] from gcc trunk and build against that? [* actually I'll probably use git-svn ...]

I still use gdc master with gcc 4.8.0. There are no changes yet which require a 4.9 snapshot.
May 31 2013
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 05/31/2013 04:42 PM, Johannes Pfau wrote:
 I still use gdc master with gcc 4.8.0. There are no changes yet which
 require a 4.9 snapshot.

What's the stability of gdc master like right now? I remember Iain issuing a warning that things might get a bit shaken up after 4.8 was branched off.
May 31 2013
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 31 May 2013 16:54, Joseph Rushton Wakeling
<joseph.wakeling webdrake.net> wrote:
 On 05/31/2013 04:42 PM, Johannes Pfau wrote:
 I still use gdc master with gcc 4.8.0. There are no changes yet which
 require a 4.9 snapshot.

What's the stability of gdc master like right now? I remember Iain issuing a warning that things might get a bit shaken up after 4.8 was branched off.

Implementation-wise, yes (over 6000 line changes and counting, and we are still on the same front-end version)... Testsuite and stability-wise. Nothing broken, infact there are more fixes now than before! -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
May 31 2013
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 05/31/2013 06:47 PM, Iain Buclaw wrote:
 Implementation-wise, yes (over 6000 line changes and counting, and we
 are still on the same front-end version)...
 Testsuite and stability-wise.  Nothing broken, infact there are more
 fixes now than before!

So, my second full build of the day is underway ... :-)
May 31 2013
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 05/31/2013 06:47 PM, Iain Buclaw wrote:
 Implementation-wise, yes (over 6000 line changes and counting, and we
 are still on the same front-end version)...
 Testsuite and stability-wise.  Nothing broken, infact there are more
 fixes now than before!

Any advice on running the test suite? I found that it exited with Errors 1 and 2 if make check-d was run with the -j option; running without, it started and then output nothing (though a look at top showed a fair amount of different stuff running -- expect, cc1d, other things).
May 31 2013
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 31 May 2013 22:07, Joseph Rushton Wakeling
<joseph.wakeling webdrake.net> wrote:
 On 05/31/2013 06:47 PM, Iain Buclaw wrote:
 Implementation-wise, yes (over 6000 line changes and counting, and we
 are still on the same front-end version)...
 Testsuite and stability-wise.  Nothing broken, infact there are more
 fixes now than before!

Any advice on running the test suite? I found that it exited with Errors 1 and 2 if make check-d was run with the -j option; running without, it started and then output nothing (though a look at top showed a fair amount of different stuff running -- expect, cc1d, other things).

make check-local does a few things: 1) Run the D2 testsuite. If it is silent, that means that there are no errors to tell you about. :-) 2) Compiles libdruntime with -funittest and runs a unittester program. 3) Ditto in libphobos. Phase 1 will take a while, likewise, phase 3 will take a while on some sources (algorithm, datetime). If you wish to have a visual progress: make check-d & tail -f gcc/testsuite/gdc/gdc.log | grep "PASS\|FAIL" Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
May 31 2013
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 31 May 2013 23:14, Iain Buclaw <ibuclaw ubuntu.com> wrote:
 On 31 May 2013 22:07, Joseph Rushton Wakeling
 <joseph.wakeling webdrake.net> wrote:
 On 05/31/2013 06:47 PM, Iain Buclaw wrote:
 Implementation-wise, yes (over 6000 line changes and counting, and we
 are still on the same front-end version)...
 Testsuite and stability-wise.  Nothing broken, infact there are more
 fixes now than before!

Any advice on running the test suite? I found that it exited with Errors 1 and 2 if make check-d was run with the -j option; running without, it started and then output nothing (though a look at top showed a fair amount of different stuff running -- expect, cc1d, other things).


Running with -j2 will run the library and testsuite in parallel. On x86_64 it is expected the testsuite and libdruntime tests pass. i386 there are still some failures in the testsuite. The libphobos tester will error also - there are bug reports present for these (or if you spot one that isn't raised, please do!) Once the library tests are complete, if the test suite is still running, it will then do the rest of the test suite in parallel. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
May 31 2013
prev sibling parent "Joseph Rushton Wakeling" <joseph.wakeling webdrake.net> writes:
On Friday, 31 May 2013 at 21:07:58 UTC, Joseph Rushton Wakeling 
wrote:
 Any advice on running the test suite?

Before I forget, running the test suite required installing the dejagnu package, which isn't mentioned on the gdc wiki.
Jun 01 2013