a customer needs to support
sandpoint-x3/kernel-2.6.22make-ppc
Makefile:1449: *** mixed implicit and normal rules: deprecated syntax
/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/Makefile:1449: *** mixed implicit and normal rules: deprecated syntax
make[1]: *** No rule to make target 'silentoldconfig'. Stop.
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/kernel.release'. Stop.
ota
make-ppc -d
and the above command tells a lot of crap: how to solve?
deprecated syntax, crap scripts, and once again …
… it looks like a mission impossible
(where the FSCK is my personal jesus ?)
the above was perfectly working in 2008
thus
WHY ?!? they want to change things
with the result of making them broken
my pants
the above was perfectly working in 2008
You must be kidding. They often brake things with the next update, that was a major reason I abandoned my hard work attempts to introduce Linux to myself.
Hi,
This has nothing to do with Linux (I love this kind of false arguments about Linux and the inability for people to open their mind and change their (bad) habits); GNU make was tolerant in the past with some rules, but that was cleaned out:
http://osdir.com/ml/bug-make-gnu/2011-04/msg00011.html(googling <30s BTW)
Cheers.
---
Daniel
EEVBlog is in an operating system deadlock now. We have a thread where we hate Windows, and one where we hate Linux. There's no way out from here...
As someone already pointed out; it is not the fault of Linux...
You likely got the same warming (deprecated syntax) in 2008, so there was plenty of time to fix the make-file.
The good thing is, the make-file is human readable, at least in principle. So there might be someone who can translate to old / mixed syntax.
my effort to fix the jam, practically it will take the whole weekend
(I had been thinking it would have taken just a couple of hours)
let's go fixing things (can i change my job?
the summer is coming and I want to sell ice creams)
human readable, at least in principle
there are 2132 errors, inside a hierarchical tree with things written sparse around, oh,
plus things that seem written by bot, do human beings write things with so much complexity?
because G-Boys and Loooooniiiiix-boys: want to be called "GURU"
while I am an ICE-cream salesman (and I sell just 5 kinds of tastes)
GNU make was tolerant in the past with some rules, but that was cleaned out:
A change -however technically justified- which makes things backwards incompatible is a no-go. Unfortunately many programmers don't understand that and don't see that changing a version means re-testing everything again which usually is a very tedious and time consuming task.
So unfortunately if you need to support older GNU software then you have to have a virtual machine with that version because newer versions are likely to break things.
...the above command tells a lot of crap: how to solve?
Not sure how long you have been involved in software development? In my case, about 33 years. And all I can say is: I've seen worse. Far worse.
It's giving you the relevant details. Look at the section of breaking code, the error message, and Google a bit. Then get stuck in and fix it - it's only a make file after all.
If you have such a hatred for Linux and the GNU toolchain - and are going to react this way every time you hit a problem with a piece of code you haven't run for EIGHT YEARS - then I really would suggest that career in ice cream sales you were mentioning.
Unless this is actually April 1st and I'm missing the joke here?
make-ppc -d
(-d, forcing debug)
[step2] compiling
GNU Make 4.1
Built for i686-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Reading makefile 'Makefile'...
Reading makefile '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include' (search path) (no ~ expansion)...
Reading makefile 'include/config/auto.conf' (search path) (don't care) (no ~ expansion)...
Reading makefile 'include/config/auto.conf.cmd' (search path) (don't care) (no ~ expansion)...
Reading makefile '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile' (search path) (no ~ expansion)...
Makefile:1449: *** mixed implicit and normal rules: deprecated syntax
Updating makefiles....
Considering target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
Looking for an implicit rule for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
No implicit rule found for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
Finished prerequisites of target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
No need to remake target '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
Considering target file 'include/config/auto.conf.cmd'.
File 'include/config/auto.conf.cmd' does not exist.
Finished prerequisites of target file 'include/config/auto.conf.cmd'.
Must remake target 'include/config/auto.conf.cmd'.
Successfully remade target file 'include/config/auto.conf.cmd'.
Considering target file 'include/config/auto.conf'.
File 'include/config/auto.conf' does not exist.
Considering target file '.config'.
Finished prerequisites of target file '.config'.
No need to remake target '.config'.
Pruning file 'include/config/auto.conf.cmd'.
Finished prerequisites of target file 'include/config/auto.conf'.
Must remake target 'include/config/auto.conf'.
Putting child 0x9e83290 (include/config/auto.conf) PID 3422 on the chain.
Live child 0x9e83290 (include/config/auto.conf) PID 3422
GNU Make 4.1
Built for i686-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Reading makefile '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/Makefile'...
Reading makefile '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include' (search path) (no ~ expansion)...
Reading makefile '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile' (search path) (no ~ expansion)...
/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/Makefile:1449: *** mixed implicit and normal rules: deprecated syntax
Updating makefiles....
Considering target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
Looking for an implicit rule for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
No implicit rule found for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
Finished prerequisites of target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
No need to remake target '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/arch/powerpc/Makefile'.
Considering target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
Looking for an implicit rule for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
No implicit rule found for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
Finished prerequisites of target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
No need to remake target '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
Considering target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/Makefile'.
Looking for an implicit rule for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/Makefile'.
No implicit rule found for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/Makefile'.
Finished prerequisites of target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/Makefile'.
No need to remake target '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/Makefile'.
Updating goal targets....
Considering target file 'silentoldconfig'.
File 'silentoldconfig' does not exist.
Looking for an implicit rule for 'silentoldconfig'.
No implicit rule found for 'silentoldconfig'.
Finished prerequisites of target file 'silentoldconfig'.
Must remake target 'silentoldconfig'.
make[1]: *** No rule to make target 'silentoldconfig'. Stop.
Reaping losing child 0x9e83290 PID 3422
Removing child 0x9e83290 PID 3422 from chain.
Failed to remake target file 'include/config/auto.conf'.
Considering target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
Looking for an implicit rule for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
No implicit rule found for '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
Finished prerequisites of target file '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
No need to remake target '/root/sandpoint-x3/kernel-2.6.22-sandpoint3-G4/scripts/Kbuild.include'.
Considering target file 'Makefile'.
Finished prerequisites of target file 'Makefile'.
No need to remake target 'Makefile'.
Updating goal targets....
Considering target file 'zImage'.
File 'zImage' does not exist.
Considering target file 'vmlinux'.
File 'vmlinux' does not exist.
Considering target file 'arch/powerpc/kernel/vmlinux.lds'.
File 'arch/powerpc/kernel/vmlinux.lds' does not exist.
Considering target file 'init'.
File 'init' does not exist.
Considering target file 'prepare'.
File 'prepare' does not exist.
Considering target file 'prepare0'.
File 'prepare0' does not exist.
Considering target file 'archprepare'.
File 'archprepare' does not exist.
Considering target file 'checkbin'.
File 'checkbin' does not exist.
Finished prerequisites of target file 'checkbin'.
Must remake target 'checkbin'.
Putting child 0x9e82858 (checkbin) PID 3455 on the chain.
Live child 0x9e82858 (checkbin) PID 3455
Reaping winning child 0x9e82858 PID 3455
Live child 0x9e82858 (checkbin) PID 3456
Reaping winning child 0x9e82858 PID 3456
Removing child 0x9e82858 PID 3456 from chain.
Successfully remade target file 'checkbin'.
Considering target file 'prepare1'.
File 'prepare1' does not exist.
Considering target file 'prepare2'.
File 'prepare2' does not exist.
Considering target file 'prepare3'.
File 'prepare3' does not exist.
Considering target file 'include/config/kernel.release'.
File 'include/config/kernel.release' does not exist.
Considering target file 'include/config/auto.conf'.
Recently tried and failed to update file 'include/config/auto.conf'.
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/kernel.release'. Stop.
done
is it clear? do you understand something?
Just switch to Windows and you will be happy again
doing a make as root inside a root folder....
LMAO!
just hire someone to fix your problem. I doubt you'll ever get there yourself.
and are going to react this way every time you hit a problem with a piece of code you haven't run for EIGHT YEARS
long life and prosper, looooooniiiiiiix, the following was "easy" to be fixed
config %config: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
$(Q)$(MAKE) $(build)=scripts/kconfig $@
#
# fixed
#
config menuconfig: scripts_basic outputmakefile FORCE
$(Q)mkdir -p include/linux include/config
$(Q)$(MAKE) $(build)=scripts/kconfig $@
2132 -1 = just 2131 errors still need to be fixed not mention that
I have also a lot of hardware problems waiting to be solved I am not the looooniiiix-guy, thus …
… I am telling you what I am going to do: I am going to put my old (2008) laptop's stage4 into QEMU
since it was and it's still perfectly able to recompile the old linux kernel 2.6.22
this way I will avoid to
- have to understand what changed between 2008 Makefile and 2016 Makefile, and adjust scrips(1)
- have to understand what is going wrong with GCC-v5, and why it is refusing to compile the 2.6.22 kernel
then I really would suggest that career in ice cream sales you were mentioning.
absolutely
human readable, at least in principle
there are 2132 errors, inside a hierarchical tree with things written sparse around, oh,
plus things that seem written by bot, do human beings write things with so much complexity?
because G-Boys and Loooooniiiiix-boys: want to be called "GURU"
while I am an ICE-cream salesman (and I sell just 5 kinds of tastes)
GNU make was tolerant in the past with some rules, but that was cleaned out:
A change -however technically justified- which makes things backwards incompatible is a no-go. Unfortunately many programmers don't understand that and don't see that changing a version means re-testing everything again which usually is a very tedious and time consuming task.
So unfortunately if you need to support older GNU software then you have to have a virtual machine with that version because newer versions are likely to break things.
How could you browse the net with your NCSA Mosaic?
Sometimes, you have to break API/ABI, this is how things evolves.
Could you drive a horse on a highway?
The makefiles was designed to be used with an old make version, which was supporting some (probably) ugly rules mixing. It was decided that should be cleared, and that breaks the oldest makefiles using that "feature".
If the OP wants to build such old kernel, he needs to make this with a 8 years old system, or fix the makefile's rules to comply with the new gnu make semantics.
Cheers.
---
Daniel
A change -however technically justified- which makes things backwards incompatible is a no-go.
precisely!
Unfortunately many programmers don't understand that and don't see that changing a version means re-testing everything again which usually is a very tedious and time consuming task. So unfortunately if you need to support older GNU software then you have to have a virtual machine with that version because newer versions are likely to break things.
exactly what I am going to do
… I am telling you what I am going to do: I am going to put my old (2008) laptop's stage4 into QEMU
since it was and it's still perfectly able to recompile the old linux kernel 2.6.22
this way I will avoid to
- have to understand what changed between 2008 Makefile and 2016 Makefile, and adjust scrips(1)
- have to understand what is going wrong with GCC-v5, and why it is refusing to compile the 2.6.22 kernel
Probably by far the best approach. That is an old kernel built with much older versions of the toolchain. I doubt it's worth the effort of trying to get it all to work on more recent versions of the toolchain, tbh.
I realise it's frustrating.. I've had similar issues all week myself porting some code - written just last year - to a newer version of the same product.. In my case, I have no option to turn back - the client insists on rushing firmly into the future full speed!
Anyway, best of luck.
I realise it's frustrating
precisely, I hope you can appreciate my dry humor in this topic
used to hide the sad Truth: linux is a very frustrating experience!
especially during the weekend (I have to respect a deadline)
the client insists
I have to provide a couple of Sandpoint boards to a customer (in China),
I was supporting VxWorks for an other customer in Automotive, I have a few skill with PowerPC and with such a board
(a few products are based on Sandpoint X3, and I played with them)
unfortunately my last customer doesn't want to pay the license (to Winderiver),
thus they asked the last available open source linux kernel with a customization
and here we are
Anyway, best of luck.
thank you
here a few lines about "makefile-rule-error-mixed-implicit-and-normal-rules"
Without wishing to inflame things, I work on OSX, Linux and Windows, and they all deprecate stuff. However what I would say is that Linux will inevitably suffer much more from things breaking becuase it's essentially built by an enormous committee of people with unaligned aims.
As a result the average half life of an online recipe document for achieving something in Linux can usually be measured in a few weeks before it breaks, and then you're into a maze of rabbit holes to try to fix it. It's been like that ever since I started using it in the mid 90s.
OSX and Windows have their own rabbit holing to deal with, but your average recipe for those seem to have significantly better longevity.
As a suggestion to the OP, consider building a virtual machine template for you build environment, at least you stand a fighting chance at being able to build your software again reasonably easily in the furure. But I feel your pain.
doing a make as root inside a root folder....
LMAO!
just hire someone to fix your problem. I doubt you'll ever get there yourself.
This is a very typical example of the sort of help you can expect if you have a problem with Linux and have to ask the "experts". You can sort of see why Linux is still an also ran against Windows and OSX on the desktop...
Well it is not linux specific. A few years back I had the dubious fun to fix some bugs in old VC6 code. It was a major hassle to get it to compile with an up to date version of Visual Studio.