Bug 200300 - Issues in /usr/include/bits/types.h file.
Summary: Issues in /usr/include/bits/types.h file.
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: gcc3
Version: 4.0
Hardware: i386
OS: Linux
medium
urgent
Target Milestone: ---
: ---
Assignee: Jakub Jelinek
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-07-26 18:59 UTC by Sushil Srinivasan
Modified: 2007-11-30 22:07 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-08-28 11:05:24 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Sushil Srinivasan 2006-07-26 18:59:06 UTC
Description of problem:

We are trying to port our existing legacy application from Redhat LinuxES3 to
Redhat LinuxES4.

We are encountering an issue whenever we try to access the types.h file in
/usr/include/bits directory.

"/usr/include/bits/types.h", line 50: bad function definition
"/usr/include/bits/types.h", line 50: illegal storage class for parameter
'__int64_t'
"/usr/include/bits/types.h", line 51: syntax error
"/usr/include/bits/types.h", line 59: bad function definition
"/usr/include/bits/types.h", line 59: illegal storage class for parameter '__quad_t'
"/usr/include/bits/types.h", line 60: syntax error
"/usr/include/bits/types.h", line 136: bad function definition
"/usr/include/bits/types.h", line 136: syntax error
"/usr/include/bits/types.h", line 138: bad function definition
"/usr/include/bits/types.h", line 138: illegal storage class for parameter '__gid_t'
"/usr/include/bits/types.h", line 139: syntax error
"/usr/include/bits/types.h", line 140: bad function definition
"/usr/include/bits/types.h", line 140: syntax error
"/usr/include/bits/types.h", line 142: bad function definition
"/usr/include/bits/types.h", line 142: illegal storage class for parameter
'__nlink_t'
"/usr/include/bits/types.h", line 143: syntax error
"/usr/include/bits/types.h", line 144: bad function definition
"/usr/include/bits/types.h", line 144: illegal storage class for parameter
'__off64_t'
"/usr/include/bits/types.h", line 145: syntax error
"/usr/include/bits/types.h", line 146: bad function definition
"/usr/include/bits/types.h", line 146: illegal storage class for parameter
'__fsid_t'
"/usr/include/bits/types.h", line 147: syntax error
"/usr/include/bits/types.h", line 148: bad function definition
"/usr/include/bits/types.h", line 148: illegal storage class for parameter
'__rlim_t'
"/usr/include/bits/types.h", line 149: syntax error
"/usr/include/bits/types.h", line 150: bad function definition
"/usr/include/bits/types.h", line 150: illegal storage class for parameter '__id_t'
"/usr/include/bits/types.h", line 151: syntax error
"/usr/include/bits/types.h", line 152: bad function definition
"/usr/include/bits/types.h", line 152: illegal storage class for parameter
'__useconds_t'
"/usr/include/bits/types.h", line 153: syntax error
too many errors, goodbye!

I compared the types.h file under /usr/include/bits directory in LinuxES3 and
LinuxES4 

109,110c109,110
< # define __SQUAD_TYPE         long long int
< # define __UQUAD_TYPE         unsigned long long int
---
> # define __SQUAD_TYPE         __quad_t
> # define __UQUAD_TYPE         __u_quad_t

Kindly help us solve this issue. We are on a very critical phase of our project.

Thanks
Sushil

Version-Release number of selected component (if applicable):

gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)
glibc-common-2.3.4-2.13
glibc-headers-2.3.4-2.13
glibc-kernheaders-2.4-9.1.98.EL
glibc-2.3.4-2.13
glibc-devel-2.3.4-2.13

Comment 1 Jakub Jelinek 2006-08-03 07:37:29 UTC
What compiler are you using, what options?
bits/types.h around that line has:
#elif defined __GLIBC_HAVE_LONG_LONG
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
#endif

and that is defined if:
/* Decide whether a compiler supports the long long datatypes.  */
#if defined __GNUC__ \
    || (defined __PGI && defined __i386__ ) \
    || (defined __INTEL_COMPILER && (defined __i386__ || defined __ia64__)) \
    || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
# define __GLIBC_HAVE_LONG_LONG 1
#endif

(and __extension__ defined to nothing unless __GNUC__).
GCC certainly handles long long type, it looks like you are using a compiler
that doesn't grok it or at least doesn't grok it with the options you are using,
yet pretends to be GCC or other compiler that is expected to handle long long
int.

Comment 2 Jakub Jelinek 2006-08-28 11:05:24 UTC
No response in almost a month.
Really I don't see a problem on the RHEL4 side, closing.
If you collect the required information please reopen.


Note You need to log in before you can comment on or make changes to this bug.