Patchwork configure check for flex

login
register
mail settings
Submitter Bruce Korb
Date Dec. 8, 2013, 9:06 p.m.
Message ID <52A4DF45.7070703@gnu.org>
Download mbox | patch
Permalink /patch/298870/
State New
Headers show

Comments

Bruce Korb - Dec. 8, 2013, 9:06 p.m.
On 12/08/13 13:06, Gerald Pfeifer wrote:
> Lovely.  Thank you very much!


$ svn diff
Hans-Peter Nilsson - Jan. 27, 2014, 5:38 a.m.
On Sun, 8 Dec 2013, Bruce Korb wrote:
> On 12/08/13 13:06, Gerald Pfeifer wrote:
> > Lovely.  Thank you very much!

(Looks like nobody replied to this and it isn't committed.)

> $ svn diff
> Index: configure.ac
> ===================================================================
> --- configure.ac        (revision 205790)
> +++ configure.ac        (working copy)
> @@ -1319,10 +1319,17 @@
>  # Used for setting $lt_cv_objdir
>  _LT_CHECK_OBJDIR
>
> -# Check for GMP, MPFR and MPC
> +# Check for flex, GMP, MPFR and MPC
> +[for p in flex
> +do
> +  c=`command -v $p`
> +  test -x "$c" || \
> +    ]AC_MSG_ERROR([the $p command is required to build GCC])[
> +done
> +

No, flex isn't "required to build GCC" as a hard and fast rule.
It's not required for releases, just when building from a svn
checkout (or really: when the flex-generated files are not in
the source directory).

You'd need some additional conditions.  There might be the
additional issue that any "lex" is expected to work too, not
just "flex".

brgds, H-P
Bruce Korb - Jan. 27, 2014, 3:10 p.m.
On Sun, Jan 26, 2014 at 9:38 PM, Hans-Peter Nilsson <hp@bitrange.com> wrote:
> On Sun, 8 Dec 2013, Bruce Korb wrote:
>> On 12/08/13 13:06, Gerald Pfeifer wrote:
>> > Lovely.  Thank you very much!
>
> (Looks like nobody replied to this and it isn't committed.)

> No, flex isn't "required to build GCC" as a hard and fast rule.
> It's not required for releases, just when building from a svn
> checkout (or really: when the flex-generated files are not in
> the source directory).
>
> You'd need some additional conditions.  There might be the
> additional issue that any "lex" is expected to work too, not
> just "flex".

It isn't committed 'cuz nobody said, "Okay."
I do wish either someone would say, "Okay." or come up with something
that works.
I went to the effort to figure out where things got off the rails and
did something that
worked for me.  Just saying, "That won't work" without a workable alternative
is a bit irritating.

I do not know the difference between a checkout build and a "normal"
configured build.  My understanding was that generated files were to
be part of the repo and that there was *not* a difference.  If there is,
then someone who understands the difference could maybe add some
configure infrastructure to test the environment and decide if flex (or lex)
was needed, rather than just say, "what you did won't work."
Hans-Peter Nilsson - Jan. 28, 2014, 2:20 a.m.
On Mon, 27 Jan 2014, Bruce Korb wrote:
> On Sun, Jan 26, 2014 at 9:38 PM, Hans-Peter Nilsson <hp@bitrange.com> wrote:
> > On Sun, 8 Dec 2013, Bruce Korb wrote:
> >> On 12/08/13 13:06, Gerald Pfeifer wrote:
> >> > Lovely.  Thank you very much!
> >
> > (Looks like nobody replied to this and it isn't committed.)
>
> > No, flex isn't "required to build GCC" as a hard and fast rule.
> > It's not required for releases, just when building from a svn
> > checkout (or really: when the flex-generated files are not in
> > the source directory).
> >
> > You'd need some additional conditions.  There might be the
> > additional issue that any "lex" is expected to work too, not
> > just "flex".
>
> It isn't committed 'cuz nobody said, "Okay."
> I do wish either someone would say, "Okay." or come up with something
> that works.
> I went to the effort to figure out where things got off the rails and
> did something that
> worked for me.  Just saying, "That won't work" without a workable alternative
> is a bit irritating.

There are surely plenty of opportunities around for
irritatation! :)  Dropped patches surely; I thought I was
helpful there.  Ungraceful errors from easily identifiable
common gotchas definitely, so what you're trying to achieve is
IMHO desirable.  Patches hacking in something that just happened
to work for someone too; I tried to stop that from happening.

> I do not know the difference between a checkout build and a "normal"
> configured build.

There's a difference between builds from released tarballs and
builds from svn co + contrib/gcc_update, yes.

>  My understanding was that generated files were to
> be part of the repo and that there was *not* a difference.

Nope, fewer generated files in the repo.
(Not all of them, not none of them.)

>  If there is,
> then someone who understands the difference could maybe add some
> configure infrastructure to test the environment and decide if flex (or lex)
> was needed, rather than just say, "what you did won't work."

See is_release in that same configure.ac, that might be the only
additional condition that's needed.

Happy Hacking.
brgds, H-P
Andreas Schwab - Jan. 28, 2014, 1:35 p.m.
Hans-Peter Nilsson <hp@bitrange.com> writes:

> See is_release in that same configure.ac, that might be the only
> additional condition that's needed.

is_release only distinguishes a release from a snapshot, but does not
say anything whether its a tarball or a VC checkout (ie. is_release=yes
is also possible in a VC checkout).

Andreas.
Hans-Peter Nilsson - Jan. 28, 2014, 1:48 p.m.
On Tue, 28 Jan 2014, Andreas Schwab wrote:
> Hans-Peter Nilsson <hp@bitrange.com> writes:
>
> > See is_release in that same configure.ac, that might be the only
> > additional condition that's needed.
>
> is_release only distinguishes a release from a snapshot, but does not
> say anything whether its a tarball or a VC checkout (ie. is_release=yes
> is also possible in a VC checkout).

That difference seems unimportant, at least lesser than a simple
means to avoid the missing-flex gotcha and the we-wont-need-it
gotcha.  But anyhoo, I'll leave it to you to provide a better
alternative.

brgds, H-P

Patch

Index: configure.ac
===================================================================
--- configure.ac        (revision 205790)
+++ configure.ac        (working copy)
@@ -1319,10 +1319,17 @@ 
  # Used for setting $lt_cv_objdir
  _LT_CHECK_OBJDIR

-# Check for GMP, MPFR and MPC
+# Check for flex, GMP, MPFR and MPC
+[for p in flex
+do
+  c=`command -v $p`
+  test -x "$c" || \
+    ]AC_MSG_ERROR([the $p command is required to build GCC])[
+done
+
  gmplibs="-lmpc -lmpfr -lgmp"
  gmpinc=
-have_gmp=no
+have_gmp=no]

  # Specify a location for mpc
  # check for this first so it ends up on the link line before mpfr.