[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2015-01-03 Thread x bill the X game
Follow-up Comment #22, bug #33034 (project make):

i don't agree and i see a possible attack

i'm tryign to compile gcc4 with glibc2.11 and seeing Makefile damage

you made comments impact upon linux, compatibility, does not matter

you then say all past Makefiles should be edited by everyone but me to fit my
new rules upon linux users: though past Makefiles had compiled correctly. 
you made not of errors but obviously they are not material (or proved) since
things did make.

however i see in your ChangeLog continual fixes the bulk of which SEEK
WINDOWS32 compatibility.  so you are cross testimony.  you've made uploads
over years seeking compatibility with a pay product getting grant money and
gov money as well as consumer money.

but your editing a unix, GPL, made in america product (and public domain to
americans not necessarily otherwise), allowing changes from overseas, and
appear to be a Windows32 sided programmer

certainly that's an argument for conflict of interest under the
circumstances.

-
the manual/ directory, a .po foreign affair maybe since i'm avoiding gettext
up to core to see how it goes (C locale is a bit smaller spedier and more
reliable from my standpoint)

make[2]: Leaving directory `/usr/src/glibc-2.11.2/wctype'

make  subdir=manual -C manual ..=../ subdir_lib
make[2]: Entering directory `/usr/src/glibc-2.11.2/manual'
Makefile:235: *** mixed implicit and normal rules.  Stop.
make[2]: Leaving directory `/usr/src/glibc-2.11.2/manual'
make[1]: *** [manual/subdir_lib] Error 2
make[1]: Leaving directory `/usr/src/glibc-2.11.2'
make: *** [all] Error 2

i'm sure many foreign contributors have done good.  however it's ever more
present that many are seekign toils and delays and IP phone home attacks
integrated into linux (and hard to get out, deep in) - as well as windows
hacks for people i wouldnt bet much are actually using linux to any extent.

---
i think i am up to say 200 work arounds now - maybe 300 including X11 - so
far

and it gets to a ferver: it was not this broken before.  for example: X11R7.6
compiles quickly; download build install and run in  1 hr.  download X11R7
tarball: and internet full of questions and complaints.  having submitted
patches i'm absolutely sure i was fixing tampering, things that worked that
were years later hacked to not work (ie, XV, there is no doubt)

obstructionism is certainly taking place in the gcc toolchain

and i know many people are from colleges (paid) or running webesites and or
(california) 401c's getting grant money

the unix gnu linux products are public domain and some rely on them for
business

this business of anybody hack, if it dies it's more profit for the sellers
has got to stop

sellers of gov products copy lefted made in the past (usa) and getting grant
money today over printed and inflated: that's not what i call owners.

!!

call it a rant i dont care what you think.  i find the agreeability and
attacks against against those who dont agree and protest incompatible changes
and sofware that phones home or forces itself in unix

i find that to be exactly part of why there are so many obstructions that
there are currently

for one thing - whoever is hording KEYS: IP attacks and blacklists any who
disagree is what i find


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2013-10-21 Thread Josh Triplett
On Sun, Oct 20, 2013 at 11:58:00PM -0400, Paul Smith wrote:
 On Sun, 2013-10-20 at 20:15 -0700, David Boyce wrote:
  Paul.
  
  Thank you very much! This means I'll be able to make professional use
  the many features and bugfixes which have arrived post-3.81 at some
  point. Given the flurry of other fit-and-finish fixes lately, would it
  be safe to assume there will be a 4.01 or equivalent upcoming in the
  foreseeable future?
 
 Yes, before too long.  I don't plan on any major features in the next
 release, just cleanup and bug fixing.
 
 I don't plan on a release right away (like this month) though.

Not a problem; it should be an easy patch to backport.

 I have to admit I still just don't understand the problem here.  Surely
 no one is building kernels that old (pre-2.6.34) without any patches at
 all applied; that sounds inconceivably insecure.  Why not just add one
 more patch that changes the 3 places (at most) in the makefiles that
 have this problem to the suite of patches that are already applied to
 those old kernels when you build them?  It seems insane to me to avoid
 updating tools merely because of a few lines of makefile change in
 kernels that are almost 4 years old.

When doing archaeology on old kernels via git, you don't normally apply
*any* patches if you can help it, because they're a pain to keep
re-applying to each kernel you want to examine.

 Anyway.  It will work for now, apparently.

Thanks!

- Josh Triplett

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2013-10-20 Thread Paul D. Smith
Update of bug #33034 (project make):

  Status:   Not A Bug = Fixed  
 Assigned to:None = psmith 
   Fixed Release:None = SCM

___

Follow-up Comment #21:

I have pushed a change to the Git repository.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2013-10-20 Thread David Boyce
Paul.

Thank you very much! This means I'll be able to make professional use
the many features and bugfixes which have arrived post-3.81 at some
point. Given the flurry of other fit-and-finish fixes lately, would it
be safe to assume there will be a 4.01 or equivalent upcoming in the
foreseeable future?

David

On Sun, Oct 20, 2013 at 10:09 AM, Paul D. Smith invalid.nore...@gnu.org wrote:
 Update of bug #33034 (project make):

   Status:   Not A Bug = Fixed
  Assigned to:None = psmith
Fixed Release:None = SCM

 ___

 Follow-up Comment #21:

 I have pushed a change to the Git repository.

 ___

 Reply to this item at:

   http://savannah.gnu.org/bugs/?33034

 ___
   Message sent via/by Savannah
   http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2013-10-20 Thread Paul Smith
On Sun, 2013-10-20 at 20:15 -0700, David Boyce wrote:
 Paul.
 
 Thank you very much! This means I'll be able to make professional use
 the many features and bugfixes which have arrived post-3.81 at some
 point. Given the flurry of other fit-and-finish fixes lately, would it
 be safe to assume there will be a 4.01 or equivalent upcoming in the
 foreseeable future?

Yes, before too long.  I don't plan on any major features in the next
release, just cleanup and bug fixing.

I don't plan on a release right away (like this month) though.


I have to admit I still just don't understand the problem here.  Surely
no one is building kernels that old (pre-2.6.34) without any patches at
all applied; that sounds inconceivably insecure.  Why not just add one
more patch that changes the 3 places (at most) in the makefiles that
have this problem to the suite of patches that are already applied to
those old kernels when you build them?  It seems insane to me to avoid
updating tools merely because of a few lines of makefile change in
kernels that are almost 4 years old.

Anyway.  It will work for now, apparently.


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2013-10-12 Thread Frank Heckenbach
Follow-up Comment #15, bug #33034 (project make):

David Boyce wrote:

 I agree with some of your points but there was a bit of cherrypicking
involved in the quoting:
 
  ... really, what's the chance a trivial one-line change to the top-level
makefile will actually break your driver?
 
 I'm not sure you realize the scale here. It's not a change to just the
top-level makefile, the pattern is repeated in a number of makefiles.

I was just going with was was said in the bug report. The workaround in
comment #2 is indeed a trivial one-line change. If that's not all, this wasn't
mentioned before, sorry.

To me this seems a great example of bad bug reporting:

- The original report and workaround make it look like a trivial issue.

- The explanation for the change (quoted in comment #3) was ignored (see
comment #5).

- The whole issue was ignored for 2 years, just until the next major release
which is just about the worst time to reinstate old behaviour for bugward
compatibility.

 A quick find shows 1360 makefiles in a typical Linux (2.6.36) kernel

Fun fact: A quick find shows over 50 files on my hard disk!

(Which is just as relevant to the issue; according to the git history search
Josh recommended, it seems to be 3, in words three, affected Makefiles, two of
them in arch, so possibly not even relevant to you. Over-inflating numbers
doesn't help.)

 At least in our case, because these are so large and (supposed to be)
unchanging we haven't stored them in version control; they're in flat file
space aka NFS. With this many files to fix it would be necessary to write a
program which could reliably find all mixed rule lines and fix them right the
first time. The fact that they're not version controlled makes the stakes
higher.

Though I see that it can be a problem for you, I think higher stakes is
another exaggeration. It can't be too difficult to back up the changed
makefiles, even without source control.

  I don't suppose Paul would accept a patch that just reinstates the old
behaviour without fixing it.)
 
 Of course not, that's been made quite clear and it makes sense. But what you
left out from my comment was the question of whether it could be optionally
unfixed at runtime. We all get that the old behavior was broken, but this
happens to be a case where preserving bug-for-bug compatibility is important
to many users.

That's not so clear to me. It ought to be possible to really fix the problem,
i.e. accept mixed rules without the bugs in the original (unintended) feature.
Of course, this is more work than just suppressing a (well justified) error
message. If you or someone does this properly, I suppose Paul wouldn't
object.

  I've long accepted that Debian isn't useful to me out of the box...
 
 I don't think this point was specific to Debian; rather, it was intended as
an illustration of the fact that 3+ years after 3.82 was released it still
hasn't gained widespread acceptance. Many environments are sticking with 3.81
and I suspect this is one of the factors.

I thought other distributions had long moved past the affected versions of
Linux and all the other unnamed numerous affected software. (Mind you, I
sometimes like Debian's conservative release schedule, but it's pretty
unique.)


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Nachricht gesendet von/durch Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2013-10-12 Thread Paul D. Smith
Follow-up Comment #16, bug #33034 (project make):

I admit I didn't understand the frustration level with this change.  The Linux
kernel was the only package that ever reported any real issues, and there were
(by my count) a total of three patches (all minor) over the span of a couple
of months after the 3.82 release in 2010 to fix those problems.

The release-critical bug in Debian is, IMO, completely unjustified (and I
didn't know about it anyway).  That bug should (a) not be release-critical,
and (b) should be filed against the Linux kernel headers package, not GNU
make.

If it turns out that simply changing the fatal() to an error() is sufficient
to resolve this, I'm willing to make that change (I won't add a flag for it;
the message will simply say the syntax is unsupported and should be updated).

HOWEVER, I'm not willing to guarantee that this syntax will continue to be
supported going forward.  GNU make is not the kernel, and I reject attempts to
impose the development ethos of the kernel on GNU make.  The syntax of
makefiles is so free-form that virtually any enhancement that is made will be
a backward-compatibility issue and I'm simply not willing to commit to that
kind of restriction.  The kernel can always just introduce a different
function name with new semantics--not so for makefiles.  If people need that
level of backward-compatibility I recommend they simply keep around multiple
versions of GNU make to support older code; make's installation is trivial,
just the one program with no extra support files, and even after renaming it
works flawlessly.

In this particular case I expect that even if the syntax still can be made to
work now, when we support the ability to define explicit rules with multiple
targets generated from a single recipe invocation, this syntax might not
survive.  The fact is that this usage IS illegal according to the
documentation (it may not be explicitly proscribed but writing down all the
things that are NOT legal is an impossibility--it's easily, IMO, inferrable
that the syntax is not intended to be valid).

I am not willing, at this point, to embrace the idea of fixing it so this
syntax works fully and making it legal.  In my opinion it will be simply too
confusing and difficult to manage all the edge cases around trying to combine
two (or more, in the future) different rule models into a single statement. 
I'm willing to look at any proposals someone has, but I warn you I'll be
extremely skeptical.  I just don't think it's that big of a deal to write the
rules separately, so any proposal will have to be VERY compelling to justify
the complexity given the trivial alternative.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2013-10-12 Thread Josh Triplett
Follow-up Comment #17, bug #33034 (project make):

 If it turns out that simply changing the fatal() to an error() is sufficient
to resolve this, I'm willing to make that change (I won't add a flag for it;
the message will simply say the syntax is unsupported and should be updated).


Thank you.

  GNU make is not the kernel, and I reject attempts to impose the development
ethos of the kernel on GNU make.

That's disappointing.

Personally, when holding up software as the model of backward compatibility, I
usually point to debhelper, which still supports packages written for the very
first version.

 it's easily, IMO, inferrable that the syntax is not intended to be valid

I'm curious what you infer that from.  I haven't found anything to that effect
outside of the 3.82 release notes.

  That bug should (a) not be release-critical, and (b) should be filed
against the Linux kernel headers package, not GNU make.

The kernel has already been fixed.  The RC bug on Make is for introducing a
regression in Makefile parsing.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2013-10-11 Thread David Boyce
Follow-up Comment #12, bug #33034 (project make):

I'm uploading a patch that adds an --allow-mixed-rules option which converts
the fatal error to a warning. This is the only testing it's been subjected
to:

% cat Makefile
all %.o:
@echo Making $@

% make-4.0
Makefile:1: *** mixed implicit and normal rules.  Stop.

% make-4.0 --allow-mixed-rules
Makefile:1: warning: mixed implicit and normal rules
Making all

I don't claim to understand all the logic in read.c but from a quick
examination of the git log this seemed to have a good chance of being all
that's required. I'm not in a position to test it thoroughly at this time.


(file #29357)
___

Additional Item Attachment:

File name: allow.patchSize:2 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2013-10-11 Thread David Boyce
Follow-up Comment #14, bug #33034 (project make):

Yes, I realize it's a bit of a wing and a prayer but from the git log it looks
like this fix got into the same commit as a rewrite of major sections of
read.c. Without reading and thinking through all of it, I figured there was a
chance that adding the fatal error had been the only thing done for this
particular fix.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-11-11 Thread Paul Smith
On Thu, 2011-11-10 at 14:51 -0500, tz wrote:
 On Nov 10, 2011 2:32 PM, Paul Smith psm...@gnu.org wrote:
  On Thu, 2011-11-10 at 10:36 -0500, tz wrote:
 
  You don't need to cross-compile: you can compile natively.  What you
  can't do is rely on your upstream vendor to provide you the toolchain
  you are going to use.  You need to build it yourself, using known
  versions, and install the results in a separate location (not your
  distro's /usr/bin).
 
 That doesn't work if you don't have space on the embedded device.
 Some don't have resources to network mount, and builds take days
 (literally).

??? So OK, you ARE using a cross-compiler.  I thought you said earlier
that you didn't want to.  Anyway it doesn't matter whether you're
building natively or cross; what matters is that you use an archived,
known version of your toolchain to build your target code and not
whatever version of the toolchain is delivered with your desktop du
jour.


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-11-10 Thread David Boyce
Judging from the outpouring of support I received when I made the same
suggestion/offer :-( I'm unsurprised at seeing no public response to
yours either. But disappointed. I agree that this is a real problem
which does not seem to resonate with those not directly affected by
it.

I think the best approach is probably to follow the CVS commit trail,
find the commit which fixed the original bug, and see if it can be
made conditional on a special target .ALLOW_MIXED_RULES: or something.
This could then be requested without any makefile modification by
something like

export MAKEFLAGS=--eval .ALLOW_MIXED_RULES:

Alternatively, if Paul would allow it, the test could be directly for an EV.

The question in my mind, which would probably be answerable by finding
the commit, is whether the original fix was a simple patch which could
be easily conditionalized or a part of a large-scale parser rewrite.

David

On Thu, Nov 3, 2011 at 11:54 PM, Jonathan Nieder
invalid.nore...@gnu.org wrote:
 Follow-up Comment #7, bug #33034 (project make):

 Just for the record, I have been looking for a spare moment to come up with a
 patch to fix this compatibility problem (which affects many projects other
 than the Linux kernel, too).

 If that's a bad idea for some reason, please feel free to let me know why. :)
 And if anyone else starts before I do, I won't mind --- on the contrary, I'll
 be very happy.

    ___

 Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

 ___
  Message sent via/by Savannah
  http://savannah.gnu.org/



___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-11-10 Thread tz
I doubt there is much reason to expect public support.  Remember the
response to my request:

I really am not interested in changing all the error messages to give
details
about which version of GNU make that error was introduced, and I'm also not
interested in adding flags to every version of GNU make which allows for
backward-compatibility with older versions.  That seems completely unwieldy
from a development and maintenance point of view.

Unfortunately, in the embedded world, not everything is updated
constantly.  Even the desktop is not updated weekly.  ARM is still at
Fedora 12, though 16 was just released.  I don't and won't have an updated
kernel tree that works unless I find some way to recompile everything, and
the huge, complex,  slow, and obscure autotools are often broken for cross
compiling much beyond GCC itself and associated tools.  I doubt the entire
tree in the FSF repository can be properly cross-compiled.  Debian has
taken to arrays of the various processors so they can go native.

This was a corner case that probably shouldn't have worked, but it did, and
a very large number of linux kernel versions require that behavior, so they
can't be built with the current Make, and give no indication of anything
that changed.  If it was some obscure package, I would agree.  If it was
some long documented very specifically wrong usage that the kernel
developers refused to fix as soon as it was reported I would also agree.

I wasn't asking to change all the error messages or for flags for every
version of GNU make, but only this one.  make
--accept-bad-old-linux-makefiles or a SINGLE message for this case would
suffice.  There are already dozens of options that subtly change the
behavior or even ignored for compatibility and messages given when things
are wrong in the makefile.  You won't eliminate those because they would
break too many things or are useful for debugging the makefile.

Perhaps a script could be written to modify the bad lines in the makefile
automatically.  That would also fix things.

On Thu, Nov 10, 2011 at 9:39 AM, David Boyce david.s.bo...@gmail.comwrote:

 Judging from the outpouring of support I received when I made the same
 suggestion/offer :-( I'm unsurprised at seeing no public response to
 yours either. But disappointed. I agree that this is a real problem
 which does not seem to resonate with those not directly affected by
 it.

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-11-10 Thread Jonathan Nieder
David Boyce wrote:

 I'm unsurprised at seeing no public response to
 yours either. But disappointed.

I'm not disappointed.  Paul doesn't work for me so there is no obligation
for him to write patches or design specs supporting my use cases.  And
neverthless, so far I've had no reason to be unhappy with what he does.

 I think the best approach is probably to follow the CVS commit trail,
 find the commit which fixed the original bug, and

Yes, that's probably good advice.

Cheers,
Jonathan

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-11-10 Thread Paul Smith
On Thu, 2011-11-10 at 10:36 -0500, tz wrote:
 Unfortunately, in the embedded world, not everything is updated
 constantly.  Even the desktop is not updated weekly.  ARM is still at
 Fedora 12, though 16 was just released.  I don't and won't have an
 updated kernel tree that works unless I find some way to recompile
 everything, and the huge, complex,  slow, and obscure autotools are
 often broken for cross compiling much beyond GCC itself and associated
 tools.  I doubt the entire tree in the FSF repository can be properly
 cross-compiled.

I've done embedded development work for many years; in fact much of my
work even today involves embedded targets.  I understand the issues
involved with being forced to work with old software, cross-compiled
software, minimally supported targets, etc.

However no argument I've seen so far has convinced me that this
backward-compatibility mode is necessary.  Using whatever native
toolchain you have installed on whatever distribution you happen to be
using this week to build your target platform is just asking for pain
everlasting.  No sane and reliable environment can work like this.
Today you're having an issue with make, but tomorrow it will be a change
in GCC, or binutils, or whatever... then what?  Will you be asking GCC
to add a special flag to switch back to old behavior just to support
older Linux kernels?  Not going to happen.  Why is this different?

In every environment I work on I always have a completely separate
toolchain, including the compiler, binutils, flex, yacc, gdb, even
things like fakeroot, to build my software... and make is unquestionably
part of the toolchain.

And of course, even if we were to make this change and release a new GNU
make today you would STILL have this problem in any existing
environments... you'd need to deploy a custom version of make and use
that instead anyway.

I just cannot see a single significant advantage to this... I'm still
open to hearing one though.

 I doubt the entire tree in the FSF repository can be properly
 cross-compiled.  Debian has taken to arrays of the various processors
 so they can go native.

You don't need to cross-compile: you can compile natively.  What you
can't do is rely on your upstream vendor to provide you the toolchain
you are going to use.  You need to build it yourself, using known
versions, and install the results in a separate location (not your
distro's /usr/bin).

 I wasn't asking to change all the error messages or for flags for
 every version of GNU make, but only this one.

Yes, that's what everyone says... about their particular issue.

The reality is that the change needed in the Linux makefiles to avoid
this problem is so trivial we could have created patches for every prior
version of the kernel you need in less time than it's taken us to have
this conversation.


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-11-10 Thread Jonathan Nieder
Paul Smith wrote:

 Today you're having an issue with make, but tomorrow it will be a change
 in GCC, or binutils, or whatever... then what?  Will you be asking GCC
 to add a special flag to switch back to old behavior just to support
 older Linux kernels?  Not going to happen.  Why is this different?

Just for the record: no, GCC and binutils have a pretty good track
record for compatibility, as far as big users like the kernel (and
glibc, except that glibc and binutils versions tend to be tied for
obvious reasons) go.  The last major problem I remember seeing was
http://bugs.debian.org/620448, which offers a compatibility switch.

But I think it's up to the people complaining to offer a patch.  And I
think it's perfectly reasonable for you to say no if such a patch is
too invasive or ugly.

 And of course, even if we were to make this change and release a new GNU
 make today you would STILL have this problem in any existing
 environments... you'd need to deploy a custom version of make and use
 that instead anyway.

Nah.  Debian at least has been holding back on moving to 3.82, mostly
for this reason.

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-11-10 Thread tz
On Nov 10, 2011 2:32 PM, Paul Smith psm...@gnu.org wrote:

 On Thu, 2011-11-10 at 10:36 -0500, tz wrote:

  I doubt the entire tree in the FSF repository can be properly
  cross-compiled.  Debian has taken to arrays of the various processors
  so they can go native.

 You don't need to cross-compile: you can compile natively.  What you
 can't do is rely on your upstream vendor to provide you the toolchain
 you are going to use.  You need to build it yourself, using known
 versions, and install the results in a separate location (not your
 distro's /usr/bin).

That doesn't work if you don't have space on the embedded device.  Some
don't have resources to network mount, and builds take days (literally).

I can build cross-toolchains, but then often ./configure fails even if I
specify host, target, etc. right.

There are usually a bunch of libs, few of which build right either.

Maybe you have a MIPS system that has a full distro, lots of memory, and is
fast.  I don't.
___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-11-03 Thread Jonathan Nieder
Follow-up Comment #7, bug #33034 (project make):

Just for the record, I have been looking for a spare moment to come up with a
patch to fix this compatibility problem (which affects many projects other
than the Linux kernel, too).

If that's a bad idea for some reason, please feel free to let me know why. :) 
And if anyone else starts before I do, I won't mind --- on the contrary, I'll
be very happy.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-05-20 Thread tz
Follow-up Comment #4, bug #33034 (project make):

It would help if for the next version there was a backward compatibility
switch - there are a lot of archived kernel source trees (and probably a lot
of other projects) that this breaks.

It would also help if the error message noted it was a change (mixed ... no
longer allowed as of 3.82), because it is very confusing to do a bunch of
updates and find the old builds no longer work.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-05-20 Thread Paul D. Smith
Follow-up Comment #5, bug #33034 (project make):

I'm not trying to be flip, but what do you do when you upgrade to a new
version of the compiler and older code no longer builds correctly due to more
stringent requirements?  I see this in code all the time (not GNU make) with
new versions of GCC for example.

I really am not interested in changing all the error messages to give details
about which version of GNU make that error was introduced, and I'm also not
interested in adding flags to every version of GNU make which allows for
backward-compatibility with older versions.  That seems completely unwieldy
from a development and maintenance point of view.

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-05-20 Thread David Boyce
Follow-up Comment #6, bug #33034 (project make):

In fairness, this is a special situation. I have the same problem as tz, and
I expect quite a few other people do too.

My company makes drivers. The corollary is that we keep dozens if not hundreds
of entire Linux kernel source build trees going back 10 years or so in order
to build drivers for them. The way Linux kernel drivers are built makes it
necessary to use the kernel build system. Thus it's not sufficient for us to
fix our own makefiles, or even that Linux kernels which came out in the last
year are fixed themselves. As things stand, we'll be unable to upgrade from
GNU make 3.81 until all pre-2010 kernels have drained out of our support
matrix, which could easily be another 10 years. Of course we also have the
option of going back and fixing the makefiles for each old kernel, but once
you've changed 2.6.18-128.7.1 then it's no longer 2.6.18-128.7.1.

So I at least think this issue is different from other incompatibilities and
worthy of special consideration. If the original fix was a complete rewrite of
parsing then maybe that's the end of the story, but if it's just a little
patch which could be switched at runtime, would it be possible to add a
special target to control that switch? I might sign up for the work if you
agree it's not an outrageous thing to support.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


Re: [bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-05-20 Thread Philip Guenther
On Fri, May 20, 2011 at 12:46 PM, David Boyce invalid.nore...@gnu.org wrote:
 My company makes drivers. The corollary is that we keep dozens if not hundreds
 of entire Linux kernel source build trees going back 10 years or so in order
 to build drivers for them. The way Linux kernel drivers are built makes it
 necessary to use the kernel build system. Thus it's not sufficient for us to
 fix our own makefiles, or even that Linux kernels which came out in the last
 year are fixed themselves. As things stand, we'll be unable to upgrade from
 GNU make 3.81 until all pre-2010 kernels have drained out of our support
 matrix, which could easily be another 10 years. Of course we also have the
 option of going back and fixing the makefiles for each old kernel, but once
 you've changed 2.6.18-128.7.1 then it's no longer 2.6.18-128.7.1.

Since gcc has changed many time across those years in ways that have
affected the Linux kernel build (the move to
__attribute__((always_inline)) comes to mind), don't you already have
to track a build environment for each kernel version?  I haven't
tried, but I believe that the current version of gcc will *not* build
a 10 year old kernel, or at least not a _working_ one.  For that you
need a 10 year old gcc, or at least something much closer to it in
time.  Well, the same applies to GNU make and may apply to other build
tools (binutils/as/ld?).  Whatever system you use for tracking gcc
releases should be applied to all the tools in the kernel build
environment.


Philip Guenther

___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-04-09 Thread Paul D. Smith
Update of bug #33034 (project make):

  Status:None = Not A Bug  
 Open/Closed:Open = Closed 

___

Follow-up Comment #3:

This is an intentional change.  See the GNU make NEWS file:


* WARNING: Backward-incompatibility!
  In previous versions of make it was acceptable to list one or more explicit
  targets followed by one or more pattern targets in the same rule and it
  worked as expected.  However, this was not documented as acceptable and
if
  you listed any explicit targets AFTER the pattern targets, the entire rule
  would be mis-parsed.  This release removes this ability completely: make
  will generate an error message if you mix explicit and pattern targets in
  the same rule.


You must split these rules into two rules: one for the pattern and one for the
explicit targets.  The Linux kernel source has already been modified in this
way (in newer kernels).

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Message sent via/by Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-04-09 Thread Henry Nestler
Follow-up Comment #2, bug #33034 (project make):

As workaround for coLinux can change the template scripts/mkmakefile.

*** old:

%/: all
@:


*** new:


$(all) %/: all
ifneq ($(all),)
$(all): all
   @:


See also the attached patch.


(file #23162)
___

Additional Item Attachment:

File name: make-3.82-mkmakefile.patch Size:0 KB


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Nachricht geschickt von/durch Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-04-09 Thread Henry Nestler
Follow-up Comment #1, bug #33034 (project make):

Sorry. forgotten to login while creating this bug.

The bug was original reported by a coLinux user:
http://article.gmane.org/gmane.linux.colinux.general/5230

Make 3.81 works.


___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Nachricht geschickt von/durch Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


[bug #33034] Makefile:23: *** mixed implicit and normal rules. Stop. for Linux kernel out of source builds

2011-04-09 Thread anonymous
URL:
  http://savannah.gnu.org/bugs/?33034

 Summary: Makefile:23: *** mixed implicit and normal rules.
Stop. for Linux kernel out of source builds
 Project: make
Submitted by: None
Submitted on: Sa 09 Apr 2011 10:42:24 UTC
Severity: 3 - Normal
  Item Group: Bug
  Status: None
 Privacy: Public
 Assigned to: None
 Open/Closed: Open
 Discussion Lock: Any
   Component Version: 3.82
Operating System: POSIX-Based
   Fixed Release: None
   Triage Status: None

___

Details:

A build of Linux kernel out of source got this error, if target name was give
on command line. It gots this error:

Makefile:23: *** mixed implicit and normal rules.  Stop.

The relevant lines in Makefile:
16: all := $(filter-out all Makefile,$(MAKECMDGOALS))
23: $(all) %/: all

Full example:
cd /tmp
wget
http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.33/linux-2.6.33.9.tar.bz2
tar xjf linux-2.6.33.9.tar.bz2
mkdir linux-2.6.33.9-build
cd linux-2.6.33.9
make O=../linux-2.6.33.9-build defconfig
cd ../linux-2.6.33.9-build
make vmlinux

If replacing the command make vmlinux with make, then it works. But it is
no workaround, because I need to call make modules_install later.




___

File Attachments:


---
Date: Sa 09 Apr 2011 10:42:25 UTC  Name: Makefile  Size: 523B   By: None
Linux kernel Makefile from make defconfig in build directory
http://savannah.gnu.org/bugs/download.php?file_id=23155

___

Reply to this item at:

  http://savannah.gnu.org/bugs/?33034

___
  Nachricht geschickt von/durch Savannah
  http://savannah.gnu.org/


___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make