All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Seiderer <ps.report@gmx.net>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] package/libdrm: fix building if GCC's C standard is not gnu99
Date: Thu, 2 Jul 2015 23:12:41 +0200	[thread overview]
Message-ID: <20150702231241.69ef0bea@gmx.net> (raw)
In-Reply-To: <1435860302-16176-1-git-send-email-bernd.kuhls@t-online.de>

Hello Bernd,

On Thu,  2 Jul 2015 20:05:02 +0200, Bernd Kuhls <bernd.kuhls@t-online.de> wrote:

> Fixes
> checking for /home/fli4l/buildroot/output/host/usr/bin/i586-buildroot-linux-uclibc-gcc option to accept ISO C99... unsupported
> configure: error: Building libdrm requires C99 enabled compiler
> 
> using this defconfig
> BR2_KERNEL_HEADERS_4_0=y
> BR2_BINUTILS_VERSION_2_25=y
> BR2_TOOLCHAIN_BUILDROOT_CXX=y
> BR2_PACKAGE_LIBDRM=y
> 
> Patch inspired by
> http://git.buildroot.net/buildroot/commit/?id=5cf5b390385fb6325485e37dc9d38e1e3ac1f091
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/libdrm/libdrm.mk |    2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/package/libdrm/libdrm.mk b/package/libdrm/libdrm.mk
> index 4cca645..1768214 100644
> --- a/package/libdrm/libdrm.mk
> +++ b/package/libdrm/libdrm.mk
> @@ -19,6 +19,8 @@ LIBDRM_CONF_OPTS = \
>  	--disable-cairo-tests \
>  	--disable-manpages
>  
> +LIBDRM_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'
> +
>  ifeq ($(BR2_PACKAGE_LIBDRM_INTEL),y)
>  LIBDRM_CONF_OPTS += --enable-intel
>  LIBDRM_DEPENDENCIES += libatomic_ops libpciaccess

Same problem with libv4l (with raspberrypi_defconfig):

  libv4l2rds.c:256:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
    for (int i = 0; i < tuning->station_cnt; i++) {
    ^
  libv4l2rds.c:256:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code

From build/libv4l-1.6.2/config.log:

configure:4709: checking for .../host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc option to accept ISO C99
configure:4858: .../host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc -std=gnu99 -c -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64   -Os  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c >&5
conftest.c:54:9: error: unknown type name 'wchar_t'
   const wchar_t *name;


The C99 detection problem seems more related to missing wchar_t type support than the compiler option?


Adding LIBV4L_CONF_ENV = ac_cv_prog_cc_c99='-std=c99' gives a lot of compile errors like:

libv4lconvert.c: In function 'dev_ioctl':
processing/../libv4lsyscall-priv.h:85:10: error: 'SYS_ioctl' undeclared (first use in this function)
  syscall(SYS_ioctl, (int)(fd), (unsigned long)(cmd), (void *)(arg))
          ^
libv4lconvert.c:43:9: note: in expansion of macro 'SYS_IOCTL'
  return SYS_IOCTL(fd, cmd, arg);
         ^
processing/../libv4lsyscall-priv.h:85:10: note: each undeclared identifier is reported only once for each function it appears in
  syscall(SYS_ioctl, (int)(fd), (unsigned long)(cmd), (void *)(arg))
          ^
libv4lconvert.c:43:9: note: in expansion of macro 'SYS_IOCTL'
  return SYS_IOCTL(fd, cmd, arg);
         ^

Adding LIBV4L_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' solves all configure/compile errors.

Maybe it is a uclibc-ng and/or autoconf related problem (and there is a better/more general) solution
other than to overwrite ac_cv_prog_cc_c99 for a lot of packages?

Regards,
Peter

  parent reply	other threads:[~2015-07-02 21:12 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-02 18:05 [Buildroot] [PATCH 1/1] package/libdrm: fix building if GCC's C standard is not gnu99 Bernd Kuhls
2015-07-02 20:40 ` Yann E. MORIN
2015-07-02 21:12 ` Peter Seiderer [this message]
2015-07-02 21:46   ` Arnout Vandecappelle
2015-07-02 22:05     ` Yann E. MORIN
2015-07-02 22:19       ` Peter Seiderer
2015-07-02 22:22         ` Yann E. MORIN
2015-07-04 12:14 ` Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150702231241.69ef0bea@gmx.net \
    --to=ps.report@gmx.net \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.