Skip to contentSkip to conversation

valgrind: fix uclibc c99 support detection

PATCH New Peter Seiderer 2 participants 4 messages Oct 28, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 valgrind: fix uclibc c99 support detection

Fixes [1]:

checking for /home/peko/autobuild/instance-0/output/host/bin/powerpc-linux-gcc option to accept ISO C99... unsupported
configure: error: Valgrind relies on a C compiler supporting C99

with the following in the valgrind-3.14.0/config.log:

configure:5517: checking for .../host/bin/powerpc-linux-gcc option to accept ISO C99
configure:5666: .../host/bin/powerpc-linux-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fno-stack-protector -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:55:9: error: unknown type name 'wchar_t'

     const wchar_t *name;
           ^~~~~~~

[1] http://autobuild.buildroot.net/results/b25013f785a11f07e8da3735741b96036712f42a

---
 package/valgrind/valgrind.mk | 3 +++
 1 file changed, 3 insertions(+)
package/valgrind/valgrind.mk +3 -0
index f097c7be1f..459de4907e 100644
@@ -36,6 +36,9 @@ endif
 
 VALGRIND_CONF_ENV = CFLAGS="$(VALGRIND_CFLAGS)"
 
+# fix uclibc configure c99 support detection
+VALGRIND_CONF_ENV += ac_cv_prog_cc_c99='-std=gnu99'
+
 # On ARM, Valgrind only supports ARMv7, and uses the arch part of the
 # host tuple to determine whether it's being built for ARMv7 or
 # not. Therefore, we adjust the host tuple to specify we're on
Signature · 1 line
2.19.1
#1 lore raw

PATCH 1/1 valgrind: fix uclibc c99 support detection

Hello,

Quoted 7 lines · Peter Seiderer

Fixes [1]:

checking for /home/peko/autobuild/instance-0/output/host/bin/powerpc-linux-gcc option to accept ISO C99... unsupported
configure: error: Valgrind relies on a C compiler supporting C99

with the following in the valgrind-3.14.0/config.log:

Quoted 7 lines

configure:5517: checking for .../host/bin/powerpc-linux-gcc option to accept ISO C99
configure:5666: .../host/bin/powerpc-linux-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fno-stack-protector -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:55:9: error: unknown type name 'wchar_t'

     const wchar_t *name;
           ^~~~~~~

[1] http://autobuild.buildroot.net/results/b25013f785a11f07e8da3735741b96036712f42a

So the autoconf test verifies that WCHAR support is available, which is not (the toolchain doesn't provide it), but in practice, Valgrind does not need WCHAR support ?

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#2 lore raw

PATCH 1/1 valgrind: fix uclibc c99 support detection

Hello Thomas,

Quoted 16 lines · Thomas Petazzoni

Hello,

Quoted 13 lines · Peter Seiderer

Fixes [1]:

checking for /home/peko/autobuild/instance-0/output/host/bin/powerpc-linux-gcc option to accept ISO C99... unsupported
configure: error: Valgrind relies on a C compiler supporting C99

with the following in the valgrind-3.14.0/config.log:

configure:5517: checking for .../host/bin/powerpc-linux-gcc option to accept ISO C99
configure:5666: .../host/bin/powerpc-linux-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fno-stack-protector -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:55:9: error: unknown type name 'wchar_t'

     const wchar_t *name;
           ^~~~~~~
Quoted 5 lines
Quoted 1 line

[1] http://autobuild.buildroot.net/results/b25013f785a11f07e8da3735741b96036712f42a

So the autoconf test verifies that WCHAR support is available, which is not (the toolchain doesn't provide it), but in practice, Valgrind does not need WCHAR support ?

The difference in the configure.ac files is:

	$ diff -u build/valgrind-3.13.0/configure.ac build/valgrind-3.14.0/configure.ac
[...]
@@ -100,6 +113,11 @@
 fi
 rm $tmpfile

+# Make sure we can compile in C99 mode.
+AC_PROG_CC_C99
+if test "$ac_cv_prog_cc_c99" == "no"; then
+ AC_MSG_ERROR([Valgrind relies on a C compiler supporting C99])
+fi
[...]

But the check seems to fail in case of uclibc without WCHAR support (but valgrind compiles fine in case the check is circumvented), maybe the same problem as for libv4l fixed with commit 'libv4l: fix uclibc-ng configure/compile' (see [2])...

Regards,
Peter

[2] https://git.buildroot.net/buildroot/commit/package/libv4l?id=f01396a158f14c53b781c35f7ff29da0bea8c8d6

Quoted 4 lines

Best regards,

Thomas

#3 lore raw

PATCH 1/1 valgrind: fix uclibc c99 support detection

In reply to Peter Seiderer

Hello,

Quoted 13 lines · Peter Seiderer

Fixes [1]:

checking for /home/peko/autobuild/instance-0/output/host/bin/powerpc-linux-gcc option to accept ISO C99... unsupported
configure: error: Valgrind relies on a C compiler supporting C99

with the following in the valgrind-3.14.0/config.log:

configure:5517: checking for .../host/bin/powerpc-linux-gcc option to accept ISO C99
configure:5666: .../host/bin/powerpc-linux-gcc -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fno-stack-protector -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5 conftest.c:55:9: error: unknown type name 'wchar_t'

     const wchar_t *name;
           ^~~~~~~
Quoted 6 lines

[1] http://autobuild.buildroot.net/results/b25013f785a11f07e8da3735741b96036712f42a

---
 package/valgrind/valgrind.mk | 3 +++
 1 file changed, 3 insertions(+)

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com