* [LTP] LTP 20091031 Makefiles totally broken?!?
@ 2009-11-06 9:57 Andi Kleen
2009-11-06 11:16 ` Mike Frysinger
0 siblings, 1 reply; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 9:57 UTC (permalink / raw)
To: ltp-list
I ran configure, which seems to spend 99% of its time
checking for stuff that is always there on any Linux,
and after that I just get
# make
make: `testcases/realtime/configure' is up to date.
#
Can we please have the old Makefiles back?
Thanks,
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 9:57 [LTP] LTP 20091031 Makefiles totally broken?!? Andi Kleen
@ 2009-11-06 11:16 ` Mike Frysinger
2009-11-06 13:09 ` Andi Kleen
0 siblings, 1 reply; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 11:16 UTC (permalink / raw)
To: ltp-list; +Cc: Andi Kleen
[-- Attachment #1.1: Type: Text/Plain, Size: 688 bytes --]
On Friday 06 November 2009 04:57:45 Andi Kleen wrote:
> I ran configure, which seems to spend 99% of its time
> checking for stuff that is always there on any Linux,
not really. most of the configure checks are there because people have
complained about specific issues trying to run on older linux distros. and we
arent actively blocking using LTP on other *nix systems.
> and after that I just get
>
> # make
> make: `testcases/realtime/configure' is up to date.
> #
-ENEEDINFO
are you using live cvs ? latest release ? what distro ? what version of
autoconf/make ? what does `make -d` show ?
> Can we please have the old Makefiles back?
no
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 11:16 ` Mike Frysinger
@ 2009-11-06 13:09 ` Andi Kleen
2009-11-06 13:21 ` Mike Frysinger
0 siblings, 1 reply; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 13:09 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Fri, Nov 06, 2009 at 07:16:39AM -0400, Mike Frysinger wrote:
> On Friday 06 November 2009 04:57:45 Andi Kleen wrote:
> > I ran configure, which seems to spend 99% of its time
> > checking for stuff that is always there on any Linux,
>
> not really. most of the configure checks are there because people have
> complained about specific issues trying to run on older linux distros. and we
I always just deleted the tests that didn't build. That's far better
than not building at all like now.
> arent actively blocking using LTP on other *nix systems.
yes you're just actively blocking running LTP on Linux now it seems.
>
> > and after that I just get
> >
> > # make
> > make: `testcases/realtime/configure' is up to date.
> > #
>
> -ENEEDINFO
>
> are you using live cvs ? latest release ? what distro ? what version of
See Subject on SUSE 10.0
> autoconf/make ? what does `make -d` show ?
autoconf doesn't matter because I didn't regenerate the script.
GNU Make 3.80
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Reading makefiles...
Reading makefile `Makefile'...
Reading makefile `/root/ltp-full-20091031/include/mk/env_pre.mk' (search path) (no ~ expansion)...
Reading makefile `/root/ltp-full-20091031/include/mk/config.mk' (search path) (don't care) (no ~ expansion)...
Reading makefile `/root/ltp-full-20091031/include/mk/automake.mk' (search path) (no ~ expansion)...
Updating makefiles....
Considering target file `/root/ltp-full-20091031/include/mk/automake.mk'.
Looking for an implicit rule for `/root/ltp-full-20091031/include/mk/automake.mk'.
Trying pattern rule with stem `automake.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/automake.mk,v'.
Trying pattern rule with stem `automake.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/RCS/automake.mk,v'.
Trying pattern rule with stem `automake.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/RCS/automake.mk'.
Trying pattern rule with stem `automake.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/s.automake.mk'.
Trying pattern rule with stem `automake.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/SCCS/s.automake.mk'.
No implicit rule found for `/root/ltp-full-20091031/include/mk/automake.mk'.
Finished prerequisites of target file `/root/ltp-full-20091031/include/mk/automake.mk'.
No need to remake target `/root/ltp-full-20091031/include/mk/automake.mk'.
Considering target file `/root/ltp-full-20091031/include/mk/config.mk'.
Looking for an implicit rule for `/root/ltp-full-20091031/include/mk/config.mk'.
Trying pattern rule with stem `config.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/config.mk,v'.
Trying pattern rule with stem `config.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/RCS/config.mk,v'.
Trying pattern rule with stem `config.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/RCS/config.mk'.
Trying pattern rule with stem `config.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/s.config.mk'.
Trying pattern rule with stem `config.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/SCCS/s.config.mk'.
No implicit rule found for `/root/ltp-full-20091031/include/mk/config.mk'.
Finished prerequisites of target file `/root/ltp-full-20091031/include/mk/config.mk'.
No need to remake target `/root/ltp-full-20091031/include/mk/config.mk'.
Considering target file `/root/ltp-full-20091031/include/mk/env_pre.mk'.
Looking for an implicit rule for `/root/ltp-full-20091031/include/mk/env_pre.mk'.
Trying pattern rule with stem `env_pre.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/env_pre.mk,v'.
Trying pattern rule with stem `env_pre.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/RCS/env_pre.mk,v'.
Trying pattern rule with stem `env_pre.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/RCS/env_pre.mk'.
Trying pattern rule with stem `env_pre.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/s.env_pre.mk'.
Trying pattern rule with stem `env_pre.mk'.
Trying implicit prerequisite `/root/ltp-full-20091031/include/mk/SCCS/s.env_pre.mk'.
No implicit rule found for `/root/ltp-full-20091031/include/mk/env_pre.mk'.
Finished prerequisites of target file `/root/ltp-full-20091031/include/mk/env_pre.mk'.
No need to remake target `/root/ltp-full-20091031/include/mk/env_pre.mk'.
Considering target file `Makefile'.
Looking for an implicit rule for `Makefile'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `Makefile,v'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `RCS/Makefile,v'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `RCS/Makefile'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `s.Makefile'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `SCCS/s.Makefile'.
No implicit rule found for `Makefile'.
Finished prerequisites of target file `Makefile'.
No need to remake target `Makefile'.
Updating goal targets....
Considering target file `testcases/realtime/configure'.
Finished prerequisites of target file `testcases/realtime/configure'.
No need to remake target `testcases/realtime/configure'.
make: `testcases/realtime/configure' is up to date.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 13:09 ` Andi Kleen
@ 2009-11-06 13:21 ` Mike Frysinger
2009-11-06 18:04 ` Garrett Cooper
0 siblings, 1 reply; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 13:21 UTC (permalink / raw)
To: Andi Kleen, Garrett Cooper; +Cc: ltp-list
[-- Attachment #1.1: Type: Text/Plain, Size: 1595 bytes --]
On Friday 06 November 2009 08:09:06 Andi Kleen wrote:
> On Fri, Nov 06, 2009 at 07:16:39AM -0400, Mike Frysinger wrote:
> > On Friday 06 November 2009 04:57:45 Andi Kleen wrote:
> > > I ran configure, which seems to spend 99% of its time
> > > checking for stuff that is always there on any Linux,
> >
> > not really. most of the configure checks are there because people have
> > complained about specific issues trying to run on older linux distros.
> > and we
>
> I always just deleted the tests that didn't build. That's far better
> than not building at all like now.
perhaps an acceptable workaround for you, but certainly not for most people
> > arent actively blocking using LTP on other *nix systems.
>
> yes you're just actively blocking running LTP on Linux now it seems.
please refrain from filling e-mails with unrelated BS
> > > and after that I just get
> > >
> > > # make
> > > make: `testcases/realtime/configure' is up to date.
> > > #
> >
> > -ENEEDINFO
> >
> > are you using live cvs ? latest release ? what distro ? what version
> > of
>
> See Subject on SUSE 10.0
>
> > autoconf/make ? what does `make -d` show ?
>
> autoconf doesn't matter because I didn't regenerate the script.
>
> GNU Make 3.80
looks like a bug in make-3.80. works fine with make-3.81. care to take a
look Garrett ?
usually i just install older versions on my system as `make-$VER` to make
testing different ones easy. since all the makefiles use $(MAKE), this
shouldnt be a problem to execute `make-$VER` instead of `make`.
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 13:21 ` Mike Frysinger
@ 2009-11-06 18:04 ` Garrett Cooper
2009-11-06 18:23 ` Garrett Cooper
` (2 more replies)
0 siblings, 3 replies; 37+ messages in thread
From: Garrett Cooper @ 2009-11-06 18:04 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Fri, Nov 6, 2009 at 5:21 AM, Mike Frysinger <vapier@gentoo.org> wrote:
> On Friday 06 November 2009 08:09:06 Andi Kleen wrote:
>> On Fri, Nov 06, 2009 at 07:16:39AM -0400, Mike Frysinger wrote:
>> > On Friday 06 November 2009 04:57:45 Andi Kleen wrote:
>> > > I ran configure, which seems to spend 99% of its time
>> > > checking for stuff that is always there on any Linux,
>> >
>> > not really. most of the configure checks are there because people have
>> > complained about specific issues trying to run on older linux distros.
>> > and we
>>
>> I always just deleted the tests that didn't build. That's far better
>> than not building at all like now.
>
> perhaps an acceptable workaround for you, but certainly not for most people
>
>> > arent actively blocking using LTP on other *nix systems.
>>
>> yes you're just actively blocking running LTP on Linux now it seems.
>
> please refrain from filling e-mails with unrelated BS
>
>> > > and after that I just get
>> > >
>> > > # make
>> > > make: `testcases/realtime/configure' is up to date.
>> > > #
>> >
>> > -ENEEDINFO
>> >
>> > are you using live cvs ? latest release ? what distro ? what version
>> > of
>>
>> See Subject on SUSE 10.0
>>
>> > autoconf/make ? what does `make -d` show ?
>>
>> autoconf doesn't matter because I didn't regenerate the script.
>>
>> GNU Make 3.80
>
> looks like a bug in make-3.80. works fine with make-3.81. care to take a
> look Garrett ?
>
> usually i just install older versions on my system as `make-$VER` to make
> testing different ones easy. since all the makefiles use $(MAKE), this
> shouldnt be a problem to execute `make-$VER` instead of `make`.
Hi Andi,
As I just wrote in the INSTALL file after the release (I apologize for
not catching this beforehand, but all of the systems I use -- Fedora,
Gentoo, RHEL 4 update 6, Ubuntu -- have make 3.81):
======================================================
In order to compile and use pan, you must have bison/yacc, flex, and make
3.81+ installed.
# ...
make 3.81 can be obtained here:
- http://ftp.gnu.org/gnu/make/make-3.81.tar.bz2
# ...
Common Issues
----------------------
Issue: When executing make [all] it says:
" *** No rule to make target `/$*', needed by `pan-all'. Stop."
Solution: You must upgrade to make 3.81. Please see the Requirements
section above.
Issue: When executing make [all] it says something like:
# ...
install -m 00644 "/scratch/ltp-dev2/ltp/include/test.h"
"/scratch/ltp-install12/include/test.h"
install -m 00644 "/scratch/ltp-dev2/ltp/include/tlibio.h"
"/scratch/ltp-install12/include/tlibio.h"
install -m 00644 "/scratch/ltp-dev2/ltp/include/usctest.h"
"/scratch/ltp-install12/include/usctest.h"
install -m 00644 "/scratch/ltp-dev2/ltp/include/write_log.h"
"/scratch/ltp-install12/include/write_log.h"
make[1]: Leaving directory `/scratch/ltp-dev2/ltp/include'
make -C lib -f "/scratch/ltp-dev2/ltp/lib/Makefile" all
make[1]: Entering directory `/scratch/ltp-dev2/ltp/lib'
" *** No rule to make target `dataascii.o', needed by `libltp.a'.
Stop." # <-- the error
Solution: You cannot build LTP with -r / --no-builtin-rules and/or
-R / --no-builtin-variables specified. LTP relies heavily on built-in
implicit rules and variables to function properly.
======================================================
So yes, there are known issues with using make versions <3.81. The
reason being that some macros and functions that I use to determine
absolute path, etc were not available in make 3.80.
I've considered adding a configure check for the make version. I'm
probably going to do it this weekend to avoid support issues like
these.
Thanks,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 18:04 ` Garrett Cooper
@ 2009-11-06 18:23 ` Garrett Cooper
2009-11-06 19:09 ` Mike Frysinger
2009-11-06 19:13 ` Andi Kleen
2 siblings, 0 replies; 37+ messages in thread
From: Garrett Cooper @ 2009-11-06 18:23 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Fri, Nov 6, 2009 at 10:04 AM, Garrett Cooper <yanegomi@gmail.com> wrote:
> On Fri, Nov 6, 2009 at 5:21 AM, Mike Frysinger <vapier@gentoo.org> wrote:
>> On Friday 06 November 2009 08:09:06 Andi Kleen wrote:
>>> On Fri, Nov 06, 2009 at 07:16:39AM -0400, Mike Frysinger wrote:
>>> > On Friday 06 November 2009 04:57:45 Andi Kleen wrote:
>>> > > I ran configure, which seems to spend 99% of its time
>>> > > checking for stuff that is always there on any Linux,
>>> >
>>> > not really. most of the configure checks are there because people have
>>> > complained about specific issues trying to run on older linux distros.
>>> > and we
>>>
>>> I always just deleted the tests that didn't build. That's far better
>>> than not building at all like now.
>>
>> perhaps an acceptable workaround for you, but certainly not for most people
>>
>>> > arent actively blocking using LTP on other *nix systems.
>>>
>>> yes you're just actively blocking running LTP on Linux now it seems.
>>
>> please refrain from filling e-mails with unrelated BS
>>
>>> > > and after that I just get
>>> > >
>>> > > # make
>>> > > make: `testcases/realtime/configure' is up to date.
>>> > > #
>>> >
>>> > -ENEEDINFO
>>> >
>>> > are you using live cvs ? latest release ? what distro ? what version
>>> > of
>>>
>>> See Subject on SUSE 10.0
>>>
>>> > autoconf/make ? what does `make -d` show ?
>>>
>>> autoconf doesn't matter because I didn't regenerate the script.
>>>
>>> GNU Make 3.80
>>
>> looks like a bug in make-3.80. works fine with make-3.81. care to take a
>> look Garrett ?
>>
>> usually i just install older versions on my system as `make-$VER` to make
>> testing different ones easy. since all the makefiles use $(MAKE), this
>> shouldnt be a problem to execute `make-$VER` instead of `make`.
>
> Hi Andi,
>
> As I just wrote in the INSTALL file after the release (I apologize for
> not catching this beforehand, but all of the systems I use -- Fedora,
> Gentoo, RHEL 4 update 6, Ubuntu -- have make 3.81):
>
> ======================================================
>
> In order to compile and use pan, you must have bison/yacc, flex, and make
> 3.81+ installed.
I reread this statement and it is ambiguous. I just changed it in CVS
to state the following:
1. In order to compile ltp you must have make 3.81+.
2. In order to compile and use pan, you must have bison/yacc, and flex
installed.
> # ...
>
> make 3.81 can be obtained here:
> - http://ftp.gnu.org/gnu/make/make-3.81.tar.bz2
>
> # ...
>
> Common Issues
> ----------------------
>
> Issue: When executing make [all] it says:
>
> " *** No rule to make target `/$*', needed by `pan-all'. Stop."
>
> Solution: You must upgrade to make 3.81. Please see the Requirements
> section above.
>
> Issue: When executing make [all] it says something like:
>
> # ...
> install -m 00644 "/scratch/ltp-dev2/ltp/include/test.h"
> "/scratch/ltp-install12/include/test.h"
> install -m 00644 "/scratch/ltp-dev2/ltp/include/tlibio.h"
> "/scratch/ltp-install12/include/tlibio.h"
> install -m 00644 "/scratch/ltp-dev2/ltp/include/usctest.h"
> "/scratch/ltp-install12/include/usctest.h"
> install -m 00644 "/scratch/ltp-dev2/ltp/include/write_log.h"
> "/scratch/ltp-install12/include/write_log.h"
> make[1]: Leaving directory `/scratch/ltp-dev2/ltp/include'
> make -C lib -f "/scratch/ltp-dev2/ltp/lib/Makefile" all
> make[1]: Entering directory `/scratch/ltp-dev2/ltp/lib'
> " *** No rule to make target `dataascii.o', needed by `libltp.a'.
> Stop." # <-- the error
>
> Solution: You cannot build LTP with -r / --no-builtin-rules and/or
> -R / --no-builtin-variables specified. LTP relies heavily on built-in
> implicit rules and variables to function properly.
>
> ======================================================
>
> So yes, there are known issues with using make versions <3.81. The
> reason being that some macros and functions that I use to determine
> absolute path, etc were not available in make 3.80.
>
> I've considered adding a configure check for the make version. I'm
> probably going to do it this weekend to avoid support issues like
> these.
>
> Thanks,
> -Garrett
>
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 18:04 ` Garrett Cooper
2009-11-06 18:23 ` Garrett Cooper
@ 2009-11-06 19:09 ` Mike Frysinger
2009-11-06 19:17 ` Andi Kleen
2009-11-06 23:02 ` Matt Helsley
2009-11-06 19:13 ` Andi Kleen
2 siblings, 2 replies; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 19:09 UTC (permalink / raw)
To: Garrett Cooper; +Cc: ltp-list, Andi Kleen
[-- Attachment #1.1: Type: Text/Plain, Size: 1025 bytes --]
On Friday 06 November 2009 13:04:51 Garrett Cooper wrote:
> As I just wrote in the INSTALL file after the release (I apologize for
> not catching this beforehand, but all of the systems I use -- Fedora,
> Gentoo, RHEL 4 update 6, Ubuntu -- have make 3.81):
hrm, it sucks to not support make 3.80. while make 3.81 has been out for
three years now, make 3.80 support would increase the coverage to 8 years.
but if you've looked at the situation and found 3.80 support to be non
trivial, i wont whine too loud.
> In order to compile and use pan, you must have bison/yacc, flex, and make
> 3.81+ installed.
if we're forcing make-3.81+, then make it explicit:
ifneq ($(findstring x3.7,x$(MAKE_VERSION)),)
NEED_NEWER_MAKE := y
endif
ifeq ($(MAKE_VERSION),3.80)
NEED_NEWER_MAKE := y
endif
ifeq ($(NEED_NEWER_MAKE),y)
$(error ..)
endif
also, i thought we were going to rename the top level Makefile to GNUmakefile
and add a dummy Makefile that just spat out "sorry, ltp requires GNU make".
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 18:04 ` Garrett Cooper
2009-11-06 18:23 ` Garrett Cooper
2009-11-06 19:09 ` Mike Frysinger
@ 2009-11-06 19:13 ` Andi Kleen
2009-11-06 19:39 ` Mike Frysinger
2009-11-06 19:43 ` Nate Straz
2 siblings, 2 replies; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 19:13 UTC (permalink / raw)
To: Garrett Cooper; +Cc: ltp-list, Andi Kleen, Mike Frysinger
> So yes, there are known issues with using make versions <3.81. The
For me it seems more the known issue is in the Makefile. 3.80
is a widely used Make version.
> reason being that some macros and functions that I use to determine
> absolute path, etc were not available in make 3.80.
Most of my infrastructure in test systems is based on SUSE 10.0
and it's impractical to upgrade make everywhere.
I find it very sad that LTP now descended into "version hell"
and abandoned old distributions.
> I've considered adding a configure check for the make version. I'm
> probably going to do it this weekend to avoid support issues like
> these.
That's not a solution.
Please just fix the makefiles or revert this misguided change
and give us working makefiles back.
From a quick look at the mailing list archives that doesn't
even seem to be the only problem with this "improvement".
Thanks.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:09 ` Mike Frysinger
@ 2009-11-06 19:17 ` Andi Kleen
2009-11-09 13:15 ` Cyril Hrubis
2009-11-06 23:02 ` Matt Helsley
1 sibling, 1 reply; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 19:17 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
> On Friday 06 November 2009 13:04:51 Garrett Cooper wrote:
> > As I just wrote in the INSTALL file after the release (I apologize for
> > not catching this beforehand, but all of the systems I use -- Fedora,
> > Gentoo, RHEL 4 update 6, Ubuntu -- have make 3.81):
>
> hrm, it sucks to not support make 3.80. while make 3.81 has been out for
> three years now, make 3.80 support would increase the coverage to 8 years.
> but if you've looked at the situation and found 3.80 support to be non
> trivial, i wont whine too loud.
Well I do whine. I essentially means that I won't be able to use
newer LTP versions anymore in my standard test setup. And I know
it's pretty common with kernel hackers to use old user lands:
you're basically cutting yourself off from your customer base.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:13 ` Andi Kleen
@ 2009-11-06 19:39 ` Mike Frysinger
2009-11-06 19:44 ` Garrett Cooper
2009-11-06 19:50 ` Andi Kleen
2009-11-06 19:43 ` Nate Straz
1 sibling, 2 replies; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 19:39 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list
[-- Attachment #1.1: Type: Text/Plain, Size: 826 bytes --]
On Friday 06 November 2009 14:13:43 Andi Kleen wrote:
> > I've considered adding a configure check for the make version. I'm
> > probably going to do it this weekend to avoid support issues like
> > these.
>
> That's not a solution.
>
> Please just fix the makefiles or revert this misguided change
> and give us working makefiles back.
>
> From a quick look at the mailing list archives that doesn't
> even seem to be the only problem with this "improvement".
again, please stop wasting our time with your "revert it" comments. it isnt
going to happen. especially considering you apparently have no signficant
plans in helping maintain the huge code base that is LTP.
we can look at working around bugs in make-3.80 if/since there are a number of
people who would like this functionality.
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:13 ` Andi Kleen
2009-11-06 19:39 ` Mike Frysinger
@ 2009-11-06 19:43 ` Nate Straz
2009-11-06 19:59 ` Andi Kleen
1 sibling, 1 reply; 37+ messages in thread
From: Nate Straz @ 2009-11-06 19:43 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list, Mike Frysinger
On Nov 6 20:13, Andi Kleen wrote:
> > So yes, there are known issues with using make versions <3.81. The
>
> For me it seems more the known issue is in the Makefile. 3.80
> is a widely used Make version.
>
> > reason being that some macros and functions that I use to determine
> > absolute path, etc were not available in make 3.80.
>
> Most of my infrastructure in test systems is based on SUSE 10.0
> and it's impractical to upgrade make everywhere.
openSUSE 10.3 does include make-3.81. I hope upgrading to the latest
point release won't disrupt your test systems.
http://download.opensuse.org/distribution/10.3/repo/oss/suse/x86_64/make-3.81-66.x86_64.rpm
Nate
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:39 ` Mike Frysinger
@ 2009-11-06 19:44 ` Garrett Cooper
2009-11-06 19:53 ` Mike Frysinger
2009-11-06 19:50 ` Andi Kleen
1 sibling, 1 reply; 37+ messages in thread
From: Garrett Cooper @ 2009-11-06 19:44 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Fri, Nov 6, 2009 at 11:39 AM, Mike Frysinger <vapier@gentoo.org> wrote:
> On Friday 06 November 2009 14:13:43 Andi Kleen wrote:
>> > I've considered adding a configure check for the make version. I'm
>> > probably going to do it this weekend to avoid support issues like
>> > these.
>>
>> That's not a solution.
>>
>> Please just fix the makefiles or revert this misguided change
>> and give us working makefiles back.
>>
>> From a quick look at the mailing list archives that doesn't
>> even seem to be the only problem with this "improvement".
>
> again, please stop wasting our time with your "revert it" comments. it isnt
> going to happen. especially considering you apparently have no signficant
> plans in helping maintain the huge code base that is LTP.
>
> we can look at working around bugs in make-3.80 if/since there are a number of
> people who would like this functionality.
I'll see whether or not there are other ways to skin the proverbial
can to get make 3.80 to work, but the problem is that what I'm going
to be providing in make <3.81 will be hacks, not solutions to fill in
functional gaps.
Also, mass deploying (IMO) make 3.81 shouldn't be that hard if the IT
infrastructure is setup properly with NFS or some other mass-package
deployment system. It's simply:
./configure [config-options]
make all install
Thanks,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:39 ` Mike Frysinger
2009-11-06 19:44 ` Garrett Cooper
@ 2009-11-06 19:50 ` Andi Kleen
2009-11-06 19:58 ` Mike Frysinger
2009-11-06 20:04 ` Mike Frysinger
1 sibling, 2 replies; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 19:50 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Fri, Nov 06, 2009 at 03:39:21PM -0400, Mike Frysinger wrote:
> On Friday 06 November 2009 14:13:43 Andi Kleen wrote:
> > > I've considered adding a configure check for the make version. I'm
> > > probably going to do it this weekend to avoid support issues like
> > > these.
> >
> > That's not a solution.
> >
> > Please just fix the makefiles or revert this misguided change
> > and give us working makefiles back.
> >
> > From a quick look at the mailing list archives that doesn't
> > even seem to be the only problem with this "improvement".
>
> again, please stop wasting our time with your "revert it" comments. it isnt
That's the standard strategy to fix regressions if the submitter
is unwilling to fix newly introduced bugs.
> going to happen. especially considering you apparently have no signficant
> plans in helping maintain the huge code base that is LTP.
I submitted some tests and fixes in the past, but yes I'm primarily a user.
> we can look at working around bugs in make-3.80 if/since there are a number of
> people who would like this functionality.
Are you saying that LTP as a project is not interested in fixing regressions?
-Andi
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:44 ` Garrett Cooper
@ 2009-11-06 19:53 ` Mike Frysinger
0 siblings, 0 replies; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 19:53 UTC (permalink / raw)
To: Garrett Cooper; +Cc: ltp-list, Andi Kleen
[-- Attachment #1.1: Type: Text/Plain, Size: 1466 bytes --]
On Friday 06 November 2009 14:44:11 Garrett Cooper wrote:
> On Fri, Nov 6, 2009 at 11:39 AM, Mike Frysinger wrote:
> > On Friday 06 November 2009 14:13:43 Andi Kleen wrote:
> >> > I've considered adding a configure check for the make version. I'm
> >> > probably going to do it this weekend to avoid support issues like
> >> > these.
> >>
> >> That's not a solution.
> >>
> >> Please just fix the makefiles or revert this misguided change
> >> and give us working makefiles back.
> >>
> >> From a quick look at the mailing list archives that doesn't
> >> even seem to be the only problem with this "improvement".
> >
> > again, please stop wasting our time with your "revert it" comments. it
> > isnt going to happen. especially considering you apparently have no
> > signficant plans in helping maintain the huge code base that is LTP.
> >
> > we can look at working around bugs in make-3.80 if/since there are a
> > number of people who would like this functionality.
>
> I'll see whether or not there are other ways to skin the proverbial
> can to get make 3.80 to work, but the problem is that what I'm going
> to be providing in make <3.81 will be hacks, not solutions to fill in
> functional gaps.
let's at least start out with the known bugs/limitations and see how/if each
can be addressed.
sticking things behind something like this should be fine too:
ifeq ($(MAKE_VERSION),3.80)
# screw you make!
...
endif
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:50 ` Andi Kleen
@ 2009-11-06 19:58 ` Mike Frysinger
2009-11-06 20:04 ` Mike Frysinger
1 sibling, 0 replies; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 19:58 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list
[-- Attachment #1.1: Type: Text/Plain, Size: 1482 bytes --]
On Friday 06 November 2009 14:50:36 Andi Kleen wrote:
> On Fri, Nov 06, 2009 at 03:39:21PM -0400, Mike Frysinger wrote:
> > On Friday 06 November 2009 14:13:43 Andi Kleen wrote:
> > > > I've considered adding a configure check for the make version. I'm
> > > > probably going to do it this weekend to avoid support issues like
> > > > these.
> > >
> > > That's not a solution.
> > >
> > > Please just fix the makefiles or revert this misguided change
> > > and give us working makefiles back.
> > >
> > > From a quick look at the mailing list archives that doesn't
> > > even seem to be the only problem with this "improvement".
> >
> > again, please stop wasting our time with your "revert it" comments. it
> > isnt
>
> That's the standard strategy to fix regressions if the submitter
> is unwilling to fix newly introduced bugs.
your position on how to "fix" things is irrelevant here, nor is it helping in
any way. drop it.
> > we can look at working around bugs in make-3.80 if/since there are a
> > number of people who would like this functionality.
>
> Are you saying that LTP as a project is not interested in fixing
> regressions?
ive already made my position pretty clear in this statement. support for old
versions of tools will continually be phased out over time. the exact cut off
time will largely be dictated by the needs of the larger user base.
"cleverly" defining behavior as "regressions" notwithstanding.
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:43 ` Nate Straz
@ 2009-11-06 19:59 ` Andi Kleen
2009-11-06 20:25 ` Garrett Cooper
0 siblings, 1 reply; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 19:59 UTC (permalink / raw)
To: Nate Straz; +Cc: ltp-list, Andi Kleen, Mike Frysinger
On Fri, Nov 06, 2009 at 02:43:35PM -0500, Nate Straz wrote:
> On Nov 6 20:13, Andi Kleen wrote:
> > > So yes, there are known issues with using make versions <3.81. The
> >
> > For me it seems more the known issue is in the Makefile. 3.80
> > is a widely used Make version.
> >
> > > reason being that some macros and functions that I use to determine
> > > absolute path, etc were not available in make 3.80.
> >
> > Most of my infrastructure in test systems is based on SUSE 10.0
> > and it's impractical to upgrade make everywhere.
>
> openSUSE 10.3 does include make-3.81. I hope upgrading to the latest
> point release won't disrupt your test systems.
It does; anything udev based has unacceptable boot time penalty
with nfsroot. That's why they are still on 10.0.
-Andi
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:50 ` Andi Kleen
2009-11-06 19:58 ` Mike Frysinger
@ 2009-11-06 20:04 ` Mike Frysinger
1 sibling, 0 replies; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 20:04 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list
[-- Attachment #1.1: Type: Text/Plain, Size: 633 bytes --]
On Friday 06 November 2009 14:50:36 Andi Kleen wrote:
> On Fri, Nov 06, 2009 at 03:39:21PM -0400, Mike Frysinger wrote:
> > going to happen. especially considering you apparently have no
> > signficant plans in helping maintain the huge code base that is LTP.
>
> I submitted some tests and fixes in the past, but yes I'm primarily a user.
right -- you've certainly contributed useful pieces in the past which is why i
used the word "significant", but tackling the entire code base like Garrett
has isnt a semi-trivial task, as well as fielding follow up reports. i
imagine it's been pretty draining on him.
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:59 ` Andi Kleen
@ 2009-11-06 20:25 ` Garrett Cooper
2009-11-06 21:02 ` Andi Kleen
0 siblings, 1 reply; 37+ messages in thread
From: Garrett Cooper @ 2009-11-06 20:25 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list, Mike Frysinger, Nate Straz
On Fri, Nov 6, 2009 at 11:59 AM, Andi Kleen <andi@firstfloor.org> wrote:
> On Fri, Nov 06, 2009 at 02:43:35PM -0500, Nate Straz wrote:
>> On Nov 6 20:13, Andi Kleen wrote:
>> > > So yes, there are known issues with using make versions <3.81. The
>> >
>> > For me it seems more the known issue is in the Makefile. 3.80
>> > is a widely used Make version.
>> >
>> > > reason being that some macros and functions that I use to determine
>> > > absolute path, etc were not available in make 3.80.
>> >
>> > Most of my infrastructure in test systems is based on SUSE 10.0
>> > and it's impractical to upgrade make everywhere.
>>
>> openSUSE 10.3 does include make-3.81. I hope upgrading to the latest
>> point release won't disrupt your test systems.
>
> It does; anything udev based has unacceptable boot time penalty
> with nfsroot. That's why they are still on 10.0.
Andi,
You can actually cross-compile, use out-of-build-tree and
bootstrap the system so it can effectively netboot with LTP installed.
This is something that we're doing in Cisco today, and it's something
I highly recommend doing -- especially if you have higher quality
hardware with newer OS'es doing the building for you.
Granted, it does require more work setting everything up from
scratch, but once the work is done, it's a lot easier as far as
long-term maintenance is concerned if you're developing regularly on a
particular revisioned code-base.
I'm more than happy to provide solutions, but they need to be
functional, stable, and easy-to-maintain longterm. Providing hacks for
make 3.80 isn't necessarily a good thing for the project to support
and it may not even solve your problem 100% (you may run into
stability issues using $(shell readlink -f "") instead of $(abspath ).
Then it comes back to tools -- I'm basically going to have to write
checks in autoconf to make sure that readlink does as planned (isn't
broken), and it's going to be more painful for you performance wise to
have this hack in place, as opposed to just having an upgraded version
of make, which also has resolved several bugs between 3.80 and 3.81.
HTH,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 20:25 ` Garrett Cooper
@ 2009-11-06 21:02 ` Andi Kleen
2009-11-06 21:12 ` Mike Frysinger
2009-11-06 21:47 ` Garrett Cooper
0 siblings, 2 replies; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 21:02 UTC (permalink / raw)
To: Garrett Cooper; +Cc: ltp-list, Andi Kleen, Mike Frysinger, Nate Straz
On Fri, Nov 06, 2009 at 12:25:23PM -0800, Garrett Cooper wrote:
> You can actually cross-compile, use out-of-build-tree and
> bootstrap the system so it can effectively netboot with LTP installed.
> This is something that we're doing in Cisco today, and it's something
> I highly recommend doing -- especially if you have higher quality
> hardware with newer OS'es doing the building for you.
The hardware I'm using for testing is perfectly capable of
building LTP itself.
> Granted, it does require more work setting everything up from
> scratch, but once the work is done, it's a lot easier as far as
> long-term maintenance is concerned if you're developing regularly on a
> particular revisioned code-base.
I would prefer to not get into any cross compiling mess. It would
require either static linking or maintenance of a separate build
tree with own libraries, both have many drawbacks.
> I'm more than happy to provide solutions, but they need to be
> functional, stable, and easy-to-maintain longterm. Providing hacks for
> make 3.80 isn't necessarily a good thing for the project to support
What hacks?
make 3.80 has build whole distributions with millions of LOCs, it's unclear
to me why it shouldn't be able to build LTP too.
I'm pretty sure that not supporting older distributions is very
necessarily a bad thing.
> and it may not even solve your problem 100% (you may run into
> stability issues using $(shell readlink -f "") instead of $(abspath ).
I did a quick test of readlink -f and it seems to work here.
> Then it comes back to tools -- I'm basically going to have to write
> checks in autoconf to make sure that readlink does as planned (isn't
> broken), and it's going to be more painful for you performance wise to
> have this hack in place, as opposed to just having an upgraded version
> of make, which also has resolved several bugs between 3.80 and 3.81.
I don't understand: the key is not to test for commands used
by makefiles, but simply only use features which are generally available.
I'm also highly surprised that this doesn't work with autoconf -- I thought
the whole point of autoconf was to generate portable makefiles, but
in this case it seems to especially generate a non portable Makefile.
I suspect it's actually not a autoconf problem by itself, but
something that's in the LTP templates.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 21:02 ` Andi Kleen
@ 2009-11-06 21:12 ` Mike Frysinger
2009-11-06 21:45 ` Andi Kleen
2009-11-06 21:47 ` Garrett Cooper
1 sibling, 1 reply; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 21:12 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list, Nate Straz
[-- Attachment #1.1: Type: Text/Plain, Size: 509 bytes --]
On Friday 06 November 2009 16:02:25 Andi Kleen wrote:
> I'm also highly surprised that this doesn't work with autoconf -- I thought
> the whole point of autoconf was to generate portable makefiles, but
> in this case it seems to especially generate a non portable Makefile.
that is not the point of autoconf at all; it has nothing to do with makefiles.
that is the point of automake -- which we specifically are not using. there
are way too many Makefiles that would need to be generated.
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 21:12 ` Mike Frysinger
@ 2009-11-06 21:45 ` Andi Kleen
2009-11-06 21:59 ` Garrett Cooper
2009-11-06 22:46 ` Mike Frysinger
0 siblings, 2 replies; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 21:45 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen, Nate Straz
On Fri, Nov 06, 2009 at 04:12:10PM -0500, Mike Frysinger wrote:
> On Friday 06 November 2009 16:02:25 Andi Kleen wrote:
> > I'm also highly surprised that this doesn't work with autoconf -- I thought
> > the whole point of autoconf was to generate portable makefiles, but
> > in this case it seems to especially generate a non portable Makefile.
>
> that is not the point of autoconf at all; it has nothing to do with makefiles.
> that is the point of automake -- which we specifically are not using. there
> are way too many Makefiles that would need to be generated.
True. So you guys just managed to write a very non portable Makefile on your
own. Congratulations.
I tried to debug the problem, but it's such a maze that I gave up.
It seems to be related to abs_top_builddir not getting expanded correctly.
I suspect simply expanding some of the filter magic rules manually
might fix it.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 21:02 ` Andi Kleen
2009-11-06 21:12 ` Mike Frysinger
@ 2009-11-06 21:47 ` Garrett Cooper
2009-11-06 21:57 ` Andi Kleen
1 sibling, 1 reply; 37+ messages in thread
From: Garrett Cooper @ 2009-11-06 21:47 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list, Mike Frysinger, Nate Straz
On Fri, Nov 6, 2009 at 1:02 PM, Andi Kleen <andi@firstfloor.org> wrote:
> On Fri, Nov 06, 2009 at 12:25:23PM -0800, Garrett Cooper wrote:
>> You can actually cross-compile, use out-of-build-tree and
>> bootstrap the system so it can effectively netboot with LTP installed.
>> This is something that we're doing in Cisco today, and it's something
>> I highly recommend doing -- especially if you have higher quality
>> hardware with newer OS'es doing the building for you.
>
> The hardware I'm using for testing is perfectly capable of
> building LTP itself.
>
>> Granted, it does require more work setting everything up from
>> scratch, but once the work is done, it's a lot easier as far as
>> long-term maintenance is concerned if you're developing regularly on a
>> particular revisioned code-base.
>
> I would prefer to not get into any cross compiling mess. It would
> require either static linking or maintenance of a separate build
> tree with own libraries, both have many drawbacks.
>
>> I'm more than happy to provide solutions, but they need to be
>> functional, stable, and easy-to-maintain longterm. Providing hacks for
>> make 3.80 isn't necessarily a good thing for the project to support
>
> What hacks?
>
> make 3.80 has build whole distributions with millions of LOCs, it's unclear
> to me why it shouldn't be able to build LTP too.
>
> I'm pretty sure that not supporting older distributions is very
> necessarily a bad thing.
I agree. There are some feature gaps between 3.80 and 3.81 I'll need
to address, which means I need to first off download SLES 10 and
install it on another VM, and toy around with it (if you can provide
me with those details, I'll give it a shot).
>> and it may not even solve your problem 100% (you may run into
>> stability issues using $(shell readlink -f "") instead of $(abspath ).
>
> I did a quick test of readlink -f and it seems to work here.
>
>> Then it comes back to tools -- I'm basically going to have to write
>> checks in autoconf to make sure that readlink does as planned (isn't
>> broken), and it's going to be more painful for you performance wise to
>> have this hack in place, as opposed to just having an upgraded version
>> of make, which also has resolved several bugs between 3.80 and 3.81.
>
> I don't understand: the key is not to test for commands used
> by makefiles, but simply only use features which are generally available.
>
> I'm also highly surprised that this doesn't work with autoconf -- I thought
> the whole point of autoconf was to generate portable makefiles, but
> in this case it seems to especially generate a non portable Makefile.
>
> I suspect it's actually not a autoconf problem by itself, but
> something that's in the LTP templates.
Agreed. The problem that everyone with <3.80 is running into is that I
was stupid and was under the assumption that many distros wouldn't
still use make 3.81 because it's been out for the past 4 years. My
apologies -- I stand corrected.
Thanks,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 21:47 ` Garrett Cooper
@ 2009-11-06 21:57 ` Andi Kleen
0 siblings, 0 replies; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 21:57 UTC (permalink / raw)
To: Garrett Cooper; +Cc: ltp-list, Andi Kleen, Mike Frysinger, Nate Straz
On Fri, Nov 06, 2009 at 01:47:26PM -0800, Garrett Cooper wrote:
> > I'm pretty sure that not supporting older distributions is very
> > necessarily a bad thing.
>
> I agree. There are some feature gaps between 3.80 and 3.81 I'll need
> to address, which means I need to first off download SLES 10 and
Sorry, it's suse 10.0, not sles10.
But it's enough to just install make 3.80 somewhere and
call it explicitely on a newer distro (I just tested that).
Shows the same problem.
> install it on another VM, and toy around with it (if you can provide
> me with those details, I'll give it a shot).
what details do you need?
> >> Then it comes back to tools -- I'm basically going to have to write
> >> checks in autoconf to make sure that readlink does as planned (isn't
> >> broken), and it's going to be more painful for you performance wise to
> >> have this hack in place, as opposed to just having an upgraded version
> >> of make, which also has resolved several bugs between 3.80 and 3.81.
> >
> > I don't understand: the key is not to test for commands used
> > by makefiles, but simply only use features which are generally available.
> >
> > I'm also highly surprised that this doesn't work with autoconf -- I thought
> > the whole point of autoconf was to generate portable makefiles, but
> > in this case it seems to especially generate a non portable Makefile.
> >
> > I suspect it's actually not a autoconf problem by itself, but
> > something that's in the LTP templates.
>
> Agreed. The problem that everyone with <3.80 is running into is that I
<=3.80
> was stupid and was under the assumption that many distros wouldn't
> still use make 3.81 because it's been out for the past 4 years. My
> apologies -- I stand corrected.
Thanks for addressing the problem.
I apologize also for being somewhat too grumpy on the issue.
If you have any patches to test feel free to send them.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 21:45 ` Andi Kleen
@ 2009-11-06 21:59 ` Garrett Cooper
2009-11-06 22:47 ` Andi Kleen
2009-11-06 22:46 ` Mike Frysinger
1 sibling, 1 reply; 37+ messages in thread
From: Garrett Cooper @ 2009-11-06 21:59 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list, Mike Frysinger, Nate Straz
On Fri, Nov 6, 2009 at 1:45 PM, Andi Kleen <andi@firstfloor.org> wrote:
> On Fri, Nov 06, 2009 at 04:12:10PM -0500, Mike Frysinger wrote:
>> On Friday 06 November 2009 16:02:25 Andi Kleen wrote:
>> > I'm also highly surprised that this doesn't work with autoconf -- I thought
>> > the whole point of autoconf was to generate portable makefiles, but
>> > in this case it seems to especially generate a non portable Makefile.
>>
>> that is not the point of autoconf at all; it has nothing to do with makefiles.
>> that is the point of automake -- which we specifically are not using. there
>> are way too many Makefiles that would need to be generated.
>
> True. So you guys just managed to write a very non portable Makefile on your
> own. Congratulations.
>
> I tried to debug the problem, but it's such a maze that I gave up.
>
> It seems to be related to abs_top_builddir not getting expanded correctly.
>
> I suspect simply expanding some of the filter magic rules manually
> might fix it.
In summary, some of the built-in functions in 3.80 aren't implemented
/ don't work period. I need to go back and look at the documentation
and do a side-by-side comparison, but I remember that a developer
emails the help-make@gnu.org list some time back and one of the
primary Gnu make developers just flat out told him to upgrade from
3.80 to 3.81... However, we have a smaller userbase and thus I think
that we can fill in the functional gaps.
$(abspath $(FOO)) only exists in 3.81+, along with some of the other
built-in functions IIRC. Replacing $(abspath ) with $(shell readlink
-f "$(FOO)" 2>/dev/null) is possible, but there are some associated
issues with that solution:
1. They must have readlink
1. It may fail if their shell is toast (in this case, they're kind of SoL).
2. It may fail if their's a bug (that's my job to fix).
It's bad practice to use $(shell ) because it also consumes a lot more
resources allocating a separate shell, and all that badness associated
with it.
If $(patsubst ) is toast, then I'll have to replace it with $(shell )
call to awk or perl.
This can be done, and I'll work on it on Sunday and Monday. I need to
get back to my $JOB because unfortunately I have a test work to
complete.
I really do appreciate the feedback. As I stated before though, 3.80
is where we need to draw the line in the sand, because 3.79 is a
buggy, ancient PoS, so RHEL 4 users and other users of distros around
that era will _need_ to compile 3.80, or 3.81 and install it on their
target systems.
Thanks,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 21:45 ` Andi Kleen
2009-11-06 21:59 ` Garrett Cooper
@ 2009-11-06 22:46 ` Mike Frysinger
1 sibling, 0 replies; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 22:46 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list, Nate Straz
[-- Attachment #1.1: Type: Text/Plain, Size: 1032 bytes --]
On Friday 06 November 2009 16:45:58 Andi Kleen wrote:
> On Fri, Nov 06, 2009 at 04:12:10PM -0500, Mike Frysinger wrote:
> > On Friday 06 November 2009 16:02:25 Andi Kleen wrote:
> > > I'm also highly surprised that this doesn't work with autoconf -- I
> > > thought the whole point of autoconf was to generate portable makefiles,
> > > but in this case it seems to especially generate a non portable
> > > Makefile.
> >
> > that is not the point of autoconf at all; it has nothing to do with
> > makefiles. that is the point of automake -- which we specifically are not
> > using. there are way too many Makefiles that would need to be generated.
>
> True. So you guys just managed to write a very non portable Makefile on
> your own. Congratulations.
"portable" is not necessarily the same thing as "works around bugs in tools".
ignoring that, we are absolutely not "portable" -- GNU make is required. the
make feature set as defined by POSIX (and thus "portable") is too limited for
our needs.
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 21:59 ` Garrett Cooper
@ 2009-11-06 22:47 ` Andi Kleen
2009-11-06 23:03 ` Nate Straz
0 siblings, 1 reply; 37+ messages in thread
From: Andi Kleen @ 2009-11-06 22:47 UTC (permalink / raw)
To: Garrett Cooper; +Cc: ltp-list, Andi Kleen, Mike Frysinger, Nate Straz
> $(abspath $(FOO)) only exists in 3.81+, along with some of the other
> built-in functions IIRC. Replacing $(abspath ) with $(shell readlink
> -f "$(FOO)" 2>/dev/null) is possible, but there are some associated
> issues with that solution:
>
> 1. They must have readlink
> 1. It may fail if their shell is toast (in this case, they're kind of SoL).
> 2. It may fail if their's a bug (that's my job to fix).
>
> It's bad practice to use $(shell ) because it also consumes a lot more
> resources allocating a separate shell, and all that badness associated
> with it.
With := it's probably not too bad to call the shell.
>
> If $(patsubst ) is toast, then I'll have to replace it with $(shell )
> call to awk or perl.
As a datapoint the kernel uses patsubst and afaik it builds with 3.80
> I really do appreciate the feedback. As I stated before though, 3.80
> is where we need to draw the line in the sand, because 3.79 is a
> buggy, ancient PoS, so RHEL 4 users and other users of distros around
> that era will _need_ to compile 3.80, or 3.81 and install it on their
> target systems.
At least for me that works, but I don't speak for RHEL4 users.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:09 ` Mike Frysinger
2009-11-06 19:17 ` Andi Kleen
@ 2009-11-06 23:02 ` Matt Helsley
2009-11-06 23:09 ` Mike Frysinger
1 sibling, 1 reply; 37+ messages in thread
From: Matt Helsley @ 2009-11-06 23:02 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
> On Friday 06 November 2009 13:04:51 Garrett Cooper wrote:
> > As I just wrote in the INSTALL file after the release (I apologize for
> > not catching this beforehand, but all of the systems I use -- Fedora,
> > Gentoo, RHEL 4 update 6, Ubuntu -- have make 3.81):
>
> hrm, it sucks to not support make 3.80. while make 3.81 has been out for
> three years now, make 3.80 support would increase the coverage to 8 years.
> but if you've looked at the situation and found 3.80 support to be non
> trivial, i wont whine too loud.
>
> > In order to compile and use pan, you must have bison/yacc, flex, and make
> > 3.81+ installed.
>
> if we're forcing make-3.81+, then make it explicit:
> ifneq ($(findstring x3.7,x$(MAKE_VERSION)),)
This snippet might work better than findstring. If the make version is
greater than or equal to 3.81 then NEED_NEWER_MAKE is n:
NEED_NEWER_MAKE := n
MAX_VERSION := $(shell echo 3.81 $(MAKE_VERSION) | xargs -r -n 1 | sort -V -r | head -n 1)
ifneq(x$(MAKE_VERSION),x$(MAX_VERSION))
NEED_NEWER_MAKE := y
endif
(I tried to make this a into neat sortv Make "function" but couldn't
get arg passing to work :P)
> NEED_NEWER_MAKE := y
> endif
> ifeq ($(MAKE_VERSION),3.80)
> NEED_NEWER_MAKE := y
> endif
> ifeq ($(NEED_NEWER_MAKE),y)
> $(error ..)
> endif
>
> also, i thought we were going to rename the top level Makefile to GNUmakefile
> and add a dummy Makefile that just spat out "sorry, ltp requires GNU make".
Bleh. Can't we just check the output of $(MAKE) --version rather than
assume other makes use "Makefile"?
Cheers,
-Matt Helsley
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 22:47 ` Andi Kleen
@ 2009-11-06 23:03 ` Nate Straz
0 siblings, 0 replies; 37+ messages in thread
From: Nate Straz @ 2009-11-06 23:03 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list, Mike Frysinger
On Nov 6 23:47, Andi Kleen wrote:
> > I really do appreciate the feedback. As I stated before though, 3.80
> > is where we need to draw the line in the sand, because 3.79 is a
> > buggy, ancient PoS, so RHEL 4 users and other users of distros around
> > that era will _need_ to compile 3.80, or 3.81 and install it on their
> > target systems.
>
> At least for me that works, but I don't speak for RHEL4 users.
RHEL4 users have make-3.80.
Nate
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 23:02 ` Matt Helsley
@ 2009-11-06 23:09 ` Mike Frysinger
2009-11-06 23:34 ` Matt Helsley
0 siblings, 1 reply; 37+ messages in thread
From: Mike Frysinger @ 2009-11-06 23:09 UTC (permalink / raw)
To: Matt Helsley; +Cc: ltp-list
[-- Attachment #1.1: Type: Text/Plain, Size: 1748 bytes --]
On Friday 06 November 2009 18:02:31 Matt Helsley wrote:
> On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
> > On Friday 06 November 2009 13:04:51 Garrett Cooper wrote:
> > > As I just wrote in the INSTALL file after the release (I apologize for
> > > not catching this beforehand, but all of the systems I use -- Fedora,
> > > Gentoo, RHEL 4 update 6, Ubuntu -- have make 3.81):
> >
> > hrm, it sucks to not support make 3.80. while make 3.81 has been out for
> > three years now, make 3.80 support would increase the coverage to 8
> > years. but if you've looked at the situation and found 3.80 support to be
> > non trivial, i wont whine too loud.
> >
> > > In order to compile and use pan, you must have bison/yacc, flex, and
> > > make 3.81+ installed.
> >
> > if we're forcing make-3.81+, then make it explicit:
> > ifneq ($(findstring x3.7,x$(MAKE_VERSION)),)
>
> This snippet might work better than findstring. If the make version is
> greater than or equal to 3.81 then NEED_NEWER_MAKE is n:
>
> NEED_NEWER_MAKE := n
> MAX_VERSION := $(shell echo 3.81 $(MAKE_VERSION) | xargs -r -n 1 | sort -V
> -r | head -n 1)
this involves executing a shell and a lot of external utilities. my version
requires an internal make string search. anything that involves $(shell) here
is going to be worse.
> > also, i thought we were going to rename the top level Makefile to
> > GNUmakefile and add a dummy Makefile that just spat out "sorry, ltp
> > requires GNU make".
>
> Bleh. Can't we just check the output of $(MAKE) --version rather than
> assume other makes use "Makefile"?
the assumption is that only GNU make parses "GNUmakefile". i think that's a
pretty safe assumption.
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 23:09 ` Mike Frysinger
@ 2009-11-06 23:34 ` Matt Helsley
2009-11-07 0:23 ` Mike Frysinger
0 siblings, 1 reply; 37+ messages in thread
From: Matt Helsley @ 2009-11-06 23:34 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list
On Fri, Nov 06, 2009 at 06:09:04PM -0500, Mike Frysinger wrote:
> On Friday 06 November 2009 18:02:31 Matt Helsley wrote:
> > On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
> > > On Friday 06 November 2009 13:04:51 Garrett Cooper wrote:
<snip>
> > This snippet might work better than findstring. If the make version is
> > greater than or equal to 3.81 then NEED_NEWER_MAKE is n:
> >
> > NEED_NEWER_MAKE := n
> > MAX_VERSION := $(shell echo 3.81 $(MAKE_VERSION) | xargs -r -n 1 | sort -V
> > -r | head -n 1)
>
> this involves executing a shell and a lot of external utilities. my version
> requires an internal make string search. anything that involves $(shell) here
> is going to be worse.
OK -- I don't know whether old versions of xargs and sort take those
arguments and you seem to know those kinds of details better than I.
> > > also, i thought we were going to rename the top level Makefile to
> > > GNUmakefile and add a dummy Makefile that just spat out "sorry, ltp
> > > requires GNU make".
> >
> > Bleh. Can't we just check the output of $(MAKE) --version rather than
> > assume other makes use "Makefile"?
>
> the assumption is that only GNU make parses "GNUmakefile". i think that's a
> pretty safe assumption.
Right, but GNU Make also parses Makefile. If some poor bastard runs:
make -f Makefile
where GNU Make is "make" they may be further confused. Seems like it's
better to check what's actually running ($(MAKE)) or will run
(like `which make` in configure) than rely on a filename hack like this.
Cheers,
-Matt Helsley
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 23:34 ` Matt Helsley
@ 2009-11-07 0:23 ` Mike Frysinger
2009-11-07 0:52 ` Garrett Cooper
0 siblings, 1 reply; 37+ messages in thread
From: Mike Frysinger @ 2009-11-07 0:23 UTC (permalink / raw)
To: Matt Helsley; +Cc: ltp-list
[-- Attachment #1.1: Type: Text/Plain, Size: 1993 bytes --]
On Friday 06 November 2009 18:34:22 Matt Helsley wrote:
> On Fri, Nov 06, 2009 at 06:09:04PM -0500, Mike Frysinger wrote:
> > On Friday 06 November 2009 18:02:31 Matt Helsley wrote:
> > > On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
> > > > also, i thought we were going to rename the top level Makefile to
> > > > GNUmakefile and add a dummy Makefile that just spat out "sorry, ltp
> > > > requires GNU make".
> > >
> > > Bleh. Can't we just check the output of $(MAKE) --version rather than
> > > assume other makes use "Makefile"?
> >
> > the assumption is that only GNU make parses "GNUmakefile". i think
> > that's a pretty safe assumption.
>
> Right, but GNU Make also parses Makefile.
not if a GNUmakefile exists in the same dir, or the user forces the issue via
the -f flag
> If some poor bastard runs:
>
> make -f Makefile
>
> where GNU Make is "make" they may be further confused. Seems like it's
> better to check what's actually running ($(MAKE)) or will run
> (like `which make` in configure) than rely on a filename hack like this.
said poor bastard should be smacked :p. checking the value of $(MAKE) wont
work as it could be an arbitrary number of things which could all be valid
values under GNU make. configure checks wont matter because it's the user who
runs `make` or `gmake` or `make-some-noise`. requiring `make` to be GNU make
in configure when the user can easily run `gmake` at make time is pointless
user interference.
using a different filename on the other hand is exactly what GNU make has
designed in from the get go specifically for this purpose -- when GNU make is
required. if you honestly think people are doing something pointless like
`make -f Makefile`, then it's trivial to add a check to it to (1) check
$(MAKE) --version and include GNUmakefile or (2) $(error out). no point in
forcing the shell/etc... overhead in the default build for the majority of
users.
-mike
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 354 bytes --]
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-07 0:23 ` Mike Frysinger
@ 2009-11-07 0:52 ` Garrett Cooper
2009-11-07 0:54 ` Garrett Cooper
0 siblings, 1 reply; 37+ messages in thread
From: Garrett Cooper @ 2009-11-07 0:52 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list
On Fri, Nov 6, 2009 at 4:23 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> On Friday 06 November 2009 18:34:22 Matt Helsley wrote:
>> On Fri, Nov 06, 2009 at 06:09:04PM -0500, Mike Frysinger wrote:
>> > On Friday 06 November 2009 18:02:31 Matt Helsley wrote:
>> > > On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
>> > > > also, i thought we were going to rename the top level Makefile to
>> > > > GNUmakefile and add a dummy Makefile that just spat out "sorry, ltp
>> > > > requires GNU make".
>> > >
>> > > Bleh. Can't we just check the output of $(MAKE) --version rather than
>> > > assume other makes use "Makefile"?
>> >
>> > the assumption is that only GNU make parses "GNUmakefile". i think
>> > that's a pretty safe assumption.
>>
>> Right, but GNU Make also parses Makefile.
>
> not if a GNUmakefile exists in the same dir, or the user forces the issue via
> the -f flag
>
>> If some poor bastard runs:
>>
>> make -f Makefile
>>
>> where GNU Make is "make" they may be further confused. Seems like it's
>> better to check what's actually running ($(MAKE)) or will run
>> (like `which make` in configure) than rely on a filename hack like this.
>
> said poor bastard should be smacked :p. checking the value of $(MAKE) wont
> work as it could be an arbitrary number of things which could all be valid
> values under GNU make. configure checks wont matter because it's the user who
> runs `make` or `gmake` or `make-some-noise`. requiring `make` to be GNU make
> in configure when the user can easily run `gmake` at make time is pointless
> user interference.
>
> using a different filename on the other hand is exactly what GNU make has
> designed in from the get go specifically for this purpose -- when GNU make is
> required. if you honestly think people are doing something pointless like
> `make -f Makefile`, then it's trivial to add a check to it to (1) check
> $(MAKE) --version and include GNUmakefile or (2) $(error out). no point in
> forcing the shell/etc... overhead in the default build for the majority of
> users.
No, but you can do something like:
ifdef MAKE_SANITY_CHECK
export MAKE_SANITY_CHECK = 1
ifneq ($(lastword $(sort 3.80 $(MAKE_VERSION))),$(MAKE_VERSION))
$(error Upgrade your junk..)
endif
endif
that way it only executes this once.
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-07 0:52 ` Garrett Cooper
@ 2009-11-07 0:54 ` Garrett Cooper
2009-11-08 2:09 ` Garrett Cooper
0 siblings, 1 reply; 37+ messages in thread
From: Garrett Cooper @ 2009-11-07 0:54 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list
On Fri, Nov 6, 2009 at 4:52 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
> On Fri, Nov 6, 2009 at 4:23 PM, Mike Frysinger <vapier@gentoo.org> wrote:
>> On Friday 06 November 2009 18:34:22 Matt Helsley wrote:
>>> On Fri, Nov 06, 2009 at 06:09:04PM -0500, Mike Frysinger wrote:
>>> > On Friday 06 November 2009 18:02:31 Matt Helsley wrote:
>>> > > On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
>>> > > > also, i thought we were going to rename the top level Makefile to
>>> > > > GNUmakefile and add a dummy Makefile that just spat out "sorry, ltp
>>> > > > requires GNU make".
>>> > >
>>> > > Bleh. Can't we just check the output of $(MAKE) --version rather than
>>> > > assume other makes use "Makefile"?
>>> >
>>> > the assumption is that only GNU make parses "GNUmakefile". i think
>>> > that's a pretty safe assumption.
>>>
>>> Right, but GNU Make also parses Makefile.
>>
>> not if a GNUmakefile exists in the same dir, or the user forces the issue via
>> the -f flag
>>
>>> If some poor bastard runs:
>>>
>>> make -f Makefile
>>>
>>> where GNU Make is "make" they may be further confused. Seems like it's
>>> better to check what's actually running ($(MAKE)) or will run
>>> (like `which make` in configure) than rely on a filename hack like this.
>>
>> said poor bastard should be smacked :p. checking the value of $(MAKE) wont
>> work as it could be an arbitrary number of things which could all be valid
>> values under GNU make. configure checks wont matter because it's the user who
>> runs `make` or `gmake` or `make-some-noise`. requiring `make` to be GNU make
>> in configure when the user can easily run `gmake` at make time is pointless
>> user interference.
>>
>> using a different filename on the other hand is exactly what GNU make has
>> designed in from the get go specifically for this purpose -- when GNU make is
>> required. if you honestly think people are doing something pointless like
>> `make -f Makefile`, then it's trivial to add a check to it to (1) check
>> $(MAKE) --version and include GNUmakefile or (2) $(error out). no point in
>> forcing the shell/etc... overhead in the default build for the majority of
>> users.
>
> No, but you can do something like:
>
> ifdef MAKE_SANITY_CHECK
> export MAKE_SANITY_CHECK = 1
> ifneq ($(lastword $(sort 3.80 $(MAKE_VERSION))),$(MAKE_VERSION))
> $(error Upgrade your junk..)
> endif
> endif
>
> that way it only executes this once.
Ugh... $(lastword ) didn't exist in 3.80... I'll change it around to
$(firstword ).
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-07 0:54 ` Garrett Cooper
@ 2009-11-08 2:09 ` Garrett Cooper
2009-11-08 20:02 ` Garrett Cooper
0 siblings, 1 reply; 37+ messages in thread
From: Garrett Cooper @ 2009-11-08 2:09 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Fri, Nov 6, 2009 at 4:54 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
> On Fri, Nov 6, 2009 at 4:52 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
>> On Fri, Nov 6, 2009 at 4:23 PM, Mike Frysinger <vapier@gentoo.org> wrote:
>>> On Friday 06 November 2009 18:34:22 Matt Helsley wrote:
>>>> On Fri, Nov 06, 2009 at 06:09:04PM -0500, Mike Frysinger wrote:
>>>> > On Friday 06 November 2009 18:02:31 Matt Helsley wrote:
>>>> > > On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
>>>> > > > also, i thought we were going to rename the top level Makefile to
>>>> > > > GNUmakefile and add a dummy Makefile that just spat out "sorry, ltp
>>>> > > > requires GNU make".
>>>> > >
>>>> > > Bleh. Can't we just check the output of $(MAKE) --version rather than
>>>> > > assume other makes use "Makefile"?
>>>> >
>>>> > the assumption is that only GNU make parses "GNUmakefile". i think
>>>> > that's a pretty safe assumption.
>>>>
>>>> Right, but GNU Make also parses Makefile.
>>>
>>> not if a GNUmakefile exists in the same dir, or the user forces the issue via
>>> the -f flag
>>>
>>>> If some poor bastard runs:
>>>>
>>>> make -f Makefile
>>>>
>>>> where GNU Make is "make" they may be further confused. Seems like it's
>>>> better to check what's actually running ($(MAKE)) or will run
>>>> (like `which make` in configure) than rely on a filename hack like this.
>>>
>>> said poor bastard should be smacked :p. checking the value of $(MAKE) wont
>>> work as it could be an arbitrary number of things which could all be valid
>>> values under GNU make. configure checks wont matter because it's the user who
>>> runs `make` or `gmake` or `make-some-noise`. requiring `make` to be GNU make
>>> in configure when the user can easily run `gmake` at make time is pointless
>>> user interference.
>>>
>>> using a different filename on the other hand is exactly what GNU make has
>>> designed in from the get go specifically for this purpose -- when GNU make is
>>> required. if you honestly think people are doing something pointless like
>>> `make -f Makefile`, then it's trivial to add a check to it to (1) check
>>> $(MAKE) --version and include GNUmakefile or (2) $(error out). no point in
>>> forcing the shell/etc... overhead in the default build for the majority of
>>> users.
>>
>> No, but you can do something like:
>>
>> ifdef MAKE_SANITY_CHECK
>> export MAKE_SANITY_CHECK = 1
>> ifneq ($(lastword $(sort 3.80 $(MAKE_VERSION))),$(MAKE_VERSION))
>> $(error Upgrade your junk..)
>> endif
>> endif
>>
>> that way it only executes this once.
>
> Ugh... $(lastword ) didn't exist in 3.80... I'll change it around to
> $(firstword ).
Crap. So here are some of the high notes for changes between make 3.80 and 3.81:
1. $(and ) and $(or ) didn't exist [we use $(or ) once]. This can be
replaced by an `ifeq ($(strip)) else endif'.
2. $(abspath ) // $(realpath ) didn't exist [we use $(abspath )
extensively, but just in one spot -- fixed that, need to test].
3. .DEFAULT_GOAL was originally .DEFAULT_TARGET, but DID NOT exist in
make 3.81 (this is going to be a bloody pain to hack around with,
maybe -- depends on where I put all:). It'll be like herding cats to
make sure that other developers don't create targets before the first
include.
4. Secondary expansion was busted as all hell in <3.81 (now this is
going to be a serious pain point in some areas because I'll have to
hunt down wherever I used % and $* and adjust things to work with make
3.80 -- this mostly affects the top-level Makefile).
5. Secondary expansion did NOT exist in static nor implicit rules
(another pain point -- mostly with the top-level Makefile).
6. $(lastword ) didn't exist [can be replaced by $(firstword ) with
inverse logic, maybe...].
7. Some funkiness with how .PHONY was treated:
2004-09-21 Boris Kolpackov <boris@kolpackov.net>
* file.c (snap_deps): Mark .PHONY prerequisites as targets.
8. Variable expansion was partially broken [used underlying caller
from $(subst ) instead of $(patsubst )].
9. Now this one flat out spooks me:
2004-03-20 Paul D. Smith <psmith@gnu.org>
[...]
* rule.c (count_implicit_rule_limits): Don't delete patterns which
refer to absolute pathnames in directories that don't exist: some
portion of the makefile could create those directories before we
match the pattern. Fixes bugs #775 and #108.
This makes me think that out-of-build-tree could be REALLY broken with 3.80.
10. Ouch -- this is a really f'ed up bug:
2004-01-07 Paul D. Smith <psmith@gnu.org>
[...]
* job.c (construct_command_argv_internal): Add "!" to the list of
shell escape chars. POSIX sh allows it to appear before a
command, to negate the exit code. Fixes bug #6404.
11. Yipes -- this scares me because we do use implicit and pattern rules:
2003-04-19 Paul D. Smith <psmith@gnu.org>
Fix bug #1405: allow a target to match multiple pattern-specific
variables.
* rule.c (create_pattern_var, lookup_pattern_var): Move these to
variable.c, where they've always belonged.
* rule.h: Move the prototypes and struct pattern_var as well.
* variable.c (initialize_file_variables): Invoke
lookup_pattern_var() in a loop, until no more matches are found.
If a match is found, create a new variable set for the target's
pattern variables. Then merge the contents of each matching
pattern variable set into the target's pattern variable set.
(lookup_pattern_var): Change this function to be usable
in a loop. It takes a starting position: if NULL, start at the
beginning; if non-NULL, start with the pattern variable after that
position, and return the next matching pattern.
(create_pattern_var): Create a unique instance of
pattern-specific variables for every definition in the makefile.
Don't combine the same pattern together. This allows us to
process the variable handling properly even when the same pattern
is used multiple times.
(parse_variable_definition): New function: break out the parsing
of a variable definition line from try_variable_definition.
(try_variable_definition): Call parse_variable_definition to
parse.
(print_variable_data_base): Print out pattern-specific variables.
* variable.h (struct variable): Remember when a variable is
conditional. Also remember its flavor.
(struct pattern_var): Instead of keeping a variable set, we just
keep a single variable for each pattern.
* read.c (record_target_var): Each pattern variable contains only a
single variable, not a set, so create it properly.
* doc/make.texi (Pattern-specific): Document the new behavior
12. Hmmm -- this could get nasty:
2003-01-22 Paul D. Smith <psmith@gnu.org>
* function.c (func_call): Fix Bug #1744. If we're inside a
recursive invocation of $(call ...), mask any of the outer
invocation's arguments that aren't used by this one, so that this
invocation doesn't "inherit" them accidentally.
I'm concerned now that this is going to take 4 +/- 1 weekends to
complete and will be semi-painful to validate... The funny thing is
that our Makefiles were implementing some of this logic before (in a
hodgepodge manner), so this maybe some items like these were failing
in the past but not being caught, or were masked by all of the
explicit target specifications which are a MFPiTA to maintain.
Thoughts :\?
Thanks,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-08 2:09 ` Garrett Cooper
@ 2009-11-08 20:02 ` Garrett Cooper
2009-11-09 18:01 ` Garrett Cooper
0 siblings, 1 reply; 37+ messages in thread
From: Garrett Cooper @ 2009-11-08 20:02 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Sat, Nov 7, 2009 at 6:09 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
> On Fri, Nov 6, 2009 at 4:54 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
>> On Fri, Nov 6, 2009 at 4:52 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
>>> On Fri, Nov 6, 2009 at 4:23 PM, Mike Frysinger <vapier@gentoo.org> wrote:
>>>> On Friday 06 November 2009 18:34:22 Matt Helsley wrote:
>>>>> On Fri, Nov 06, 2009 at 06:09:04PM -0500, Mike Frysinger wrote:
>>>>> > On Friday 06 November 2009 18:02:31 Matt Helsley wrote:
>>>>> > > On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
>>>>> > > > also, i thought we were going to rename the top level Makefile to
>>>>> > > > GNUmakefile and add a dummy Makefile that just spat out "sorry, ltp
>>>>> > > > requires GNU make".
>>>>> > >
>>>>> > > Bleh. Can't we just check the output of $(MAKE) --version rather than
>>>>> > > assume other makes use "Makefile"?
>>>>> >
>>>>> > the assumption is that only GNU make parses "GNUmakefile". i think
>>>>> > that's a pretty safe assumption.
>>>>>
>>>>> Right, but GNU Make also parses Makefile.
>>>>
>>>> not if a GNUmakefile exists in the same dir, or the user forces the issue via
>>>> the -f flag
>>>>
>>>>> If some poor bastard runs:
>>>>>
>>>>> make -f Makefile
>>>>>
>>>>> where GNU Make is "make" they may be further confused. Seems like it's
>>>>> better to check what's actually running ($(MAKE)) or will run
>>>>> (like `which make` in configure) than rely on a filename hack like this.
>>>>
>>>> said poor bastard should be smacked :p. checking the value of $(MAKE) wont
>>>> work as it could be an arbitrary number of things which could all be valid
>>>> values under GNU make. configure checks wont matter because it's the user who
>>>> runs `make` or `gmake` or `make-some-noise`. requiring `make` to be GNU make
>>>> in configure when the user can easily run `gmake` at make time is pointless
>>>> user interference.
>>>>
>>>> using a different filename on the other hand is exactly what GNU make has
>>>> designed in from the get go specifically for this purpose -- when GNU make is
>>>> required. if you honestly think people are doing something pointless like
>>>> `make -f Makefile`, then it's trivial to add a check to it to (1) check
>>>> $(MAKE) --version and include GNUmakefile or (2) $(error out). no point in
>>>> forcing the shell/etc... overhead in the default build for the majority of
>>>> users.
>>>
>>> No, but you can do something like:
>>>
>>> ifdef MAKE_SANITY_CHECK
>>> export MAKE_SANITY_CHECK = 1
>>> ifneq ($(lastword $(sort 3.80 $(MAKE_VERSION))),$(MAKE_VERSION))
>>> $(error Upgrade your junk..)
>>> endif
>>> endif
>>>
>>> that way it only executes this once.
>>
>> Ugh... $(lastword ) didn't exist in 3.80... I'll change it around to
>> $(firstword ).
>
> Crap. So here are some of the high notes for changes between make 3.80 and 3.81:
>
> 1. $(and ) and $(or ) didn't exist [we use $(or ) once]. This can be
> replaced by an `ifeq ($(strip)) else endif'.
> 2. $(abspath ) // $(realpath ) didn't exist [we use $(abspath )
> extensively, but just in one spot -- fixed that, need to test].
> 3. .DEFAULT_GOAL was originally .DEFAULT_TARGET, but DID NOT exist in
> make 3.81 (this is going to be a bloody pain to hack around with,
> maybe -- depends on where I put all:). It'll be like herding cats to
> make sure that other developers don't create targets before the first
> include.
> 4. Secondary expansion was busted as all hell in <3.81 (now this is
> going to be a serious pain point in some areas because I'll have to
> hunt down wherever I used % and $* and adjust things to work with make
> 3.80 -- this mostly affects the top-level Makefile).
> 5. Secondary expansion did NOT exist in static nor implicit rules
> (another pain point -- mostly with the top-level Makefile).
> 6. $(lastword ) didn't exist [can be replaced by $(firstword ) with
> inverse logic, maybe...].
> 7. Some funkiness with how .PHONY was treated:
>
> 2004-09-21 Boris Kolpackov <boris@kolpackov.net>
>
> * file.c (snap_deps): Mark .PHONY prerequisites as targets.
>
> 8. Variable expansion was partially broken [used underlying caller
> from $(subst ) instead of $(patsubst )].
> 9. Now this one flat out spooks me:
>
> 2004-03-20 Paul D. Smith <psmith@gnu.org>
>
> [...]
>
> * rule.c (count_implicit_rule_limits): Don't delete patterns which
> refer to absolute pathnames in directories that don't exist: some
> portion of the makefile could create those directories before we
> match the pattern. Fixes bugs #775 and #108.
>
> This makes me think that out-of-build-tree could be REALLY broken with 3.80.
>
> 10. Ouch -- this is a really f'ed up bug:
>
> 2004-01-07 Paul D. Smith <psmith@gnu.org>
>
> [...]
>
> * job.c (construct_command_argv_internal): Add "!" to the list of
> shell escape chars. POSIX sh allows it to appear before a
> command, to negate the exit code. Fixes bug #6404.
>
> 11. Yipes -- this scares me because we do use implicit and pattern rules:
>
> 2003-04-19 Paul D. Smith <psmith@gnu.org>
>
> Fix bug #1405: allow a target to match multiple pattern-specific
> variables.
>
> * rule.c (create_pattern_var, lookup_pattern_var): Move these to
> variable.c, where they've always belonged.
> * rule.h: Move the prototypes and struct pattern_var as well.
> * variable.c (initialize_file_variables): Invoke
> lookup_pattern_var() in a loop, until no more matches are found.
> If a match is found, create a new variable set for the target's
> pattern variables. Then merge the contents of each matching
> pattern variable set into the target's pattern variable set.
> (lookup_pattern_var): Change this function to be usable
> in a loop. It takes a starting position: if NULL, start at the
> beginning; if non-NULL, start with the pattern variable after that
> position, and return the next matching pattern.
> (create_pattern_var): Create a unique instance of
> pattern-specific variables for every definition in the makefile.
> Don't combine the same pattern together. This allows us to
> process the variable handling properly even when the same pattern
> is used multiple times.
> (parse_variable_definition): New function: break out the parsing
> of a variable definition line from try_variable_definition.
> (try_variable_definition): Call parse_variable_definition to
> parse.
> (print_variable_data_base): Print out pattern-specific variables.
> * variable.h (struct variable): Remember when a variable is
> conditional. Also remember its flavor.
> (struct pattern_var): Instead of keeping a variable set, we just
> keep a single variable for each pattern.
> * read.c (record_target_var): Each pattern variable contains only a
> single variable, not a set, so create it properly.
> * doc/make.texi (Pattern-specific): Document the new behavior
>
> 12. Hmmm -- this could get nasty:
>
> 2003-01-22 Paul D. Smith <psmith@gnu.org>
>
> * function.c (func_call): Fix Bug #1744. If we're inside a
> recursive invocation of $(call ...), mask any of the outer
> invocation's arguments that aren't used by this one, so that this
> invocation doesn't "inherit" them accidentally.
>
> I'm concerned now that this is going to take 4 +/- 1 weekends to
> complete and will be semi-painful to validate... The funny thing is
> that our Makefiles were implementing some of this logic before (in a
> hodgepodge manner), so this maybe some items like these were failing
> in the past but not being caught, or were masked by all of the
> explicit target specifications which are a MFPiTA to maintain.
I think what I need to do is run some tests in these problem areas
to figure out the gaps, now that I have an inkling of what might be
missing, so I can properly fill in the gaps if I can...
Thanks,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-06 19:17 ` Andi Kleen
@ 2009-11-09 13:15 ` Cyril Hrubis
0 siblings, 0 replies; 37+ messages in thread
From: Cyril Hrubis @ 2009-11-09 13:15 UTC (permalink / raw)
To: Andi Kleen; +Cc: ltp-list, Mike Frysinger
Hi!
> > > As I just wrote in the INSTALL file after the release (I apologize for
> > > not catching this beforehand, but all of the systems I use -- Fedora,
> > > Gentoo, RHEL 4 update 6, Ubuntu -- have make 3.81):
> >
> > hrm, it sucks to not support make 3.80. while make 3.81 has been out for
> > three years now, make 3.80 support would increase the coverage to 8 years.
> > but if you've looked at the situation and found 3.80 support to be non
> > trivial, i wont whine too loud.
>
> Well I do whine. I essentially means that I won't be able to use
> newer LTP versions anymore in my standard test setup. And I know
> it's pretty common with kernel hackers to use old user lands:
> you're basically cutting yourself off from your customer base.
>
Me too please, that would definitively broke package building process as it's
not that easy to hack the magick box called buildsystem to use different
version of packages (even if they build properly on given distro version).
Forcing user to use newer make is good workaround for some time but IMHO not
propper solution.
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [LTP] LTP 20091031 Makefiles totally broken?!?
2009-11-08 20:02 ` Garrett Cooper
@ 2009-11-09 18:01 ` Garrett Cooper
0 siblings, 0 replies; 37+ messages in thread
From: Garrett Cooper @ 2009-11-09 18:01 UTC (permalink / raw)
To: Mike Frysinger; +Cc: ltp-list, Andi Kleen
On Sun, Nov 8, 2009 at 12:02 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
> On Sat, Nov 7, 2009 at 6:09 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
>> On Fri, Nov 6, 2009 at 4:54 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
>>> On Fri, Nov 6, 2009 at 4:52 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
>>>> On Fri, Nov 6, 2009 at 4:23 PM, Mike Frysinger <vapier@gentoo.org> wrote:
>>>>> On Friday 06 November 2009 18:34:22 Matt Helsley wrote:
>>>>>> On Fri, Nov 06, 2009 at 06:09:04PM -0500, Mike Frysinger wrote:
>>>>>> > On Friday 06 November 2009 18:02:31 Matt Helsley wrote:
>>>>>> > > On Fri, Nov 06, 2009 at 03:09:02PM -0400, Mike Frysinger wrote:
>>>>>> > > > also, i thought we were going to rename the top level Makefile to
>>>>>> > > > GNUmakefile and add a dummy Makefile that just spat out "sorry, ltp
>>>>>> > > > requires GNU make".
>>>>>> > >
>>>>>> > > Bleh. Can't we just check the output of $(MAKE) --version rather than
>>>>>> > > assume other makes use "Makefile"?
>>>>>> >
>>>>>> > the assumption is that only GNU make parses "GNUmakefile". i think
>>>>>> > that's a pretty safe assumption.
>>>>>>
>>>>>> Right, but GNU Make also parses Makefile.
>>>>>
>>>>> not if a GNUmakefile exists in the same dir, or the user forces the issue via
>>>>> the -f flag
>>>>>
>>>>>> If some poor bastard runs:
>>>>>>
>>>>>> make -f Makefile
>>>>>>
>>>>>> where GNU Make is "make" they may be further confused. Seems like it's
>>>>>> better to check what's actually running ($(MAKE)) or will run
>>>>>> (like `which make` in configure) than rely on a filename hack like this.
>>>>>
>>>>> said poor bastard should be smacked :p. checking the value of $(MAKE) wont
>>>>> work as it could be an arbitrary number of things which could all be valid
>>>>> values under GNU make. configure checks wont matter because it's the user who
>>>>> runs `make` or `gmake` or `make-some-noise`. requiring `make` to be GNU make
>>>>> in configure when the user can easily run `gmake` at make time is pointless
>>>>> user interference.
>>>>>
>>>>> using a different filename on the other hand is exactly what GNU make has
>>>>> designed in from the get go specifically for this purpose -- when GNU make is
>>>>> required. if you honestly think people are doing something pointless like
>>>>> `make -f Makefile`, then it's trivial to add a check to it to (1) check
>>>>> $(MAKE) --version and include GNUmakefile or (2) $(error out). no point in
>>>>> forcing the shell/etc... overhead in the default build for the majority of
>>>>> users.
>>>>
>>>> No, but you can do something like:
>>>>
>>>> ifdef MAKE_SANITY_CHECK
>>>> export MAKE_SANITY_CHECK = 1
>>>> ifneq ($(lastword $(sort 3.80 $(MAKE_VERSION))),$(MAKE_VERSION))
>>>> $(error Upgrade your junk..)
>>>> endif
>>>> endif
>>>>
>>>> that way it only executes this once.
>>>
>>> Ugh... $(lastword ) didn't exist in 3.80... I'll change it around to
>>> $(firstword ).
>>
>> Crap. So here are some of the high notes for changes between make 3.80 and 3.81:
>>
>> 1. $(and ) and $(or ) didn't exist [we use $(or ) once]. This can be
>> replaced by an `ifeq ($(strip)) else endif'.
Fixed~ish. This one's a minor pain with $(or ). $(if ) doesn't
function either because it appears to have been introduced in the same
timeframe -_-...
>> 2. $(abspath ) // $(realpath ) didn't exist [we use $(abspath )
>> extensively, but just in one spot -- fixed that, need to test].
Fixed.
>> 3. .DEFAULT_GOAL was originally .DEFAULT_TARGET, but DID NOT exist in
>> make 3.81 (this is going to be a bloody pain to hack around with,
>> maybe -- depends on where I put all:). It'll be like herding cats to
>> make sure that other developers don't create targets before the first
>> include.
Need to check.
>> 4. Secondary expansion was busted as all hell in <3.81 (now this is
>> going to be a serious pain point in some areas because I'll have to
>> hunt down wherever I used % and $* and adjust things to work with make
>> 3.80 -- this mostly affects the top-level Makefile).
>> 5. Secondary expansion did NOT exist in static nor implicit rules
>> (another pain point -- mostly with the top-level Makefile).
.SECONDEXPANSION - fixed.
>> 6. $(lastword ) didn't exist [can be replaced by $(firstword ) with
>> inverse logic, maybe...].
>> 7. Some funkiness with how .PHONY was treated:
>>
>> 2004-09-21 Boris Kolpackov <boris@kolpackov.net>
>>
>> * file.c (snap_deps): Mark .PHONY prerequisites as targets.
>>
>> 8. Variable expansion was partially broken [used underlying caller
>> from $(subst ) instead of $(patsubst )].
>> 9. Now this one flat out spooks me:
>>
>> 2004-03-20 Paul D. Smith <psmith@gnu.org>
>>
>> [...]
>>
>> * rule.c (count_implicit_rule_limits): Don't delete patterns which
>> refer to absolute pathnames in directories that don't exist: some
>> portion of the makefile could create those directories before we
>> match the pattern. Fixes bugs #775 and #108.
>>
>> This makes me think that out-of-build-tree could be REALLY broken with 3.80.
>>
>> 10. Ouch -- this is a really f'ed up bug:
>>
>> 2004-01-07 Paul D. Smith <psmith@gnu.org>
>>
>> [...]
>>
>> * job.c (construct_command_argv_internal): Add "!" to the list of
>> shell escape chars. POSIX sh allows it to appear before a
>> command, to negate the exit code. Fixes bug #6404.
>>
>> 11. Yipes -- this scares me because we do use implicit and pattern rules:
>>
>> 2003-04-19 Paul D. Smith <psmith@gnu.org>
>>
>> Fix bug #1405: allow a target to match multiple pattern-specific
>> variables.
>>
>> * rule.c (create_pattern_var, lookup_pattern_var): Move these to
>> variable.c, where they've always belonged.
>> * rule.h: Move the prototypes and struct pattern_var as well.
>> * variable.c (initialize_file_variables): Invoke
>> lookup_pattern_var() in a loop, until no more matches are found.
>> If a match is found, create a new variable set for the target's
>> pattern variables. Then merge the contents of each matching
>> pattern variable set into the target's pattern variable set.
>> (lookup_pattern_var): Change this function to be usable
>> in a loop. It takes a starting position: if NULL, start at the
>> beginning; if non-NULL, start with the pattern variable after that
>> position, and return the next matching pattern.
>> (create_pattern_var): Create a unique instance of
>> pattern-specific variables for every definition in the makefile.
>> Don't combine the same pattern together. This allows us to
>> process the variable handling properly even when the same pattern
>> is used multiple times.
>> (parse_variable_definition): New function: break out the parsing
>> of a variable definition line from try_variable_definition.
>> (try_variable_definition): Call parse_variable_definition to
>> parse.
>> (print_variable_data_base): Print out pattern-specific variables.
>> * variable.h (struct variable): Remember when a variable is
>> conditional. Also remember its flavor.
>> (struct pattern_var): Instead of keeping a variable set, we just
>> keep a single variable for each pattern.
>> * read.c (record_target_var): Each pattern variable contains only a
>> single variable, not a set, so create it properly.
>> * doc/make.texi (Pattern-specific): Document the new behavior
>>
>> 12. Hmmm -- this could get nasty:
>>
>> 2003-01-22 Paul D. Smith <psmith@gnu.org>
>>
>> * function.c (func_call): Fix Bug #1744. If we're inside a
>> recursive invocation of $(call ...), mask any of the outer
>> invocation's arguments that aren't used by this one, so that this
>> invocation doesn't "inherit" them accidentally.
>>
>> I'm concerned now that this is going to take 4 +/- 1 weekends to
>> complete and will be semi-painful to validate... The funny thing is
>> that our Makefiles were implementing some of this logic before (in a
>> hodgepodge manner), so this maybe some items like these were failing
>> in the past but not being caught, or were masked by all of the
>> explicit target specifications which are a MFPiTA to maintain.
>
> I think what I need to do is run some tests in these problem areas
> to figure out the gaps, now that I have an inkling of what might be
> missing, so I can properly fill in the gaps if I can...
Thanks,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 37+ messages in thread
end of thread, other threads:[~2009-11-09 18:01 UTC | newest]
Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-06 9:57 [LTP] LTP 20091031 Makefiles totally broken?!? Andi Kleen
2009-11-06 11:16 ` Mike Frysinger
2009-11-06 13:09 ` Andi Kleen
2009-11-06 13:21 ` Mike Frysinger
2009-11-06 18:04 ` Garrett Cooper
2009-11-06 18:23 ` Garrett Cooper
2009-11-06 19:09 ` Mike Frysinger
2009-11-06 19:17 ` Andi Kleen
2009-11-09 13:15 ` Cyril Hrubis
2009-11-06 23:02 ` Matt Helsley
2009-11-06 23:09 ` Mike Frysinger
2009-11-06 23:34 ` Matt Helsley
2009-11-07 0:23 ` Mike Frysinger
2009-11-07 0:52 ` Garrett Cooper
2009-11-07 0:54 ` Garrett Cooper
2009-11-08 2:09 ` Garrett Cooper
2009-11-08 20:02 ` Garrett Cooper
2009-11-09 18:01 ` Garrett Cooper
2009-11-06 19:13 ` Andi Kleen
2009-11-06 19:39 ` Mike Frysinger
2009-11-06 19:44 ` Garrett Cooper
2009-11-06 19:53 ` Mike Frysinger
2009-11-06 19:50 ` Andi Kleen
2009-11-06 19:58 ` Mike Frysinger
2009-11-06 20:04 ` Mike Frysinger
2009-11-06 19:43 ` Nate Straz
2009-11-06 19:59 ` Andi Kleen
2009-11-06 20:25 ` Garrett Cooper
2009-11-06 21:02 ` Andi Kleen
2009-11-06 21:12 ` Mike Frysinger
2009-11-06 21:45 ` Andi Kleen
2009-11-06 21:59 ` Garrett Cooper
2009-11-06 22:47 ` Andi Kleen
2009-11-06 23:03 ` Nate Straz
2009-11-06 22:46 ` Mike Frysinger
2009-11-06 21:47 ` Garrett Cooper
2009-11-06 21:57 ` Andi Kleen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.