Modify

Opened 5 years ago

Closed 5 years ago

Last modified 4 years ago

#12860 closed defect (obsolete)

Can't compile in Gentoo

Reported by: dmalkr@… Owned by: developers
Priority: high Milestone: Chaos Calmer 15.05
Component: base system Version: Trunk
Keywords: Cc:

Description

I download fresh files (using "svn co svn://svn.openwrt.org/openwrt/branches/backfire"), and run "make prereq". It says:

$ make prereq
--: /info/sys/openwrt/stable/include/shell.sh;: No such file or directory
Collecting package info: done
--: /info/sys/openwrt/stable/include/shell.sh;: No such file or directory
ERROR: please fix target/linux/brcm63xx/Makefile
ERROR: please fix target/linux/brcm47xx/Makefile
ERROR: please fix target/linux/ppc40x/Makefile
ERROR: please fix target/linux/ppc44x/Makefile
ERROR: please fix target/linux/brcm-2.4/Makefile
ERROR: please fix target/linux/x86/Makefile
ERROR: please fix target/linux/orion/Makefile
ERROR: please fix target/linux/xburst/Makefile
ERROR: please fix target/linux/lantiq/Makefile
ERROR: please fix target/linux/ar7/Makefile
ERROR: please fix target/linux/kirkwood/Makefile
ERROR: please fix target/linux/ar71xx/Makefile
ERROR: please fix target/linux/uml/Makefile
ERROR: please fix target/linux/rb532/Makefile
ERROR: please fix target/linux/avr32/Makefile
ERROR: please fix target/linux/ixp4xx/Makefile
ERROR: please fix target/linux/atheros/Makefile
ERROR: please fix target/linux/au1000/Makefile
ERROR: please fix target/linux/rdc/Makefile
ERROR: please fix target/linux/adm5120/Makefile
Collecting target info: done
Prerequisite check failed. Use FORCE=1 to override.
make: *** [tmp/.prereq-build] Ошибка 1

Now I try to build and run "make":

$ make
--: /info/sys/openwrt/stable/include/shell.sh;: No such file or directory
--: /info/sys/openwrt/stable/include/shell.sh;: No such file or directory
ERROR: please fix target/linux/brcm63xx/Makefile
ERROR: please fix target/linux/brcm47xx/Makefile
ERROR: please fix target/linux/ppc40x/Makefile
ERROR: please fix target/linux/ppc44x/Makefile
ERROR: please fix target/linux/brcm-2.4/Makefile
ERROR: please fix target/linux/x86/Makefile
ERROR: please fix target/linux/orion/Makefile
ERROR: please fix target/linux/xburst/Makefile
ERROR: please fix target/linux/lantiq/Makefile
ERROR: please fix target/linux/ar7/Makefile
ERROR: please fix target/linux/kirkwood/Makefile
ERROR: please fix target/linux/ar71xx/Makefile
ERROR: please fix target/linux/uml/Makefile
ERROR: please fix target/linux/rb532/Makefile
ERROR: please fix target/linux/avr32/Makefile
ERROR: please fix target/linux/ixp4xx/Makefile
ERROR: please fix target/linux/atheros/Makefile
ERROR: please fix target/linux/au1000/Makefile
ERROR: please fix target/linux/rdc/Makefile
ERROR: please fix target/linux/adm5120/Makefile
Collecting target info: done
Prerequisite check failed. Use FORCE=1 to override.
make[1]: *** [tmp/.prereq-build] Error 1
make: *** [world] Ошибка 2

or "make V=99"

$ make V=99
--: /info/sys/openwrt/stable/include/shell.sh;: No such file or directory
--: /info/sys/openwrt/stable/include/shell.sh;: No such file or directory
ERROR: please fix target/linux/brcm63xx/Makefile
ERROR: please fix target/linux/brcm47xx/Makefile
ERROR: please fix target/linux/ppc40x/Makefile
ERROR: please fix target/linux/ppc44x/Makefile
ERROR: please fix target/linux/brcm-2.4/Makefile
ERROR: please fix target/linux/x86/Makefile
ERROR: please fix target/linux/orion/Makefile
ERROR: please fix target/linux/xburst/Makefile
ERROR: please fix target/linux/lantiq/Makefile
ERROR: please fix target/linux/ar7/Makefile
ERROR: please fix target/linux/kirkwood/Makefile
ERROR: please fix target/linux/ar71xx/Makefile
ERROR: please fix target/linux/uml/Makefile
ERROR: please fix target/linux/rb532/Makefile
ERROR: please fix target/linux/avr32/Makefile
ERROR: please fix target/linux/ixp4xx/Makefile
ERROR: please fix target/linux/atheros/Makefile
ERROR: please fix target/linux/au1000/Makefile
ERROR: please fix target/linux/rdc/Makefile
ERROR: please fix target/linux/adm5120/Makefile
Collecting target info: done
Prerequisite check failed. Use FORCE=1 to override.
make[1]: *** [tmp/.prereq-build] Error 1
make: *** [world] Ошибка 2

Recently, about 2-3 month ago make is ok. I think, this is conflict with bash.

$ bash --version
GNU bash, version 4.2.42(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2011 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.

Ok, I am open "rules.mk" and chage

export SHELL=/usr/bin/env bash -c '. $(TOPDIR)/include/shell.sh; eval "$$2"' --

to

export SHELL=/usr/bin/env bash -c '. $(TOPDIR)/include/shell.sh ; eval "$$2"' --

(adding space after "shell.sh")

and try to run "make prereq" -- It's exit without any messages. Try to "make V=99":

$ make V=99
make[1]: Entering directory `/info/sys/openwrt/stable'
export MAKEFLAGS= ;make -w -r package/index
make[1]: Leaving directory `/info/sys/openwrt/stable'

And no any build!

What's wrong? What can I do??

Attachments (1)

rules.mk.patch (394 bytes) - added by Eroen <eroen@…> 5 years ago.
Patch from trunk, apparently fixing this

Download all attachments as: .zip

Change History (12)

comment:1 Changed 5 years ago by florian

What is the GNU make version that you are using?

comment:2 Changed 5 years ago by dmalkr@…

3.82-r4

$ LANG="" make --version
GNU Make 3.82
Built for x86_64-pc-linux-gnu
Copyright (C) 2010  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.

comment:3 Changed 5 years ago by Dmitry Krylov <dmalkr@…>

What information can I give to solve my problem?
Logs, version infos, output of some programs?

comment:4 Changed 5 years ago by florian

The fact that you are using make 3.82 is enough, I will take a stab at reproducing the build errors you are having, make 3.82 is known to break a lot of software heavily relying on GNU make like OpenWrt.

comment:5 Changed 5 years ago by florian

I can't reproduce your build issues here with make-3.82 and bash 4.2.37, must be something specific to your setup, try downgrading/updating bash and make and see if that fixes any issue on your side.

comment:6 Changed 5 years ago by Dmitry Krylov <dmalkr@…>

I try to downgrade to sys-devel/make-3.82-r3, and build is OK.
But with sys-devel/make-3.82-r4 error occured.
You can mark this bug as solved.

comment:7 Changed 5 years ago by florian

  • Resolution set to worksforme
  • Status changed from new to closed

comment:8 Changed 5 years ago by Roland Wirth <roland_wirth@…>

I had the same problem with sys-devel/make-3.82-r4. The cause of this error is shown in the first few lines of the log:

--: /info/sys/openwrt/stable/include/shell.sh;: No such file or directory

The offending line is line 19 in rules.mk

export SHELL=/usr/bin/env bash -c '. $(TOPDIR)/include/shell.sh; eval "$$2"' --

Adding a space before the semicolon solves the error for me.

comment:9 Changed 5 years ago by Eroen <eroen@…>

  • Resolution worksforme deleted
  • Status changed from closed to reopened

This is caused by Gentoo applying the patch from https://savannah.gnu.org/bugs/?23922 (file #23363) in make-3.82-r4 , which adds filtering of special characters in $SHELL .

The openwrt trunk has a fix for this in https://dev.openwrt.org/changeset?reponame=&new=22720%40trunk%2Frules.mk&old=22443%40trunk%2Frules.mk. While this seems to be done for a different purpose, it appears to fix this build problem.

Changed 5 years ago by Eroen <eroen@…>

Patch from trunk, apparently fixing this

comment:10 Changed 5 years ago by nbd

  • Resolution set to obsolete
  • Status changed from reopened to closed

both AA and trunk have this fixed.

comment:11 Changed 4 years ago by jow

  • Milestone changed from Backfire 10.03.2 to Chaos Calmer (trunk)

Milestone Backfire 10.03.2 deleted

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.