This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See crosstool-NG for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cannot build crosstool due to Makefile issues (mixed implicit and normal rules)


I have encounted same issue:
during step of Installing kernel headers, got error:
Makefile:119: recipe for target `headers_installâ failed

and, your concern about "kernel might be full of such old fashioned makefiles" is same with me,
so, finnaly, I fix this error by:
change make from v3.82 to v3.81
and most important is:
actually the crosstool-ng, have realized this issue,
so, you can find the solution for this issue in:
crosstool-ng-1.18.0\docs\B â Known issues.txt
which is:
"""
--------------------------------
Symptoms:
glibc start files and headers fail with: [/usr/include/limits.h] Error 1

Explanations:
  Old glibc (and eglibc) Makefiles break with make-3.82.

Status:
  CURRENT

Fix:
  None so far. It would require some glibc/eglibc hacking.

Workaround:
  There two possible workarounds:
  1- ask crosstool-NG to build make-3.81 just for this build session:
     Select the following options:
        Paths and misc options  --->
            [*] Try features marked as EXPERIMENTAL
        Companion tools  --->
            [*] Build some companion tools
            [*]   make
  2- manually install make-3.81 to take precedence over the system make.

--------------------------------
Symptoms:
  The build fails with "mixed implicit and normal rules. Stop."

Explanations:
  Old glibc (and eglibc) Makefiles break with make-3.82.

Status:
  CURRENT

Fix:
  None so far. See above issue.

Workaround:
  See above issue.

--------------------------------
"""
so, final solution for:
Makefile:xxx: *** mixed implicit and normal rules.  Stop.
is:
in ct-nt menuconfig, choose crosstool-ng's v3.81 make

steps:
ct-nt menuconfig
->
Paths and misc options  --->
select:
    [*] Try features marked as EXPERIMENTAL
->
then goto:
Companion tools  --->
select:
[*] Build some companion tools
then can choose:
[*]   make

that will:
let crosstool-ng, use its v3.81, instead of your v3.82 make of your environment to do make, this will avoid possibly, many such kind of "mixed implicit and normal rules. Stop" in following build.

Crifan Li

Hello.

I have downloaded the latest version of the tool aka 1.18. I've
configured it for powerpc-unknown-nofpu-linux-gnu.

In my first iteration I encountered an error build the mfpr library
and on searching the internet came across a similar issue by a user
earlier in which Yann advised the fellow to manually upgrade his mfpvr
library. Hence a quick menuconfig later in which I selected a higher
version of mfpr, this issue seemed to have ceased.

Later my build failed during the kernel header installation phase (as
part of Installing pass-1 core C compiler) and on probing build.log
realized that it is due to the concerned Makefile (within
arch/powerpc/kernel/) having a format which the newer makefile on my
machine (version 3.82) does not like. Now I believe the kernel might
be full of such old fashioned makefiles so I switched to a newer
kernel (2.6.36). The default was set to use 2.6.31.

Having done that, the 'Installing kernel headers' phase went fine.
However this time, it failed in the 'Installing C library headers &
start files' phase. This is what the build.log file has to say now:

[ALL ] /usr/bin/make subdir=manual -C manual ..=../ install-headers
[ALL  ]    make[3]: Entering directory
`/home/aijazbaig1/crosstoolchain/.build/src/glibc-2.9/manual'
[ALL  ]    Makefile:240: *** mixed implicit and normal rules.  Stop.
[ALL  ]    make[3]: Leaving directory
`/home/aijazbaig1/crosstoolchain/.build/src/glibc-2.9/manual'
[ERROR]    make[2]: *** [manual/install-headers] Error 2

This one is again the same problem encountered before. I could again
select a higher version via menuconfig and continue only to fail at
some other step.

Now I want to know whether this is the case for everyone or am I doing
something wrong here. Do I need to downgrade my Make or use a lower
version of Make (3.81 instead of the default 3.82 on my host)
temporarily for this to work?

I am really stumped on this one. Keen to hear your suggestions, replies etc.

Regards.


--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]