Skip to contentSkip to conversation

dhcpcd: fix build with ccache

PATCH New Thomas De Schampheleire 4 participants 5 messages Jun 22, 2014 – Jun 29, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 dhcpcd: fix build with ccache

After the bump to dhcpcd 6.4.0, building dhcpcd with ccache fails at the configure step:

Using compiler .. <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc is not an executable
make: *** [<buildroot>/output/build/dhcpcd-6.4.0/.stamp_configured] Error 1

This patch backports an upstream patch to fix this issue.

---
 package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch |  32 ++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)
package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch new file +32 -0
diff -r a59338f65a46 -r d3257052bc95 package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch
@@ -0,0 +1,32 @@
+configure: support builds using ccache
+
+The configure script checks whether CC is executable by means of a check
+'type $CC'. However, when using ccache, CC is normally set to "ccache gcc"
+(using the appropriate paths). Such a compound string is not recognized by
+type, however, and thus configure bails out.
+
+This patch changes the check 'type $CC' with a compile test.
+
+Signed-off-by: Thomas De Schampheleire <[email protected]>
+
+Upstream status: another implementation was submitted, modified by
+maintainer Roy, then simplified based on my suggestion. This patch is a fold
+of the two upstream patches:
+http://roy.marples.name/projects/dhcpcd/info/5f4bf91142fceac502c478886aeb5079a184bb43
+http://roy.marples.name/projects/dhcpcd/info/26bc10be2405659bdf31d690a72d377d6b67ebd4
+
+diff -r 66c8bdc88858 configure
+--- a/configure	Sat Jun 21 16:54:30 2014 +0200
++++ b/configure	Sun Jun 22 15:20:25 2014 +0200
+@@ -272,8 +272,9 @@
+ fi
+ 
+ echo "Using compiler .. $CC"
+-if ! type "$CC" >/dev/null 2>&1; then
+-	echo "$CC is not an executable"
++if ! echo "int main(void) { return 0; }" | $CC -x c -o /dev/null - 2>/dev/null
++then
++	echo "$CC does not create executables"
+ 	exit 1
+ fi
+ [ "$CC" != cc ] && echo "CC=	$CC" >>$CONFIG_MK
#1 lore raw

PATCH 1/1 dhcpcd: fix build with ccache

Thomas, All,

On 2014-06-22 15:26 +0200, Thomas De Schampheleire spake thusly:

Quoted 10 lines

After the bump to dhcpcd 6.4.0, building dhcpcd with ccache fails at the configure step:

Using compiler .. <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc is not an executable
make: *** [<buildroot>/output/build/dhcpcd-6.4.0/.stamp_configured] Error 1

This patch backports an upstream patch to fix this issue.

Regards,
Yann E. MORIN.

Quoted 44 lines
---
 package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch |  32 ++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff -r a59338f65a46 -r d3257052bc95 package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch

package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch new file +32 -0
@@ -0,0 +1,32 @@
+configure: support builds using ccache
+
+The configure script checks whether CC is executable by means of a check
+'type $CC'. However, when using ccache, CC is normally set to "ccache gcc"
+(using the appropriate paths). Such a compound string is not recognized by
+type, however, and thus configure bails out.
+
+This patch changes the check 'type $CC' with a compile test.
+
+Signed-off-by: Thomas De Schampheleire <[email protected]>
+
+Upstream status: another implementation was submitted, modified by
+maintainer Roy, then simplified based on my suggestion. This patch is a fold
+of the two upstream patches:
+http://roy.marples.name/projects/dhcpcd/info/5f4bf91142fceac502c478886aeb5079a184bb43
+http://roy.marples.name/projects/dhcpcd/info/26bc10be2405659bdf31d690a72d377d6b67ebd4
+
+diff -r 66c8bdc88858 configure
+--- a/configure	Sat Jun 21 16:54:30 2014 +0200
++++ b/configure	Sun Jun 22 15:20:25 2014 +0200
+@@ -272,8 +272,9 @@
+ fi
+ 
+ echo "Using compiler .. $CC"
+-if ! type "$CC" >/dev/null 2>&1; then
+-	echo "$CC is not an executable"
++if ! echo "int main(void) { return 0; }" | $CC -x c -o /dev/null - 2>/dev/null
++then
++	echo "$CC does not create executables"
+ 	exit 1
+ fi
+ [ "$CC" != cc ] && echo "CC=	$CC" >>$CONFIG_MK

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#2 lore raw

PATCH 1/1 dhcpcd: fix build with ccache

In reply to Thomas De Schampheleire

Dear Thomas De Schampheleire,

Quoted 10 lines · Thomas De Schampheleire

After the bump to dhcpcd 6.4.0, building dhcpcd with ccache fails at the configure step:

Using compiler .. <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc is not an executable
make: *** [<buildroot>/output/build/dhcpcd-6.4.0/.stamp_configured] Error 1

This patch backports an upstream patch to fix this issue.

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH 1/1 dhcpcd: fix build with ccache

In reply to Thomas De Schampheleire

Hi,

Quoted 36 lines · Thomas De Schampheleire

After the bump to dhcpcd 6.4.0, building dhcpcd with ccache fails at the configure step:

Using compiler .. <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc is not an executable
make: *** [<buildroot>/output/build/dhcpcd-6.4.0/.stamp_configured] Error 1

This patch backports an upstream patch to fix this issue.

---
 package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch |  32 ++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff -r a59338f65a46 -r d3257052bc95 package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch

package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch Sun Jun 22 15:22:35 2014 +0200 renamed from dev/null Thu Jan 01 00:00:00 1970 +0000 +17 -0
@@ -0,0 +1,32 @@
+configure: support builds using ccache
+
+The configure script checks whether CC is executable by means of a check
+'type $CC'. However, when using ccache, CC is normally set to "ccache gcc"
+(using the appropriate paths). Such a compound string is not recognized by
+type, however, and thus configure bails out.
+
+This patch changes the check 'type $CC' with a compile test.
+
+Signed-off-by: Thomas De Schampheleire <[email protected]>
+
+Upstream status: another implementation was submitted, modified by
+maintainer Roy, then simplified based on my suggestion. This patch is a fold
+of the two upstream patches:
+http://roy.marples.name/projects/dhcpcd/info/5f4bf91142fceac502c478886aeb5079a184bb43
+http://roy.marples.name/projects/dhcpcd/info/26bc10be2405659bdf31d690a72d377d6b67ebd4
+

package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch Sun Jun 22 15:22:35 2014 +0200 line 27

Quoted 10 lines
package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch Sun Jun 22 15:22:35 2014 +0200 renamed from dev/null Thu Jan 01 00:00:00 1970 +0000 +10 -0
+diff -r 66c8bdc88858 configure
+--- a/configure        Sat Jun 21 16:54:30 2014 +0200
++++ b/configure        Sun Jun 22 15:20:25 2014 +0200
+@@ -272,8 +272,9 @@
+ fi
+
+ echo "Using compiler .. $CC"
+-if ! type "$CC" >/dev/null 2>&1; then
+-      echo "$CC is not an executable"
++if ! echo "int main(void) { return 0; }" | $CC -x c -o /dev/null - 2>/dev/null

This test fails when executed with otherwise working gcc for xtensa, at the linking step linker needs to be able to read the object it creates. Please see the following thread:
http://comments.gmane.org/gmane.comp.lib.uclibc.buildroot/87809

The first quoted fix applied alone works just fine, so I'd suggest reverting the simplification part of this fix.

Signature · 2 lines
Thanks.
-- Max
#4 lore raw

PATCH 1/1 dhcpcd: fix build with ccache

Hi,

Quoted 56 lines · Max Filippov

Hi,

Quoted 36 lines · Thomas De Schampheleire

After the bump to dhcpcd 6.4.0, building dhcpcd with ccache fails at the configure step:

Using compiler .. <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc <buildroot>/output/host/usr/bin/ccache <buildroot>/output/host/usr/bin/i686-pc-linux-gnu-gcc is not an executable
make: *** [<buildroot>/output/build/dhcpcd-6.4.0/.stamp_configured] Error 1

This patch backports an upstream patch to fix this issue.

---
 package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch |  32 ++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff -r a59338f65a46 -r d3257052bc95 package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch

package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch Sun Jun 22 15:22:35 2014 +0200 renamed from dev/null Thu Jan 01 00:00:00 1970 +0000 +17 -0
@@ -0,0 +1,32 @@
+configure: support builds using ccache
+
+The configure script checks whether CC is executable by means of a check
+'type $CC'. However, when using ccache, CC is normally set to "ccache gcc"
+(using the appropriate paths). Such a compound string is not recognized by
+type, however, and thus configure bails out.
+
+This patch changes the check 'type $CC' with a compile test.
+
+Signed-off-by: Thomas De Schampheleire <[email protected]>
+
+Upstream status: another implementation was submitted, modified by
+maintainer Roy, then simplified based on my suggestion. This patch is a fold
+of the two upstream patches:
+http://roy.marples.name/projects/dhcpcd/info/5f4bf91142fceac502c478886aeb5079a184bb43
+http://roy.marples.name/projects/dhcpcd/info/26bc10be2405659bdf31d690a72d377d6b67ebd4
+

package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch Sun Jun 22 15:22:35 2014 +0200 line 27

Quoted 10 lines
package/dhcpcd/dhcpcd-0001-fix-build-with-ccache.patch Sun Jun 22 15:22:35 2014 +0200 renamed from dev/null Thu Jan 01 00:00:00 1970 +0000 +10 -0
+diff -r 66c8bdc88858 configure
+--- a/configure        Sat Jun 21 16:54:30 2014 +0200
++++ b/configure        Sun Jun 22 15:20:25 2014 +0200
+@@ -272,8 +272,9 @@
+ fi
+
+ echo "Using compiler .. $CC"
+-if ! type "$CC" >/dev/null 2>&1; then
+-      echo "$CC is not an executable"
++if ! echo "int main(void) { return 0; }" | $CC -x c -o /dev/null - 2>/dev/null

This test fails when executed with otherwise working gcc for xtensa, at the linking step linker needs to be able to read the object it creates. Please see the following thread:
http://comments.gmane.org/gmane.comp.lib.uclibc.buildroot/87809

Quoted 2 lines

The first quoted fix applied alone works just fine, so I'd suggest reverting the simplification part of this fix.

I just submitted a patch to do exactly this. Thanks for reporting!

Best regards,
Thomas