touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #67007
[Bug 1438797] [NEW] [ARM] stdint.h should not rely on wchar_t being defined
Public bug reported:
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.
** Affects: eglibc (Ubuntu)
Importance: Undecided
Status: New
--
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
Follow ups
References