Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 476336 - dev-libs/mpfr: please review prefix changes
Summary: dev-libs/mpfr: please review prefix changes
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords: Inclusion, PATCH
Depends on:
Blocks: prefix-gx86
  Show dependency tree
 
Reported: 2013-07-10 00:36 UTC by Christoph Junghans
Modified: 2013-11-27 18:42 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
patch against mpfr-3.1.1.ebuild (mpfr-3.1.2.ebuild.patch,1.26 KB, patch)
2013-07-10 00:36 UTC, Christoph Junghans
Details | Diff
patch against mpfr-2.4.2_p3-r1.ebuild (mpfr-2.4.2_p3-r1.ebuild.patch,700 bytes, patch)
2013-07-10 00:37 UTC, Christoph Junghans
Details | Diff
mpfr-eroot.patch (mpfr.patch,712 bytes, patch)
2013-10-18 07:07 UTC, Benda Xu
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Junghans gentoo-dev 2013-07-10 00:36:34 UTC
Created attachment 352966 [details, diff]
patch against mpfr-3.1.1.ebuild

Changes:
- FreeMint needs elibtoolize
- prefix gmp-{lib,include}
- so.1 -> $(get_libname 1)

For SLOT=1
- FreeMint needs elibtoolize
- ${D} -> ${ED}
- rm dylib, too
Comment 1 Christoph Junghans gentoo-dev 2013-07-10 00:37:07 UTC
Created attachment 352970 [details, diff]
patch against mpfr-2.4.2_p3-r1.ebuild
Comment 2 Ryan Hill (RETIRED) gentoo-dev 2013-07-19 16:08:52 UTC
Comment on attachment 352966 [details, diff]
patch against mpfr-3.1.1.ebuild

> 	econf \
> 		--docdir="${EPREFIX}"/usr/share/doc/${PF} \
>+		--with-gmp-lib="${EPREFIX}"/usr/$(get_libdir) \
>+		--with-gmp-include="${EPREFIX}"/usr/include || die
> 		$(use_enable static-libs static)

Probably don't want that || die there.
Comment 3 Christoph Junghans gentoo-dev 2013-07-19 16:13:01 UTC
(In reply to Ryan Hill from comment #2)
> Comment on attachment 352966 [details, diff] [details, diff]
> patch against mpfr-3.1.1.ebuild
> 
> > 	econf \
> > 		--docdir="${EPREFIX}"/usr/share/doc/${PF} \
> >+		--with-gmp-lib="${EPREFIX}"/usr/$(get_libdir) \
> >+		--with-gmp-include="${EPREFIX}"/usr/include || die
> > 		$(use_enable static-libs static)
> 
> Probably don't want that || die there.
I don't know where this came from! Agreed, it should be "\"$

Is the rest ok to commit?
Comment 4 Ryan Hill (RETIRED) gentoo-dev 2013-07-19 16:25:00 UTC
Looks fine to me.  Go ahead.
Comment 5 Christoph Junghans gentoo-dev 2013-07-21 21:58:24 UTC
@@ -4,0 +5,4 @@
+  21 Jul 2013; Christoph Junghans <ottxor@gentoo.org> mpfr-2.4.2_p3-r1.ebuild,
+  mpfr-3.1.2.ebuild:
+  added prefix support (bug #476336)
+
Comment 6 Fabian Groffen gentoo-dev 2013-07-22 06:54:57 UTC
removed from prefix overlay
Comment 7 SpanKY gentoo-dev 2013-08-25 02:31:25 UTC
Comment on attachment 352966 [details, diff]
patch against mpfr-3.1.1.ebuild

i've fixed this in cvs, but keep this in mind with all other prefix patches you post

>+	# needed for FreeMiNT
>+	[[ ${CHOST} == *-mint* ]] && elibtoolize

never conditionalize elibtoolize

> 	econf \
> 		--docdir="${EPREFIX}"/usr/share/doc/${PF} \
>+		--with-gmp-lib="${EPREFIX}"/usr/$(get_libdir) \
>+		--with-gmp-include="${EPREFIX}"/usr/include || die

never use `die` with econf
Comment 8 Benda Xu gentoo-dev 2013-10-18 07:07:08 UTC
Created attachment 361200 [details, diff]
mpfr-eroot.patch

Sorry to reopen. But I suppose the variable used in econf should be EROOT instead of EPREFIX. Because when we are cross compiling mpfr, there should be a way to pass ROOT into econf.
Comment 9 Christoph Junghans gentoo-dev 2013-10-21 22:38:07 UTC
Comment on attachment 361200 [details, diff]
mpfr-eroot.patch

>Index: mpfr-3.1.2-r1.ebuild
>===================================================================
>RCS file: /var/cvsroot/gentoo-x86/dev-libs/mpfr/mpfr-3.1.2-r1.ebuild,v
>retrieving revision 1.1
>diff -u -B -r1.1 mpfr-3.1.2-r1.ebuild
>--- mpfr-3.1.2-r1.ebuild	13 Sep 2013 18:32:04 -0000	1.1
>+++ mpfr-3.1.2-r1.ebuild	18 Oct 2013 07:04:24 -0000
>@@ -45,9 +45,9 @@
> 
> src_configure() {
> 	econf \
>-		--docdir="${EPREFIX}"/usr/share/doc/${PF} \
>-		--with-gmp-lib="${EPREFIX}"/usr/$(get_libdir) \
>-		--with-gmp-include="${EPREFIX}"/usr/include \
>+		--docdir="${EROOT}"usr/share/doc/${PF} \
EROOT for docdir seems strange.
>+		--with-gmp-lib="${EROOT}"usr/$(get_libdir) \
>+		--with-gmp-include="${EROOT}"usr/include \
For these two it make sense!
> 		$(use_enable static-libs static)
> }
>
Comment 10 Benda Xu gentoo-dev 2013-10-22 09:21:02 UTC
(In reply to Christoph Junghans from comment #9)
> Comment on attachment 361200 [details, diff] [details, diff]
> mpfr-eroot.patch
> 
> >Index: mpfr-3.1.2-r1.ebuild
> >===================================================================
> >RCS file: /var/cvsroot/gentoo-x86/dev-libs/mpfr/mpfr-3.1.2-r1.ebuild,v
> >retrieving revision 1.1
> >diff -u -B -r1.1 mpfr-3.1.2-r1.ebuild
> >--- mpfr-3.1.2-r1.ebuild	13 Sep 2013 18:32:04 -0000	1.1
> >+++ mpfr-3.1.2-r1.ebuild	18 Oct 2013 07:04:24 -0000
> >@@ -45,9 +45,9 @@
> > 
> > src_configure() {
> > 	econf \
> >-		--docdir="${EPREFIX}"/usr/share/doc/${PF} \
> >-		--with-gmp-lib="${EPREFIX}"/usr/$(get_libdir) \
> >-		--with-gmp-include="${EPREFIX}"/usr/include \
> >+		--docdir="${EROOT}"usr/share/doc/${PF} \
> EROOT for docdir seems strange.

Why is it strange? There is docdir inside ROOT, too.
Comment 11 Benda Xu gentoo-dev 2013-11-01 08:47:46 UTC
If there if no further objections, I'll go ahead to commit this EPREFIX to EROOT in a week. Thanks.
Comment 12 Christoph Junghans gentoo-dev 2013-11-01 14:54:10 UTC
(In reply to Benda Xu from comment #10)
> (In reply to Christoph Junghans from comment #9)
> > Comment on attachment 361200 [details, diff] [details, diff] [details, diff]
> > mpfr-eroot.patch
> > 
> > >Index: mpfr-3.1.2-r1.ebuild
> > >===================================================================
> > >RCS file: /var/cvsroot/gentoo-x86/dev-libs/mpfr/mpfr-3.1.2-r1.ebuild,v
> > >retrieving revision 1.1
> > >diff -u -B -r1.1 mpfr-3.1.2-r1.ebuild
> > >--- mpfr-3.1.2-r1.ebuild	13 Sep 2013 18:32:04 -0000	1.1
> > >+++ mpfr-3.1.2-r1.ebuild	18 Oct 2013 07:04:24 -0000
> > >@@ -45,9 +45,9 @@
> > > 
> > > src_configure() {
> > > 	econf \
> > >-		--docdir="${EPREFIX}"/usr/share/doc/${PF} \
> > >-		--with-gmp-lib="${EPREFIX}"/usr/$(get_libdir) \
> > >-		--with-gmp-include="${EPREFIX}"/usr/include \
> > >+		--docdir="${EROOT}"usr/share/doc/${PF} \
> > EROOT for docdir seems strange.
> 
> Why is it strange? There is docdir inside ROOT, too.
docdir is output, but with-gmp-* is input, it makes sense to search for gmp in ${EROOT}, but why should the documentation be written to ${EROOT}?
Comment 13 Benda Xu gentoo-dev 2013-11-03 07:17:33 UTC
(In reply to Christoph Junghans from comment #12)
> (In reply to Benda Xu from comment #10)
> > (In reply to Christoph Junghans from comment #9)
> > > Comment on attachment 361200 [details, diff] [details, diff] [details, diff] [details, diff]
> > > mpfr-eroot.patch
> > > 
> > > >Index: mpfr-3.1.2-r1.ebuild
> > > >===================================================================
> > > >RCS file: /var/cvsroot/gentoo-x86/dev-libs/mpfr/mpfr-3.1.2-r1.ebuild,v
> > > >retrieving revision 1.1
> > > >diff -u -B -r1.1 mpfr-3.1.2-r1.ebuild
> > > >--- mpfr-3.1.2-r1.ebuild	13 Sep 2013 18:32:04 -0000	1.1
> > > >+++ mpfr-3.1.2-r1.ebuild	18 Oct 2013 07:04:24 -0000
> > > >@@ -45,9 +45,9 @@
> > > > 
> > > > src_configure() {
> > > > 	econf \
> > > >-		--docdir="${EPREFIX}"/usr/share/doc/${PF} \
> > > >-		--with-gmp-lib="${EPREFIX}"/usr/$(get_libdir) \
> > > >-		--with-gmp-include="${EPREFIX}"/usr/include \
> > > >+		--docdir="${EROOT}"usr/share/doc/${PF} \
> > > EROOT for docdir seems strange.
> > 
> > Why is it strange? There is docdir inside ROOT, too.
> docdir is output, but with-gmp-* is input, it makes sense to search for gmp
> in ${EROOT}, but why should the documentation be written to ${EROOT}?

You are right Chris. I misunderstood the use of --docdir here.

committed with gmp-{lib,include}. Thanks.

--- ./ChangeLog
+++ ./ChangeLog
@@ -4,0 +5,3 @@
+  03 Nov 2013; Benda Xu <heroxbd@gentoo.org> mpfr-3.1.2-r1.ebuild:
+  EROOT for gmp locations to do cross compiling correctly. bug #476336
+
Comment 14 SpanKY gentoo-dev 2013-11-21 20:32:33 UTC
err, no, this is broken.  here's a simple rule of thumb: ROOT is never valid in a src_* function.  if you try to use it, you're doing something wrong.
Comment 15 Benda Xu gentoo-dev 2013-11-22 09:06:29 UTC
(In reply to SpanKY from comment #14)
> err, no, this is broken.  here's a simple rule of thumb: ROOT is never valid
> in a src_* function.  if you try to use it, you're doing something wrong.

Mike, would you elaborate the reason? If ROOT cannot be used in src_configure, how a native gcc (needs mpfr) could be cross-built?
Comment 16 SpanKY gentoo-dev 2013-11-22 13:02:49 UTC
(In reply to Benda Xu from comment #15)

--docdir is the path mpfr uses to store things.  it doesn't use it for input at build time at all.

the --with-gmp-{lib,include} configure flags should simply be deleted.  the toolchain itself knows how to find the right gmp paths.  if it doesn't, then your toolchain is broken and that should be fixed.
Comment 17 SpanKY gentoo-dev 2013-11-24 03:52:35 UTC
Commit message: Revert gmp lib/include flags as they are wrong & unnecessary.  Tweak the docdir flag to be a bit simpler.
http://sources.gentoo.org/dev-libs/mpfr/mpfr-3.1.2-r1.ebuild?r1=1.6&r2=1.7
Comment 18 Benda Xu gentoo-dev 2013-11-24 04:20:50 UTC
(In reply to SpanKY from comment #17)
> Commit message: Revert gmp lib/include flags as they are wrong &
> unnecessary.  Tweak the docdir flag to be a bit simpler.
> http://sources.gentoo.org/dev-libs/mpfr/mpfr-3.1.2-r1.ebuild?r1=1.6&r2=1.7

Test of this version on Prefix successful. Test of cross-triplet-prefix will follow.
Comment 19 Michael Haubenwallner (RETIRED) gentoo-dev 2013-11-25 12:34:23 UTC
(In reply to Benda Xu from comment #18)
> (In reply to SpanKY from comment #17)
> > Commit message: Revert gmp lib/include flags as they are wrong &
> > unnecessary.  Tweak the docdir flag to be a bit simpler.
> > http://sources.gentoo.org/dev-libs/mpfr/mpfr-3.1.2-r1.ebuild?r1=1.6&r2=1.7
> 
> Test of this version on Prefix successful.

Erm, breaks on AIX here: When "$CC$CFLAGS" is empty, mpfr tries to extract them from "gmp.h" using ('/lib/cpp' 'gcc -E' 'cc -E') in that order. This did work --with-gmp-include, but without gmp-include /lib/cpp falls back to /usr/include/gmp.h, giving wrong compiler and CFLAGS.

This one causes configure to completely ignore preinstalled gmp.h - unsure if this is a problem as gmp.h may define ABI specific CFLAGS though:
 ...
 src_configure() {
+       tc-export CC
        econf \
 ...
Comment 20 SpanKY gentoo-dev 2013-11-25 18:33:41 UTC
(In reply to Michael Haubenwallner from comment #19)

yes, mpfr has some crazy logic in it:

  dnl ********************************************************************
  dnl Check for CC and CFLAGS in gmp.h

  if test -z "$user_redefine_cc" && test "$cross_compiling" != yes ; then

  dnl We need to guess the C preprocessor instead of using AC_PROG_CPP,
  dnl since AC_PROG_CPP implies AC_PROG_CC, which chooses a compiler  
  dnl (before we have the chance to get it from gmp.h) and does some
  dnl checking related to this compiler (such as dependency tracking
  dnl options); if the compiler changes due to __GMP_CC in gmp.h, one
  dnl would have incorrect settings.
  dnl FIXME: Move this in aclocal ?
  if test -z "$GMP_CC$GMP_CFLAGS" ; then
     AC_MSG_CHECKING(for CC and CFLAGS in gmp.h)
     GMP_CC=__GMP_CC
     GMP_CFLAGS=__GMP_CFLAGS
     for cpp in /lib/cpp gcc cc c99
     do

i wouldn't mind patching it out at the high level:

-if test -z "$user_redefine_cc" && test "$cross_compiling" != yes ; then
+if false ; then
Comment 21 SpanKY gentoo-dev 2013-11-26 07:27:12 UTC
Commit message: Disable logic to probe gmp.h using the wrong toolchain
http://sources.gentoo.org/dev-libs/mpfr/mpfr-3.1.2-r1.ebuild?r1=1.7&r2=1.8
Comment 22 Michael Haubenwallner (RETIRED) gentoo-dev 2013-11-26 07:58:16 UTC
(In reply to SpanKY from comment #21)

Yep, does work too, thanks!