← Back to team overview

touch-packages team mailing list archive

[Bug 1438797] Re: [ARM] stdint.h should not rely on wchar_t being defined

 

This causes:

  FAIL: gcc.dg/c99-stdint-1.c (test for excess errors)
  FAIL: gcc.dg/c99-stdint-7.c (test for excess errors)

In the GCC testsuite, when testing a native arm-none-linux-gnueabihf
toolchain under a Ubuntu 12.04 system.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to eglibc in Ubuntu.
https://bugs.launchpad.net/bugs/1438797

Title:
  [ARM] stdint.h should not rely on wchar_t being defined

Status in eglibc package in Ubuntu:
  New

Bug description:
  This patch to eglibc from debian (which is applied for Ubuntu 12.04):
    ( https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=arm-eabi-wchar.patch;att=1;bug=444580  )

  Gives this definition for __WCHAR_MAX in bits/wchar.h

  #define __WCHAR_MAX     ( (wchar_t) - 1 )

  This then propagates to WCHAR_MAX from stdint.h:

  #  define WCHAR_MAX             __WCHAR_MAX

  The problem is that this introduces a requirement that stddef.h must
  be included before stdint.h in order to make the definition of wchar_t
  available.

  In a conforming C implimentation, this should be valid:

  #include "stdint.h"
  #include "stdio.h"

  unsigned int
  foo (void)
  {
    return (unsigned int) WCHAR_MAX;
  }

  Currently this will report:

  gcc foo.c 
  foo.c: In function ‘foo’:
  foo.c:7:25: error: ‘wchar_t’ undeclared (first use in this function)
  foo.c:7:25: note: each undeclared identifier is reported only once for each function it appears in

  The easiest fix would be to take the more modern, portable definition
  of WCHAR_MAX/__WCHAR_MAX from Ubuntu 14.04's glibc.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1438797/+subscriptions


References