public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Minimum GMP/MPFR version bumps for GCC-4.5
@ 2009-03-26 22:52 Kaveh R. Ghazi
  2009-03-27  0:01 ` Steven Bosscher
  0 siblings, 1 reply; 23+ messages in thread
From: Kaveh R. Ghazi @ 2009-03-26 22:52 UTC (permalink / raw)
  To: gcc

Hi,

I'd like to open the issue of minimum GMP/MPFR versions for gcc-4.5.  We 
currently require gmp-4.1 and mpfr-2.3.0 to build GCC.

Part of my motivation is that MPC requires more recent versions of these 
packages.  But also older GMP/MPFR have known bugs and I'd like to encourage 
upgrading to less ancient versions.  E.g. on x86_64-unknown-linux-gnu, you 
can't even build gmp-4.1.1, it gets some kids of assembler error midway 
through.

So I'd like to bump the minimum required GMP version to 4.2.  According to 
the datestamps in http://ftp.gnu.org/gnu/gmp/ the 4.2.0 package has been out 
since at least March 2006.  It usually takes a year to release GCC so by the 
time gcc-4.5 is out, gmp-4.2.x will have been available for four years.

I'd like to bump MPFR from 2.3.0 to 2.3.1.  There are several bugs in the 
2.3.0 release that are exposed by the way MPC uses MPFR.  Upgrading to 
version 2.3.1 fixes these issues.  MPFR 2.3.0 was released in sept 2007, the 
2.3.1 release was available 5 months later in Jan 2008.  So by the time 
gcc-4.5 is out, it will have been released for at least two years.

If there are no objections, I'll create a patch.

        Thanks,
        --Kaveh
--
Kaveh R. Ghazi 

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-26 22:52 Minimum GMP/MPFR version bumps for GCC-4.5 Kaveh R. Ghazi
@ 2009-03-27  0:01 ` Steven Bosscher
  2009-03-27  0:11   ` Kaveh R. Ghazi
  2009-03-27 21:27   ` Toon Moene
  0 siblings, 2 replies; 23+ messages in thread
From: Steven Bosscher @ 2009-03-27  0:01 UTC (permalink / raw)
  To: Kaveh R. Ghazi; +Cc: gcc

On Thu, Mar 26, 2009 at 10:39 PM, Kaveh R. Ghazi <ghazi@caip.rutgers.edu> wrote:
> If there are no objections, I'll create a patch.

Pffff... for those of us who just install the latest-and-greatest
fedora/suse/ubuntu/... once and don't change installations for two or
three years (stable machine, etc.) it becomes increasingly harder to
install all required libraries to build GCC...

Is this really necessary?  Do those bugs you speak about actually
cause trouble for GCC if you make it use MPC (which I'm also not too
happy about, fwiw)?

Ciao!
Steven

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27  0:01 ` Steven Bosscher
@ 2009-03-27  0:11   ` Kaveh R. Ghazi
  2009-03-27  3:10     ` Tim Prince
  2009-03-27 21:27   ` Toon Moene
  1 sibling, 1 reply; 23+ messages in thread
From: Kaveh R. Ghazi @ 2009-03-27  0:11 UTC (permalink / raw)
  To: Steven Bosscher; +Cc: gcc

From: "Steven Bosscher" <stevenb.gcc@gmail.com>

> On Thu, Mar 26, 2009 at 10:39 PM, Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 
> wrote:
>> If there are no objections, I'll create a patch.
>
> Pffff... for those of us who just install the latest-and-greatest
> fedora/suse/ubuntu/... once and don't change installations for two or
> three years (stable machine, etc.) it becomes increasingly harder to
> install all required libraries to build GCC...

Since GMP-4.2 is three years old, I had hoped it wouldn't be controversial. 
I can see more of a case for mpfr-2.3.1 being too recent, but it's really 
just a micro version bump over what we require now.  I just checked and 
ubuntu (v8.10) seems to offer gmp-4.2.2 and mpfr-2.3.2 through it's package 
manager.  What versions of GMP/MPFR do you get on your typical development 
box and how old are your distros?


> Is this really necessary?  Do those bugs you speak about actually
> cause trouble for GCC if you make it use MPC (which I'm also not too
> happy about, fwiw)?

I don't know if you can expose these particular bugs through GCC.  The issue 
is that you can definitely see them in MPC through MPC testsuite failures if 
you e.g. build MPC with mpfr-2.3.0.  So MPC has a minimum MPFR version 
requirement that it checks for during it's own configure time.  I don't 
think it's fair to ask MPC to lower its configure checks for building if 
real bugs show up in their testsuite.  We could keep lower GMP/MPFR version 
requirements in GCC, but if we hard-require MPC then it's kind of moot cause 
you'd have to get/build MPC somehow.

I'm still open to making MPC optional for a transition period.  But others 
have argued for making it hard-required.  There are certainly valid reasons 
both ways IMHO.  But I think that's something for another thread.  My hope 
is that these version upgrades are reasonably simple.

        --Kaveh

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27  0:11   ` Kaveh R. Ghazi
@ 2009-03-27  3:10     ` Tim Prince
  2009-03-27  9:12       ` Joel Sherrill
  0 siblings, 1 reply; 23+ messages in thread
From: Tim Prince @ 2009-03-27  3:10 UTC (permalink / raw)
  To: Kaveh R. Ghazi; +Cc: Steven Bosscher, gcc

Kaveh R. Ghazi wrote:

>  What versions of GMP/MPFR do you get on
> your typical development box and how old are your distros?
> 
OpenSuSE 10.3 (originally released Oct. 07):
gmp-devel-4.2.1-58
gmp-devel-32bit-4.2.1-58
mpfr-2.2.1-45

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27  3:10     ` Tim Prince
@ 2009-03-27  9:12       ` Joel Sherrill
  2009-03-27 12:24         ` Joe Buck
  0 siblings, 1 reply; 23+ messages in thread
From: Joel Sherrill @ 2009-03-27  9:12 UTC (permalink / raw)
  To: tprince; +Cc: Kaveh R. Ghazi, Steven Bosscher, gcc

Tim Prince wrote:
> Kaveh R. Ghazi wrote:
>
>   
>>  What versions of GMP/MPFR do you get on
>> your typical development box and how old are your distros?
>>
>>     
For the RTEMS Project machines we try to stay
on fairly recent Fedora versions.  All our internal GCC
test machines are Fedora 9 or 10 and 10 has this:

gmp-devel-4.2.2-8.fc10.i386
gmp-4.2.2-8.fc10.i386
mpfr-2.3.2-1.fc10.i386

Fedora 9 has:
gmp-devel-4.2.2-7.fc9.x86_64
gmp-4.2.2-7.fc9.x86_64
mpfr-2.3.1-1.fc9.x86_64

Fedora 9 was released in May 2008.

--joel

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27  9:12       ` Joel Sherrill
@ 2009-03-27 12:24         ` Joe Buck
  2009-03-27 12:38           ` Ralf Corsepius
  2009-03-27 19:06           ` Kaveh Ghazi
  0 siblings, 2 replies; 23+ messages in thread
From: Joe Buck @ 2009-03-27 12:24 UTC (permalink / raw)
  To: Joel Sherrill; +Cc: tprince, Kaveh R. Ghazi, Steven Bosscher, gcc

On Thu, Mar 26, 2009 at 05:11:04PM -0700, Joel Sherrill wrote:
> Tim Prince wrote:
> > Kaveh R. Ghazi wrote:
> >
> >
> >>  What versions of GMP/MPFR do you get on
> >> your typical development box and how old are your distros?
> >>
> >>
> For the RTEMS Project machines we try to stay
> on fairly recent Fedora versions.  All our internal GCC
> test machines are Fedora 9 or 10 and 10 has this:
> 
> gmp-devel-4.2.2-8.fc10.i386
> gmp-4.2.2-8.fc10.i386
> mpfr-2.3.2-1.fc10.i386
> 
> Fedora 9 has:
> gmp-devel-4.2.2-7.fc9.x86_64
> gmp-4.2.2-7.fc9.x86_64
> mpfr-2.3.1-1.fc9.x86_64
> 
> Fedora 9 was released in May 2008.

Debian stable, and Ubuntu Hardy (most recent LTS release) have 2.3.1.
Same with OpenSUSE 11.0.  So I think 2.3.1 is typical of current stable
releases; Fedora tends to be bleeding edge and not typical.

I still have to deal with older distros (e.g. RHEL 4), but it's
already necessary to use newer gmp and gas versions, as well as a newer
mpfr version, in that case.

I do see that FreeBSD Ports has mpfr 2.4.1.  How advanced of them.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27 12:24         ` Joe Buck
@ 2009-03-27 12:38           ` Ralf Corsepius
  2009-03-29 22:47             ` Gerald Pfeifer
  2009-03-27 19:06           ` Kaveh Ghazi
  1 sibling, 1 reply; 23+ messages in thread
From: Ralf Corsepius @ 2009-03-27 12:38 UTC (permalink / raw)
  To: Joe Buck; +Cc: Joel Sherrill, tprince, Kaveh R. Ghazi, Steven Bosscher, gcc

Joe Buck wrote:
> On Thu, Mar 26, 2009 at 05:11:04PM -0700, Joel Sherrill wrote:
>> Tim Prince wrote:
>>> Kaveh R. Ghazi wrote:
>>>
>>>
>>>>  What versions of GMP/MPFR do you get on
>>>> your typical development box and how old are your distros?
>>>>
>>>>
>> For the RTEMS Project machines we try to stay
>> on fairly recent Fedora versions.

> I still have to deal with older distros (e.g. RHEL 4), but it's
> already necessary to use newer gmp and gas versions, as well as a newer
> mpfr version, in that case.

For the RTEMS's toolchain packages on such "stagnating OSes", we
resort to bundling "sufficiently recent enough" mpfr/gmp-source tarballs
with the GCC-sources and building them "in-GCC-source-tree" instead of
using the host provided system-libs.

One ends up with GCC being statically linked against these libmpfr/gmp's 
on such OSes.

> I do see that FreeBSD Ports has mpfr 2.4.1.  How advanced of them.
Amazing :-()

Ralf

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27 12:24         ` Joe Buck
  2009-03-27 12:38           ` Ralf Corsepius
@ 2009-03-27 19:06           ` Kaveh Ghazi
  1 sibling, 0 replies; 23+ messages in thread
From: Kaveh Ghazi @ 2009-03-27 19:06 UTC (permalink / raw)
  To: Joe Buck, Joel Sherrill; +Cc: tprince, Steven Bosscher, gcc

From: "Joe Buck" <Joe.Buck@synopsys.COM>

> Debian stable, and Ubuntu Hardy (most recent LTS release) have 2.3.1.
> Same with OpenSUSE 11.0.  So I think 2.3.1 is typical of current stable
> releases; Fedora tends to be bleeding edge and not typical.
>
> I still have to deal with older distros (e.g. RHEL 4), but it's
> already necessary to use newer gmp and gas versions, as well as a newer
> mpfr version, in that case.

Thanks to all who responded.  Based on the various feedback, it seem like 
for most (all?) people their box arrives with a recent enough GMP/MPFR or 
they already have to get a sufficiently recent copy from source and build it 
in-tree.

So upgrading GCC's requirements to gmp-4.2 and mpfr-2.3.1 should be 
minimally disruptive.  I'll prepare a patch for 4.5.

        Regards,
        --Kaveh

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27  0:01 ` Steven Bosscher
  2009-03-27  0:11   ` Kaveh R. Ghazi
@ 2009-03-27 21:27   ` Toon Moene
  2009-03-27 22:35     ` Steven Bosscher
  1 sibling, 1 reply; 23+ messages in thread
From: Toon Moene @ 2009-03-27 21:27 UTC (permalink / raw)
  To: Steven Bosscher; +Cc: Kaveh R. Ghazi, gcc

Steven Bosscher wrote:

> On Thu, Mar 26, 2009 at 10:39 PM, Kaveh R. Ghazi <ghazi@caip.rutgers.edu> wrote:
>> If there are no objections, I'll create a patch.
> 
> Pffff... for those of us who just install the latest-and-greatest
> fedora/suse/ubuntu/... once and don't change installations for two or
> three years (stable machine, etc.) it becomes increasingly harder to
> install all required libraries to build GCC...

But why do you want to work this way (assuming that people who need a 
stable OS don't want to upgrade their compiler on a whim).

We're in the process of developing the next GCC.  Therefore, my modus 
operandi is to "apt-get update && apt-get dist-upgrade" my Debian 
testing OS every Sunday morning.

-- 
Toon Moene - e-mail: toon@moene.org (*NEW*) - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.org/~toon/
Progress of GNU Fortran: http://gcc.gnu.org/gcc-4.4/changes.html

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27 21:27   ` Toon Moene
@ 2009-03-27 22:35     ` Steven Bosscher
  2009-03-27 22:52       ` Toon Moene
                         ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Steven Bosscher @ 2009-03-27 22:35 UTC (permalink / raw)
  To: Toon Moene; +Cc: Kaveh R. Ghazi, gcc

On Fri, Mar 27, 2009 at 8:40 PM, Toon Moene <toon@moene.org> wrote:
> Steven Bosscher wrote:
>
>> On Thu, Mar 26, 2009 at 10:39 PM, Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
>> wrote:
>>>
>>> If there are no objections, I'll create a patch.
>>
>> Pffff... for those of us who just install the latest-and-greatest
>> fedora/suse/ubuntu/... once and don't change installations for two or
>> three years (stable machine, etc.) it becomes increasingly harder to
>> install all required libraries to build GCC...
>
> But why do you want to work this way (assuming that people who need a stable
> OS don't want to upgrade their compiler on a whim).

The problem doesn't happen on machines I own or have root access to.
It's only a problem when you try to do gcc development on machines
hosted by 3rd parties (SF compile farm, HP cluster, machines at places
where I work and/or where I try to convince people to use gfortran
instead of e.g. sunf90, etc.).

Ciao!
Steven

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27 22:35     ` Steven Bosscher
@ 2009-03-27 22:52       ` Toon Moene
  2009-03-28 16:48       ` Laurent GUERBY
  2009-03-29  7:50       ` Kaveh Ghazi
  2 siblings, 0 replies; 23+ messages in thread
From: Toon Moene @ 2009-03-27 22:52 UTC (permalink / raw)
  To: Steven Bosscher; +Cc: Kaveh R. Ghazi, gcc

Steven Bosscher wrote:

> The problem doesn't happen on machines I own or have root access to.
> It's only a problem when you try to do gcc development on machines
> hosted by 3rd parties (SF compile farm, HP cluster, machines at places
> where I work and/or where I try to convince people to use gfortran
> instead of e.g. sunf90, etc.).

I fully agree.  Therefore, I practice, and advice anyone to apply RRTC 
(reverse reverse telecommuting):

"When arriving at your work place, log in to your home system using ssh 
-X and continue from there."

Works for me.

-- 
Toon Moene - e-mail: toon@moene.org (*NEW*) - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
At home: http://moene.org/~toon/
Progress of GNU Fortran: http://gcc.gnu.org/gcc-4.4/changes.html

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27 22:35     ` Steven Bosscher
  2009-03-27 22:52       ` Toon Moene
@ 2009-03-28 16:48       ` Laurent GUERBY
  2009-03-28 16:49         ` David Edelsohn
  2009-03-29  7:50       ` Kaveh Ghazi
  2 siblings, 1 reply; 23+ messages in thread
From: Laurent GUERBY @ 2009-03-28 16:48 UTC (permalink / raw)
  To: Steven Bosscher; +Cc: Toon Moene, Kaveh R. Ghazi, gcc

On Fri, 2009-03-27 at 20:58 +0100, Steven Bosscher wrote:
> On Fri, Mar 27, 2009 at 8:40 PM, Toon Moene <toon@moene.org> wrote:
> > Steven Bosscher wrote:
> >
> >> On Thu, Mar 26, 2009 at 10:39 PM, Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
> >> wrote:
> >>>
> >>> If there are no objections, I'll create a patch.
> >>
> >> Pffff... for those of us who just install the latest-and-greatest
> >> fedora/suse/ubuntu/... once and don't change installations for two or
> >> three years (stable machine, etc.) it becomes increasingly harder to
> >> install all required libraries to build GCC...
> >
> > But why do you want to work this way (assuming that people who need a stable
> > OS don't want to upgrade their compiler on a whim).
> 
> The problem doesn't happen on machines I own or have root access to.
> It's only a problem when you try to do gcc development on machines
> hosted by 3rd parties (SF compile farm, HP cluster, machines at places
> where I work and/or where I try to convince people to use gfortran
> instead of e.g. sunf90, etc.).

If you're able to compile and install GCC on a system then my experience
is that configuring and installing GMP and MPFR from .tar.gz is hassle
free (you must use --disable-shared on both) and does not take very long
relative to GCC bootstrap. On the GCC Compile Farm if you look
at it GMP and MPFR in /opt/cfarm are not compiled by root :).

Sincerely,

Laurent



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-28 16:48       ` Laurent GUERBY
@ 2009-03-28 16:49         ` David Edelsohn
  2009-03-29 10:33           ` Joseph S. Myers
  0 siblings, 1 reply; 23+ messages in thread
From: David Edelsohn @ 2009-03-28 16:49 UTC (permalink / raw)
  To: Laurent GUERBY; +Cc: Steven Bosscher, Toon Moene, Kaveh R. Ghazi, gcc

On Sat, Mar 28, 2009 at 8:41 AM, Laurent GUERBY <laurent@guerby.net> wrote:
> On Fri, 2009-03-27 at 20:58 +0100, Steven Bosscher wrote:
>> On Fri, Mar 27, 2009 at 8:40 PM, Toon Moene <toon@moene.org> wrote:
>> > Steven Bosscher wrote:
>> >
>> >> On Thu, Mar 26, 2009 at 10:39 PM, Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
>> >> wrote:
>> >>>
>> >>> If there are no objections, I'll create a patch.
>> >>
>> >> Pffff... for those of us who just install the latest-and-greatest
>> >> fedora/suse/ubuntu/... once and don't change installations for two or
>> >> three years (stable machine, etc.) it becomes increasingly harder to
>> >> install all required libraries to build GCC...
>> >
>> > But why do you want to work this way (assuming that people who need a stable
>> > OS don't want to upgrade their compiler on a whim).
>>
>> The problem doesn't happen on machines I own or have root access to.
>> It's only a problem when you try to do gcc development on machines
>> hosted by 3rd parties (SF compile farm, HP cluster, machines at places
>> where I work and/or where I try to convince people to use gfortran
>> instead of e.g. sunf90, etc.).
>
> If you're able to compile and install GCC on a system then my experience
> is that configuring and installing GMP and MPFR from .tar.gz is hassle
> free (you must use --disable-shared on both) and does not take very long
> relative to GCC bootstrap. On the GCC Compile Farm if you look
> at it GMP and MPFR in /opt/cfarm are not compiled by root :).

Graphite needs shared libgmpxx to avoid linking cc1 with libstdc++.

David

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27 22:35     ` Steven Bosscher
  2009-03-27 22:52       ` Toon Moene
  2009-03-28 16:48       ` Laurent GUERBY
@ 2009-03-29  7:50       ` Kaveh Ghazi
  2 siblings, 0 replies; 23+ messages in thread
From: Kaveh Ghazi @ 2009-03-29  7:50 UTC (permalink / raw)
  To: Steven Bosscher, Toon Moene; +Cc: gcc

From: "Steven Bosscher" <stevenb.gcc@gmail.com>

> The problem doesn't happen on machines I own or have root access to.
> It's only a problem when you try to do gcc development on machines
> hosted by 3rd parties (SF compile farm, HP cluster, machines at places
> where I work and/or where I try to convince people to use gfortran
> instead of e.g. sunf90, etc.).

I've frequently been in those situations, especially evangelizing GCC on 
non-linux-gnu where you never have GMP/MPFR by default.   In that case you 
simply drop the necessary tarballs of GMP/MPFR in your GCC source dir and do 
an in-tree build of the whole lot.  For the MPC library integration, the 
patches I posted support in-tree builds for MPC as well.  So there's no loss 
of this workaround for the situation you described.

Anyway I think that's tangential to the topic at hand, this isn't really the 
MPC thread.  Here's it's only whether it's okay (i.e. low disruption) to 
upgrade to gmp-4.2 (three year old release) and mpfr-2.3.1 (a micro bump 
above what we require now).  Based on my own observations and what othes 
have said here, it seems to me that either you already have the necessary 
versions supplied by your distro, or you've already had to go through the 
trouble of getting a recent release.  I haven't heard of anyone who would 
have previously gotten the software by default and would now have to do an 
extra manual step.  Even if there were, it's not such a big deal IMHO to get 
the packages and drop them in your gcc sources.

        --Kaveh

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-28 16:49         ` David Edelsohn
@ 2009-03-29 10:33           ` Joseph S. Myers
  2009-03-29 14:36             ` Laurent GUERBY
  0 siblings, 1 reply; 23+ messages in thread
From: Joseph S. Myers @ 2009-03-29 10:33 UTC (permalink / raw)
  To: David Edelsohn
  Cc: Laurent GUERBY, Steven Bosscher, Toon Moene, Kaveh R. Ghazi, gcc

On Sat, 28 Mar 2009, David Edelsohn wrote:

> > If you're able to compile and install GCC on a system then my experience
> > is that configuring and installing GMP and MPFR from .tar.gz is hassle
> > free (you must use --disable-shared on both) and does not take very long
> > relative to GCC bootstrap. On the GCC Compile Farm if you look
> > at it GMP and MPFR in /opt/cfarm are not compiled by root :).
> 
> Graphite needs shared libgmpxx to avoid linking cc1 with libstdc++.

I added the --with-host-libstdcxx configure option specifically so you can 
link with static copies of GMP, MPFR, PPL, CLooG and with either a shared 
or a static copy of libstdc++.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-29 10:33           ` Joseph S. Myers
@ 2009-03-29 14:36             ` Laurent GUERBY
  2009-03-29 15:17               ` Joseph S. Myers
  0 siblings, 1 reply; 23+ messages in thread
From: Laurent GUERBY @ 2009-03-29 14:36 UTC (permalink / raw)
  To: Joseph S. Myers
  Cc: David Edelsohn, Steven Bosscher, Toon Moene, Kaveh R. Ghazi, gcc

On Sun, 2009-03-29 at 00:48 +0000, Joseph S. Myers wrote:
> On Sat, 28 Mar 2009, David Edelsohn wrote:
> 
> > > If you're able to compile and install GCC on a system then my experience
> > > is that configuring and installing GMP and MPFR from .tar.gz is hassle
> > > free (you must use --disable-shared on both) and does not take very long
> > > relative to GCC bootstrap. On the GCC Compile Farm if you look
> > > at it GMP and MPFR in /opt/cfarm are not compiled by root :).
> > 
> > Graphite needs shared libgmpxx to avoid linking cc1 with libstdc++.
> 
> I added the --with-host-libstdcxx configure option specifically so you can 
> link with static copies of GMP, MPFR, PPL, CLooG and with either a shared 
> or a static copy of libstdc++.

I tested the following build process:

export ROOT=/some/where
gmp-4.2.4
./configure --prefix=$ROOT/gmp-4.2.4 --disable-shared --enable-cxx
mpfr-2.3.1
./configure --prefix=$ROOT/mpfr-2.3.1 --disable-shared --with-gmp=$ROOT/gmp-4.2.4
ppl-0.10
./configure --prefix=$ROOT/ppl-0.10 --disable-shared --with-gmp=$ROOT/gmp-4.2.4
cloog-ppl
./configure --prefix=$ROOT/cloog-ppl-1.5 --disable-shared --with-gmp=$ROOT/gmp-4.2.4 --with-ppl=$ROOT/ppl-0.10
trunk
../trunk/configure --prefix=$ROOT/trunk --enable-languages=c,ada --enable-__cxa_atexit --enable-threads=posix \
 --with-gmp=$ROOT/gmp-4.2.4 --with-mpfr=$ROOT/mpfr-2.3.1 --with-ppl=$ROOT/ppl-0.10 \
 --with-cloog=$ROOT/cloog-ppl-1.5 --with-host-libstdcxx=-lstdc++

However it fails during stage2:

make[3]: Entering directory `/home/guerby/build-ppl/gcc'
...
/home/guerby/build-ppl/./prev-gcc/xgcc -B/home/guerby/build-ppl/./prev-gcc/ -B/n/17/guerby/install-trunk-ppl/x86_64-unknown-linux-gnu/bin/  -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition -Wc++-compat -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common  -DHAVE_CONFIG_H  -o cc1-dummy c-lang.o stub-objc.o attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o c-ppoutput.o c-cppbuiltin.o c-objc-common.o c-dump.o c-pch.o c-parser.o i386-c.o c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o dummy-checksum.o \
	  main.o tree-browser.o libbackend.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcpp/libcpp.a   ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -L/home/guerby/root/cloog-ppl-1.5/lib -lcloog -L/home/guerby/root/ppl-0.10/lib -lppl_c -lppl -lgmpxx -lstdc++ -L/home/guerby/root/gmp-4.2.4/lib -L/home/guerby/root/mpfr-2.3.1/lib -lmpfr -lgmp
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make[3]: *** [cc1-dummy] Error 1
make[3]: Leaving directory `/home/guerby/build-ppl/gcc'
make[2]: *** [all-stage2-gcc] Error 2
make[2]: Leaving directory `/home/guerby/build-ppl'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/home/guerby/build-ppl'
make: *** [bootstrap] Error 2

What am I missing?

Thanks in advance,

Laurent


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-29 14:36             ` Laurent GUERBY
@ 2009-03-29 15:17               ` Joseph S. Myers
  2009-03-29 15:28                 ` Laurent GUERBY
  0 siblings, 1 reply; 23+ messages in thread
From: Joseph S. Myers @ 2009-03-29 15:17 UTC (permalink / raw)
  To: Laurent GUERBY
  Cc: David Edelsohn, Steven Bosscher, Toon Moene, Kaveh R. Ghazi, gcc

On Sun, 29 Mar 2009, Laurent GUERBY wrote:

> /home/guerby/build-ppl/./prev-gcc/xgcc -B/home/guerby/build-ppl/./prev-gcc/ -B/n/17/guerby/install-trunk-ppl/x86_64-unknown-linux-gnu/bin/  -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition -Wc++-compat -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common  -DHAVE_CONFIG_H  -o cc1-dummy c-lang.o stub-objc.o attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o c-ppoutput.o c-cppbuiltin.o c-objc-common.o c-dump.o c-pch.o c-parser.o i386-c.o c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o dummy-checksum.o \
> 	  main.o tree-browser.o libbackend.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcpp/libcpp.a   ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -L/home/guerby/root/cloog-ppl-1.5/lib -lcloog -L/home/guerby/root/ppl-0.10/lib -lppl_c -lppl -lgmpxx -lstdc++ -L/home/guerby/root/gmp-4.2.4/lib -L/home/guerby/root/mpfr-2.3.1/lib -lmpfr -lgmp
> /usr/bin/ld: cannot find -lstdc++
> collect2: ld returned 1 exit status
> make[3]: *** [cc1-dummy] Error 1
> make[3]: Leaving directory `/home/guerby/build-ppl/gcc'
> make[2]: *** [all-stage2-gcc] Error 2
> make[2]: Leaving directory `/home/guerby/build-ppl'
> make[1]: *** [stage2-bubble] Error 2
> make[1]: Leaving directory `/home/guerby/build-ppl'
> make: *** [bootstrap] Error 2
> 
> What am I missing?

If you are doing a bootstrap rather than building a cross compiler, and 
the host libstdc++ is not in a path searched by the compiler being built, 
you'll need --with-host-libstdcxx="-L/some/where -lstdc++" so the newly 
built compiler can find the host libstdc++.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-29 15:17               ` Joseph S. Myers
@ 2009-03-29 15:28                 ` Laurent GUERBY
  2009-03-29 15:47                   ` Joseph S. Myers
  0 siblings, 1 reply; 23+ messages in thread
From: Laurent GUERBY @ 2009-03-29 15:28 UTC (permalink / raw)
  To: Joseph S. Myers
  Cc: David Edelsohn, Steven Bosscher, Toon Moene, Kaveh R. Ghazi, gcc

On Sun, 2009-03-29 at 14:37 +0000, Joseph S. Myers wrote:
> On Sun, 29 Mar 2009, Laurent GUERBY wrote:
> 
> > /home/guerby/build-ppl/./prev-gcc/xgcc -B/home/guerby/build-ppl/./prev-gcc/ -B/n/17/guerby/install-trunk-ppl/x86_64-unknown-linux-gnu/bin/  -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition -Wc++-compat -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common  -DHAVE_CONFIG_H  -o cc1-dummy c-lang.o stub-objc.o attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o c-ppoutput.o c-cppbuiltin.o c-objc-common.o c-dump.o c-pch.o c-parser.o i386-c.o c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o dummy-checksum.o \
> > 	  main.o tree-browser.o libbackend.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcpp/libcpp.a   ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -L/home/guerby/root/cloog-ppl-1.5/lib -lcloog -L/home/guerby/root/ppl-0.10/lib -lppl_c -lppl -lgmpxx -lstdc++ -L/home/guerby/root/gmp-4.2.4/lib -L/home/guerby/root/mpfr-2.3.1/lib -lmpfr -lgmp
> > /usr/bin/ld: cannot find -lstdc++
> > collect2: ld returned 1 exit status
> > make[3]: *** [cc1-dummy] Error 1
> > make[3]: Leaving directory `/home/guerby/build-ppl/gcc'
> > make[2]: *** [all-stage2-gcc] Error 2
> > make[2]: Leaving directory `/home/guerby/build-ppl'
> > make[1]: *** [stage2-bubble] Error 2
> > make[1]: Leaving directory `/home/guerby/build-ppl'
> > make: *** [bootstrap] Error 2
> > 
> > What am I missing?
> 
> If you are doing a bootstrap rather than building a cross compiler, and 
> the host libstdc++ is not in a path searched by the compiler being built, 
> you'll need --with-host-libstdcxx="-L/some/where -lstdc++" so the newly 
> built compiler can find the host libstdc++.

--with-host-libstdcxx="-L/usr/lib -lstdc++" fails earlier:

make[3]: Entering directory `/home/guerby/build-ppl/gcc'
...
gcc  -g -fkeep-inline-functions -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition -Wc++-compat -Wmissing-format-attribute -fno-common  -DHAVE_CONFIG_H  -o cc1-dummy c-lang.o stub-objc.o attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o c-ppoutput.o c-cppbuiltin.o c-objc-common.o c-dump.o c-pch.o c-parser.o i386-c.o c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o dummy-checksum.o \
	  main.o tree-browser.o libbackend.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcpp/libcpp.a   ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -L/home/guerby/root/cloog-ppl-1.5/lib -lcloog -L/home/guerby/root/ppl-0.10/lib -lppl_c -lppl -lgmpxx -L/usr/lib -lstdc++ -L/home/guerby/root/gmp-4.2.4/lib -L/home/guerby/root/mpfr-2.3.1/lib -lmpfr -lgmp
libbackend.a(builtins.o): In function `fold_builtin_1':
../../trunk/gcc/builtins.c:10319: undefined reference to `mpfr_j0'
../../trunk/gcc/builtins.c:10325: undefined reference to `mpfr_j1'
../../trunk/gcc/builtins.c:10331: undefined reference to `mpfr_y0'
../../trunk/gcc/builtins.c:10337: undefined reference to `mpfr_y1'
libbackend.a(builtins.o): In function `fold_builtin_2':
../../trunk/gcc/builtins.c:10458: undefined reference to `mpfr_jn'
../../trunk/gcc/builtins.c:10464: undefined reference to `mpfr_yn'
../../trunk/gcc/builtins.c:10472: undefined reference to `mpfr_remainder'
libbackend.a(builtins.o): In function `do_mpfr_remquo':
../../trunk/gcc/builtins.c:13372: undefined reference to `mpfr_remquo'
libbackend.a(builtins.o): In function `do_mpfr_lgamma_r':
../../trunk/gcc/builtins.c:13450: undefined reference to `mpfr_lgamma'
collect2: ld returned 1 exit status
make[3]: *** [cc1-dummy] Error 1
make[3]: Leaving directory `/home/guerby/build-ppl/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/home/guerby/build-ppl'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/guerby/build-ppl'
make: *** [bootstrap] Error 2

guerby@gcc17:~/build-ppl$ ls -l /usr/lib/libstdc++*
lrwxrwxrwx 1 root root     18 2008-05-09 14:37 /usr/lib/libstdc++.so.5 -> libstdc++.so.5.0.7
-rw-r--r-- 1 root root 829896 2007-01-03 20:58 /usr/lib/libstdc++.so.5.0.7
lrwxrwxrwx 1 root root     18 2008-05-09 10:08 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8
-rw-r--r-- 1 root root 965344 2006-12-11 00:11 /usr/lib/libstdc++.so.6.0.8

If I rerun the failing gcc command removing manually the "-L/usr/lib"  and keeping the "-lstdc++"
it works and the resulting cc1-dummy is as follows:

guerby@gcc17:~/build-ppl/gcc$ ldd ./cc1-dummy 
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002aaaaabc3000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002aaaaadc1000)
	libc.so.6 => /lib/libc.so.6 (0x00002aaaaaecf000)
	libm.so.6 => /lib/libm.so.6 (0x00002aaaab10c000)
	/lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)

May be we need something for stage1 and a different thing later on?

Thanks in advance for your help,

Laurent



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-29 15:28                 ` Laurent GUERBY
@ 2009-03-29 15:47                   ` Joseph S. Myers
  2009-03-29 17:28                     ` Laurent GUERBY
  0 siblings, 1 reply; 23+ messages in thread
From: Joseph S. Myers @ 2009-03-29 15:47 UTC (permalink / raw)
  To: Laurent GUERBY
  Cc: David Edelsohn, Steven Bosscher, Toon Moene, Kaveh R. Ghazi, gcc

On Sun, 29 Mar 2009, Laurent GUERBY wrote:

> libbackend.a(builtins.o): In function `fold_builtin_1':
> ../../trunk/gcc/builtins.c:10319: undefined reference to `mpfr_j0'
> ../../trunk/gcc/builtins.c:10325: undefined reference to `mpfr_j1'
> ../../trunk/gcc/builtins.c:10331: undefined reference to `mpfr_y0'
> ../../trunk/gcc/builtins.c:10337: undefined reference to `mpfr_y1'

It appears your problem is that the directory with libstdc++ in it also 
has an old MPFR version in it, so passing a -L option for it interferes 
with finding the right MPFR.  In that case, 
--with-host-libstdc++=/usr/lib/libstdc++.so should work - you need to name 
the actual file to use for linking libstdc++ rather than giving -L and -l 
options.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-29 15:47                   ` Joseph S. Myers
@ 2009-03-29 17:28                     ` Laurent GUERBY
  0 siblings, 0 replies; 23+ messages in thread
From: Laurent GUERBY @ 2009-03-29 17:28 UTC (permalink / raw)
  To: Joseph S. Myers
  Cc: David Edelsohn, Steven Bosscher, Toon Moene, Kaveh R. Ghazi, gcc

On Sun, 2009-03-29 at 15:21 +0000, Joseph S. Myers wrote:
> On Sun, 29 Mar 2009, Laurent GUERBY wrote:
> 
> > libbackend.a(builtins.o): In function `fold_builtin_1':
> > ../../trunk/gcc/builtins.c:10319: undefined reference to `mpfr_j0'
> > ../../trunk/gcc/builtins.c:10325: undefined reference to `mpfr_j1'
> > ../../trunk/gcc/builtins.c:10331: undefined reference to `mpfr_y0'
> > ../../trunk/gcc/builtins.c:10337: undefined reference to `mpfr_y1'
> 
> It appears your problem is that the directory with libstdc++ in it also 
> has an old MPFR version in it, so passing a -L option for it interferes 
> with finding the right MPFR.  In that case, 
> --with-host-libstdc++=/usr/lib/libstdc++.so should work - you need to name 
> the actual file to use for linking libstdc++ rather than giving -L and -l 
> options.

With --with-host-libstdc++=/usr/lib/libstdc++.so.6 the build did
succeed, thanks for your advices.

guerby@gcc17:~/build-ppl$ ldd gcc/cc1
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002aaaaabc3000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00002aaaaadc1000)
	libc.so.6 => /lib/libc.so.6 (0x00002aaaaaecf000)
	libm.so.6 => /lib/libm.so.6 (0x00002aaaab10c000)
	/lib64/ld-linux-x86-64.so.2 (0x00002aaaaaaab000)

Should we add to the documentation the steps to configure and
build an all-static but libstdc++ GCC (as in my first email)? Or less
ambitious in install.texi:

Typical values of @var{linker-args} might be
@samp{-lstdc++} or @samp{-Wl,-Bstatic,-lstdc++,-Bdynamic -lm}. 
=>
Typical values of @var{linker-args} might be
@samp{/usr/lib/libstdc++.so.6}, @samp{-lstdc++} or
@samp{-Wl,-Bstatic,-lstdc++,-Bdynamic -lm}.

Sincerely,

Laurent


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-27 12:38           ` Ralf Corsepius
@ 2009-03-29 22:47             ` Gerald Pfeifer
  2009-03-30 11:40               ` Ralf Corsepius
  0 siblings, 1 reply; 23+ messages in thread
From: Gerald Pfeifer @ 2009-03-29 22:47 UTC (permalink / raw)
  To: Ralf Corsepius, Joe Buck; +Cc: gcc

On Fri, 27 Mar 2009, Ralf Corsepius wrote:
>> I do see that FreeBSD Ports has mpfr 2.4.1.  How advanced of them.
> Amazing :-()

It's possible I am missing something here.  According to
http://www.mpfr.org/mpfr-current/ (reachable from http://www.mpfr.org/
by following "Latest release") this is the latest official release,
but your comments seem to indicate there is a problem with that?

My daily testsuite runs on FreeBSD have been using this version for
a while, and there are no problems striking out.  I think. :-)

Is there anything I might want to raise with the maintainer of that
package?  

Gerald

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-29 22:47             ` Gerald Pfeifer
@ 2009-03-30 11:40               ` Ralf Corsepius
  2009-03-30 11:53                 ` Andreas Schwab
  0 siblings, 1 reply; 23+ messages in thread
From: Ralf Corsepius @ 2009-03-30 11:40 UTC (permalink / raw)
  To: Gerald Pfeifer; +Cc: Joe Buck, gcc

Gerald Pfeifer wrote:
> On Fri, 27 Mar 2009, Ralf Corsepius wrote:
>   
>>> I do see that FreeBSD Ports has mpfr 2.4.1.  How advanced of them.
>>>       
>> Amazing :-()
>>     
>
> It's possible I am missing something here.  According to
> http://www.mpfr.org/mpfr-current/ (reachable from http://www.mpfr.org/
> by following "Latest release") this is the latest official release,
> but your comments seem to indicate there is a problem with that?
>   
Pardon, there seems to be a misunderstanding. I only was surprised to 
see FreeBSD shipping much newer versions of packages than most Linux 
distros (even those who claim to be "(b)leading edge").

Ralf


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Minimum GMP/MPFR version bumps for GCC-4.5
  2009-03-30 11:40               ` Ralf Corsepius
@ 2009-03-30 11:53                 ` Andreas Schwab
  0 siblings, 0 replies; 23+ messages in thread
From: Andreas Schwab @ 2009-03-30 11:53 UTC (permalink / raw)
  To: Ralf Corsepius; +Cc: Gerald Pfeifer, Joe Buck, gcc

Ralf Corsepius <ralf.corsepius@rtems.org> writes:

> Pardon, there seems to be a misunderstanding. I only was surprised to see
> FreeBSD shipping much newer versions of packages than most Linux distros
> (even those who claim to be "(b)leading edge").

If you want to have the bleading edge you need to look at something like
openSUSE Factory, which does have mpfr 2.4.1.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2009-03-30  9:22 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-26 22:52 Minimum GMP/MPFR version bumps for GCC-4.5 Kaveh R. Ghazi
2009-03-27  0:01 ` Steven Bosscher
2009-03-27  0:11   ` Kaveh R. Ghazi
2009-03-27  3:10     ` Tim Prince
2009-03-27  9:12       ` Joel Sherrill
2009-03-27 12:24         ` Joe Buck
2009-03-27 12:38           ` Ralf Corsepius
2009-03-29 22:47             ` Gerald Pfeifer
2009-03-30 11:40               ` Ralf Corsepius
2009-03-30 11:53                 ` Andreas Schwab
2009-03-27 19:06           ` Kaveh Ghazi
2009-03-27 21:27   ` Toon Moene
2009-03-27 22:35     ` Steven Bosscher
2009-03-27 22:52       ` Toon Moene
2009-03-28 16:48       ` Laurent GUERBY
2009-03-28 16:49         ` David Edelsohn
2009-03-29 10:33           ` Joseph S. Myers
2009-03-29 14:36             ` Laurent GUERBY
2009-03-29 15:17               ` Joseph S. Myers
2009-03-29 15:28                 ` Laurent GUERBY
2009-03-29 15:47                   ` Joseph S. Myers
2009-03-29 17:28                     ` Laurent GUERBY
2009-03-29  7:50       ` Kaveh Ghazi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).